筆者之前出了一篇[LinkIt 7697也能玩AI圖像辨識][註1]文章,是有關於我們在Teachable
Machine網頁訓練出使用者需要的模型之後,可以匯出並部署於電腦上執行AI影像推論,最後於電腦終端再外接LinkIt 7697接受電腦指令來控制LED或伺服機…..等外接裝置,這樣就可以製作出很多很有趣的軟硬體專題喔。
於是筆者就想,如果將LinkIt 7697換成是【Arduino首次接觸就上手】套件呢?結果是可以的,而且程式都是差不多的,以下就來分享筆者是如何做出來的吧!
作者/攝影 | 許鈺莨 |
時間 |
20分鐘 |
難度 |
★★☆☆☆ |
材料表 | 機器人王國購買【Arduino首次接觸就上手】連結
|
硬體介紹
筆者所使用的【Arduino首次接觸就上手】套件非常的方便,所需的感測器都已經模組化,焊在開發板上,不需要額外使用傳輸線來連接(當然使用者要用開發板以外的感測器還是需要用傳輸線外接啦~)。下圖為【Arduino首次接觸就上手】套件介紹。
若要了解【Arduino首次接觸就上手】套件的詳細使用,請至CAVEDU教育團隊網站[註2]
專題說明
筆者使用【Arduino首次接觸就上手】套件的無源蜂鳴器及OLED顯示模組,當電腦辨識到不同圖像時將會發出不同聲音及OLED會顯示不同的物件名稱。
- 流程圖
專題步驟解說
- AI圖像辨識的模型訓練完成並匯出至電腦
本篇所訓練的模型是在Teachable Machine網頁訓練完後,匯出至電腦,使用者可以根據自己的專案需求來訓練出不同的模型,但固定為四種不同類別。以本篇為例,順序分別是LinIt7697、Raspberry、Mouse、Other (反指標,前三類之外的類別)。建議類別順序要先定義好,因為會影響到Arduino程式。
模型訓練並匯出至電腦的作法請參閱[LinkIt 7697也能玩AI圖像辨識][註1]文章。
LinIt7697 | Raspberry | Mouse | Other(我的手) |
這邊也提供Teachable Machine網頁訓練專案的小提醒,也強烈建議使用者養成這個習慣,若使用者做到一個階段要交給下一個人沿用,或是使用者想要擴充類別的話,可以將網頁的圖片收集專案存成副檔名為.tm的檔案,欲訓練時可以將檔案重新上傳,重點是不怕網頁突然斷線,或當機而重新收集Dataset。
步驟1-1:若圖片收集完成,將Teachable Machine網頁檔案下載到電腦端
步驟1-2:將.tm檔案上傳到Teachable Machine網頁
步驟1-3:檔案資料夾改名稱
若訓練完畢的模型,下載後檔案會命名為converted_tflite_quantized.zip,為了不要和其他的模型檔搞混,請解壓縮後更改資料夾名稱,資料夾中會有label.txt和model.tflite檔案。以本篇為例,筆者將資料夾更改為first_arduino_model
- 【Arduino首次接觸就上手】的前置作業
步驟2-1:下載Arduino首次接觸就上手-圖形化介面軟體[註3]
建議下載到C磁碟機根目錄中。
使用【Arduino首次接觸就上手】套件前,必須要先下載圖形化介面軟體,因為筆者是要使用圖形化介面軟體解壓縮後,裡面所夾帶Arduino IDE 1.8.5版本的編譯器來撰寫。
步驟2-2 : 安裝【Arduino首次接觸就上手】的驅動程式[註4]
燒錄程式前時,電腦需要安裝驅動程式才能跟【Arduino首次接觸就上手】溝通,之後再執行AI圖像辨識也會需要。
步驟2-3:下載程式並改寫程式 [註5]
下載後,請解壓縮至C槽根目錄的testAI資料夾中,因最後會與執行Python程式的指令有關。
先將OLED_tone_AI.ino程式開啟,並改寫程式,需對照模型檔資料夾中的label.txt順序。以本篇辨識的物品名稱為例,顯示改寫行數如下圖所示。
請改寫7~10行程式,此為設定【Arduino首次接觸就上手】OLED顯示的字。
步驟2-4:將程式上傳至【Arduino首次接觸就上手】
將【Arduino首次接觸就上手】與電腦用USB連接起來後,先到”裝置管理員”看序列埠號,以筆者為例,序列埠號為COM3。
已經知道序列埠號為COM3後,再到Arduino IDE中,找到Tools🡪COM,選擇COM3
之後按箭頭上傳程式。
- AI圖像辨識結合【Arduino首次接觸就上手】
前面提到過,最後將執行Python檔案,在電腦上進行圖像辨識後,硬體裝置會因為電腦辨識到的物品而有相對應的輸出,以下說明執行程式的指令。
當然【Arduino首次接觸就上手】依舊還是要連接在電腦,而由前段文章已知序列埠號為COM3,接下來執行Python檔案。
步驟3-1:切換至範例資料夾
開啟Anaconda Prompt(testAI)視窗後,在視窗中輸入指令
行數 | 指令 |
1 | >cd \ |
2 | >cd testAI\ALL_code |
步驟3-2:執行Python檔案指令
指令 |
>python TM2_WEBCAM_adv_4_item_first_Arduino.py –model first_arduino_model –video 0 –com 3 |
說明:
模型存放資料夾:來自Teachable Machine匯出 Tensorflow Lite 模型所設定的資料夾。
攝影機編號:每個攝影機在電腦的編號可能都會不盡相同,使用者需自行測試確認。
序列埠編號 : 為電腦與LinkIt7697溝通的USB燒錄的編號。
執行成果
影片展示