USB音量控制器的制作

电子说

1.3w人已加入

描述

第1步:你需要什么

这个项目围绕Arduino Pro Micro(5V版本)构建,可从Far Eastern供应商处获得,价格为2英镑至3英镑。可以使用其他基于ATMega 32u4的设备,但不能使用基于ATmega328的设备,如Nano或Pro Mini。

您还需要一个5针旋转编码器,您可以找到0.99英镑,和一个适合的旋钮。

您可能躺在其余的部分:

Micro USB线

LED(如果需要)和每个LED的330Ω电阻

1个触觉按钮开关(或更多用于附加功能)

一些条形板废料

小型工程箱

连接线,烙铁,焊料,剥线钳和切割机等。

第2步:工作原理

你可能已经注意到了很多USB键盘都有多媒体键,如音量上下,静音,播放/暂停。有些还有应用程序密钥,如电子邮件,浏览器或计算器,有些甚至还有系统密钥,如睡眠和休眠。

正常的字母数字和箭头键不会向计算机发送字符而是扫描代码,代表关键位置。多媒体和其他键的存在意味着它们也有扫描码,所以我推断它应该很容易编程Arduino发送这些,因为Leonardo和Pro Micro可以通过他们的USB端口模拟键盘或鼠标。但我很快就遇到了麻烦。

我很快发现Arduino键盘库只允许您发送原始标准IBM PC键盘上的密钥。多媒体和系统密钥包括不受支持的完全独立的集合。同样,鼠标移动和点击是另一套,由Arduino鼠标库支持。但是,在这些集合中,定义了大量功能,但并非所有功能都由Windows或其他操作系统实现。

深入研究我几乎准备好开始增强键盘库,我发现它已经完成了。可选的HID-Project库提供了您可能想要的一切。

步骤3:构造

我使用了一个我已经拥有多年的盒子,遗留下来的一个从未被遗忘的项目从未完成。尺寸为50x50x20mm,可能是Maplin的尺寸。

但是你可能会使用不同的尺寸,所以我将所有机械结构细节留给你。你可以从图片中看到我如何建造我的。

Arduino和一个按钮安装在一块切割的条板上以适合盒子。 (需要使用按钮来重置Arduino进行编程。)条形板更多地用于安装它们而不是将它们连接起来。两根短线穿过未使用的Arduino焊盘并穿过条板,焊接到两者上,将Arduino固定到位。剥离板用一对热熔胶固定在盒子中。

LED和电阻器安装在第二块条板上。 LED在它们适合的孔中紧密推入,无需其他固定。

步骤4:接线

如果您愿意,可以在半尺寸的面包板上进行测试。或者使用图表将其焊接起来。

使用绞合线。我使用了几条彩虹带状电缆,这使得布线保持合理的整洁,不同的颜色使得很容易看到哪根电线在哪里。

第5步:编程

如果您还没有它,则需要下载并安装Arduino IDE。

在您的Arduino文件夹中(默认情况下在Windows下,这是在我的文档中)创建一个名为VolumeCtrl的文件夹。将文件VolumeCtrl.ino复制到此文件夹中。现在启动Arduino IDE并在Sketchbook中找到草图VolumeCtrl。

您需要安装HID-Project库。这很简单:

单击草图 - 包含库 - 管理库。在“筛选器”框中,键入HID-Project。这应该为您提供Arduino的扩展HID功能。单击“安装”按钮。这就是它的全部内容。

您还需要确保安装了Pro Micro板定义。如果你还没有,不要试图尝试另一个 - 你马上就会明白为什么。

点击工具 - 董事会 - 董事会经理。检查是否已显示Sparkfun Pro Micro。如果没有,请在“过滤器”框中键入Pro Micro。在支持的主板列表中选择并安装包含SparkFun Pro Micro的软件包。

现在,在Tools - Board下,选择SparkFun Pro Micro,在Processor下选择ATMega32u4(5V,16MHz)。/p》

注意: 如果您尝试使用错误的电路板对设备进行编程,则可能会终止引导加载程序! (如果您已经完成,请继续阅读。)

有三种方法可以对Pro Micro进行编程,在继续操作之前,您必须确定要使用的方法:

通过Pro Micro的USB端口进行USB编程

使用AVR ISP编程器进行ISP编程

使用其他Arduino作为ISP编程器进行编程。

这些在接下来的步骤中描述。

步骤6:USB编程

