ESP32音箱项目的控制面板

wp b6b1398861 文档: 移除原厂例程 readme,新增面板工程专属 README 2 settimane fa
.agents b6b1398861 文档: 移除原厂例程 readme,新增面板工程专属 README 2 settimane fa
Drivers b0782be972 重构为独立项目:引入官方 SDK Drivers 以脱离相对路径依赖 2 settimane fa
EIDE b6b1398861 文档: 移除原厂例程 readme,新增面板工程专属 README 2 settimane fa
Inc b0782be972 重构为独立项目:引入官方 SDK Drivers 以脱离相对路径依赖 2 settimane fa
Src b0782be972 重构为独立项目:引入官方 SDK Drivers 以脱离相对路径依赖 2 settimane fa
.gitignore b240814d3e 从 Git 记录中移除 .agents 缓存并加入忽略列表 2 settimane fa
README.md b6b1398861 文档: 移除原厂例程 readme,新增面板工程专属 README 2 settimane fa

README.md

🎛️ 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. 开发环境

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 官方的开源许可协议。