評估穿戴式應用的各種開發板與原型開發板

作者:Clive "Max" Maxfield

資料提供者:DigiKey 北美編輯群

事實證明,開放原始碼 Arduino 概念廣受業餘愛好者與創客的歡迎。此外,專業設計人員在早期開發和原型開發時也喜歡採用,最近甚至用於整個產品的設計。隨著穿戴式裝置和健康監測等應用的出現,這兩類使用者都要求在更小的板尺寸下達到更高的效能和更多的功能。

本文將簡要探討 Arduino 板的演進歷程,如何讓創客與專業人士在低功率和空間受限的應用中,達到高效能及更多功能。接著會介紹並說明如何開始使用 Arduino 系列的新產品,即 Seeed Technology Co.Seeeduino XIAO

Arduino 如何演進以滿足穿戴式設計的需求

許多業餘愛好者和設計人員都有興趣開發小尺寸產品,以便部署在穿戴式裝置等空間受限的環境中。這些產品通常是採用微控制器架構,外加感測功能及/或顯示裝置的智慧型電子系統。有時可當作高科技的首飾。有時則可直接穿戴在皮膚上和/或接近皮膚的地方,以便偵測、分析和傳輸體溫、心率、脈搏血氧等身體資料,以及環境資料。在某些情況下,還可即時向佩戴者提供生物回饋。

對於這類設計,許多業餘愛好者和創客都使用 Arduino 微電腦開發板。因此,越來越多的專業工程師也開始這麼做,他們可能會使用這些開發板當作評估和原型開發平台,以便在評估 IC、感測器和周邊裝置時,加快速度並降低成本。

這類使用者通常會從 A000073 Arduino Uno Rev3 開始著手,此產品號稱「人人快速上手的開發板」(圖 1)。此板件採用 Atmel (現為 Microchip Technology) 的 TMEGA328P-AUR 微控制器。此 5 V 處理器可提供 14 個數位輸入/輸出 (I/O),其中 6 個可提供脈寬調變 (PWM) 功能,6 個類比輸入引腳可在需要時作為數位 I/O。此外,在數位 I/O 引腳 2 和 3 上還支援兩個外部中斷,且各有一個 UART、SPI 和 I2C 介面。

Arduino Uno Rev3 開發板圖片圖 1:Arduino Uno Rev3 開發板以頻率為 16 MHz 的 8 位元 ATmega328P 微控制器為基礎。在此排針座的覆蓋區內含有 14 個數位 I/O 引腳、6 個類比輸入引腳,以及多種電源、接地和參考引腳,能構成龐大子板 (擴充板) 生態系統的基礎。(圖片來源:Arduino.cc)

此開發板具有 8 位元資料路徑和 16 MHz 時脈的限制,再加上 Arduino Uno 僅提供 32 KB 的快閃記憶體程式記憶體和 2 KB SRAM;除此之外,68.6 x 53.4 mm (36.63 cm)2) 的尺寸,對許多應用而言太大了。

若要縮小微處理器開發板的實體覆蓋區,有個方法是改用 ABX00028 Arduino Nano Every,這是一款以 Atmel 的 ATMEGA4809-MUR 微控制器為基礎的開發板 (圖 2)。程式記憶體較 Arduino Uno 增加 50% (48 KB),SRAM 容量則是 3 倍 (6 KB)。如同 Arduino Uno 一樣,Arduino Nano Every 也採用 5 V 處理器為基礎,可提供 14 個數位 I/O,以及 6 個類比輸入引腳,可在需要時作為數位 I/O。Nano Every 也跟 Uno 一樣,都提供各一個 UART、SPI 和 I2C 介面。但是,和僅能支援兩個外部中斷的 Uno 不同的是,Nano Every 的數位引腳都可以作為外部中斷。

Arduino Nano Every 的圖片圖 2:Arduino Nano Every 是傳統 Arduino Nano 的進化版,但搭載功能更強大的 ATMEGA4809 處理器,程式記憶體比 Arduino Uno 多出 50%,SRAM 則有 3 倍大 (6 KB),因此可容納更多變數。(圖片來源:Arduino.cc)

雖然 Arduino Nano Every 仍有 8 位元資料匯流排的限制,不過時脈速度更快 (20 MHz),且記憶體更多 (48 KB 快閃記憶體和 6 KB SRAM)。更重要的是,對於尺寸受限的專案來說,Arduino Nano Every 的尺寸僅有 45 x 18 mm (8.1 cm2)。

