在Android设备是USB主机的Android上使用Arduino有一个很好的教程吗? (Android设备具有操作系统版本3.1(Honeycomb)或更高版本)。开发者网站上唯一的主机程序是导弹发射器,它似乎比与Arduino接口简单得多。
细节:我正在努力让华硕Transformer主机成为Arduino Uno,但由于关于Android 主机模式如何运作的信息非常少,我迷失在哪里开始。我只需要Android就可以从Arduino的内存中读取数据值。 Arduino用于计算信号的频率,然后需要将该值传递给Android。如果我错过了一些简单的方法,请随时告诉我。
(有很多关于使用ADK使Arduino成为主机的信息,但是使用Transformer,这不是一个选项 - 请参阅Stack Overflow问题 {{3} }
这些信息实际上并不需要Transformer或Uno特定,我似乎无法找到在平板电脑上使用新主机模式的人的例子。
答案 0 :(得分:2)
arduino uno放弃了以前设计中使用的FTDI或类似的usb-rs232芯片,转而采用基于LUFA堆栈的可重新编程的USB接口。
使用普通的Linux你会使用USB CDC驱动程序 - 所以问题是如果蜂窝平板电脑附带这些。
Honeycomb USB host support似乎提供了在第三方用户空间android应用程序中编写低级usb驱动程序的方法,因此假设功能尚未在内核中,则可以在用户空间中添加。
另一个想法是更改arduino上的LUFA安装,将其重新配置为LUFA项目支持的许多其他模式之一,以便它看起来像未经修改的蜂窝平板电脑已经知道如何与之交谈,例如大容量存储驱动器,键盘或鼠标等。如果要对此系统外围设备进行低级别(尤其是写入)访问,则可能需要在蜂窝式平板电脑上进行根级访问。
答案 1 :(得分:2)
我们使用此代码在没有内核驱动程序的情况下使用FTDI通信工作: http://android.serverbox.ch/?p=370
请注意,三星Galaxy Tab 10.1似乎缺少适当的USB代码甚至无法检测USB设备(除了鼠标,键盘,集线器和存储器,这些都是由操作系统检测到的,而不是传递给应用程序)。
但是,我们在Acer A500上进行了这项工作。
答案 2 :(得分:1)
如果您只是想找到一些使用USB Host功能的应用程序示例,最好的办法是使用Google的代码搜索工具,并搜索一些usb主机特定的类/权限/意图
例如,搜索android.hardware.usb.action.USB_DEVICE_ATTACHED
会显示以下应用程序:
答案 3 :(得分:0)
由于Arduino使用USB转RS232转换芯片,主机模式USB端口通常需要内核模块驱动程序才能实现串行驱动程序。通常使用FTDI芯片,该模块可能被命名为ftdi_sio。因此,在低级别,如果启用USB主机模式,系统可能会使用此模块提供/ dev / ttyUSB0设备。但这是无用的我认为,除非它在root设备上运行,否则它对应用程序是隐藏的。所以高级ADK抽象是我想的方式。