Android外部配件开发库?

时间:2012-11-05 09:59:38

标签: android usb arduino microcontroller

我想构建一个带传感器的设备(带有Arduino或带微控制器的自制电路),我想通过USB线将数据发送到Android设备。通过USB连接设备需要什么库?有没有我能读到的文件?问题在于,每当我搜索到这个时,我只能获得有关ADK及其主板的结果,而不是其他设备。 有事我应事先知道吗?我对这两个领域都不陌生,但这是我的第一个与两个连接的项目。

谢谢。

3 个答案:

答案 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第:

  • 几乎适用于所有Android设备(Android设备上无需USB主机端口)

Disavantage:

  • 设备板更复杂(必须为两个设备提供电源)
  • 固件更复杂(必须实现USB附件模式)

    <强> 2。你的Arduino板充当USB设备,Android设备供电 你登机。

使用此解决方案,您无需实施特定的USB协议。您的主板将充当标准USB设备。由于您充当设备,您可以直接从USB电缆为您的电路板供电(Android设备将为您自己和您的电源供电)。要与您的电路板通信,您将使用Android的USB host API

Avantage第:

  • 设备板非常简单
  • 固件简单,易于调试(您甚至可以使用PC进行测试)

Disavantage:

  • 仅适用于具有USB主机端口的Android设备
  • 在大多数设备上,您将需要特定的电缆或适配器(例如:otg usb主机电缆)

我有解决方案2的经验,而且效果很好。 Android源代码的所有源代码均可从以下链接获得。我已经验证它适用于我在以下Android设备上工作的公司的传感器设备:

  • 三星Galaxy S3
  • Acer Iconia标签a200
  • 华硕Tranformer Pad TF300T

但如果您想了解我们的体验,它应该适用于大多数平板电脑和最近的手机you can see this post