一、Aura Player 光环播放器
效果演示:
1. 概述
本项目基于 Adafruit ESP32-S3 Reverse TFT Feather 开发板,结合 DFRobot 颜色传感器 (TCS3200) 和 音频模块,实现了一个能够“听见颜色”的智能设备。用户可以通过传感器拾取物体颜色,设备将识别颜色并在板载屏幕上显示,同时播放对应的音符,实现“颜色-声音”的跨感官交互。此外,项目还集成了磁性接近开关,用于控制播放功能的启停。

2. 硬件设计说明
2.1 核心组件
主控制器: Adafruit ESP32-S3 Reverse TFT Feather (DigiKey: 1528-5691-ND)
集成 ESP32-S3 芯片,支持 WiFi/BLE
板载 1.14英寸 TFT 彩屏,方便状态显示
颜色传感器: DFRobot TCS3200 Color Sensor (DigiKey: 1738-1035-ND)
用于识别 RGB 颜色分量
音频输出: DFRobot Digital Buzzer Module (DigiKey: 1738-1142-ND)
用于播放八阶音符
接近传感器: Littelfuse Reed Sensor (DigiKey: 18-59001-1-T-02-A-ND)
磁性触发,用于播放控制
2.2 系统框图

2.3 硬件连接
| 模块 | 引脚名称 | ESP32-S3 引脚 | 功能描述 |
| TCS3200 | S0 | D5 | 频率调节 选择 1 |
| S1 | D6 | 频率调节 选择 2 | |
| S2 | D9 | 滤波器 选择 1 | |
| S3 | D10 | 滤波器 选择 2 | |
| OUT | D11 | 频率信号输出 | |
| VCC | 3.3V | 电源 (正极) | |
| GND | GND | 电源地 (负极) | |
| Buzzer | Signal | D12 | PWM 信号输出,用于驱动蜂鸣器发声 |
| Reed Sw | Signal | D13 | 干簧管开关信号,低电平或高电平有效 |
(注:具体引脚根据实际连线调整,代码中需对应)
3. 软件实现步骤
环境搭建: 使用 CircuitPython 固件,方便通过 USB 模拟 U 盘直接更新代码。 驱动开发: lib/tcs3200.py: 封装颜色传感器逻辑,通过 pulseio 读取频率并映射为 RGB 值。 lib/buzzer.py: 封装 pwmio 控制蜂鸣器频率。 UI 设计: 使用 displayio 在板载屏幕显示实时颜色色块和 RGB 数值。 主逻辑: 循环检测按键/传感器状态。 读取颜色 -> 映射音符 -> 播放。 接近传感器触发自动播放模式。 |
3.1 依赖库 (Libraries)
请确保 lib 文件夹中包含以下 CircuitPython 库 (可从 CircuitPython Bundle 获取):
|
4. 开启运行说明
将 code.py 和 lib 文件夹复制到 CIRCUITPY 磁盘根目录,连接各模块传感器。上电后,屏幕显示初始化界面。按下板载 BOOT 键或触发接近开关开始拾色/播放。 主要参数情况
|
二、Aura Studio 光环演奏页面
1. 项目概述
系统提供了一个包含多首经典曲目与校准工具的曲库,并设计了直观的视觉引导界面。整体操作流程清晰简便:用户在选择曲目并完成参数设置后,连接硬件设备即可开始运行,并能够方便地保存完整的测试数据以供分析。以下表格对其中涉及的技术实现部分进行了梳理:
| 特性 | 说明 | 解释 |
| BPM 与速度控制 | BPM(每分钟节拍数)可调范围为40至180,默认90。此数值直接控制乐谱的垂直滚动速度。 | 这是音乐的“速度旋钮”。数字越大,乐谱滚动得越快,音乐播放也更急促。 |
| dur 时值渲染 | 音符显示高度由公式 height = max(60, 180*dur) 计算。其中 dur 是音符的原始时长值。 | 系统根据音符的应有长短,来决定它在屏幕上显示为“长条”还是“短条”,使其视觉效果更符合乐理。 |
| 引导层 | 包含静止的激光瞄准线和移动的音符目标框,可一键开启或关闭。其设计特意避免遮挡设备传感器区域。 | 这就像射击游戏的“准星”和“目标”,帮助你精准地对准时侯按下按键或触发设备,并且不会妨碍设备“看见”光线。 |
| 串口连接 | 基于 Web Serial API 实现,允许网页直接与单片机、Arduino等硬件设备的串口通信,实时读取数据。 | 让网页和你的硬件设备“直接对话”,无需安装额外驱动,就能在网页上看到硬件发来的数据。 |
| 数据导出 | 自动生成CSV格式文件。文件名会包含曲目名和精确的时间戳(年-月-日-时-分-秒),确保每次记录都不会混淆。 | 系统将你的整个操作过程和结果,规整地保存成一张标准的电子表格,方便你日后用Excel等软件打开进行分析。 |
| 日志对比 | 界面实时并列显示“传感器检测”到的音符与“Expected”预期音符,便于立刻比对差异。 | 在屏幕上直接对照“设备实际识别的”和“理论上应该识别的”音符,一目了然,方便快速调试设备精度。 |
曲库选择:
Twinkle Star
Ode to Joy
Jingle Bells
C Major Scale
Calibration Pattern

整体页面:

2. 数据导出与分析
系统运行后,所有数据均可导出为CSV文件进行深入分析。
CSV文件列说明
下表解释了导出文件中各列数据的含义:
| 列名 | 说明 |
| RelativeTime(ms) | 相对于会话开始的毫秒时间戳。 |
| RealTime | 数据点的实际日期与时间。 |
| RawData | 从设备串口读取的原始字符串,通常包含 Freq: 或 Note: 前缀。 |
| ParsedFreqR/G/B | 从RawData中解析出的红、绿、蓝三色光的频率值(如果存在)。 |
| DetectedNote | 固件根据传感器输入实时判断出的音符。 |
| ExpectedNote | 当前UI界面中,激光瞄准线位置所对应的、理论上应该被检测到的音符。 |
数据分析与检索建议
导出数据后,您可以按以下思路进行效果验证与问题排查:
核心比对:重点分析 DetectedNote(检测音符) 与 ExpectedNote(预期音符) 这两列是否一致,这是评估系统准确性的关键。
文件命名示例
导出的文件会自动按以下规则命名,确保清晰且不重复:
Twinkle_Twinkle_Little_Star_aura_session_2025-12-19-00-49-11.csv
Ode_to_Joy_aura_session_2025-12-19-00-50-54.csv
3. 效果演示与故障排查
为了获得最佳的演示与检测效果,环境设置至关重要。
校准与光照建议
稳定的环境光是系统可靠工作的基础,请遵循以下建议:
避免极端光照:不要在阳光直射或过于昏暗的环境下使用。
保持垂直对齐:确保设备传感器与乐谱色块表面垂直,并正对色块中心,以接收到最强的反射光信号。
我要赚赏金
