【问题标题】:Building an USB peripherial构建 USB 外设
【发布时间】:2010-09-29 00:08:17
【问题描述】:

我想从我的电脑通过 USB 控制 RC 模型。我不需要真正的无线电控制,所以直接通过电缆控制舵机就足够了(是的,模型和控制单元之间会有电缆)。我想我会构建一些基于微控制器的设备,通过 USB 连接到计算机,伺服系统将连接到这个设备。

我正在寻求一些提示,我应该从哪里开始。我知道如何控制伺服系统以及我最终应该如何对微控制器进行编程以控制伺服系统,但我真正不太了解的是设备端和计算机端(将是 Linux)上的 USB 通信。

我想用 C 语言进行编程(可能是微控制器的汇编程序)。

感谢您的每一个提示。

【问题讨论】:

    标签: c linux assembly usb microcontroller


    【解决方案1】:

    最简单的方法是使用 RS232 转 USB 桥接器,例如 FTDI 提供的芯片组。这将简化您的硬件和 PC 软件设计(无需 USB 驱动程序)。大多数微控制器至少有一个 RS232 端口可供连接。

    一些微控制器提供 USB 支持。在这种情况下,您需要在其中进行一些 USB 编程并在 PC 端使用libusb

    【讨论】:

    • 一些 FTDI 芯片有几个 GPIO 引脚可用于开/关控制。有些可以配置为提供简单的地址/数据/控制硬件总线。其中任何一个都可以避免对微控制器的需求。但是一个 FTDI 加上一个 PIC 或 ATTiny 来进行伺服 PWM 控制可能是最简单的方法。
    • 只要记住在 Ubuntu 上sudo apt-get purge brltty.. 如果你使用 Ubuntu。也就是默认安装的盲文终端,假设全宇宙所有的FTDI芯片都连接到盲文终端。
    【解决方案2】:

    您可能想从Arduino 之类的东西开始,它是一个位于单独板上的微控制器,您可以通过 USB 与之通信。 Arduino 项目有很棒的开发环境和社区。​​p>

    如果您单独使用 FTDI 芯片,您仍然需要一些东西来理解来自计算机的 RS232 串行指令并控制伺服线路。这就是 Arduino 真正有用的地方。

    【讨论】:

    • ...您甚至可以用 C 语言对 Arduino 进行编程。
    • 我对 Arduino 有点不确定 - 我可以通过 USB 与它交谈并将伺服系统直接连接到 Arduino 板吗?我是否必须对板子进行编程(并为计算机编写驱动程序)才能进行 USB 通信?
    • 您可以将舵机直接连接到 Arduino。您可以编写您的软件(只要它足够小)以在 Arduino 上独立执行,或者您可以让您的计算机通过串行端口与 Arduino 实时通信。 Arduino 显示为计算机上的常规串行端口,不需要特殊的 PC 驱动程序,如果你想走那条路。
    【解决方案3】:

    USB 是一个相当复杂的管理系统,许多人选择使用现有的 USB 串行芯片来避免编写 OS 驱动程序并避免对 USB 小工具端进行编程的复杂性。如果您对机器人感兴趣并且还不熟悉 USB,那么这可能是最好的途径。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-28
      • 2021-04-28
      • 1970-01-01
      • 1970-01-01
      • 2011-02-23
      • 1970-01-01
      • 2011-06-28
      • 2020-01-27
      相关资源
      最近更新 更多