如何构建具有旋钮、滑块和开关的 USB 控制器

电器工程 USB 界面
2022-01-17 11:26:22

如何为 USB 设备构建一个接口,允许将电位器、线性/对数锥形和瞬时/拨动开关连接到计算机?

如果有人可以给我一个高级别的描述,我将不胜感激。我可以阅读规格表,所以只要我知道在哪里可以找到规格表,了解细节就不是问题。

4个回答

我会使用其中一个Teensy板。这些是支持 USB 的类似 Arduino 的微控制器板。与 Arduino 不同,它们在 PC 上可以作为任何类型的 USB 设备出现。这意味着您可以创建自己的自定义 USB 键盘、操纵杆、MIDI 设备等,并让 PC 使用标准驱动程序。

Teensy 支持Arduino IDE,或者您可以用 C 语言编程并直接使用LUFA(用于 USB 支持)。

这里有一些项目链接可以提供帮助。

我会使用像 Arduino 这样的微控制器板。您读取 ADC 和数字 I/O 并使用 UART->USB 连接将 ASCII 字符发送到 PC。

您需要多少外部硬件取决于您需要的精度。我认为对于大多数应用程序来说,微控制器内部的硬件就足够了。我会去抖动硬件中的开关。

对于 USB 接口,只需编写一个简单的解析器,以便您可以查询读数。例如,如果 PC 发送了字符串“A00?” uC 可以发回模拟通道 0 上的读数。“D00?” uC 可以发回数字输入 0 的状态。要更改数字输出,可能类似于“D00=1”或“D00=0”。这些是固定长度的短字符串。应该很容易解析。

我喜欢使用 Arduinos,它们易于编程,您可以通过板载 USB 连接从各种输入轻松地将数据发送到您的计算机。数据可以发送到 Arduino 编程环境串行监视器——这对于调试很有用。

然后我使用像 Pure Data (PD) 或 Max MSP 这样的程序来接收串行数据。可以从这些程序中以各种有用的格式发送数据。因为它很简单,可以在软件中进行任何类型的对数曲线或缩放 - 您不必担心购买昂贵的对数罐或使用难以找到的值 - 只需购买相同价值的工作批次并担心稍后再详细说明(通常很容易获得 1K 或 10K)。

这个是免费的:http: //puredata.info/

这个是豪华版的付费版,但它有一个很好的演示: http ://cycling74.com/downloads/

得到一个Arduino

获得DangerShield

编写代码以通过 USB 连接通过 RS-232 将 DangerShield 传感器数据发送到 PC。

编写自定义应用程序,如 VB.NET 或其他东西,将数据转换为 PC 上有用的东西,如 Win32 窗口消息或其他东西。