如果我想制作一个与我的计算机通信的简单设备,比如一个可以在打开和关闭时使我的计算机静音并通过 USB 插入的开关,那么实现这一目标的最便宜和最简单的方法是什么?
与 USB 接口最简单、最便宜的方式是什么?
最简单?拿起一个Arduino并编写几行 Python。Arduino 非常容易编程,不需要任何额外的硬件即可使用,并且非常受欢迎。Python有一个非常简单的串行库,编写起来轻而易举。
示例代码
Python:将此脚本作为服务运行。我使用的是 Ubuntu,所以这个脚本会弹出一个通知,告诉你何时按下 Arduino 上的按钮。
#! /usr/bin/python
import serial
import pynotify
ser = serial.Serial('/dev/ttyUSB0', 9600)
while True:
x = ser.read()
if x == 'b':
# Show notification
n = pynotify.Notification("Arduino", "The button was pressed.")
n.show()
阿杜诺:
void setup(){
// Assuming button is active low and on pin 4
pinMode(4, INPUT);
Serial.begin(9600);
}
void loop(){
if(digitalRead(4) == LOW){
Serial.print('b');
}
}
构建 USB 人机接口设备类设备。这与键盘、鼠标、操纵杆、游戏手柄等使用的类相同。您的 PC 已经为 HID 设备提供了完整的设备驱动程序支持,因此可以轻松访问软件。在 Jan Axelson 的HID 页面上可以找到很多指针甚至示例代码。浏览她的网站以获取与 USB 设备开发相关的大量信息。
许多小型微处理器系列都可以做 HID。我什至看到它在 USB 低速下使用 ATtiny 8 针 AVR 完全在软件中完成。
选择您喜欢的芯片,然后在其“常用资源”中搜索 HID 样本。
另一种方法是制作串行通信设备。存在几种来自FTDI的单芯片解决方案。FT232R是一个受欢迎的选择。驱动程序是必需的,但 Windows 认证的驱动程序对于“发现新硬件”向导来说是已知的,因此安装并不难。安装后,您就有了一个看起来像 COM 端口的设备。可用的替代驱动程序可让您访问其 GPIO 引脚并在更高级的模式下使用它。
2015 年更新:这有一个指向http://www.lvr.com/hidpage.htm的链接,该链接似乎已经腐烂,并且由于El Marce而发现了新位置。Jan 的 Lakeview Research 仍然是有关 USB 实际使用信息的重要来源。
这是一篇非常详细的博客文章http://msdn.microsoft.com/en-us/devlabs/dd491992,其中包含使用低于 5 美元的 PIC18F4550 通过 USB 接口作为标准 HID 设备的软件。提供的软件可用于连接任何 HID 设备,因此如果您需要备用芯片,该软件仍然可以工作。
另一个好处是,博客文章向您展示了如何进行双向通信,因此您不仅可以连接开关,还可以打开和关闭 LED。
这是我的一个简单项目,使用 PIC18F2455,基于 Brad Minch 的 USB 软件。PCB 可从 Olimex 获得。