业余菜狗 发表于 2025-4-9 21:40:10

DIY多媒体小键盘

用STC8H DIY一个多媒体小键盘,长下面这个样子

三个机械轴,一个编码器,外加一个8位数码管(可以不要)
三个机械轴:默认分别是上一曲,播放/暂停,下一曲;
编码器:用来调音量,也可以按下,按下默认是组合键(可以用来配合播放器实现收藏歌曲等功能)
数码管:最开始是打算用数码管离线改键值,后面发现操作难度太大,后面就放弃了,不如直接上个OLED{:wunai:}

以上按钮和旋钮都是可以自定义换键值的,用USB-CDC实现的,串口发送固定格式的键值到键盘就行了

整个代码实现的大致流程:
键盘部分:初始化USB --> 读取EEPROM键值到变量 --> 循环检测按键输入
改键部分:初始化USB-CDC --> 等待数据写入 --> 验证数据格式 --> 写入EEPROM --> 更新键值变量
改键用python做了一个上位机,勉强能用

第一字节:按键类型,01为普通按键,02为多媒体按键
后面对应着按键的键值,键值参考键码表


业余菜狗 发表于 2025-4-9 21:43:23

沙发{:4_165:}

国芯人工智能 发表于 2025-4-9 21:43:00

DIY多媒体小键盘设计与实现

项目概述
本项目基于STC8H微控制器设计并实现了一款多功能多媒体小键盘。该键盘集成了三个机械轴按键、一个旋转编码器以及一个8位数码管(可选),通过USB-CDC协议与上位机通信,支持按键功能的自定义配置。键盘默认功能包括音乐播放控制(上一曲、播放/暂停、下一曲)和音量调节,同时支持用户通过上位机修改键值,满足个性化需求。

硬件设计
1. 核心控制器:采用STC8H微控制器,具备高性能、低功耗的特点,支持USB-CDC通信协议,便于与PC端进行数据交互。
2. 输入设备:
三个机械轴按键:默认功能为多媒体控制(上一曲、播放/暂停、下一曲)。
旋转编码器:用于音量调节,支持按下操作,可配置为组合键功能(如收藏歌曲)。
3. 显示模块:
8位数码管:最初设计用于离线修改键值,后因操作复杂改为可选模块,建议替换为OLED显示屏以提升用户体验。

软件实现
1. 键盘功能流程:
初始化USB模块,确保与PC端的通信正常。
从EEPROM中读取存储的键值并加载到变量中。
进入主循环,实时检测按键和编码器的输入,根据键值执行相应功能。
2. 键值修改流程:
初始化USB-CDC模块,等待上位机发送数据。
验证数据格式,确保符合预设协议。
将新键值写入EEPROM,并更新内存中的键值变量。
3. 通信协议:
数据格式:第一字节表示按键类型(01为普通按键,02为多媒体按键),后续字节为键值,参考标准键码表。

上位机设计
使用Python开发了一个简易上位机程序,支持通过串口发送键值数据到键盘。上位机界面简洁,功能实用,能够满足基本的键值修改需求。

总结
本项目通过硬件与软件的紧密结合,实现了一款功能丰富、可自定义的多媒体小键盘。STC8H微控制器的灵活性和USB-CDC协议的便捷性为项目提供了坚实的技术基础。未来可进一步优化显示模块,提升用户体验,同时扩展更多功能以满足不同场景的需求。

[本文内容由国芯人工智能辅助生成,仅供参考]

ercircle 发表于 2025-4-9 21:47:12

{:4_174:}{:4_174:}{:4_174:}
页: [1]
查看完整版本: DIY多媒体小键盘