基于 ESP32 构建一个音频频谱分析仪,并将其可视化
音频频谱分析仪是一种实时显示声音频率成分的工具,有助于直观展示音频信号中不同频率的响度。在我的上一个视频中,我介绍了如何在CrowPanel 3.5英寸HMI ESP32显示屏上制作立体声音量表(Stereo VU Meter)。这次,我将介绍如何在相同的显示模块上构建一个视觉效果出色的立体声音频频谱分析仪,并且会使用相同的外壳设计和音频输入部分。
电路图基本相同,唯一的区别是:为了输入信号,我使用了GPIO35引脚,并直接从该引脚引出一根细线,原因已在上述音量表项目中说明。
本项目由PCBWay赞助。别忘了访问PCBWay开源社区,在那里你可以找到无数实用项目,按不同类别分类整理。选择你感兴趣的领域,就能发现大量免费且有用的项目资源。你还可以在此下载Gerber文件,或订购现成的PCB板,为未来的项目做准备。PCBWay 提供了创建项目所需的所有服务,价格最优。
输入的交流信号被送入 GPIO35 引脚,此前通过两个 100K 欧姆电阻施加了 1.6V 的参考电压。输入音频信号的正负值在该电压范围内变化。电容用于阻隔可能存在的直流分量,而 1K 欧姆电阻则用于保护输入端免受不良信号干扰。
至于代码,它具有高度可定制性,只需修改开头定义的变量,即可实现任意类型的条形运动效果。所有这些参数都会影响条形的运动方式和速度。
提供了两种不同的代码:一种包含 32 根条形,并采用特定的频率处理方式(将 20Hz 至 20kHz 的频段分为两部分并分别处理);另一种为标准代码,包含 24 根条形。要成功上传代码,需在 Board Manager 中选择“ESP32 DEV Module”,并安装本文末尾提供的库文件。特别需要注意的是,必须使用指定的 TFT_eSPI 库,因为它专为本项目设计。
值得一提的是,这并非一个精确的音频设备,而主要是为音响系统增添了一种有趣的视觉效果。在本项目中,声音经过处理,以牺牲中频带(即自然最响亮的部分)来放大极低频和高频,从而提升视觉表现。此外,实际上这些条状结构是经过3D处理的,看起来像细管,但在视频中并不明显。
接下来我们来看看该设备在不同输入信号下的实际表现。启动设备时,输入信号必须为零,因为在最初的几秒内会进行噪声底校准。
最后简要总结:CrowPanel 3.5" ESP32 证明是一个极其多功能的高速音频可视化平台。通过将自定义的FFT逻辑与优化的TFT_eSPI库结合,我创建了一个具有出色视觉效果的音频分析器。
本文编译自hackster.io