通过Pro Micro的microUSB端口进行编程取决于具有可用的引导加载程序。如果您已经杀了它,则需要使用方法2或3(也可用于恢复损坏的引导加载程序)。

将Pro Micro连接到计算机上的USB端口。在Arduino IDE上,单击Sketch - Upload( not 使用Programmer上传)。观看IDE底部的黑色面板。编译和链接完成后,您将看到它正在扫描COM端口以查找Pro Micro。此时,快速按下复位按钮。然后应对其进行编程,进度条由“#”字符组成。它应该重置并开始作为音量控制工作。

步骤7:ISP编程

USB编程取决于具有引导加载程序预装。这只是另一个程序,就像你自己写的一样。另一方面,ISP编程在芯片本身上使用专用逻辑,并且是制造商如何加载引导加载程序。

您可以非常便宜地获得AVR ISP程序员(这是方法2)。确保它是IDE支持的。编程器配有6针连接器。使用您最喜欢的搜索引擎搜索“avr isp pinout”以识别引脚。将ISP标头安装到条形板上并将其连接到Pro Micro,如下所示:

ISP PinPro Micro pin

112MISO

2Vcc

313SCK

411MOSI

510RST

6Gnd

在“工具 - 程序员”下,您需要选择正在使用的程序员类型。

或者您可以使用另一个Arduino执行相同的工作(方法3)。这可以是廉价的Nano,或者更便宜的带有FTDI USB/串行适配器的Pro Mini。

在IDE中,单击文件 - 示例 - ArduinoISP。草图前面的块注释告诉您如何连线。这取决于您的额外Arduino是否具有ISP标头以及您是否使用它。如果没有,您将必须取消注释该行

#ifdef USE_OLD_STYLE_WIRING

在用于编程的Arduino上,将每个引脚7,8和9的LED和330Ω连接到地。这些表示编程模式,错误和心跳。将其他引脚连接到您安装的ISP接头,或直接连接到Pro Micro。使用ArduinoISP草图编程,在工具 - 程序员下选择Arduino作为ISP。

步骤8:添加附加功能

USB HID(人机界面) Device)类允许整个范围的控件,匹配不同类型的人机接口设备。这里使用的HID-Project库可以很容易地获得很多(如果不是全部的话)。

检查草图VolumeCtrl。旋转编码器上的按钮功能定义为ROTARY_C。如果您愿意,可以以相同的方式定义更多按钮,并使用相同的逻辑来检测按钮按下。而不是行 Consumer.write(MEDIA_VOL_MUTE); 你写了一个类似的行来执行所需的功能。

在IDE中,单击文件 - 示例 - HID-Project,以获取显示如何使用不同类型的示例。每种类型的全部控件都在位于Arduino文件夹(通常位于My Documents中)的libraries HID-Project src HID-APIs中的头文件中给出。

示例和每种类型的头文件如下所示。

消费者:

提供数百种控件,包括全系列的媒体播放器控件,屏幕保护程序,应用程序启动(电子邮件,浏览器,计算器),浏览器导航和媒体中心控件。

示例:消费者

控件列表:ConsumerAPI.h

系统:

系统控制,如睡眠,休眠,断电,取消停靠,唤醒,主/辅显示控制和菜单导航。

示例:系统

控件列表:SystemAPI.h

游戏手柄:

32个按钮,6轴,2个D-Pads

示例:游戏手柄

控件列表:GamepadAPI.h

键盘:

有多种型号可供选择:BIOS理解的启动键盘,允许发送文本字符串的改进键盘,以及允许n-键盘的键盘关键翻滚。

示例:BootKeyboard,ImprovedKeyboard,NKROKeyboard

键列表:ImprovedKeylayouts.h

键盘LED:

报告大写锁定,滚动锁定和数字锁定LED以及一些您从未知道存在的指示灯。

示例:KeyboardLed

LED列表:ImprovedKeyLayouts.h

鼠标:

两个变体,一个与标准鼠标库几乎相同,另一个允许移动到绝对位置。

示例:ImprovedMouse,AbsoluteMouse

控件列表: MouseAPI.h

笔记本电脑屏幕亮度

Windows仅支持Win 8(参见参考资料) - Mac/Linux支持未知。

使用与音量控制相同的代码,但分别将MEDIA_VOL_UP和MEDIA_VOL_DOWN替换为0x006F和0x0070。

仅适用于笔记本电脑(或移动设备)屏幕(虽然我没有尝试过)。不适用于连接的显示器或投影仪,因为VGA或DVI/HDMI接口都不支持它。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分