极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 44648|回复: 18

Google ADK开发环境的搭建(USB HOST SHIELD + ARDUINO MEGA 2560)

  [复制链接]
发表于 2011-11-23 18:54:08 | 显示全部楼层 |阅读模式
在CSDN上的博客,转过来下
Google ADK开发环境的搭建
(USB HOST SHIELD + ARDUINO MEGA 2560)
By:MobotRoid
一、背景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.
严格按照谷歌官方的步骤走,
第一步,下载googleADK包(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)关于rom1.如果你的手机通过官方升级渠道能够升级到2.3.4以后恭喜你,你不用为rom发愁,什么都不做或者做一点拷贝工作就能完成手机端的布置.
2.如果你的手机官方升级早已停滞(比如我用的HTC G2)那么你只能刷MOD版的rom,国内比较常见的可以去安卓网或者机锋网搜索你想要的rom,由于不是专门的开发网站,他们的rom比较有局限性,一般都是从国外的rom拉过来改的,国外比较权威的是xda论坛,一般的rom都能找到(http://forum.xda-developers.com/),刷机过程我这里就不赘述了,内容比较多,请不太清楚的读者转到安卓机锋网先学习一下.一般来说,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是支持的,但是安装后需要自己设置语言为中文,ezGingerBread的网址:http://forum.xda-developers.com/showthread.php?t=882356)
(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
如果还有问题可以联系我,虽然我未必能回答也未必回答及时,但是我会尽力做出反馈的
[email protected]

评分

参与人数 1 +15 收起 理由
Ansifa + 15 欢迎更多的ADK研究资料,排排版就更好了。哈.

查看全部评分

回复

使用道具 举报

发表于 2011-11-23 19:54:05 | 显示全部楼层
国内调教android的一般都是搞软件~想软硬结合,难度很大额~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-11-23 20:19:29 | 显示全部楼层
没错,其实如果是HOST device的结构更好=。=
回复 支持 反对

使用道具 举报

发表于 2011-11-23 21:48:49 | 显示全部楼层
欢迎更多的ADK研究资料,排排版就更好了。哈
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-11-23 22:18:37 | 显示全部楼层
直接从word导入的,本来以为会排好的=。=
回复 支持 反对

使用道具 举报

发表于 2011-11-26 23:44:29 | 显示全部楼层
太了,正需要。楼主能否来个hello world形式的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-11-28 18:42:25 | 显示全部楼层
LS,可以直接下google官方的demokit哈
回复 支持 反对

使用道具 举报

发表于 2011-11-28 21:30:20 | 显示全部楼层
根据上文,这个环境有人调通了么?
回复 支持 反对

使用道具 举报

发表于 2011-11-29 10:36:53 | 显示全部楼层
等过几天老婆的HTC rhyme手机到,偶就调试一下(USB HOST SHIELD早已买好),看看。谢谢楼主,对偶帮助很大。
回复 支持 反对

使用道具 举报

发表于 2011-11-30 22:10:40 | 显示全部楼层
有反应了。但是还是 please connect a Demokit board的界面
回复 支持 反对

使用道具 举报

发表于 2011-11-30 22:15:20 | 显示全部楼层
用的小米系统,连接显示是否打开usb存储。但是打开界面还是停在Please connect a demokit board。按楼主的方法调的
回复 支持 反对

使用道具 举报

发表于 2011-12-1 12:53:37 | 显示全部楼层
谢谢 楼主 有时间调一下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-12-3 22:07:09 | 显示全部楼层
@vslyzhao.那个结果表示说你还是没有打通,实际上是没有警告弹出,很有可能是rom在编译时没有加入ADK的编译参数,得去花点时间找合适的rom,或者自己编译一个内核吧...
回复 支持 反对

使用道具 举报

发表于 2011-12-22 08:45:07 | 显示全部楼层
slugzoe 发表于 2011-12-3 22:07
@vslyzhao.那个结果表示说你还是没有打通,实际上是没有警告弹出,很有可能是rom在编译时没有加入ADK的编译参 ...

你好,你还有demokit.apk 那个应用吗,有的话给我发一个,谢谢 [email protected]
回复 支持 反对

使用道具 举报

发表于 2012-2-13 22:09:25 | 显示全部楼层
mega2560能不能换成Arduino uno或者其它的板子,另外淘宝上卖的Arduino ADK mega2560 google ADK Android (http://item.taobao.com/item.htm?id=13074491528)是不是可以替代2560+usb host shield的方案。

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 03:49 , Processed in 0.044134 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表