查看: 20776
回复: 24
参赛作品《基于STM32的电脑USB音量控制器》完结

主题

回复
发表于2017-06-05 10:59:05 | 显示全部楼层
1# 电梯直达

【报名阶段需要填写的内容】


1. 参赛者姓名(必填项):

温正伟

2. 单位或学校名称(必填项):

个人

3. 当前职务或职称(必填项):

4. 参赛作品的名字(必填项):

《基于STM32的电脑USB音量控制器》

5. 简要陈述您的idea和作品(必填项):

作者工作时需要长期使用台式电脑,工作的同时会经常用电脑播放音乐,有时需要快速调节音量或静音,使用系统里面的音量控制感觉不如实体音量控制器来的方便,自己对STM32及USB HID有一定的认识和开发经验,所以想自己制作一个基于STM32的USB实体音量控制器。作品主要功能是用实体旋钮去控制WINDOWS系统的音量和静音,后期还可以改进加入音乐的选曲等功能。

6. 拟用到的立创商城在售物料(必填项):

STM32F103RBT6,AMS117,RLST236A054LV,晶振,阻容,USB端子,

7. 拟用到的非立创商城物料或其它补充(必填项):

编码开关,外壳

【作品正式发表(报名成功后进入设计阶段)需要填写的内容】


一、作品简介

作者工作时需要长期使用台式电脑,工作的同时会经常用电脑播放音乐,有时需要快速调节音量或静音,使用系统里面的音量控制感觉不如实体音量控制器来的方便,自己对STM32及USB HID有一定的认识和开发经验,所以想自己制作一个基于STM32的USB实体音量控制器。作品主要功能是用实体旋钮去控制WINDOWS系统的音量和静音,后期还可以改进加入音乐的选曲等功能。


二、系统构架图

 

 


三、硬件部分的描述

 点击查看大图

电路图上传后有些变形,可以下载PDF的查看 点击下载-》 电路图 PDF格式 

 

这个电路就只有一个功能----控制音量,原理也就很简单明了了,USB用于连接PC,并使用USB上的5V来提供电源,5V经过ASM1117后变为3.3V向STM32及电路供电,USB数据D+D-经过ESD芯片RLST236A054LV连接到芯片上,当然你要仿制时可以不需要这个ESD芯片,有就更好了防静电抗干扰嘛。编码开关接到STM32F103的PA0-2上,使用TIM2的编码器模式来采集编码开关的脉冲,当有开关脉冲来时,会引发TIM2的相关中断,在中断子程序中发送USB字节到PC上,PC上收到后操作系统会自行处理其功能。因为是使用到USB HID,所以PC上不需要安装驱动就可以使用。理论上其它支持USB HID的设备应该也是可以使用的,如安卓设备、树莓派等,不过我没有测试它们。


四、材料清单(BOM列表)

STM32F103RBT6 http://www.szlcsc.com/product/details_9244.html

AMS1117-3.3 http://www.szlcsc.com/product/details_6652.html

RLST236A054LV http://www.szlcsc.com/product/details_21604.html


五、软件部分的描述(选填)

这个是固件程序 PCVAPP1.rar  可以使用STM32F103RBT6的开发板直接刷进去,接好USB和编码开关就可以使用了,你也可以自己画个板刷进去来DIY。

程序主要使用到 STM32的标准硬件库和USB库,对于编码开关的脉冲我这里是使用了STM32定时器的编码器模式,在这个模式下是直接使用了硬件所以不需要去写编码开关脉冲相关的处理程序,只要去配置TIM2定时器及中断。USB程序中主要是用USB库中的HID例程去修改的,主要修改点是HID设备的定义,我在这个程序中是把它定义为消费类设备中的音量设备,其对PC返回的HID报告描述如下

// HID报告描述
const uint8_t HID_ReportDescriptor[HID_REPORT_DESC_SIZE] =
  {
    0x05, 0x0c,                    // USAGE_PAGE (Consumer Devices)
    0x09, 0x01,                    // USAGE (Consumer Control)
    0xa1, 0x01,                    // COLLECTION (Application)
    0xa1, 0x00,                    //   COLLECTION (Physical)
    0x35, 0x00,                    //     PHYSICAL_MINIMUM (0)
    0x45, 0x07,                    //     PHYSICAL_MAXIMUM (7)
    0x15, 0x00,                    //     LOGICAL_MINIMUM (0)
    0x25, 0x01,                    //     LOGICAL_MAXIMUM (1)
    0x09, 0xe9,                    //     USAGE (Volume Up)
    0x09, 0xea,                    //     USAGE (Volume Down)
    0x09, 0xe2,                    //     USAGE (Mute)
    0x75, 0x01,                    //     REPORT_SIZE (1)
    0x95, 0x03,                    //     REPORT_COUNT (3)
    0x81, 0x02,                    //     INPUT (Data,Var,Abs)
    0x75, 0x01,                    //     REPORT_SIZE (1)
    0x95, 0x05,                    //     REPORT_COUNT (5)
    0x81, 0x01,                    //     INPUT (Cnst,Ary,Abs)
    0xc0,                             //   END_COLLECTION
    0xc0                              // END_COLLECTION  
  };

 


六、作品演示

基本功能测试

最后成品的视频

 


七、总结

 点击查看大图

嘉立创打样回来的板子

 

 点击查看大图 

点击查看大图

焊接测试好

 点击查看大图

找了个外壳,上安装孔

 点击查看大图

安装电路板

 点击查看大图

电路板安装好了

 点击查看大图

美化一下 有点卡通了,儿子喜欢

 

 点击查看大图

家里找不到带插座的USB线,只能直接焊接好了。

 点击查看大图

完工

 点击查看大图 

点击查看大图

另一种摆法

 点击查看大图 

点击查看大图

 

 


主题

回复
发表于2017-07-31 07:49:57   |  显示全部楼层
4#
磁动力明浩,支持支持。期待看成品

主题

回复
  • 温馨提示: 标题不合格、重复发帖、发布广告贴,将会被删除帖子或禁止发言。 详情请参考: 社区发帖规则
  • 您当前输入了 0 个文字。还可以输入 8000 个文字。 已添加复制上传图片功能,该功能目前仅支持chrome和火狐

禁言/删除

X
请选择禁言时长:
是否清除头像:
禁言/删除备注:
昵 称:
 
温馨提示:昵称只能设置一次,设置后无法修改。
只支持中文、英文和数字。

举报

X
请选择举报类型:
请输入详细内容:

顶部