2025寒假练-基于CrowPanel ESP32开发板完成音频分析器
1. 项目简介
本项目是基于硬禾学堂举办的2025年第5届“寒假在家一起练“活动进行项目开发,该活动共涵盖FPGA、STM32、RP2040、ESP32方向,本次任务选择 CrowPanel ESP32 Display 4.3英寸HMI开发板进行波开分析开发,该板卡由Elecrow公司进行开发, 本项目活动使用板卡完成任务如下:
a. PC上通过自带Micphone采集输入的音频信号,再传输到4.3英寸显示终端
b. 显示终端对接收到的音频信号做频谱分析,在屏幕上可以显示:
- 音频信号波形
- 音频信号的频谱
- 信号的参数 - 幅度值、频率范围
- 可以通过界面来选择只显示波形、只显示频谱、二者都显示
2. 硬件介绍
CrowPanel ESP32 Display 4.3英寸HMI开发板拱载Elecrow ESP32 4.3英寸LCD显示屏,具有480*272分辨率的LCD显示屏。它使用ESP32-S3-WROOM-1-N4R2模组作为主控处理器,具有双核32位 LX7处理器,集成WiFi和蓝牙无线功能,主频高达240MHz,提供强大的性能和多功能的应用,适用于物联网应用设备等场景。
该套件包含一块4.3英寸LCD显示屏和一块驱动板,显示屏采用电阻式触摸技术,并自带电阻式触摸笔,让屏幕的使用更加灵活。此外,板子预留了TF卡槽、多种外设接口、USB接口、喇叭接口、电池接口等,提供了更多的扩展可能。支持Arduino IDE、Espressif IDF、PlatformIO、MicroPython等多种开发环境,并兼容LVGL图形库,让开发者不仅可以定制自己的UI界面,还可以快速轻松地创建有趣的项目。
特征
- 集成 ESP32-S3-WROOM-1-N4R2 模组,内置无线通信 2.4 GHz Wi-Fi(802.11 b/g/n)和蓝牙 5.0;
- 支持开发环境Arduino IDE、Espressif IDF、PlatformIO、MicroPython并兼容LVGL图形库;
- 内置LVGL演示接口和Arduino示例,即插即用;
- LCD 480*272 4.3 英寸 TFT-LCD,带驱动 IC NV3047;
- 丰富的外设接口和扩展功能使其能够满足不同领域的需求。
3. 需求分析与系统框架
首先需要通过电脑PC机麦克风采集环境中音频数据,对采集到的音频数据进行分析,得到波形幅值数据,并使用快速傅立叶变换得到频率统计数据,通过串口发送采集波形幅值数据和频率数据,由ESP32S3中断接收,并将处理预处理类型转换存放在数据缓存区,显示主循环检测 数据接收标志位对接收到的数据进行加载显示,系统功能逻辑框图如下所示:
4. 功能模块实现及相关代码
4.1 PC上位机数据音频数据采集
PC端使用python库sounddevice 访问麦克风音频设备对数据进行采集与缓存,音频采集回调函数如下所示:
对音频数据进行处理,主要对音频幅值进行统计和使用快速傅立叶变换得到频率统计数据:
4.2 Elecrow ESP32显示界面
本项目使用LVGL 8.3.1进行界面显示,分别定义三个主界面:
分别三个界面进行初始化,以下是screen1初始化部分代码:
4.3 显示图表及数据
分别针对不同界面的图表和数据进行了定义,并初始化,其中含有两个图表的第三界面图表,数据序列初始化如下:
4.4 按键界面切换功能实现
界面切换功能通过 给按键添加switchscreen1,switchscreen2,switch_screen2等功能实现界切换,界面切换函数据实现如下所示:
4.5 数据显示更新功能实现
通过在循环中检测 数据接收标志位,来进行数据更新,同时兼顾当前主界面为哪一个界面进行针对性数据序更新和显示组件重刷新,代码实现如下:
5. 实验演示
5.1 波形显示
5.2 频谱显示
5.3 波形频谱显示
6. 项目小结
本项目基于硬禾学堂与Elecrow联合提供的CrowPanel ESP32开发板,成功实现了音频信号的实时采集、传输与可视化分析系统。项目中学习到了嵌入式系统开发、数字信号处理和GUI设计三大领域知识,验证了ESP32在实时音频处理场景下的可行性。特别感谢硬禾学堂提供的实践平台和Elecrow的支持,其高集成度的CrowPanel开发板为项目快速原型开发提供了关键硬件基础。