【2023电赛】K题辨音识键奏乐系统-工院鲁什
简介
基于STM32F407ZET6设计的一款水杯频率检测装置,可以精准识别不同水杯,同时具备发声装置。
简介:基于STM32F407ZET6设计的一款水杯频率检测装置,可以精准识别不同水杯,同时具备发声装置。开源协议
:CC BY-NC-SA 4.0
描述
一、团队介绍
2023电赛K题全国一等奖
学校:湖南工业职业技术学院
成员:曹佐龙:物联网应用技术,主要负责软件方面,整套系统代码编写;
李文:工业互联网技术专业,负责系统装调,系统验证及硬件搭建;
杨雄:电子信息工程技术,负责理论分析,系统可行性分析,文档编写;
指导教师:赵自鹏老师、彭雯老师。
二、题目要求
三、设计摘要
本系统以STM32F407ZET6为控制核心构建了辩音识键奏乐系统。STM32F407ZET6是32位带DSP、FPU微控制器,主频最高168MHz,196KB RAM,保障系统对信号进行FFT计算需求。在敲击水杯时环境音频信号主要来自水杯震动,使用咪头检测环境音频信号,并且对采集的信号进行放大,为了更好提取敲击水杯发出的音频信号,经过查阅文档及测试确定水杯敲击发出的音频信号频率为2KHz~3.5KHz,使用硬件带通滤波器对原始信号进行滤波,保留1.5KHz~4.8KHz信号,将滤波后的信号送至MCU进行AD采集,单片机将采集到的音频信号进行FFT变换得到声音频率特征值,从而进行各类功能识别任务。
本系统具有基础功能及发挥功能。基础功能完成简单音频播放,随机选择水杯进行空杯学习及识别、指定水量学习及识别。发挥提升功能完成5个水杯音阶奏乐,同步识别系统播放对应乐曲。并能识别随机增加的三个指定水位水杯。以上功能均能将对应水杯编号显示在液晶显示屏。
四、题目分析
1、系统总体方案设计
根据不同杯子注入不同水量在敲击时震动频率不一样这一特性,通过咪头检测声音信号,再通过FFT变换获取频率特性,从而识别不同杯子的敲击。系统由3~8 个水杯作为奏乐系统输入设备,控制系统检测敲击注入不同水量的不同水杯敲击时发出的声音信号频率特征,记录下每个位置水杯的敲击频率特征,根据记录区分不同水杯的敲击,同时播放与之对应的音阶。该系统需具有拾音、信号滤波、FFT频谱分析、显示信息、音乐播放等功能。通过对赛题的分析研究,主要有以下几个方面分析设计:
1)收集敲击水杯产生的声音信号。首先需要通过咪头传感器拾取敲击水杯时声音信号;在对原始信号进行滤波,保留水杯震动的频段信号,过滤掉环境中人声、噪声等其他杂音;最后将声音信号送入MCU进行分析处理。
2)对音频信号FFT变换提取频率特征。由MCU的ADC外设采集音频信号,敲击杯子所发出的声音维持时间0.2秒左右,MCU以8K的采样率采集0.2秒时间的数据,在对数据进行频谱分析提取特征,并且记录特征,最终确定属于该水杯敲击后的数据。例如水杯编号,水杯当前注水量所对应频率。
3)显示敲击水杯的编号,并发出敲击水杯时对应音阶的声音。为了清晰显示编号、频率,显示识别数据信息。控制器输出对应音阶频率,再进行功率放大,使扬声器发出对应音阶的声音。
经过上述分析,将系统分为3个基本模块,包括音阶采集模块、频谱分析模块、信号输出模块。
2、主要模块方案选择和论证
方案一:通过电压比较器比较出信号频率并分析特征
通过咪头检测敲击杯口后的声音信号,经过放大比较后输出方波,在通过MCU采集一段时间内的方波信号,分析频谱特征,从而得到杯子敲击的频率特征。
方案二:通过MCU的ADC外设采集杯口敲击后的一段时间内的信号,将信号通过快速傅里叶变换,得到该信号的频谱图,认为幅频响应的模数的峰值即为杯子的特征频率。
方案一在采集过程中,无法准确采集混合信号中的低频信号,对于单一频率的识别较为有效,但对于含有多个频率的信号的声音信号,很难反映波形的实际构成,也不易分离各频率。故选择方案二。
五、总体设计框图
系统设计框图
六、硬件电路组成
1、音频采集电路
声音采集由咪头采集原始声音信号,经过电压跟随器转换为电压信号。
2、滤波电路
滤波电路采样巴特沃斯滤波,由低通和高通滤波器部分组成。以减少1.5-4.8kHZ以外的干扰信号。
3、后级放大电路
后级放大采用同向比例放大电路,只对交流信号进行放大,对直流信号不作处理。
4、比较输出电路
为了让单片机进行声音信号采集,需要发出开始采集的信号。因此原始声音信号经过滤波放大电路后会进入电压比较电路。通过MCP65R41T进行比较,输出开关量信号接入单片机作为采集的触发信号。具体原理图如下所示。
5、实物波形验证
七、程序流程图
八、实物展示
实物图主要由主控、声音采集模块、电源、功放电路和扬声器组成。
视频链接:https://pan.baidu.com/s/1Tw0KDlBlWU89LqtFB8sMug
提取码:aqtt
评论