昨天已簡單幫大家介紹過Seeed Studio XIAO nRF52840 Sense(以下簡稱XIAO Sense)tinyML開發板的硬體了,今天幫大家介紹如何在這塊板子上寫程式[1]。
首先要準備一條Type C USB通訊線(注意不是Micro USB),做為供電及通訊用。當板子沒接鋰電池時,主要還是靠USB的5V來供電,同時板子上的USB也作會被當成虛擬串列埠(Virtual COM Port)。板子插上USB後可開啟Windows的「裝置管理員」,查看「連接埠(COM和LPT)」項目下是否有新增了一個「USB序列裝置(COM X)」。通常每個人的電腦顯示的埠號及每次插拔後的埠號都可能不一樣,所以如果有板子連不上線時請重新檢查一下埠號。
接著去下載Arduino IDE[2],建議可使用目前最新版2.0.0 release版,因為後續會用到一些tinyML新功能。若你以前曾裝過1.8.x版,原則上也是可以用,只是Arduino已經不再維護這個版本了。安裝時,很簡單,一直按OK直到結束即可。然後開啟Arduino IDE,點擊主選單[File]進到[Preferences]-[Setting]子頁面,在[Additional Boards Manager URLs]欄位中填入「 https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json 」,如此等下在設定開發板資訊時才能找到XIAO Sense這塊板子的資訊。
再來點選主選單[Tools]進到[Board]下的[Boards Manager...],輸入「Seeed nRF52」查找所有相關板子的資訊,通常會選最新的版本來安裝,如「Seeed nRF52 mbed-enabled Boards」,若找不到亦可查找「Arduino Mbed OS Boards」。選好並點下安裝後,此時再回到[Tools]時會看到多出[Seeed XIAO nRF52840]和[Seeed XIAO nRF52840 Sense]兩種板子,前者沒有支援PDM麥克風和6軸運動感測器(IMU),所以我們要選後者。再來要指定Port號,這個部份設定要和剛才在「裝置管理員」下看到的「USB序列裝置(COM X)」一致,不然板子就無法透過Arduino IDE連上線。
設定好板子後,就可以開始寫程式。在Arduino IDE下會建好很多範例,只要到[File]到[Examples]下點選需要的,就能快速得到一段關於特定硬體元件的程式碼。通常第一個程式就是讓板子上的LED閃爍(Blink),一方面測試板子,一方面測試程式編譯和上傳功能是否都正常。以下範例亦可直接開啟空白專案,再將程式複製貼到程式區。再來按下主選單下方快捷列最左邊第二個按鍵(一個向右箭頭的圖示),系統就會先進行「編譯程式」接著自動「上傳程式」。
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
註:如果將上述程式LED_BUILTIN改成LEDR或LEDG或LEDB,就會分別控制板子上的紅、綠、藍LED。
今天先小試牛刀一下,確認硬體及軟體開發環境都已正常,明天就能接著開始說明更進一步的MCU程式撰寫,奠定後面tinyML (MCU AI)程式開發的基礎。
參考文獻:
[1] Seeed Studio, Seeed Wiki - Seeed Studio XIAO nRF52840 (Sense)
https://wiki.seeedstudio.com/XIAO_BLE/
[2] Arduino IDE Downloads
https://www.arduino.cc/en/software