我想构建一个带有传感器的设备(使用 Arduino 或带有微控制器的自制电路),我想通过 USB 电缆将数据从它发送到 Android 设备。通过 USB 连接设备需要什么库?有没有我可以阅读的文档?问题是,每当我搜索这个时,我只会得到关于 ADK 及其主板的结果,而不是其他设备的结果。有什么我应该事先知道的吗?我对这两个领域都不陌生,但这是我第一个将两者联系起来的项目。
谢谢你。
我想构建一个带有传感器的设备(使用 Arduino 或带有微控制器的自制电路),我想通过 USB 电缆将数据从它发送到 Android 设备。通过 USB 连接设备需要什么库?有没有我可以阅读的文档?问题是,每当我搜索这个时,我只会得到关于 ADK 及其主板的结果,而不是其他设备的结果。有什么我应该事先知道的吗?我对这两个领域都不陌生,但这是我第一个将两者联系起来的项目。
谢谢你。
首先要检查的是您的 Android 设备是否配备了USB 主机接口。在这种情况下,您可以将常规 USB 设备连接到您的 Android 并使用此 API与设备进行通信。
然而,典型的 Android 设备(几乎每部手机)都只配备 USB 设备接口,用于连接 PC 或其他 USB 主机。在这种情况下,您必须使用 Android 的USB 附件支持。Android Open Accessory 协议背后最重要的想法是它交换(逻辑上)USB 设备和 USB 主机角色。USB 主机查找具有特定供应商/产品 ID 的设备,选择特定的 USB 协议接口,然后简单地使用找到的输入/输出批量端点进行通信 - 非常聪明,不是吗?
要构建 Android Open Accessory 兼容设备,您需要一个带有 USB 主机接口的 CPU。如果你想使用 Arduino,这个盾牌可能是一个很好的起点,因为它的固件已经实现了 Android 开放附件协议。还有一些示例应用程序。
这在通过 OTG 连接到 Arduino Mega 的 Nexus7 上效果很好。
适用于 CDC、FTDI、Arduino 和其他设备的 Android USB 主机串行驱动程序库。
希望能帮助到你!
你有两个解决方案
1:您的 Arduino 板充当 USB 主机并为 Android 设备供电。
使用此解决方案,您必须在 Arduino 板上实现 USB 主机堆栈,并且必须实现 Android 开放附件协议。您的 Arduino 板必须为 Android 设备供电。然后,您的应用程序必须使用USB 附件 API与您的开发板进行通信。
优势:
缺点:
固件比较复杂(必须实现USB Accessory模式)
2. 您的 Arduino 开发板充当 USB 设备,Android 设备为您的开发板供电。
使用此解决方案,您不必实施特定的 USB 协议。您的开发板将充当标准 USB 设备。由于您充当设备,因此您可以直接通过 USB 电缆为您的主板供电(Android 设备将为自己和您的主板供电)。要与您的开发板通信,您将使用 Android 的USB 主机 API。
优势:
缺点:
我有解决方案 2 的经验,并且效果很好。Android 源代码的所有源代码都可以从下面的链接获得。我已验证它适用于我在以下 Android 设备上工作的公司的传感器设备:
但它应该适用于大多数平板电脑和最近的手机,如果你想看看我们的体验,你可以看到这篇文章。