2012-03-19 54 views
1

我正尝试与Android 3.1设备通过使用Android USB Host API的USB主机支持与Arduino板(Duemilanove)进行通信。从Android与Arduino通信

我们的目标是通过与Serial通信相同的方式与主板进行通信。

我遵循本手册(http://android.serverbox.ch/?p=427),但几乎没有问题(f.e.未声明接口)和粗略开发指南(http://developer.android.com/reference/android/hardware/usb/package-summary.html),但没有运气。

的问题是:

  1. 如何准备Arduino板(修改固件) - 中断或不便?
  2. 如何检查它的好与Arduino板(FE枚举USB接口并验证其是否支持必要的。可以用什么工具?
  3. 如何找到需要的接口(什么是接口类/协议/子类)
  4. 什么可当接口不能宣称的原因是什么?(面临着)

回答

0
  1. Arduino的Duemilanove板只有在FTDI FT232RL USB串口转换器构建。所以,你不必应付不USB设备端,从AVR控制器的角度来看,它仅仅是一个异步hronous串口。了解它连接到哪个UART并使用它。也许你想实现一个简单的回声(再次传输所有接收到的字符)作为第一个测试。

  2. 使用lsusb linux下的命令检查usb设备描述符。

  3. 阅读关于USB in USB in a nutshellin the official specification了解它如何工作(特别是第9章)。如果不这样做,你不能继续下去。你什么都不懂。然后继续阅读CDC课程设备in the usb class section

  4. 它可能不存在(如果您依赖接口索引而不检查设备描述符)或android内核已声明接口,因为该接口有本地驱动程序。在这种情况下,你可以调用UsbDeviceConnection.claimInterface作为第二个参数,以首先断开内核驱动程序。

+0

这是针对传统linux USB的解决方案,而不是针对问题提出的独特Android Host API。 – 2013-02-06 15:51:17

+0

使用蓝牙模块HC 05,Android与arduino的通信要简单得多,如果这对您是好的,那么这里是http://stackoverflow.com/a/30275750/526438中提供的代码示例 – Sadanand 2015-05-16 12:37:14