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


34

如何为USB设备建立一个接口,该接口允许电位计,线性/对数锥度以及瞬时/切换开关与计算机接口?

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

Answers:


29

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

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

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


10
对于这种类型的应用程序,我建议假装为HID。已经编写了驱动程序,您只需模拟鼠标或类似设备。
Kortuk'3

1
操纵杆+1,您甚至不需要构建MCU板,从带有模拟轴的
沉闷

6

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

您需要多少外部硬件取决于所需的精度。我认为对于大多数应用而言,微控制器内部的硬件就足够了。我会去弹跳硬件中的开关。

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


4

我喜欢使用Arduino,它们易于编程,您可以通过板载USB连接轻松地将来自各种输入的数据发送到计算机。数据可以发送到Arduino编程环境Serial Monitor-这对调试很有用。

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

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

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


4

获取一个Arduino

获得一个DangerShield

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

使用VB.NET等自定义应用程序或将数据转换为PC上有用的内容(如Win32窗口消息等)的工具。


3

我建议使用PoKeys。添加55个数字I / O,7个模拟输入(12位),PWM输出等非常容易。它甚至可以像结合


2

正如大多数人建议的那样,我会选择使用Arduino或Sanguino。只是谷歌为他们。它们非常易于使用,一旦拥有所有必需的组件,您就可以在几个小时内启动并运行。


2
这里不接受“仅为他们使用google”作为答案。在此处提供详细信息。
stevenvh 2012年



1

另一种可能不可行的选择是购买市售的模拟游戏杆/游戏杆(从ebay china上的$ fckall或从游戏商店购买),并用自己的模拟输入部件更换,或者只撕掉主PCB并移植进入您的硬件。

您需要匹配一些电气特性,但是编码/ USB通讯等的辛苦工作已经为您完成,并且通讯协议/输入映射通常是众所周知的。

中国仿制的PlayStation风格USB控制器等的价格为几美元,这远低于爱好者* duino IO板等的价格,而且价格便宜,足以在您炸毁第一个或第二个时将其丢弃。


0

GamepadBlock品牌一起使用ATmega32U2与LUFA实现全速USB HID设备轮询几个原来的游戏控制器。ATmega具有硬件USB接口,因为LUFA提供了多个演示项目,因此上手非常容易。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.