android:用于机器人应用程序的外部 usb 设备的 api

标签 android usb webcam external robot

Android 设备变得非常便宜(尤其是那些装有 android v1.6 的设备)。我正在考虑用一个作为自主机器人的大脑。不幸的是,我没有找到任何相关信息。

我想连接两个外部 USB 网络摄像头和一些 DIY 自制 USB ADC 和输出端口转换器来控制车轮并读取模拟距离传感器。如果我选择一些便宜的上网本,它们通常已经有 3 个 USB 端口。但如果我将被迫使用平板电脑,那么它还需要一个 USB 集线器。

  1. Android 设备是否支持 USB 集线器?
  2. 是否有任何 API 可以从外部 USB 网络摄像头(例如“vfa://0”和“vfa://1”)抓取静止帧
  3. 是否有任何 API 可以从 USB 自定义设备读取数据?为简单起见,假设它将模拟串口。
  4. 我可以在 android 1.6 或任何更新版本中获得所有这些吗?

作为您的信息更新:根据答案,我认为 Android 设备与工作量相比过于昂贵。我将购买带有标准 linux 和 arduinio USB 设备的廉价 atom 上网本,用于控制和传感器。以半公斤(一磅)重的设备为代价,我将节省数月的学习和开发时间。

最佳答案

您需要一个支持开箱即用的 USB 主机模式的 Android 设备(一些便宜的平板电脑显然支持),或者一部可以通过自定义 USB 电源线支持 USB 主机模式的手机,或许还需要一个新的内核驱动程序(许多手机都支持)能够)。

您可能需要 root。

api 将是普通的 linux USB 堆栈,包括几乎所有可用于桌面 linux 的 C 编码源可用设备驱动程序(除了那些使用在兼容性包装器中运行的 x86 二进制 Windows 驱动程序位的设备驱动程序)。

您可以使用普通方法(设备文件、读/写/ioctl)从 ndk 或通过仔细的驱动程序设计与它进行交互,这样事情看起来真的很像文件,您可能可以从 java 中获取其中的一些文件,或者直接最少的 java 和一些围绕设备文件操作的薄 ndk 包装器。

从本质上讲,这不是一个“android”问题,而是一个关于特定 android 设备硬件功能的问题,如何在该设备上获得 root,然后它就变成了一个标准的嵌入式 linux 问题。

关于android:用于机器人应用程序的外部 usb 设备的 api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4219396/

相关文章:

android - 如何在 react-native 中获取子组件的引用?

android - 有什么方法可以加快monkeyrunner脚本的执行速度吗?

python - 使用 python 在 Windows 10 上检测 USB 设备插入

java - 将屏幕和网络摄像头录制到视频文件

Java - 使用 Mac 和 Windows x86 和 x64 进行网络摄像头拍摄/视频

android - 如何传递位图参数?

android - 带有自定义可绘制缩放比例的内容插入

java - 使用 Android USB Host API 读取我的 USB 游戏 Controller /或其他 USB 设备数据

delphi - 如何检测USB设备何时连接/断开?

python - 如何在 rpi3 上通过 python 运行网络摄像头