若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。 Otto為可用Android手機中的Zowi App來控制動作的3D列印機器人,筆者手上的一台是由雲林自造教育中心提供的。本文將分享一些研究此程式碼的心得與如何測試Otto。 建議DIY步驟如下: 0. Otto 3D 列印 Otto 3D模型檔案網址:http://www.thingiverse.com/thing:1568652 1. 設定藍牙模組 藍芽的名稱為Zowi開頭,例如ZowiOne;Baudrate為115200;配對密碼為1234。指令部分,HC-05請參考[1],HC-06請參考[2]。 此外,HC-06也可用Arduino Nano搭配下面程式來做自動設定的動作。 https://github.com/G4lile0/Bobwi/blob/master/code/v2/arduino/code/hc06_bt_config/hc06_bt_config.ino 記得更新Arduino Nano板子程式後,才接上HC-06。 HC-06與Arduino Nano接線方式如下: HC-06 GND --> Nano GND Pin HC-06 VCC (5V) ---> Nano 5V HC-06 TX --> Nano RX HC-06 RX --> Nano TX 2. SG90伺服馬達校正 方法一(用Otto內建的程式指令,建議用此方法): 使用筆者的程式來校正Servo Motor SG90,下載處在此:https://goo.gl/JKp72E,解壓縮後將Otto所用到的 libraries 複製到 Arduino IDE 下的 libraries 接著開啟OTTO_ServoHome.ino 檔案 選擇Arduino Nano板 燒錄完後,斷電,再將將四組伺服馬達接上NANO感測器擴充板上的2, 3, 4, 5數位腳位,接好腳位後上電,此時四組伺服馬達會自動移到Otto機器人立正時的角度。 方法二(用Zowi的程式指令): 使用https://github.com/G4lile0/Bobwi/blob/master/code/v1/arduino/v1/calibration/calibration.ino程式來校正Servo Motor SG90,請將四組伺服馬達接上NANO感測器擴充板上的6, 3, 4, 5數位腳位做校正。 補充:因為calibration.ino程式有用到Zowi的函式庫,若有遇到無法編譯calibration.ino時,請至https://github.com/G4lile0/Bobwi下載專案壓縮檔,先按下右方的Clone or download,在按下 Download ZIP。 再將解壓縮後的Zowi資料夾 放到Arduino IDE 的libraries資料夾內 重新編譯即可。 3. 組裝(先不接上藍牙模組) 組裝手冊:OTTO_InstructionManual_V04 (下圖取自OTTO_InstructionManual_V04) 上圖中的紅色矩形是藍牙模組接線的位置。 注意:在燒錄程式時,藍牙模組不能接上板子,建議測試完程式功能後在接上藍牙模組。 藍牙模組接線: HC-05 GND --> Nano GND Pin HC-05 VCC (5V) ---> Nano 5V HC-05 TX --> Nano RX HC-05 RX --> Nano TX 4. 燒錄Otto Arduino Nano程式 Otto的Arduino Source Code網址:https://github.com/OttoDIY/OttoDIY 不過本文所用的程式碼為筆者修改過的,下載處在此:https://goo.gl/JKp72E,解壓縮後將Otto所用到的 libraries 複製到 Arduino IDE 下的 libraries 接著開啟 OTTO_BT.ino 檔案 選擇Arduino Nano板 燒錄好之後,可先用序列埠監控視窗測試指令,記得要選 CR(Carriage return),115200的baudrate。最好接上外接電源到板子上來避免USB供電不足。 控制前後左右的指令如下: 前進 ==> M 1 後退 ==> M 2 向左 ==> M 3 向右 ==> M 4 M 與數字之間有一個空白鍵 蜂鳴器指令(Tone)為 T 頻率 毫秒時間 例如: T 323 500 T 232 1000 以上的指令是Trace Code而來的,Otto所用到的函示庫是由https://github.com/scogswell/ArduinoSerialCommand修改而來的。在程式碼中可看到如下片段程式碼: 例如在序列埠監控視窗輸入B這個字母,從電腦傳送到Arduino Nano時,Nano會執行requestBattery函式(Function),內容如下: 接著看一下移動相關的指令 SCmd.addCommand("M", receiveMovement); 對照 receiveMovement 函式內容,筆者得到控制前後左右的指令如下: 前進 ==> M 1 後退 ==> M 2 向左 ==> M 3 向右 ==> M 4 M 與數字之間有一個空白鍵 在此步驟可用電腦正常控制的話,恭喜你可接上藍牙模組,開始使用Zowi App來控制Otto Robot。 5. 使用Zowi App控制 Zowi App下載:https://play.google.com/store/apps/details?id=com.bq.zowi&hl=zh_TW 此程式已內建自動配對與尋找Zowi Robot的功能(尋找藍芽名稱以Zowi開頭的裝置), 影片: 設定Otto一連串動作後,Action! 控制前後左右等動作。 記憶遊戲:請記下Otto的動作,並依序回答。 參考資料: [1] http://www.instructables.com/id/Modify-The-HC-05-Bluetooth-Module-Defaults-Using-A/ [2] http://www.instructables.com/id/Tutorial-Using-HC06-Bluetooth-to-Serial-Wireless-U/ [3] http://www.instructables.com/id/Otto-Build-You-Own-Robot-in-Two-Hours/