电子说
第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接口都不支持它。
全部0条评论
快来发表一下你的评论吧 !