評估不同的可穿戴應用開發板和原型板
事實證明,開源的 Arduino 概念已在業餘愛好者和創客中取得巨大成功。同時此概念亦被專業設計人員所接受,用於早期開發和原型設計,最近又被用於完整設計。隨著諸如可穿戴設備和健康監測之類應用的出現,這兩類用戶都需要在越來越小的電路板外形尺寸中,實現更高的性能和更多的功能。
本文簡要討論了如何使用 Arduino 板來滿足創客和專業人士對低功耗、空間受限型應用中的高性能和功能需求。然後介紹並展示了如何從 Arduino 家族的最新成員——來自 Seeed Technology Co. 的 Seeeduino XIAO——著手來啟動項目。
如何使用 Arduino 來滿足可穿戴式設計需求
許多業餘愛好者和設計人員都對開發小物理尺寸的產品感興趣,以便部署在空間受限的環境中,包括可穿戴設備。這些通常是智能電子系統,常常基於微控制器與檢測與顯示設備的組合。有時,這些產品可用作高科技飾品。有時,則可緊貼和/或佩戴在皮膚表面上,可供檢測、分析和傳輸身體數據,例如體溫、心率和脈搏氧合,以及環境數據。還有些時候,可為佩戴者提供即時的生物反饋。
這類用戶通常從 A000073 Arduino Uno Rev3 著手,該板被譽為「人手必備的入門開發板」(圖 1)。該開發板基於 Atmel(現為 Microchip Technology)的 ATMEGA328P-AUR 微控制器。這款 5 V 處理器提供 14 個數字輸入/輸出 (I/O),其中 6 個可提供脈衝寬度調製 (PWM) 功能,以及 6 個模擬輸入引腳,在必要時也可用作數字 I/O。此外,在數字 I/O 引腳 2 和 3 上還支持兩個外部中斷,以及 UART、SPI 和 I2C 介面各一個。
此開發板具有 8 位數據路徑和 16 MHz 時鐘的限制,再加上 Arduino Uno 僅提供 32 KB 的快閃記憶體程序存儲器和 2 KB 的 SRAM;除此之外,尺寸為 68.6 x 53.4 mm (36.63 cm2),這對於許多應用來說太大了。
如要減少該微處理器開發板的物理尺寸,一種方法是遷移到 ABX00028 Arduino Nano Every,後者基於 Atmel 的 ATMEGA4809-MUR 微控制器(圖 2)。程序存儲器比 Arduino Uno 多 50% (48 KB),SRAM 容量是 Arduino Uno 的 3 倍 (6 KB)。與 Arduino Uno 一樣,Arduino Nano Every 也基於 5 V 處理器,該處理器提供 14 個數字 I/O 以及 6 個模擬輸入引腳,而這些引腳在必要時也可用作數字 I/O。此外,與 Uno 一樣,Nano Every 也提供 UART、SPI 和 I2C 介面各一個。但是,與僅支持兩個外部中斷的 Uno 不同,Nano Every 的所有數字引腳都可以用作外部中斷。
雖然 Arduino Nano Every 仍有 8 位數據匯流排的限制,但具有更快的時鐘 (20 MHz) 和更多的存儲空間(48 KB 快閃記憶體和 6 KB SRAM)。對於尺寸受限的項目更重要的是,Arduino Nano Every 僅為 45 x 18 mm (8.1 cm2)。
另一個流行選擇方案是來自 SparkFun Electronics 的 DEV-13736 Teensy 3.2,該板可以使用 Arduino 的集成開發環境 (IDE) 進行編程(圖 3)。在 I/O 方面,這款 3.3 V 開發板得到大幅強化,它有 34 個數字引腳,其中 12 個支持 PWM,以及 21 個高解析度模擬輸入。
Teensy 3.2 採用 NXP 的 MK20DX256VMC7R Kinetis K20 微控制器。K20 採用 32 位 Arm Cortex-M4 處理器內核,運行頻率為 72 MHz,並具有 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 的設計人員還很注重超低成本。
XIAO 採用來自 Atmel 的 ATSAMD21G18A-MUT SAMD21G18 微控制器。該微控制器採用 32 位 Arm Cortex-M0 處理器內核,運行頻率為 48 MHz,並由 256 KB 的快閃記憶體和 64 KB 的 SRAM 提供支持。
雖然 XIAO 僅提供 11 個數據引腳,但每個引腳都可以用作數字 I/O 或模擬輸入(圖 5)。其中 10 個引腳支持 PWM,1 個引腳配備數模轉換器 (DAC),從而提供真正的模擬輸出能力。此外,XIAO 還支持 UART、SPI 和 I2C 介面各一個。
部署和使用 Seeeduino XIAO
一般來說,使用 Seeeduino XIAO 與使用其他 Arduino 或兼容 Arduino 的開發板一樣簡單,但也有一些值得注意的技巧與訣竅。
確保使用最新版本的 Arduino IDE 是一個很好的著手點。接下來,訪問 Seeeduino XIAO Wiki,獲得有關如何使用適當的開發板管理器來增強 Arduino IDE 的說明。
許多 Seeeduino XIAO 項目(可穿戴和其他項目)將涉及使用基於 WS2818 的三色 NeoPixel(來自 Adafruit),例如每米帶 144 個 NeoPixel 的 2970?燈帶(圖 6)。
一個潛在的問題是,雖然傳統的 Arduino 開發板可以繼續使用舊版本的 Adafruit NeoPixel 庫,但 Seeeduino XIAO 需要最新且最好的版本。
如果安裝了舊版 NeoPixel 庫,奇怪和混亂的錯誤信息可能會隨之而來。解決方法是從系統中刪除所有舊版本的庫,然後按照 Adafruit NeoPixel überguide 上的說明安裝最新且最好的版本。
一個潛在的擔憂是 NeoPixel 對其數據引腳上的過沖和欠沖很敏感。而問題是,來自現代微控制器的信號快速邊緣變化率可能導致此類特性。解決方法是在 NeoPixel 鏈中儘可能靠近第一個元件串聯一個電阻(圖 7)。像 Stackpole Electronics Inc. 的 CF14JT390R 碳膜電阻器這樣的 5% 公差、1/4 W、390 ? 的電阻器就是一個合適的選擇。
另一個與 NeoPixel 相關的問題是 Seeeduino XIAO 的 3.3 V 數字輸出可能不足以驅動 NeoPixel 的 5 V 數據輸入。一種解決辦法是使用來自 SparkFun 的 BOB-12009 邏輯電平轉換器分線板(圖 8)。
NeoPixel 應用只需要一個單向通道。BOB-12009 的問題在於它提供了四個雙向通道,對於空間受限的項目來說是一個相對較大的解決方案,而對於成本敏感的項目來說則是一個相對昂貴的解決方案。一個簡單的替代方案是使用一個 Comchip Technology 的 1N4001 二極體(圖 9)。
NeoPixel 將邏輯 1 視為高於 0.7 * VCC 的電壓。在此例中,NeoPixel 將邏輯 1 視為 0.7 * 5 = 3.5 V。
通過具有 0.7 V 正向壓降的 IN4001 二極體為「犧牲的」 Pixel(像素)供電,結果是產生 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 開發板如 8 位、16 MHz 的 Arduino Uno,物理尺寸大,容量和性能受限。如今,Arduino 生態系統包括的開發板種類繁多,涵蓋了各種形狀、尺寸和功能。
對於可穿戴設備等尺寸受限的項目,Seeeduino XIAO 提供了運行頻率為 48 MHz 的 32 位 Arm-Cortex-M0 處理器內核,並配備 256 KB 快閃記憶體和 64 KB SRAM。所有這些都呈現在一個試驗板友好型小平台上,尺寸只有 4.11 cm2,同時還具有廣泛的生態系統支持。
作者:Clive "Max" Maxfield
投稿人:Digi-Key 北美編輯
聲明:本文由作者原創,文章內容系作者個人觀點,電子發燒友網轉載僅作為傳達一種不同的觀點,不代表電子發燒友網對該觀點的贊同或支持,如有異議,歡迎聯繫電子發燒友網。