音乐可视化 – 基于ESP32

一、简介

使用ESP32内置的ADC采集电脑输出的音频信号,通过RGB灯带展现出来

最初计划采用外置ADC将音频转为I2S格式传给ESP32,但是遇到了许多问题。 于是转为使用ESP32内置的ADC,虽然也踩了许多坑,但也逐一解决了

GitHub地址:https://github.com/XingKongSync/X.K.MusicESP

二、材料

  • ESP32
  • WS2812
  • Music

三、接线

  • 两条100颗灯珠的WS2812灯带串联,数据线接入ESP32的GPIO12
  • 3.5mm的AUX线,左声道接入ESP32的ADC1_CHANNEL_3,地线接EPS32的GND

四、参考及引用

大部分代码来自于:

其他:

五、踩坑总结

  1. 在通过I2S驱动使用内置ADC时,我读取了长度为512的I2S数据,但是只有前面一半数据可用,不知道为什么
  2. 如果音频线和ESP32没有接地,采集出来的信号中会有杂波
  3. 有的时候音量过大会导致ESP32重启,是因为电压超过了内置ADC的量程了吗?
  4. 接地后,当电脑在没有播放音乐的时候,会出现随机的尖刺,不知道为什么。我使用卡尔曼滤波器 + 星空曼滤波器解决了
  5. 我买的四段式AUX插座,如果把三段式音频插头插到底,会出现左右声道短路的情况,不知道其他AUX插座是不是这样

六、效果演示

https://www.bilibili.com/video/BV1vi4y1x7Pa/

发表评论

邮箱地址不会被公开。 必填项已用*标注