編輯:Android開發環境
arduino是一個開放的硬件平台,包括一個簡單易用的i/o電路板,以及一個基於eclipse的軟件開發環境。arduino即可以被用來開發能夠獨立運行,並具備一定互動性的電子作品,也可以被用來開發與pc相連接的外圍裝置,這些裝甚至還能夠與運行在pc上的軟件(如flash,max/msp,director,processing等)進行溝通。
arduino硬件電路板可以自行焊接組裝,也可以購買已經組裝好的,軟件則可以從arduino網站免費下載使用。其中硬件參考電路是以cc(creative commons)的形式提供授權。
一、背景
Google在去年5、6月份的時候更新Android到2.3.4開始支持外接擴展硬件,這裡無疑為我們描繪了未來嵌入式智能的發展藍圖,在任何你需要智能計算的地方,可以是汽車裡,可以是家庭智能計算中心,甚至可以在天文台都可以即時插入手機獲取手機的計算資源。當然就目前來看最大的應用還是在機器人智能上。
很久以前就一直萌生有自己做機器人的想法,苦於對數電模電單片機了解太粗淺,一直沒能下手,這次ADK的開放可以說對於做軟件的人來說是敞開了機器人的大門。
因為ADK發布並不久,算是比較新的技術,網上的資源相對較少,特別是國內的資源更少,這裡就我這段時間對ADK環境搭建的經驗分享出來給大家。
Google本身發布了一個專用於ADK的板子,要價400美刀,當然實際上用arduino + usb host shield(在淘寶上2560 + USB HOST SHIELD 2.0 只需要300人民幣左右)也是可以達到的,雖然實際做起來有點曲折。
二、相關文件的生成
先附上google標准教程。你嚴格按照這個做,如果能完成最好,如果不能完成還是看我這個吧。
http://developer.android.com/guide/topics/usb/adk.html
你需要在這步產生兩個文件,一個手機端用的apk以及一個用於上傳到板子上的pde。
嚴格按照谷歌官方的步驟走:
第一步,下載google ADK包(https://dl-ssl.google.com/android/adk/adk_release_0512.zip)。
第二步,搭建android開發環境(其他文章已經講了,我這裡就不重復了),通過SDK Manager下載Adds-on(Google APIs),如果手機就2.3.3,level10,如果是pad就需要3.0(安裝圖可以見http://code.google.com/android/add-ons/google-apis/installing.html)。
第三步,在eclipse中,通過建立已存在工程的方式把ADK包中的\app工程建立出來,target選google API或者2.3.3或者3.0,根據需要建立,建立完了以後,在工程下就會有bin文件夾產生了,下面那個apk就是我們要用的apk了。
第四步,下載arduino開發IDE(http://arduino.cc/en/Guide/HomePage),完了安裝,之後將ADK包中的\firmware\arduino_libs下的兩個文件夾拷貝到arduinoIDE安裝目錄下的\libraries中,然後打開IDE,從IDE中打開ADK包中的\firmware\demokit\demokit.pde,編譯就行了。
通過第三步產生的apk傳到手機,以及第四步的pde選擇好對應的板子後傳到板子上,我們就完成了google標准教程中的內容,如果你的apk能在手機上順利安裝,並且在板子連上打印線(用於供電,你也可以用電源線供電)後,USB HOST SHIELD連上手機時如果出現了警告窗口,恭喜你,剩下的內容你不用看了,你已經打通了手機和板子的通信,剩下的就是寫你想要的功能了。
如果APK沒裝成功,或者線連通了手機上沒有出現警告窗口,接下來的內容可能會對你有些幫助。
三、手機端開發環境的搭建
手機端最硬性的條件是手機必須支持到android2.3.4以上的rom,從實際情況來說,即使G1也能刷到2.3.4以後,所以理論上說所有的android手機都能支持(實際上根據老外研究貌似galaxy S系的手機不支持)。我這裡使用的就是很早期的HTC G2來做的。
有可能你在按google標准做法做了以後,APK安裝不上,LOG中顯示
Package com.google.android.DemoKit requires unavailable shared library com.android.future.usb.accessory; failing!
這需要你按照下面步驟進行測試和調整:
(1)關於rom。第一,如果你的手機通過官方升級渠道能夠升級到2.3.4以後恭喜你,你不用為rom發愁,什麼都不做或者做一點拷貝工作就能完成手機端的布置。第二,如果你的手機官方升級早已停滯(比如我用的HTC G2)那麼你只能刷MOD版的rom,國內比較常見的可以去安卓網或者機鋒網搜索你想要的rom,由於不是專門的開發網站,他們的rom比較有局限性,一般都是從國外的rom拉過來改的,國外比較權威的是xda論壇,一般的rom都能找到,刷機過程我這裡就不贅述了,內容比較多,請不太清楚的讀者轉到網上搜索資料學習一下。一般來說,MOD版的rom都有root權限,可以通過如下方式檢查你的rom是否支持ADK,拉取根目錄下/proc/config.gz出來,解壓縮,搜索"CONFIG_USB_ANDROID_ACCESSORY",如果搜索不到或者搜索出來的結果是"# CONFIG_USB_ANDROID_ACCESSORY is not set"那很不幸,這個rom是不支持ADK的,需要再刷其他rom(以HTC G1或者G2這些早期版本來說,ezGingerBread的rom是支持的,但是安裝後需要自己設置語言為中文)。
(2)關於運行庫以及權限Rom的問題解決後,可以嘗試安裝一下,很可能還是安裝不上,是因為缺少運行庫的原因,你可以把模擬器文件中/system/framework/下面的com.android.future.usb.accessory.jar文件拷到手機的對應目錄下,同時需要把/system/etc/permissions/目錄下的android.hardware.usb.accessory.xml拷貝到對應目錄下,這個目錄也被鏈接到/etc/permissions的。(如果沒有root提權需要用adb命令push文件),這裡附上國外解決這個問題的原始鏈接:https://github.com/ezterry/manifest-gingerbread-DS/issues/32。
經過這兩步,按道理來說應該可以順利安裝上APK了,這時你可以嘗試下把板子跟手機連一下觀察是否有警告框彈出,如果沒有,接著往下看。
四、ARDUINO端開發環境搭建
非常惡心地,google原始提供的pde以及USB HOST SHIELD庫並不支持目前市面上常見的USB HOST SHIELD,只需要做一個簡單替換即可。先下載USB HOST SHIELD LIB 2.0,地址如下https://github.com/felis/USB_Host_Shield_2.0/downloads。
解壓,將arduinoIDE目錄下原來的USB_Host_Shield做個備份後刪掉,然後將解壓得到的目錄重命名為USB_Host_Shield。
打開新USB_Host_Shield目錄下\examples\adk\demokit_20\下的pde文件通過arduinoIDE打開,編譯,上傳到板子上,重新插拔與手機連接的USB線,Cheers,應該有警告框彈出了,連接打通!
最後附上USB_HOST_SHIELD lib 2.0地址:http://www.circuitsathome.com/mcu/google-open-accessory-interface-for-usb-host-shield-library-2-0-released。
最近一直用android studio 進行開發,在開發和發版的時候,遇到一個多渠道打包的問題,由於公司裡是有七個渠道的包進行分發,由於每次去And
自從2013 Google I/O大會之後,筆者就將android ide開發工具從eclipse
Android開發人員進行Android開發時,會像其他開發一樣需要進行各種調
大家都知道Cocos2d-X是個多平台支持的游戲引擎,那麼當今最主流的手機系統