
超低成本RGB音量控制板DEEJ-CH552-RGB-Lite
简介
基于开源项目DEEJ修改的DIY硬件音量控制器。通过旋转电位器,你可以调节电脑上各个音轨的音量,一个按钮即可实现静音等模式快速切换,LED灯条会直观地以进度条或流动彩虹效果实时显示音量大小和静音状态。
简介:基于开源项目DEEJ修改的DIY硬件音量控制器。通过旋转电位器,你可以调节电脑上各个音轨的音量,一个按钮即可实现静音等模式快速切换,LED灯条会直观地以进度条或流动彩虹效果实时显示音量大小和静音状态。开源协议
:MIT License
描述
视频链接:
项目简介
本项目是一款 DIY 桌面硬件音量控制器,灵感来源于开源项目 deej。 在 deej 社区中,已经涌现出许多优秀且功能强大的硬件音量控制器项目。 本项目的独特之处在于CH552G与该项目及其契合,使得我们能够以超低的成本,重现 deej 的核心功能(硬件部分成本仅2元左右),让更多 DIY 爱好者能够轻松体验到物理旋钮音量控制的魅力。 它通过多个物理旋钮,使用户能够更直观、更精细地调节电脑系统中不同应用程序的音量大小。 此外,本项目还集成了 WS2812 LED 灯条,6颗灯珠成本仅0.3元但带来了巨大的RGB性能提升。 LED 灯条不仅提供实时的音量进度显示和多种炫酷灯光效果,更进一步提升了桌面的美观性和操作体验。 我们的目标是打造一个高性价比、易于上手、且兼具实用性与观赏性的 deej 开源项目。
详细BOM表会放在附件中,包含全部材料的TB购买连接。
应用场景
deej 硬件音量控制器旨在提升你的桌面音频控制体验,让音量调节变得更直观、更高效、更具乐趣。 以下是一些典型的应用场景,展示 deej如何融入你的日常生活和工作:
-
游戏玩家: 在激烈的游戏战斗中,快速、精准的音量控制至关重要。
- 场景描述: 游戏玩家经常需要在游戏中快速调整游戏的音量,以便在关键时刻清晰地听清游戏内的声音提示。
- DEEJ-CH552-RGB-Lite 的优势: 传统的软件音量控制需要暂停游戏,切换窗口,操作鼠标拖动滑块,操作繁琐且容易打断游戏节奏。 DEEJ-CH552-RGB-Lite 物理旋钮的即时响应,让你无需离开游戏界面,即可盲操作快速调节游戏的音量,例如:
- 在关键时刻调整音量,听清游戏声音提示。
- 根据游戏场景调整背景音乐大小,营造沉浸式氛围。
- 游戏中接到电话或同家人聊天时,瞬间关闭麦克风和游戏音效。
- LED 进度条的视觉反馈,让你在操作时也能直观了解当前的音量大小,无需再低头查看软件界面。 DEEJ-CH552-RGB-Lite 助力游戏玩家在紧张的游戏环境中,保持最佳的音频平衡,提升游戏体验。
-
软件切换音量平衡: 告别软件切换时的音量突变,保护听力健康,享受更舒适的音频体验。
- 场景描述: 在使用电脑的过程中,我们经常需要在不同的软件应用之间频繁切换,例如从轻柔的音乐播放器切换到音效强烈的游戏,或者从安静的文档编辑软件切换到突然弹出广告的网页。 如果仅仅依赖系统主音量进行调节,很容易出现软件切换后音量突然过大或过小的情况。 突如其来的高音量可能会 刺激听力,长期以往甚至可能造成听力损伤。 而频繁手动调整系统音量,又显得繁琐且不方便。
- DEEJ-CH552-RGB-Lite 的优势: 多通道独立音量控制功能,完美解决了软件切换时的音量平衡问题。 你可以:
- 为常用的软件应用 (例如音乐播放器、游戏、浏览器、视频会议软件等) 预先设置合适的音量旋钮。
- 在软件切换时,无需再调整系统主音量,直接使用 DEEJ-CH552-RGB-Lite 对应的旋钮,即可快速将该软件的音量调节到舒适的水平。
- 避免因软件默认音量过大而造成的听力冲击。
- 避免因软件默认音量过小而错过声音信息。
- 精细的旋钮调节,让你能够为每个软件找到 最合适的音量平衡点, 保护听力健康,并获得更 平滑、舒适、一致的音频体验。 deej-mini 让你在享受多媒体娱乐和高效工作的同时,也能更好地呵护你的听力。
-
日常桌面使用: 提升桌面美观度和操作便捷性,让音量控制更优雅。
- 场景描述: 在日常电脑使用中,我们经常需要调节系统音量、音乐播放器音量、视频播放器音量等。 传统的软件音量控制方式,操作略显繁琐,缺乏 tactile 反馈。
- DEEJ-CH552-RGB-Lite 的优势: DEEJ-CH552-RGB-Lite 将音量控制 从虚拟界面带到物理桌面,让你:
- 告别鼠标拖动软件滑块的繁琐操作,享受物理旋钮的顺滑触感。
- 无需切换窗口,随时随地快速调节音量。
- LED 灯条的炫酷灯效,为桌面增添一抹科技感和个性化色彩。
- 简洁的外观设计,提升桌面美观度。
- DIY 制作的乐趣,让你的桌面设备更具独特性和个人风格。 DEEJ-CH552-RGB-Lite 让日常的音量控制操作,也变得更加优雅和愉悦。
-
AI 语音对话辅助: 一键静音,专注高效 AI 语音输入。
-
场景描述: 与 AI 大模型语音对话辅助编程 (如 Win+H 语音输入) 时,系统提示音、后台杂音常被麦克风采集,干扰 AI 识别,降低效率。 软件静音操作繁琐,易忘恢复。
-
DEEJ-CH552-RGB-Lite 优势: 快捷静音,专注高效 AI 语音交互:
- 【一键速静】: 按 DEEJ 按钮,瞬间静音系统声音,无需软件操作。
- 【纯净输入】: 屏蔽系统杂音,麦克风只采集清晰人声,提升 AI 语音识别准确率。
- 【一键恢复】: 对话结束再按按钮,立即恢复系统声音,方便快捷。
- 【指示明确】: 呼吸灯指示静音状态,操作心中有数。
- 【效率提升】: 简化音频管理,专注 AI 对话,大幅提升语音输入效率。
总结: DEEJ-CH552-RGB-Lite 助你高效进行 AI 语音对话,一键静音,专注输入,让 AI 交互更流畅、准确、舒适。 提升 AI 工作效率的效率神器。
-
DEEJ 音量控制原理:物理硬件 + 上位机协同工作
DEEJ 音量控制依赖 硬件设备 (DEEJ-CH552-RGB-Lite) 和 上位机软件 (DEEJ 软件) 协同工作。
**1. 上位机软件 (电脑端): **
- 监听 USB 串口: 接收硬件设备发来的旋钮和按钮数据。
- 控制电脑音量: 将数据转化为音量控制指令,通过 操作系统 API 调整 应用程序或系统音量。
- 核心:数据解析,指令执行。
**2. 硬件设备 (DIY 控制器): **
- 采集用户操作: 读取电位器、检测按钮事件。
- USB 串口发送数据: 将操作数据发送给上位机软件。
- LED 视觉反馈: 显示音量进度、静音状态等。
- 核心:输入采集,数据发送,视觉反馈。
3. USB 串口:
- 硬件 <--> 上位机 数据通道: USB 数据线连接,模拟串口通信。
- 数据格式: 硬件设备将旋钮/按钮数据按预定格式 (如
value1|value2|...
) 通过串口发送。
4. 操作系统 API:
- 上位机软件调用: DEEJ 软件通过调用 Windows/macOS/Linux 系统提供的音频 API 控制音量。
- API 负责实际音量调整、静音等操作。
总结:
DEEJ 硬件采集用户操作,通过 USB 串口传递给 上位机软件, 解析数据并控制电脑音量,最终实现物理旋钮控制电脑音量,并辅以 LED 视觉反馈。 硬件和软件紧密配合,缺一不可。
项目功能
- 多通道音量控制: 通过 4个 旋转电位器,可以独立调节电脑系统中不同应用程序或音频通道的音量。(当前代码配置为4通道,可扩展需更换主控)
- LED 音量可视化: 集成了 6 颗 WS2812 RGB LED 灯珠,灯条颜色和亮度会根据旋钮位置实时变化,直观显示当前音量大小。支持进度条模式和流动彩虹模式。
- 多种 LED 显示模式:
- 流动彩虹模式: 默认模式,LED 灯条呈现动态的彩虹流动效果,美观炫酷。
- 进度条模式: 当转动旋钮时,LED 灯条切换为进度条模式,直观显示当前旋钮对应的音量百分比。
- 呼吸灯模式: 在静音模式下,LED 灯条会以呼吸灯效果闪烁,颜色根据静音模式 (主音量静音、麦克风静音、勿扰模式) 变化。
- 静音模式切换: 通过 单个按钮 实现多种静音模式的快速切换:
- 主音量静音: 一键静音/取消静音主音量通道。
- 麦克风静音: 双击按钮静音/取消静音麦克风通道。
- 勿扰模式: 长按按钮进入/退出勿扰模式,可自定义静音通道范围。(当前代码勿扰模式静音麦克风及之后通道)
- 可定制性: 代码开源,用户可以根据自身需求修改 LED 灯珠数量、旋钮数量、颜色配置、阈值参数、按键功能等。
- 自动模式切换: 在进度条模式下,若一段时间无旋钮操作,LED 灯效会自动切换回流动彩虹模式。
项目参数
- 电位器数量: 4个
- LED 灯珠数量: 6 颗 WS2812 RGB LED
- 颜色通道: RGB 三色 旋钮对应颜色可修改代码中的颜色数组
- 模拟输入阈值:
- 最低阈值: 5
- 最高阈值: 250 (对应旋钮有效范围)
- CH552G的ADC仅有8位,通过设定阈值防止出现无法调整音量至0%和100%。
- 亮度等级: (如需更改,可调整代码中宏定义)
- 流动效果亮度: 64/255
- 进度条效果亮度: 128/255
- 呼吸灯效果亮度: 192/255
- 最大亮度: 255/255
- 活动检测阈值: 旋钮值变化超过 10 认为活动(防止由于AD数值跳动,导致灯效闪烁)
- 无活动超时时间: 2000 毫秒 (2 秒) 后切换回流动模式
- 按键类型: 单按钮 (带上拉电阻)
- 按键事件: (将指定通道发送数据时修改为0,需对应更改上位机配置文件)
- 单击:主音量静音切换,一键静音(控制主音量通道)
- 双击:麦克风静音切换,一键闭麦(控制MIC音量通道)
- 长按:勿扰模式切换,静音同时闭麦 (同时关闭上述两个通道)
- 扩展:可通过修改宏定义静音其他通道,或添加其余逻辑,实现其他不同效果。
- 任务调度间隔:
- 任务1: 间隔 10 毫秒(调整任务1间隔调整串口发送频率)
- 任务2: 间隔 10 毫秒(调整任务2间隔控制灯效变换速度)
- 任务3: 间隔 1 毫秒 (按键检测任务)
原理解析(硬件说明)
本项目硬件部分主要由以下几个核心模块组成:输入模块 (旋钮和按钮)、输出模块 (WS2812 LED 灯条)、以及 主控模块 (微控制器)。
1. 输入模块:
- 旋钮: 使用 4 个模拟电位器 作为音量输入设备。旋钮的转动会改变输出的电压值,微控制器通过 模拟输入引脚 (A11, A15, A14, A32) 读取这些电压值,转换为数字信号,代表音量大小。代码中定义
analogInputs[NUM_SLIDERS]
数组来管理这些引脚。 - 按钮: 使用 1 个按钮 作为模式切换和静音控制输入设备。按钮连接到 数字输入引脚 (D16),并配置为 上拉输入模式 (INPUT_PULLUP)。 代码中定义
buttonPin
常量来指定按钮引脚。
2. 输出模块:
- WS2812 LED 灯条: 使用 6 颗 WS2812 RGB LED 灯珠 组成灯条,用于视觉反馈。LED 灯条的数据引脚连接到 数字输出引脚 (P1.7 / D17)。 代码中使用
WS2812
库进行控制,并定义ledData
缓冲区存储 LED 颜色数据。
3. 主控模块:
- 微控制器: "在主控模块的选择上,CH552G 项目的设计理念高度契合,尤其在 高性价比 和 易用性 方面表现突出。首先,CH552G 原生支持 5V 供电,无需额外的降压电路。其次,CH552G 内置 USB 虚拟串口功能,能够直接通过 USB 接口模拟串行通信端口。 这一特性 无需外置 USB 转串口芯片,进一步精简了外围电路。此外,CH552G 的 外围电路设计极其简洁,仅需少量的无源元件即可构成完整的工作系统。 这种高度集成的特性,不仅降低了硬件设计的难度,也使得 DEEJ-CH552-RGB-Lite 项目更容易复制和推广,非常适合 DIY 爱好者快速上手实践。"
- 读取旋钮和按钮的输入信号。
- 处理输入数据,映射音量值,检测按键事件。
- 根据当前模式和输入值,生成 LED 灯条的显示数据。
- 通过串口 (USBSerial) 将音量数据发送到电脑端。(需要上位机软件配合接收和控制电脑音量)
- 驱动 WS2812 LED 灯条显示效果。
软件代码
本项目软件代码使用 Arduino IDE 开发,主要使用 C 语言编写。
核心代码文件说明: (如果代码文件拆分了,可以简单说明各文件的功能,例如):
scheduleTasks()
函数: 这是任务调度的核心函数。它在主循环 loop()
中以固定的时间间隔 (TICK_INTERVAL
) 被调用。 scheduleTasks()
负责检查预设的任务执行间隔 (taskIntervals
),并根据时间间隔判断是否需要执行各个任务 ( task1(), task2(), task3()
)。
时间驱动的任务执行: 每个任务都预设了执行间隔时间 (taskIntervals
数组定义了 TASK1, TASK2, TASK3 的执行频率)。 scheduleTasks()
会记录每个任务上次执行的时间 (taskLastRun
),并与当前时间比较,当时间差达到或超过预设间隔时,才会执行相应的任务。
任务划分和功能:
task1()
(旋钮输入读取和数据发送): 负责读取模拟旋钮的输入值 (readAnalogInputs()
),处理和映射这些值 (mapValue()
),并将处理后的旋钮数据通过串口发送 (sendSliderValues()
)。 该任务主要负责数据采集和输出。
task2()
(LED 显示效果更新): 负责根据当前的显示模式 (currentMode
) 和状态 (例如静音模式 currentMuteMode
, 活动旋钮 lastActiveSlider
),更新 LED 灯条的显示效果。 它会调用不同的 LED 效果函数 (flowingColorEffect(), updateLEDProgressBar(), breathingEffect()
),并将最终的 LED 数据发送到硬件进行显示. 该任务主要负责视觉反馈。
task3()
(按键输入处理): 负责检测和处理按键输入事件 (handleButtonEvents()
),包括消抖、单击、双击、长按等多种按键模式的识别。 根据不同的按键事件,会调用相应的处理函数 (handleSingleClick(), handleDoubleClick(), handleLongPress()
) 来切换静音模式或执行其他操作。 该任务主要负责人机交互。
// LED相关函数
void setIndividualLEDColor(uint8_t ledIndex, uint8_t red, uint8_t green,
uint8_t blue, uint8_t brightness); // 设置单个LED的颜色和亮度
void updateLEDProgressBar(); // 更新LED进度条显示效果
void flowingColorEffect(); // 实现流动彩虹灯效果
void breathingEffect(); // 实现呼吸灯效果
// 按键处理函数
void handleButtonEvents(); // 处理按键输入,包含消抖和多种按键模式检测
void handleSingleClick(); // 处理单击事件,切换主音量静音
void handleDoubleClick(); // 处理双击事件,切换麦克风静音
void handleLongPress(); // 处理长按事件,切换勿扰模式
// 输入处理函数
void readAnalogInputs(); // 读取并处理所有滑块的输入值
void sendSliderValues(); // 将滑块值通过串口发送
int mapValue(int inputValue); // 将输入值映射到目标范围
// 任务相关函数
void task1(); // 执行滑块输入读取和数据发送
void task2(); // 执行LED显示效果更新
void task3(); // 执行按键输入处理
void scheduleTasks(); // 按预设间隔调度执行各任务
详细代码: 工程附件中提供了完整的arduino工程。
注意事项
视频中展示效果对应的HEX文件已单独上传至附件,文档中描述的版本HEX文件在项目压缩文件CH552G_4RV_V1.1_0221.zip中的build文件夹中。
-
Ch55xduino: 如需修改编译项目,请参照链接中的博客安装Ch55xduino:Ch55xduino 项目使用教程
-
上位机软件: 本项目需要配合上位机软件才能实现电脑音量控制功能。上位机和使用方法见:omriharel/deej
-
代码配置: 代码中的
#define
宏定义了许多参数,例如 LED 数量、旋钮数量、阈值、亮度等。 修改这些参数前请仔细阅读代码和注释,并根据实际硬件配置进行调整。 -
焊接技巧与电路检测: DIY 制作过程中 焊接是关键步骤。 良好的焊接质量是保证电路正常工作的基础。
-
Type-C 母座焊接技巧: Type-C 母座通常采用 SMT 贴片封装,引脚间距较小,焊接时需要格外细心。
- 首先使用焊锡膏 (助焊膏): 首先,用烙铁在 Type-C 母座的引脚上适量的锡或锡膏,接着添加一点助焊剂,可以有效提高焊锡的流动性,降低虚焊的风险。
- 再使用刀头: 烙铁我个人选用 刀头,顺着引脚刮几下即可。
- 放大镜辅助 (可选): 推荐大家购买一个几块钱的带LED的放大镜,焊接完成后可以观察焊接质量。
- 最后焊接4个固定脚: 焊接 Type-C 母座时,先不要轻易焊接固定引脚,再完成全部焊接,测试完成,烧录程序后再进行焊接固定,方便出现焊接质量问题后查拆除Type-C 母座。
- !!!特别注意!!!:在未焊接固定脚时插拔数据线需要用手捏紧Type-C 母座,防止大力出奇迹,意外将其从PCB上拔下来。
-
焊接后电路检测: 焊接完成后,务必使用万用表对电路进行检测,确保电路连接正常。
- 短路检测: 使用万用表的 蜂鸣器档 或 电阻档,检测电源正极和地线之间、以及相邻引脚之间是否 短路。 正常情况下,电源和地线之间不应短路,相邻信号引脚之间也不应短路。
- 通路检测 (连接电脑后未听到优盘插入提示音后检测): 使用万用表的 蜂鸣器档 或 电阻档,检测关键电路的 通路是否正常,例如电源线、地线、信号线等是否连接正确。 确保焊接点与连接线之间导通良好。
- 重点检测区域: Type-C 母座的电源和数据引脚、微控制器的电源和地线引脚、LED 灯条的数据和电源引脚、滑块和按钮的连接引脚等,都是重点检测区域。
-
软件安装流程:固件烧录与 DEEJ 项目配置
本节将指导你完成 DEEJ-CH552-RGB-Lite 项目的软件安装流程,包括将固件烧录到 CH552G 微控制器,以及配置 DEEJ 上位机软件所需的参数文件。
步骤 1: CH552G 固件烧录 (将 .hex
文件刷入 CH552G)
在开始之前,你需要准备以下工具和文件:
- CH552G 开发板: 你的 DEEJ-CH552-RGB-Lite 硬件设备。
- USB 数据线 (Type-C ): 用于连接 CH552G 开发板和电脑。
- CH552 固件
.hex
文件: 你需要在文末的附件中找到编译生成的CH552G_4RV_V1.1.ino.hex
固件文件。 - CH552 烧录工具: 你需要一个用于烧录 CH552G 芯片的工具。 常用的工具有:
- 官方 WCHISPStudio: 沁恒官方提供的 CH55x 系列芯片烧录工具,功能强大,推荐使用。 你可以从沁恒官网 (WCH) 下载:https://www.wch.cn/downloads/WCHISPTool_Setup_exe.html (请访问 WCH 官网下载最新版本)
- (可选) Arduino IDE (如果你的开发环境是 Arduino): Arduino IDE 也具备烧录功能,需要安装Ch55xduino。
烧录步骤 (以 WCHISPStudio 为例):
-
下载并安装 WCHISPStudio: 访问沁恒官网链接,下载 WCHISPTool 安装程序,并按照提示完成安装。
-
启动 WCHISPStudio 烧录工具。
-
选择芯片型号: 在 WCHISPStudio 工具界面中,点击右侧E8051USB系列。 左侧芯片选择:芯片系列 CH55x 芯片型号 CH552 下载接口 USB 其余选项默认即可。
-
加载
.hex
固件文件:- 点击 芯片选择下面的 "下载文件" 部分中的 "目标程序文件1 的路径配置" 按钮(...)。
- 在文件浏览器中,定位到你的
CH552G_4RV_V1.1.ino.hex
固件文件,并选择打开。
-
配置烧录参数 (通常默认即可): WCHISPTool 通常会自动检测并配置烧录参数。 一般情况下,默认参数即可。
-
连接 CH552G 开发板: 使用 USB 数据线将你的 CH552G 开发板连接到电脑 USB 端口。
-
开始烧录: 点击 WCHISPStudio 界面中的 "下载" 按钮。 烧录工具将开始将
.hex
文件刷入 CH552G 芯片。 -
等待烧录完成: 烧录过程通常需要几秒到几十秒不等。 WCHISPTool 界面会显示烧录进度。 请耐心等待,直到烧录完成,下载记录中会显示成功提示信息。
- 烧录完成,断开连接: 当烧录成功后,你可以 安全地断开 CH552G 开发板与电脑的 USB 连接。
步骤 2: DEEJ 项目参数文件配置 (上位机软件配置)
DEEJ 上位机软件可能需要一些配置文件,以便正确连接和控制你的 DEEJ-CH552-RGB-Lite 硬件设备,并进行一些个性化设置(修改config.yaml文件)。
- 串口端口 (COM Port) 配置:
- 作用: 指定上位机软件监听哪个串口端口,以便与你的 DEEJ-CH552-RGB-Lite 硬件设备进行通信。
- 配置方法:
- 查找串口端口号: 在 Windows 设备管理器中,找到 "端口 (COM 和 LPT)" 类别,你的 CH552G 虚拟串口设备 (通常显示为 "USB-SERIAL CH340" 或类似名称) 会显示一个 COM 端口号 (例如 COM3, COM4 等)。 请记录下这个 COM 端口号。
- 修改配置文件: DEEJ 上位机软件通常会提供一个配置文件 (例如
config.yaml
)。 打开配置文件,找到 串口端口配置项 (例如port:
,com_port:
,serial_port:
等)。 - 填写 COM 端口号: 将你记录的 COM 端口号 填写到配置文件中对应的位置。 例如,如果你的 COM 端口号是 COM3,则配置文件中可能需要修改为
com_port: "COM3"
。 - 保存配置文件。
- 旋钮和通道映射配置 (可选):
-
作用: 如果你的 DEEJ 项目支持自定义旋钮和音频通道的映射关系,你可能需要在配置文件中进行配置。 例如,
0: master
为旋钮0控制主音量。 -
配置方法:
**1、你可以使用 'master' 来表示主音量通道,或者使用进程名称列表来表示,右键桌面快捷方式,点击打开文件夹所在位置,复制xxx.exe名称。例如Microsoft Edge浏览器名称为msedge.exe
2、你可以使用 'mic' 来控制你的麦克风输入音量 (使用默认录音设备)
3、你可以使用 'deej.unmapped' 来控制所有未绑定到任何旋钮的应用程序 (忽略主音量、系统音量、麦克风和设备定向的会话) (实验性功能)
4、(仅限 Windows) 你可以使用 'deej.current' 来控制当前激活的应用程序 (无论是否全屏) (实验性功能)
5、你可以创建进程名称组(使用列表)可以使用单个旋钮控制多个应用 -
重要提示:
配置索引从 0 开始计数! 配置文件中的 0, 1, 2, 3 对应的是你的 从上往下第一个、第二个、第三个、第四个旋钮(TYPE-C接口所在位置为上)
deej.current,推荐配置3: deej.current,也就是旋钮4控制当前激活的应用程序的音量,因为旋钮4调节最为顺手,方便快速调节当前使用应用的音量
按键功能的实现依赖正确的配置文件,单击按键会强制将第一个旋钮的数据输出为0,双击按键会强制将第二个旋钮的数据输出为0,长按按键会强制将第一和二个旋钮的数据输出为0。为实现效果配置文件中需要保证0: master 1: mic
。也可根据个人需要设定其余应用实现不同效果- 推荐配置:
-
# you can use 'master' to indicate the master channel, or a list of process names to create a group
# you can use 'mic' to control your mic input level (uses the default recording device)
# you can use 'deej.unmapped' to control all apps that aren't bound to any slider (this ignores master, system, mic and device-targeting sessions) (experimental)
# windows only - you can use 'deej.current' to control the currently active app (whether full-screen or not) (experimental)
# windows only - you can use a device's full name, i.e. "Speakers (Realtek High Definition Audio)", to bind it. this works for both output and input devices
# windows only - you can use 'system' to control the "system sounds" volume
# important: slider indexes start at 0, regardless of which analog pins you're using!
slider_mapping:
0: master
1: mic
2:
- msedge.exe
- chrome.exe
3: deej.current
# set this to true if you want the controls inverted (i.e. top is 0%, bottom is 100%)
invert_sliders: false
# settings for connecting to the arduino board
com_port: COM18
baud_rate: 9600
# adjust the amount of signal noise reduction depending on your hardware quality
# supported values are "low" (excellent hardware), "default" (regular hardware) or "high" (bad, noisy hardware)
noise_reduction: default
- 视频配置:
# you can use 'master' to indicate the master channel, or a list of process names to create a group
# you can use 'mic' to control your mic input level (uses the default recording device)
# you can use 'deej.unmapped' to control all apps that aren't bound to any slider (this ignores master, system, mic and device-targeting sessions) (experimental)
# windows only - you can use 'deej.current' to control the currently active app (whether full-screen or not) (experimental)
# windows only - you can use a device's full name, i.e. "Speakers (Realtek High Definition Audio)", to bind it. this works for both output and input devices
# windows only - you can use 'system' to control the "system sounds" volume
# important: slider indexes start at 0, regardless of which analog pins you're using!
slider_mapping:
0: master
1: Jantama_MahjongSoul.exe
2: cloudmusic.exe
3: deej.current
# set this to true if you want the controls inverted (i.e. top is 0%, bottom is 100%)
invert_sliders: false
# settings for connecting to the arduino board
com_port: COM5
baud_rate: 9600
# adjust the amount of signal noise reduction depending on your hardware quality
# supported values are "low" (excellent hardware), "default" (regular hardware) or "high" (bad, noisy hardware)
noise_reduction: default
请根据你使用的 DEEJ 上位机软件的功能和你的个人喜好,进行相应的配置。视频中的效果需要修改宏定义为
#define MASTER_CHANNEL 0 // 单击对应第1个滑块 #define MIC_CHANNEL 3 // 双击对应第4个滑块
详细的配置方法,请务必参考DEEJ的官方文档或说明。
步骤 3: 运行 DEEJ 上位机软件
-
确保 DEEJ-CH552-RGB-Lite 硬件设备已连接到电脑 USB 端口,并且固件已成功烧录。
-
启动 DEEJ 上位机软件。
-
检查连接状态: 上位机软件启动后,若连接失败会在右下角提示 Can`t connect to com 18! 如果连接失败,请检查以下几点:
- 串口端口配置是否正确? (步骤 2.1)
- CH552G 驱动是否安装正常? (如果设备管理器中串口设备有黄色感叹号,可能需要安装 CH340 驱动)
- USB 数据线连接是否稳定?
- CH552G 固件是否烧录成功?
-
测试音量控制: 在上位机软件连接成功后,尝试转动 DEEJ-CH552-RGB-Lite 硬件设备上的旋钮1,观察电脑系统音量是否随之变化。 测试按钮的静音功能是否正常工作。
-
开机自启动(可选): 1.复制软件的快捷方式2.win+r 打开 运行 。输入
shell:startup
,回车。3.粘贴快捷方式
完成!
恭喜你,你已经成功完成了 DEEJ-CH552-RGB-Lite 项目的软件安装和配置! 现在你可以开始享受物理旋钮带来的便捷音量控制体验了!
重要提示:
- 请务必参考你使用的 DEEJ 上位机软件的官方文档或说明,获取最准确的配置信息和操作指南。 不同版本的 DEEJ 软件可能在配置文件、界面操作等方面有所差异。
- CH552G 驱动: 如果你的电脑第一次连接 CH552G 设备时,无法识别串口,可能需要手动安装 CH340 串口驱动。 你可以在网上搜索 "CH340 驱动下载" 并安装。 通常情况下,Windows 10 及以上版本会自动安装驱动。
- 管理员权限: 某些 DEEJ 上位机软件可能需要以管理员权限运行才能正常工作 (尤其是在 Windows 系统上)。 如果遇到权限问题,请尝试以管理员身份运行上位机软件。
希望以上软件安装流程文档能够帮助你顺利完成 DEEJ-CH552-RGB-Lite 项目的软件配置。 祝你 DIY 成功!
组装流程
- 1:焊接完成、程序烧录完成、测试完成。安装旋钮帽和按键帽。(直接安装按键帽高度会不够可以垫入一些纸巾,也可以使用超长的按键如6x6x15规格)
- 2:在外壳底部安装防滑贴。(可以省略)
- 3:裁剪好均光膜,放入顶板的凹槽中。
- 4:将PCB放入外壳中。(暂省略在外壳中安装热熔螺母,如有需要可自行安装,外壳模型上留出的热熔螺母孔位不正确,推荐笔穿过pcb螺丝孔后在外壳上画出记号,通过记号来安装热熔螺母)
- 5:将顶板卡入固定槽中。(安装工作到此完成)
实物图
图1:默认模式灯效 流动彩虹
图2:勿扰模式灯效 单色呼吸灯
图3:调节模式灯效 灯带随旋钮旋转亮灭
项目局限与未来展望
当前项目 (DEEJ-CH552-RGB-Lite) 的不足之处:
- 模拟输入通道有限: CH552G 微控制器 仅提供 4 路 ADC (模拟数字转换) 通道。 这意味着在当前硬件配置下,DEEJ-CH552-RGB-Lite 最多只能支持 4 个独立的物理滑块进行音量控制。 对于需要更多通道独立控制的用户,4 个滑块可能无法完全满足需求。
- ADC 精度有限: CH552G 的 ADC (模拟数字转换器) 为 8 位精度。这意味着模拟输入值被转换为 0-255 范围的数字值,需要映射到0-1023。
未来待开发和改进方向:
-
探索滑动电位器方案 (可选方案): 当前项目可能使用了旋转电位器作为滑块的模拟输入元件。 滑动电位器 (直滑电位器) 是另一种常见的滑块实现方案,其外观和操作方式更贴近传统调音台的推杆,可能更符合部分用户的使用习惯。 未来可以考虑推出 基于滑动电位器的 DEEJ 版本。 然而,需要注意的是,滑动电位器相比旋转电位器,单价通常更高,目前市场上的滑动电位器,单颗售价可能接近 2 元人民币甚至更高。 这可能会在一定程度上增加硬件成本。 是否采用滑动电位器方案,需要在 用户体验提升 和 成本控制 之间进行权衡。
-
扩展模拟输入通道 (更高阶版本): 为了实现更多通道的独立音量控制,未来的版本可以考虑 更换主控芯片,选用支持更多 ADC 通道的型号。 例如,STM32G030F6P6 是一款高性价比的 STM32 微控制器,它 可以配置多达 12 路或更多的模拟量采集通道。 采用 STM32G030F6P6 或其他类似芯片,将能够显著提升 DEEJ 硬件音量控制器的通道数量,满足更高级用户的需求。
-
开发无线版本 (无线连接): 当前的 DEEJ-CH552-RGB-Lite 采用 USB 有线连接方式。 未来可以考虑 开发无线版本,摆脱 USB 线的束缚,提升使用的灵活性和桌面整洁度。 无线版本可以基于以下技术方案实现:
- ESP32 (Wi-Fi/蓝牙): ESP32 是一款功能强大的 Wi-Fi/蓝牙双模芯片,可以实现 Wi-Fi 或蓝牙无线连接。 ESP32 版本可以利用 Wi-Fi 进行高速数据传输,或者使用蓝牙进行低功耗连接,并可扩展更多网络功能。
- 沁恒蓝牙芯片 (低功耗蓝牙): 沁恒 (WCH) 也提供一系列低功耗蓝牙芯片 (例如 CH573, CH582 等)。 采用沁恒蓝牙芯片的无线版本,可以充分发挥沁恒芯片的低功耗优势,实现更长的电池续航时间,并保持与 CH552G 版本代码的兼容性。
-
单旋钮编码器方案 (精简控制): 除了多滑块方案,还可以探索 使用单颗 EC11 旋转编码器 来设计 DEEJ 硬件音量控制器。 EC11 旋转编码器集成了旋转和按键功能,可以通过旋转调节音量,通过按键切换通道或执行其他操作。 单旋钮编码器方案可以:
- 简化硬件设计: 单颗 EC11 编码器即可实现基本音量控制和通道切换功能,硬件电路更简洁,成本更低。
- 缩小设备体积: 单旋钮方案可以设计出更小巧、更便携的 DEEJ 设备。
- 提供不同的操作方式: 旋转编码器的操作方式与滑块不同,可以为用户提供另一种选择。
- 多功能集成: EC11 编码器的按键功能可以用于实现静音、模式切换、菜单选择等多种操作。
- 对于其余版本大家认为有必要搞的话我可以给大家制作新的版本,上述的这些版本大部分我已经制作过简易的demo版。如果有购买需要我也准备卖一点点,价格大概是8.8元全部硬件焊接完成、3元3D打印外壳+均光膜、2元数据线1米AtoC弯头编织线、运费实收估计5元左右?详细采购BOM表已补充。如果需要帮忙编译特定版本HEX文件,欢迎在评论中提出。文档中有任何问题或有任何疑问也欢迎在评论区中指出
设计图

BOM


评论