另一個受歡迎的替代方案是 SparkFun ElectronicsDEV-13736 Teensy 3.2,此開發板可以使用 Arduino 的整合式開發環境 (IDE) 進行編程 (圖 3)。在 I/O 方面,這款 3.3 V 開發板確實有所提升,具有 34 個數位引腳 (其中 12 個支援 PWM) 及 21 個高解析度類比輸入。

Teensy 3.2 的圖片圖 3:Teensy 3.2 是一款適用於試驗電路板的小型開發板,由 PJRC.com 的 Paul Stoffregen 所設計。這款對使用者友善的開發板,為業餘愛好者、學生和專業工程師帶來低成本的 32 位元 Arm® Cortex ®-M4 平台。(圖片來源:PRJC.com)

Teensy 3.2 採用 NXPMK20DX256VMC7R Kinetis K20 微控制器。K20 採用運作頻率為 72 MHz 的 32 位元 Arm Cortex-M4 處理器核心,具有 256 KB 快閃記憶體和 64 KB SRAM。Teensy 3.2 的尺寸為 35 x 18 mm (6.3 cm2),大約是 Arduino Nano Every 的四分之三,對於尺寸受限的專案特別有吸引力。

Seeeduino XIAO 簡介

即使 Teensy 3.2 只有 6.3 cm2,但對於許多應用來說仍然太大。若使用者要尋求更小、功能更強大的,解決方案就是龐大的 Arduino 生態系統。Seeed Technology 的 Seeeduino XIAO (圖 4) 尺寸僅 23.5 x 17.5 mm (4.11 cm2),即一張標準郵票的大小,是相對較新穎的選擇。此外,Seeeduino XIAO 的設計人員也很注重超低成本。

試驗電路板適用型 Seeeduino XIAO 的圖片圖 4:適用試驗電路板的 Seeeduino XIAO,是 Seeeduino 系列中目前與 Arduino 相容的最小型微控制器開發板,可為使用者提供功能強大的 32 位元 Arm Cortex-M0+ 處理器,運作頻率為 48 MHz。(圖片來源:Seeed Studio)

XIAO 搭載 Atmel 的 ATSAMD21G18A-MUT SAMD21G18 微控制器。此微控制器採用運作頻率為 48 MHz 的 32 位元 Arm Cortex-M0 +處理器核心,並具有 256 KB 快閃記憶體和 64 KB SRAM 的支援。

雖然 XIAO 僅提供 11 個資料引腳,但每一個都可當作數位 I/O 或類比輸入 (圖 5)。其中十個引腳支援 PWM,有一個則配備數位類比轉換器 (DAC),因此具備真正的類比輸出能力。此外,XIAO 還支援各一個 UART、SPI 和 I2C 介面。

11 個資料引腳可作為數位 I/O (D0 至 D10) 或類比輸入 (A0 至 A10) 的示意圖圖 5:全部 11 個資料引腳均可作為數位 I/O (D0 至 D10) 或類比輸入 (A0 至 A10)。此外,A0 可作為真正的類比輸出;D4 和 D5 可作為 I2C 介面;D6 和 D7 可作為 UART 介面;D8、D9 和 D10 則可作為 SPI 介面。(圖片來源:Seeed Studio)

Seeeduino XIAO 的部署和使用

一般而言,使用 Seeeduino XIAO 就像使用其他任何 Arduino 或與 Arduino 相容的開發板一樣簡單,但有一些秘訣和訣竅值得注意。

確保搭配使用最新版本的 Arduino IDE 會是不錯的開始。接下來便是造訪 Seeeduino XIAO Wiki,瞭解如何使用適當的開發板管理工具以增強 Arduino IDE。

許多 Seeeduino XIAO 專案,如穿戴式裝置和其他裝置,將需要使用 Adafruit 的三色 WS2818 架構 NeoPixel,例如每公尺含 144 個 NeoPixel 的 2970 燈條 (圖 6)。

Seeeduino XIAO 可用來個別控制數百個三色 NeoPixel 示意圖圖 6:在 Seeeduino XIAO 上,單一引腳可用於個別控制數百個三色 NeoPixel,如同 Adafruit 的黑色燈條,每公尺有 144 個 NeoPixel。(圖片來源:Adafruit.com)

但這有個潛在問題。雖然傳統的 Arduino 開發板或許可以繼續搭配舊版的 Adafruit NeoPixel 資料庫使用,但是 Seeeduino XIAO 需要最新且最佳化的版本。

如果安裝較舊的 NeoPixel 資料庫,可能會出現奇怪且令人困惑的錯誤訊息。解決辦法就是從系統中移除任何較舊版本的資料庫,然後依照 Adafruit NeoPixel Überguide 的相關指示,安裝最新且最佳化的版本。

