- Otto的mBlock舞步程式設計
- Otto的mBlock藍牙程式設計
- MIT App Inventor程式設計
先使用MIT App Inventor設計Android手機程式,在著手設計mBlock程式;或是先設計mBlock程式,在設計Android手機程式,都是可行的流程。不過筆者比較習慣先從Otto本身的mBlock程式設計開始,而在設計之前有件事要先想好:「手機App與Arduino的溝通方式。」
本文會使用藍牙當成Arduino與Android手機溝通的媒體,如上面投影片提到的所用的文字語言不一樣,雙方可能也無法順利溝通。因為是手機要來控制Otto機器人,那麼手機就會先發送訊息給Otto,Otto收到訊息後不見得會做預期的動作,所以要先定義好兩者的溝通方式。筆者訊息的設計方式為
手機端傳送小寫字母 s 到 otto,otto收到小寫字母 s 後做抖右腳的動作。小寫字母 s訊息傳送過程如下圖:
mBlock 積木設計
在mBlock裡,可以使用<串口可讀取字節數>與<串口讀取一個字節>兩個積木來取得藍牙模組送來的訊息。下圖中的馬達歸位與抖右腳為自訂積木,抖右腳可參考筆者Otto機器人動作之程式碼分析一文,而馬達歸位就是將四個Servo的角度設定為90度。(注意:此部分不需要將藍牙模組接到Nano上。)接著可以使用 Arduino IDE 中的序列埠監控視窗(Serial Monitor)工具來測試 mBlock 的程式,而mBlock的串口通訊預設速率為115200。
此時,Otto要抖右腳三次才算正常,這時可以把藍牙模組接到Nano上。接著可進行Android手機程式設計。
MIT App Inventor積木設計
在MIT App Inventor部分,筆者使用到底下幾個積木功能:以上幾個積木請參考各自的連結說明。筆者的版面配置如下圖:
此App的積木簡要說明如下:
Android手機是透過BluetoothClient 藍牙用戶端的 SendText(text text) 積木送訊息給Otto上的藍牙模組,也就是上圖中的 call Otto 藍牙客戶端連線.SentText積木。
本文的mBlock程式範例與MIT App Inventor範例皆可在此下載。
成果影片:
沒有留言:
張貼留言