書接上回,講了一大堆如何做出好吃的AI咖哩飯,那到底要如何開始才能當上新一代的「AI食神」呢?
首先要到中國廚藝學院(少林寺後廚)打雜洗碗(收集資料)一年,買菜洗菜(清洗資料),端盤子跑堂(依作業流程工作)一年,切菜備料(資料預處理)一年,才能開始拿勺子炒菜(建模調參),學習各種菜式(模型、應用),再讓客人、酸民刷幾年差評(佈署、重訓),大概就能出師了。什麼?不能速成嗎?那我還是去買個AI咖哩調理包(如AWS, Azure, GCP等雲端AI API服務)來裝模作樣一下,三分鐘就可上桌,口味還很穩定(只是不太能變),價錢更是便宜。唉!現在年輕人真是沒有耐性啊!
為了讓大家快一點(還剩22天)學會如何做出一個好吃的爆漿瀨尿蝦牛丸(tinyML)的步驟及開發出自己專屬的口味(客製化應用),接下來會分別介紹外皮牛肉丸(Arm Cortex-M MCU硬體及程式開發)和核心瀨尿蝦(AI原理、算法實現)的作法,希望透過這樣交替式學習能讓大家更快上手。
在開始之前,先來點開胃菜,先了解一下後續tinyML實做所需用到的硬體開發板、開發工具及環境,至於tinyML整合型開發平台需要鋪墊更多基礎知識,就留待下回分解了。
後續範例會以**Arduino Nano 33 BLE Sense(以下簡稱BLE Sense)**為基準,相關規格可參考[Day 03]說明。更完整的規格及使用說明可參考Arduino官網介紹。
那為什麼選用這塊開發板呢?有以下幾個原因。
那裡有在賣呢?可自行到露天、蝦皮上查詢,這裡不特別推薦特定供應商。不過請不要直接用Arduino官網售價來換算,畢竟廠商進口還是有一些成本在的。
咦!這個開發板好像有點貴,有沒有別的板子可支援?當然有,可參考[Day 03]說明,只是後續的範例會先以這塊板子為主。
「工欲善其事,必須利其器」,雖然Arm有很多整合開發環境(Integrated Development Environment, IDE)工具商支援(如IAR, Keil C, MDK等),方便寫程式、編譯、除錯、燒錄等工作一次搞定,但既然這塊板子冠名Arduino,那首選開發環境當然是選Arduino IDE囉!簡單好上手,還可和平常Arduino的開發流程完全相容,另外也可以輕易和各式各樣的感測器和週邊連結,方便tinyML輸入和輸出。
Arduino IDE目前它有雲端版和單機版(目前穩定版本為1.8.16, 預先評估版為2.0.0-beta),如果只是一般Arduino入門級開發板,則雲端版註冊一個帳號,單機版下載安裝完成,就可以開始使用。不過要使用BLE Sense則會多幾個安裝步驟,以下簡單說明。
Fig. 8-1 Arduino雲端版IDE操作畫面。(OmniXRI整理繪製, 2021/9/22)
如上圖Fig. 8-1所示,首先進到Arduino創作者網站,按下上角的[Login](步驟1)進入登入畫面。如果你還沒有註冊帳號,可先按[Create One](步驟2)創建一個,按照畫面指示輸入基本資料就可以產生一個新帳號,或者直接使用你的Google或Apple帳號(步驟2b)登入亦可。若你已創建好帳號,下一次就可直接輸入帳號(電子信箱)和密碼就可登入系統(步驟2a)。登入後,可按右上角的符號,選擇進入網頁編輯器(Web Editor)(步驟3),或者按畫面中間按鈕亦可。
進入網頁編輯器後左半邊為主要選單,包括程式管理區(Sketchbook)、週邊範例碼(Examples)、特殊函式庫(Libraries)、序列監視器(Monitor)、函式使用參考(Reference)、操作輔助說明(Help)、編輯器設定值(Preferences)、MCU資源使用(Features usage)。而右半邊上方可選擇對應的開發板,中間則為程式開發區,下方則為編譯程式相關訊息區。
再來要確定雲端編輯器能順利連接到BLE Sense開發板,取用一條Micro USB的纜線(注意不要拿到只能充電不能通訊的線)連接電腦和開發板,在Windows環境下,正常狀況會聽到電腦叮咚一下,偵測到新的硬體,此時利用「裝置管理器」(以滑鼠移到Windows左下方符號上,再以右鍵點擊)應該會看到「連接埠(COM和LPT)」新增了一個「USB序列裝置(COMx)」(x指埠號,每次有可能不同),表示電腦已經認到開發板的虛擬序列埠。若沒看到新增COM埠,可再重新插拔一下,令開發板重新連接。
接著我們就可點擊雲端編輯器上方的欄位選擇開發板型號,如下圖Fig. 8-2所示,會出現一大堆Arduino的開發板型號,只需輸入BLE,就會篩選到只剩Arduino Nano 33 BLE,這個選項可支援三種板子包括Arduino Nano 33 IoT, BLE, BLE Sense。選好點擊OK後,會發現出現連線失敗的圖案,此時重新刷新一下網頁,就會出現一個黃色的警告訊息,說你忘了開Arduino Agent,按[LEARN MORE]進入後,會請你檢查左下角常駐程式是否有一個Arduino Agent的(白色的Arduino LOGO)符號,若沒有則必須重新安裝。
Fig. 8-2 Arduino Nano 33 BLE Sense開發板連線失敗及檢查步驟。(OmniXRI整理繪製, 2021/9/22)
接著依畫面上指示,如圖Fig. 8-3所示,依序下載Arduino Agent並雙擊安裝,完成後重新重新回主畫面就會看到連線失敗的符號消失了。若仍失敗,請檢查Agent是否有啟動在常駐區,若無則滑鼠左鍵點擊左下角Windows符號,切到Arduino Create Agent項目下,點擊Arduino Create Agent重新啟動即可。
Fig. 8-3 安裝Arduino Agent步驟。(OmniXRI整理繪製, 2021/9/22)
註:單機版IDE及寫個範例來測試工作環境就留待下篇繼續說明。
參考連結
Arduino Nano 33 BLE Sense
Getting started with the Arduino Nano 33 BLE Sense
Arduino 雲端版 IDE
Arduino 單機版 IDE
請問可以讓arduino在vscode裏面編寫嗎?
因為這裡使用Arduino Nano 33 BLE Sense所以最佳的搭配當然是自家的Arduino IDE,有很多配套的工具(含Arm Mbed OS)及板上感測器的驅動程式都處理好了,使用上非常便捷。當然還有一個重要的原因是後面會介紹Edge Impulse tinyML開發環境會用到,所以還是建議使用Arduino IDE。
理論上Arduino上的程式碼都可以移到VSCode開發,但很多環境都要自己設定,目前網路上有一些文章有介紹,可能要麻煩自己研究一下,我不保證一切順利。