雙A計畫來到第五篇了,您都 follow 了嗎?在手機上製作多個按鈕,分別發送不同的字元來控制 Arduino 機器人。
雙A計畫文章總覽:
作者/攝影 | 曾吉弘 |
難度 |
★★★☆☆ |
材料表 |
|
下載 | 範例程式請點我下載(App Inventor中文學習網檔案庫) App Inventor 2檔名:BTRobot.aia |
範例影片如下:
先根據下圖,將藍牙與兩個 servo motor 接上Arduino。
*請注意如果您要用直流馬達的話,就要使用 TA7279p 或 L293D 等馬達驅動電路。或是國產的 motoduino 控制板(已整合 L293D 晶片)
App Inventor 編寫藍牙訊息接收程式
畫面元件很簡單,點選 BT List 之後,會顯示藍牙配對裝置清單,點選您已經配對好的藍牙裝置之後,就會顯示一個包含有五個按鈕的操作介面。
以下是安裝到實體手機上的截圖
程式說明:
本段程式重點在於按下不同的按鈕就會藉由 BluetoothClient元件發送不同的字元。例如 f 是前進,s 是停止等等。到了Arduino 端的程式就是藉由 switch 架構去判斷所收到字元的 ASCII碼,並執行對應的動作。所以機器人的接收端程式不太需要修改。
其他程式例如點選 ListPicker 去連接藍牙裝置或是斷線等,與先前的範例完全相同。在此就不再介紹囉。
BT_U:送出 ‘ f ‘ 讓機器人前進
BT_S:送出 ‘ s ‘ 讓機器人停止
BT_R:送出 ‘ r ‘ 讓機器人右轉
BT_L:送出 ‘ l ‘ 讓機器人左轉
BT_Dwn:送出 ‘ d ‘ 讓機器人後退
Arduino 端程式
請注意Arduino 端程式會因為您使用連續型伺服馬達或是透過直流馬達控制晶片而有所不同,但基本上的架構都是一樣的。手機端程式則完全不變,都是滿足某個條件(例如按按鈕)發送字元。
連續型伺服馬達的機器人如下圖 (請忽略學生手上拿的 Wii 手把)
請先看伺服馬達的版本
為了回饋各位朋友,也一併附上 motoduino 的版本。