【问题标题】:Using 3.1's USB host mode with Arduino在 Arduino 中使用 3.1 的 USB 主机模式
【发布时间】:2011-08-02 15:00:32
【问题描述】:

有没有一个很好的教程来将 Arduino 与 Android 设备一起使用,其中 Android 设备是 USB 主机? (Android 设备的操作系统版本为 3.1 (Honeycomb) 或更高版本)。开发者网站上唯一的主机程序是导弹发射器,这似乎比与 Arduino 接口要简单得多。

细节:我正在尝试将 Asus Transformer 主机设为 Arduino Uno,但由于关于 Android host 模式如何工作的信息很少,我不知道从哪里开始.我只需要 Android 能够从 Arduino 的内存中读取数据值。 Arduino 用于计算信号的频率,然后需要将该值传递给 Android。如果我错过了一些简单的方法,请随时告诉我。

(有很多关于使用ADK 使 Arduino 成为主机的信息,但使用 Transformer,这不是一个选项 - 请参阅堆栈溢出问题 Is it possible to get the Android ADK working on an ASUS Eee Pad Transformer running 3.1?.

这些信息并不一定是 Transformer 或 Uno 特定的,我只是似乎无法找到人们在平板电脑上使用新主机模式的示例。

【问题讨论】:

  • 从长远来看...也许可以在 Arduino 端实现 Android 调试桥协议。然后,Arduino 可以使用转发的 UDP 或 TCP 端口发送数据,该端口由应用程序内部的 Socket 接收。这样,设备将保持 USB 从属模式,旧设备也可以使用。
  • @dronus - ADK/ADB 方法的缺点,即使对于可能不期望总线电源的平板电脑来说,也是附件需要更昂贵的 USB 主机接口。

标签: android usb android-3.0-honeycomb arduino host


【解决方案1】:

我们使用以下代码使 FTDI 通信正常工作,无需内核驱动程序: http://android.serverbox.ch/?p=370

请注意,三星 Galaxy Tab 10.1 似乎缺少正确的 USB 代码,甚至无法检测 USB 设备(鼠标、键盘、集线器和存储设备除外,它们被操作系统检测到并且不会传递给应用程序)。

但是,我们在 Acer A500 上进行了这项工作。

【讨论】:

    【解决方案2】:

    arduino uno 放弃了以前设计中使用的 FTDI 或类似的 usb-rs232 芯片,转而采用基于 LUFA 堆栈的可重新编程 USB 接口。

    对于普通的 linux,您将使用 USB CDC 驱动程序 - 所以问题是蜂窝平板电脑是否附带这些驱动程序。

    Honeycomb USB host support 似乎提供了一种在 3rd 方用户空间 android 应用程序中编写低级 USB 驱动程序的方法,因此如果该功能尚未在内核中,则可以将其添加到用户空间中。

    另一个想法是更改 arduino 上的 LUFA 安装,将其重新配置为 LUFA 项目支持的许多其他模式之一,使其看起来像未经修改的蜂窝平板电脑已经知道如何与之交谈的东西,例如大容量存储驱动器、键盘或鼠标等。但是,如果您想对该系统外围设备进行低级别(尤其是写入)访问,则可能需要对蜂窝平板电脑进行根级别访问。

    【讨论】:

      【解决方案3】:

      如果您只想找到一些使用 USB 主机功能的应用程序示例,最好的办法是使用 google 的代码搜索工具,并搜索一些 USB 主机特定的类/权限/意图

      例如,搜索 android.hardware.usb.action.USB_DEVICE_ATTACHED 会显示以下应用程序:

      【讨论】:

        【解决方案4】:

        由于 Arduino 使用的是 USB 转 RS232 转换芯片,因此主机模式 USB 端口通常需要内核模块驱动程序来实现串行驱动程序。通常使用 FTDI 芯片,模块可能被命名为 ftdi_sio。所以在底层,如果启用了 USB 主机模式,系统可能会提供一个使用该模块的 /dev/ttyUSB0 设备。但我认为这是没用的,因为它对应用程序是隐藏的,除非它在有根设备上运行。所以我认为高级 ADK 抽象是要走的路。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多