显然,使用Android 2.3.4和3.1,现在可以访问USB配件。
我有一个Ardupilot Mega(基于Arduino)板,USB线连接到我的笔记本电脑,我可以通过COM7和115,200波特的简单串行通信程序连接到它。这允许我进入命令行界面,我可以发出命令并获取日志。
是否可以编写一个可以通过USB与我的Ardupilot Mega板通信的Android应用程序?
我见过许多类似的线程,但大多数都是预先USB主机。
答案 0 :(得分:14)
usb-serial-for-android 是我的开源库,正是为满足这种需求而编写的。它支持使用Android的USB主机支持的FTDI和CDC-ACM usb串行设备;没有root或ADK必需。它可以谈论大多数Arduinos。
该项目仍处于早期阶段,但基本支持对于多个项目来说已经足够好了。还有一个discussion list,您可以在那里获得帮助。
答案 1 :(得分:2)
不幸的是,mik3y's answer中的库(请参见此处:mik3y/usb-serial-for-android)似乎已经死了。它有很多问题,并且等待拉取请求。此外,LGPL许可证还禁止任何人进行分叉和维护。
但是不要失去希望,有一个有效的替代产品,它在MIT许可证下。 felHR85/UsbSerial。
编辑:我找到了mik3y库的维护分支。但是许可证或自述文件未更新,因此我认为所有者与mik3y没有任何关系,只是对其进行了改进。我希望他不会因为许可证而惹上麻烦,因为我们需要这个库。参见kai-morich/usb-serial-for-android
EDIT2:似乎所有这些库都已维护,mik3y与kai-morich联手,并且它们现在正在一起工作。
答案 2 :(得分:0)
也许。查看Android Open Accessories announcement on the Android Developers Blog。 Arduino Mega ADK兼容。不确定Ardupilot Mega。
从他们的页面:
Android 3.1平台(也反向移植到Android 2.3.4)介绍 Android Open Accessory支持,允许外部USB硬件(一个 Android USB配件)与Android中的设备进行交互 特殊的“配件”模式。当安装了由Android供电的设备时 附件模式,连接的附件充当USB主机(电源 总线和枚举设备)和Android驱动的设备充当 USB设备。 Android USB配件是专门设计的 附加到Android设备并遵守简单的协议 (Android附件协议),允许他们检测 支持附件模式的Android设备。配件必须 还提供5V的500mA电流供电。许多以前发布过 Android驱动的设备只能用作USB设备 无法启动与外部USB设备的连接。 Android Open 附件支持克服了这一限制,允许您构建 可以与各种Android驱动的设备进行交互的配件 通过允许附件启动连接来实现设备。
注意:附件模式最终取决于设备的硬件 并非所有设备都支持配件模式。支持的设备 附件模式可以使用您的“使用功能”元素进行过滤 相应应用程序的Android清单。欲获得更多信息, 请参阅USB附件开发人员指南。
以下分发商列表目前正在生产Android Open Accessory兼容开发板:
Arduino商店提供Arduino Mega ADK(欧盟国家或地区) 非欧盟国家)基于ATmega2560并支持ADK 固件。 DIY无人机提供兼容Arduino的电路板 朝向RC(无线电控制)和无人机(无人驾驶飞行器) 爱好者。 Microchip提供基于PIC的USB微控制器板。 Modern Device提供支持Arduino的板卡 ADK固件。 RT Corp提供基于Arduino兼容的主板 Android ADK主板设计。 Seeed Studio提供了一个 支持ADK固件的Arduino兼容板。 SparkFun的 IOIO板现在支持ADK固件。
答案 3 :(得分:-1)
您可以查看 Slick USB 2 Serial Library 中描述的库。
它使常见的USB转串口适配器能够与具有USB主机模式的Android设备协同工作,而无需root。
答案 4 :(得分:-1)
我目前正在自己的应用程序中使用该库,但我认为你可以使用光滑的市场上的应用程序。有两个免费应用程序,一个是免费应用程序之一的“专业版”;在Google Play中搜索slick usb。
它确实使用HOST模式,您可以将波特率更改为您需要的任何内容。