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