有個潛在的擔憂在於,NeoPixel 對本身資料引腳上的過衝和下衝非常敏感。問題是,現代微控制器訊號的快速邊際率會導致上述特性。解決辦法就是添加一個串聯電阻,且儘可能靠近 NeoPixel 鏈的第一個元件 (圖 7)。可行的範例是添加一個 5% 容差、1/4 W 的 390 Ω 電阻,例如 Stackpole Electronics Inc.CF14JT390R 碳膜電阻。

串聯電阻儘可能靠近第一個 NeoPixel 的示意圖圖 7:串聯電阻若儘可能靠近像素鏈當中的第一個 NeoPixel 元件,則可消除 MCU 資料流邊緣上的過衝和下衝現象。(圖片來源:Max Maxfield)

另一個與 NeoPixel 相關的問題是:Seeeduino XIAO 的 3.3 V 數位輸出可能不足以驅動 NeoPixel 的 5 V 資料輸入。有個解決辦法是採用 SparkFun 的 BOB-12009 邏輯位準轉換器分接板 (圖 8)。

SparkFun 的 BOB-12009 邏輯位準轉換器圖片圖 8:SparkFun 的 BOB-12009 邏輯位準轉換器提供四個雙向通道,可在 3.3 V 和 5 V 電壓域之間轉換訊號。(圖片來源:Adafruit.com)

NeoPixel 應用只需要一個單向通道即可。BOB-12009 的問題在於本身具有四個雙向通道,對於空間受限的專案而言是相對較大的解決方案,而且對成本敏感的專案來說,價格也相對較高。有個簡單的替代方案是使用一個 Comchip Technology1N4001 二極體 (圖 9)。

可「犧牲」NeoPixel 以強制作為電壓位準轉換器的示意圖圖 9:使用 1N4001 二極體提供 0.7 V 壓降,即可強制「犧牲」NeoPixel 作為電壓位準轉換器。(圖片來源:Max Maxfield)

NeoPixel 會將邏輯 1 視為高於 0.7 * VCC 的任意電壓。在本例中,NeoPixel 將邏輯 1 視為 0.7 *5 = 3.5 V。

透過 IN4001 二極體 (具有 0.7 V 順向壓降) 供電給「犧牲型」像素,即可達到 VCC 為 5 – 0.7 = 4.3 V 的供電電壓,也就表示元件會將邏輯 1 視為 0.7 * 4.3 = 3.01 V。反過來說,這意味著 Seeeduino XIAO 的 3.3 V 訊號足以驅動犧牲型像素。同時,犧牲型像素的 4.3 V 輸出足以將資料輸入推至像素鏈中下一個 NeoPixel。

結論

早期的 Arduino 開發板,如 16 MHz 的 8 位元 Arduino Uno,其尺寸較大,且在容量與效能方面有所限制。如今,Arduino 生態系統包含各式各樣的開發板,有各種形狀、尺寸和功能可供選擇。

針對穿戴式裝置等尺寸受限的專案,Seeeduino XIAO 提供運作頻率為 48 MHz 的 32 位元 Arm-Cortex-M0 處理器核心,且搭配 256 KB 快閃記憶體和 64 KB SRAM。這一切都佈局在一個適合試驗電路板使用的小巧平台上,面積只有 4.11 cm 2,並具有廣大生態系統的支援。

DigiKey logo

聲明:各作者及/或論壇參與者於本網站所發表之意見、理念和觀點,概不反映 DigiKey 的意見、理念和觀點,亦非 DigiKey 的正式原則。

關於作者

Image of Max Maxfield

Clive "Max" Maxfield

Clive "Max" Maxfield 在 1980 年從英國雪菲爾哈倫大學取得控制工程學士學位,自此開始擔任大型主機電腦中央處理單元 (CPU) 的設計人員。多年來,Max 已設計眾多元件,從矽晶片到電路板,以及腦電波放大器到蒸汽龐克風格的預知引擎 (別問) 等應有盡有。他更是電子設計自動化 (EDA) 領域的先驅,經驗超過 30 年。

Max 是許多書籍的作者和/或共同作者,包括《Designus Maximus Unleashed》(在阿拉巴馬州列為禁書)、《Bebop to the Boolean Boogie》(電子學的另類指南)、《EDA: Where Electronics Begins》、《FPGAs: Instant Access, and How Computers Do Math》。請瀏覽其 Max's Cool Bean 部落格。

關於出版者

DigiKey 北美編輯群