# 🎛️ ESP32 智能音箱控制面板固件 (PY32F030) 本项目是专为 **ESP32 智能音响系统** 打造的外部硬件控制面板固件。基于性价比极高的 **PY32F030** 单片机开发,通过 UART 与 ESP32 主控进行双向通信,实现音量调节、音源切换、状态显示等实体交互功能。 --- ## ✨ 核心功能 1. **实体按键与编码器控制**: - **双旋转编码器**:分别独立控制 **主音量 (SW2)** 和 **低音/Bass (SW1)**。 - **动态变速调节**:内置编码器防抖与加速度算法,根据旋转速度智能分配步进值(慢速 1%,中速 2%,快速跨越 3%),手感极佳。 - **快捷静音 (Mute)**:按下主音量编码器快速静音,再次旋转即可恢复。 - **音源切换**:独立实体按键实现 Bluetooth 与 AUX 的一键切换。 - **清除蓝牙回连**:长按低音编码器 5 秒,强制清空 ESP32 端保留的蓝牙配对记忆。 2. **多路 LED 状态反馈**: - **音量环形指示**:10 颗 LED 组成音量光环(段 1-5 为低音指示,段 6-10 为主音量指示)。 - **分时复用电量显示**:巧妙利用引脚反并联与 1ms 时间槽分时复用技术,仅用 2 个引脚独立控制 4 颗电池电量指示灯。 - **智能充电动画**:充电时电量灯呈现动态 1s 闪烁(跑马灯呼吸效果),充满后 4 灯常亮。 - **音源指示灯**:独立 LED 实时指示当前音源(AUX=常亮, BT播放=灭, BT断开待机=1s闪)。 3. **双向串口通信协议**: - 与 ESP32 主机保持实时状态同步,双向传递按键指令、音量数值、电量状态及播放状态(详见 `uart_protocol.c`)。 --- ## 🛠️ 工程结构与编译说明 本项目已彻底重构为**独立便携工程**,彻底脱离了对原厂 SDK 的外部绝对/相对路径依赖。 ### 1. 开发环境 - **IDE**: [VS Code](https://code.visualstudio.com/) + [EIDE 插件 (Embedded IDE)](https://marketplace.visualstudio.com/items?itemName=cl.eide) - **Toolchain**: GNU Arm Embedded Toolchain - **烧录调试**: DAP-Link / J-Link / ST-Link 等标准 ARM 调试器 (Cortex-Debug) ### 2. 目录结构 - `Src/` 和 `Inc/`: 面板业务逻辑核心代码(LED 驱动、按键扫描、串口协议等)。 - `Drivers/`: 内置了完整的 Puya PY32F0xx_HAL 库和 CMSIS 驱动底座,无需外部下载。 - `EIDE/`: VS Code EIDE 的专属配置目录。 - `docs/`: 详细的硬件引脚分配表及功能开发说明(强烈建议查阅 `docs/面板功能说明.md`)。 ### 3. 一键编译 1. 用 VS Code 打开 `EIDE/Project.code-workspace` 工作区文件。 2. 确保已安装 EIDE 插件。 3. 点击 EIDE 面板右上角的 **"构建" (Build)** 按钮。 4. 编译产物(`.hex` 和 `.bin`)将自动输出在 `EIDE/Project/` 目录下。 --- ## ⚖️ 许可 (License) 本项目代码归属原作者所有,底层的 HAL 库及启动文件遵循 Puya 官方的开源许可协议。