ADK (Android Open Accessory Development Kit)裡面附了一個 Arduino 的範例程式,可以用來與 Android 平台測試連結,但是只能在 Arduino-0023下順利編譯,如果放到Arduino 1.0就會出現錯誤訊息,因此必須修改原始程式才行。修改步驟如下:
1.下載、安裝 Arduino 1.0。
2.下載ADK(http://developer.android.com/guide/topics/usb/adk.html),解壓縮得到兩個子目錄(firmware/arduino_libs/AndroidAccessory 以及 firmware/arduino_libs/USB_Host_Shield)複製到 <arduino_installation_root>/libraries/ 之下。
3.下載位置CapSense (http://www.arduino.cc/playground/Main/CapSense)
解壓縮CapSense得到子資料夾,複製資料夾CapSense 到<arduino_installation_root>/libraries/ 之下
4.修改以下檔案的內容
<arduino_installation_root>\libraries\USB_Host_Shield\Max3421e.h Line37
#include "WProgram.h" 改成=> #include " Arduino.h "
<arduino_installation_root>\libraries\AndroidAccessory \AndroidAccessory.h Line20
#include "WProgram.h" 改成=> #include " Arduino.h "
<arduino_installation_root>\libraries\USB_Host_Shield\Max_LCD.cpp Line38
#include "WProgram.h" 改成=> #include " Arduino.h "
inline void Max_LCD::write(uint8_t value) { 改成=> inline size_t Max_LCD::write(uint8_t value) {
<arduino_installation_root>\libraries\USB_Host_Shield\Max_LCD.h Line101
virtual void write(uint8_t); 改成=> virtual size_t write(uint8_t);
PS.如果在測試程式內出現Wire.receive改成=> Wire.read
PS.如果在測試程式內出現Wire.send 改成=> Wire.write
5.啟動Arduino1.0,選擇正確的Serial port 以及 Board代號(Arduino Mega 2560 or Mega ADK)
6. 開啟 demokit.ino ,編譯應該可以成功,若仍然有問題就將程式內有關 joystick 相關的程式碼通通disable,(修改完畢的程式 http://xduino.blogspot.com/2012/02/apk-demokitino-arduion-10.html)
7.接下來下載程式到 Arduino Mega ADK控制板上(我是用 Teemino),就可以成功與Android平台連結了。
您好,
回覆刪除想請問您是否發生過Arduino ADK 連接Android手機時,
手機的ADK Demo程式沒有反應,一直停在等待連接的狀況?
我已經依照您的教學修改demokit程式可以編譯並Upload至ADK,
但手機端就是一職沒有反應,
監控Terminal則會出現Start
這片Ardunino MEGA ADK R3是剛買的,
我已經換過許多手機測試,有點懷疑是不是板子有問題,
冒昧打擾您,請多包涵!
Alias (aliasli@gmail.com)