googleADK开发环境的搭建

(USB HOST SHIELD + ARDUINO MEGA 2560)

By:MobotRoid

一、背景

Google在今年5,6月份的时候更新Android2.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工程建立出来,targetgoogle 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

1.如果你的手机通过官方升级渠道能够升级到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这些早期版本来说,ezGingerBreadrom是支持的,但是安装后需要自己设置语言为中文,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

如果还有问题可以联系我,虽然我未必能回答也未必回答及时,但是我会尽力做出反馈的

zidongmo@gmail.com

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值