By:season
一、介绍
Arduino单看只是个简单的AVR开发板,但是开发起来确实非常简单快捷。Arduino是一个基于开放原始码的软硬体平台,构建于开放原始码simple I/O介面版,并且具有使用类似Java,C语言的Processing/Wiring开发环境,稍稍看过些程序的人都马上可以上手,打造出各种智能。
使用usb host shield与arduino开发板结合可以与android手机进行通信,从而实现用手机控制LED、机器人、扫描仪、摄像头等设备。
首先,最新的应该是google专门开发的ADK2012,貌似用于开发家居很是好用,但是好几百刀,买不起。便宜的还有arduino mega adk 2560,原装应该300左右,但是感觉在控制方面功能不够强大。如果像我一样已经有其他arduino开发板(比如新版romeo,uno),可以买个usb host shield也能实现与手机的互动通信。下图就是插上shield后的romeo的样子。
二、所需相关文件:
1. CapSense library http://arduino.cc/playground/Main/CapacitiveSensor?from=Main.CapSense
这是支持ADK开发板正常运行的第三方库。其中包含的数据库用来感知人类电容。它是用来使ADK shield上的电容性按钮正常工作。
2.google ADK包
https://dl-ssl.google.com/android/adk/adk_release_20120606.zip
其中包含了ADK开发板的固件文件和硬件设计文件,还有一些范例程序。
3.arduino IDE
http://arduino.cc/en/Main/Software 下载最新对应开发平台的arduino IDE(据我了解,MAC系统的比较繁琐,请参看官方文档)
4.USB_HOST_SHIELD lib 2.0
http://www.circuitsathome.com/mcu/google-open-accessory-interface-for-usb-host-shield-library-2-0-released
三、环境搭建
1.首先搭建android开发环境,这里不一一赘述,无非就是java+eclipse+android什么的,网上有大量搭建方法。完成后打开Android SDKManager 下载安装GoogleAPIs(手机端需要android2.3.4及以上,平板需要3.1及以上)
2.将下载的arduino IDE 安装后连接开发板,如果没有自动完成设备驱动安装,打开IDE目录下的drivers文件夹找到自己对应的驱动安装,这时候就能在设备管理器中找到arduino连接的COM口。
3.将google ADK包中\arduino_libs 文件夹下的2个文件夹全部复制到 arduino IDE中的\arduino-1.0.1\libraries文件夹下。
4.复制CapSense 到arduino IDE的\arduino-1.0.1\libraries 文件夹中。
5.将 USB_HOST_SHIELD lib 2.0下所有文件覆盖到\arduino-1.0.1\libraries\USB_Host_Shield下。
6.在eclipse中加载google ADK包中的app(如\ADK_release_20120606\app)工程,右键->属性->android,选择2.3.3以上的Google APIs。如果出现错误,refresh一下可能就能解决。完成后就可以将apk安装到你的手机上了。
7.在arduino IDE中,文件->示例->USB_Host_Shield->adk->demokit_20。连接上开发板,选择好COM口和板卡型号,下载程序到开发板上。
以上按顺序完成应该可以顺利打通android和arduino的通信了。将USB HOST SHIELD插在arduino上,用usb线连接手机,通上电,手机上是不是有启动程序的提示呢?
四、范例说明
以上给的范例其实是比较复杂的,先实现一个简单的功能,给arduino插上个LED,通过调节手机屏幕上的滑条控制LED的亮度。
以下对重点进行下说明:
ADK中定义的划线部分要与android中xml\accessory_filter.xml划线部分相对应。
还有就是需要AndroidManifest.xml中进行声明:
还有一个范例写的不错,够简洁,够明白,附上链接http://www.imobilebbs.com/wordpress/?tag=adk