0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

USB音量控制器的制作

454398 来源:wv 2019-08-30 17:21 次阅读

第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接口都不支持它。

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

    评论

    相关推荐

    PCM1792有无音量控制,如何通过软件控制音量

    请教PCM1792有无音量控制,如何通过软件控制音量
    发表于 11-07 07:51

    pcm1794如何实现音量控制

    设计一个不带MCU的DAC。选用PCM1794。负载为耳机。请看TPA6120A2的数据手册,将应用电路中的PCM1792改用PCM1794,从LPF一直到耳机放大器均采用平衡式音频线路。请教如何实现音量控制,使用4个音量电位
    发表于 11-07 06:17

    请问PCM1794如何实现音量控制

    目前,我们用 PCM1794 + OPA1612 做了一款机顶盒,PCM1794 通过 I2S 和 CPU 连接,通过硬件对 PCM1794 进行配置,板子回来在测试的时候发现无法通过软件实现音量控制,请问如何实现音量控制,谢谢!
    发表于 10-30 08:33

    Tas2555声音通讯已实现,音量控制用这个寄存Speaker Control Register实现吗?

    Tas2555声音通讯已实现,音量控制用这个寄存Speaker Control Register实现吗?
    发表于 10-23 07:57

    使用PCM2706C作为USB转I2S,无法通过桌面右下角的音量控制栏来控制音量,为什么?

    使用PCM2706C作为USB转I2S,win7系统驱动正常,播放音乐正常, 但是无法通过桌面右下角的音量控制栏来控制音量,只能通过播放
    发表于 10-17 07:06

    TAS5825音量控制运算位宽是多少,是32bit吗?

    对于dsp运算控制音量可能会有损音质,大概32bit运算在小音量是会有几db音质损失。 所以我想知道,TAS5825 音量控制运算位宽是多少,是32bit?TI miniDSP产品中
    发表于 10-11 06:43

    请问TAS5760L怎么通过IIC进行音量控制,需要配置哪些寄存

    TAS5760L: 怎么通过IIC进行音量控制,需要配置哪些寄存
    发表于 09-27 09:36

    M62429L-双声道电子音量控制器

    在当今数字化与音频技术飞速发展的时代,一款高性能、精准控制的音频设备对于音乐爱好者、专业录音师乃至家庭影院系统来说,都是不可或缺的。今天,我们将深入探讨一款备受瞩目的产品——M62429L双声道电子音量控制器,它不仅代表了音频调节技术的最新成果,更以其卓越的性能与人性化的
    的头像 发表于 09-23 09:43 686次阅读

    es8388的codec在es8388S上音量控制不对头怎么处理?

    es8388的codec在es8388S上音量控制不对头。
    发表于 06-28 06:40

    NISSHINBO专为便携耳机打造的音量控制器NJU72315中文手册

    电子发烧友网站提供《NISSHINBO专为便携耳机打造的音量控制器NJU72315中文手册.pdf》资料免费下载
    发表于 03-22 17:24 0次下载

    超低噪音,超低失真,专为高端耳机打造的音量控制器 NJU72315

    虽然以往的半导体音量控制器件与可变电阻等机械式音量控制相比,有声道之间均衡小的优势,但是音质依赖于内置的放大器。NJU72315 / NJU72322并不是以往的内置运算放大器构造,使用的是外接运算放大器,提高了音质设计的自由度。并且,和MUSES系列的运放产品组合使用,
    的头像 发表于 03-22 11:43 1142次阅读
    超低噪音,超低失真,专为高端耳机打造的<b class='flag-5'>音量控制器</b> NJU72315

    具有高级直流音量控制的3路立体声音频功率放大器数据表

    电子发烧友网站提供《具有高级直流音量控制的3路立体声音频功率放大器数据表.pdf》资料免费下载
    发表于 03-19 14:39 0次下载
    具有高级直流<b class='flag-5'>音量控制</b>的3路立体声音频功率放大器数据表

    具有高级直流音量控制的3路立体声音频功率放大器TPA6013A4数据表

    电子发烧友网站提供《具有高级直流音量控制的3路立体声音频功率放大器TPA6013A4数据表.pdf》资料免费下载
    发表于 03-19 11:20 0次下载
    具有高级直流<b class='flag-5'>音量控制</b>的3路立体声音频功率放大器TPA6013A4数据表

    带高级直流音量控制的2路立体声音频功率放大器TPA6021A4数据表

    电子发烧友网站提供《带高级直流音量控制的2路立体声音频功率放大器TPA6021A4数据表.pdf》资料免费下载
    发表于 03-19 11:17 0次下载
    带高级直流<b class='flag-5'>音量控制</b>的2路立体声音频功率放大器TPA6021A4数据表

    具有高级直流音量控制的3路立体声音频功率放大器TPA6030A4数据表

    电子发烧友网站提供《具有高级直流音量控制的3路立体声音频功率放大器TPA6030A4数据表.pdf》资料免费下载
    发表于 03-19 11:07 0次下载
    具有高级直流<b class='flag-5'>音量控制</b>的3路立体声音频功率放大器TPA6030A4数据表