基于STM32的手势音箱设计
2020-06-21郭帅宇刘磊
郭帅宇 刘磊
【摘 要】在科技应用领域为了从外界获取信息,经常会用到各类传感器检测被测量,然后将其转换成电信号,最后达到检测与控制的目的,比如:测量温度、湿度、压力、距离等。手势识别技术也正是运用了传感与检测原理、手势识别传感器也正是由一些基本的傳感器制作而成,其技术及器件广泛应用于控制领域。通过手势传感器来制作一款可以靠挥挥手便能完成对音箱的控制的产品,将会更加彰显科技,也会使对播放器的控制变得更简洁,更加符合人们人机交互方式的习惯。
【关键词】STM32F103C8T6;解码芯片;稳压芯片;超声波
1手势音箱的设计方案
本设计由供电电路、下载电路、控制系统、传感电路、SD卡音频文件读取和解码电路以及音频放大电路组成,其中传感电路又包含超声波测距电路和红外对管电路两个部分。通过红外对管模块和超声波模块检测手的动作状态(左、右移动;上、下移动;保持不动5种状态)完成对手部动作的识别,输出相应的信号。控制芯片对此信号进行处理,再通过串口发送相应的CMD指令到解码芯片,完成对音频文件的读取、解码和模拟信号输出,通过功放电路驱动喇叭,最终完成对歌曲切换、音量增减以及播放和暂停。
1.1 系统的功能及要求
1)手势动作检测功能:利用红外对管、超声波模块完成手部动作检测,输出相应信号。
2)信号处理功能:STM32在获得传感器的输出信号后,对这些信号进行处理,再发送不同的CMD指令。
3)音频文件的读取与解码功能:利用MH3028-24SS解码芯片完成对FAT16/FAT32文件系统的文件读取,以及音频格式为mp3或wav格式的硬解码。
4)音频信号放大功能:利用PAM80403功放模块完成对较小音频信号的放大,使其功率增加。
1.2 系统的组成及方案设计
1)供电电路:采用稳压二极管ZM4728A,输出3.3V单独给下载电路供电;为降低供电端的压力,让控制系统拥有更加稳定的3.3V电压,利用XC6206稳压芯片输出3.3V为控制系统供电,供电系统还单独引出多个5V和3.3V的输出口,给超声波模块、红外对管模块以及音频解码模块供电。
2)一键下载电路:以CH340G作为USB总线的转接芯片,实现USB转串口;以S8050三极管(NPN型)以及S8550三极管(PNP型)作为控制开关,只要按下复位键就能通过串口下载程序,免去了手动拉高或拉低BOOT0与BOOT1的麻烦。
3)控制系统:采用STM32F103C8T6作为控制芯片、12MHz无源晶振作为外部高速晶振,引出BOOT1的下拉跳线帽、BOOT0的上拉跳线帽、独立的电源开关。
4)传感电路:采用两个TCR5000红外反射传感器作为手部运动往左还是往右的检测,并输出相应的信号;采用超声波模块作为手部运动向上还是向下的检测,并输出相应的信号。
5)SD卡音频文件读取和解码电路:采用MH3028芯片对SD卡(FAT16或者FA图文佳系统的SD卡)中音频文件进行读取和硬解码,并输出模拟音频信号。
6)音频放大电路:采用输出功率为3W的D类PAM8403芯片作为音频功率放大器IC,使其能够驱动电阻,得到所需要的音频。
2系统的硬件设计
2.1 供电模块电路
本设计的供电电路包含两个,一个是主要给下载电路提供电源,另一个是主要给控制系统供电的电源。下载电路供电系统采用稳压二极管ZM4728A,运用PN结在反向击穿状态下,其电流可以在很大范围内变化而电压基本不变的特点,使输出端电压稳压在3.3V左右,而钽电容E2则起到滤波作用,降低交变脉冲波纹的干扰,起到平滑直流输出的作用。
2.2 一键下载电路
STM32有三种启动模式:
1)从Flash(主闪存存储器)启动(芯片内置的Flash,BOOT1=X,BOOT0=0):用于程序运行,正常的工作模式,可以用SWD/JTAG下载模式直接下载程序到FLASH。
2)从内置SRAM启动(芯片内置的RAM区,BOOT1=1,BOOT0=1):可用于调试,一般不会用到此启动方式。
3)从系统存储器启动(ROM区,BOOT1=0,BOOT0=1):用于程序下载,下载模式。系统存储器存储的是bootloader代码(通常所说的ISP程序),该程序段提供了串口1下载的接口,通过此接口可以将编写的程序代码下载到FLASH中,下载完毕后,将启动模式切换为从主Flash启动,再次复位后,执行的就是刚刚下载到Flash中的代码。
从上面叙述的三种启动模式可以看出:要用通过串口1下载程序,就需要让BOOT1=0,BOOT0=1,要想运行程序,可以让BOOT1=1,BOOT0=0。为了免除手动拉高与拉低BOOT0、手动复位,可以设计出这样的一个电路:通过串口转USB芯片CH340G与两个三极管来控制STM32的RESET(复位引脚)和BOOT0引脚的电平,达到以软件控制程序下载和程序运行的效果。
2.3 控制系统
本设计采用STM32F103C8T6作为控制芯片,控制模块PCB板设计有两组20引脚的排针用于引出芯片的引脚以及作为供电接口,还单独在下拉BOOT1以及上拉BOOT0之处改用2引脚排针,只需要用跳线帽短接,便能控制单片机是主闪存存储器为启动区还是系统存储器为启动区。
需要注意的是STM32的VCC引脚都还接了个电容,因为刚上电时,电流不稳定,通过电容,滤除交流信号,避免高压脉冲引起STM32误动作。由于晶振引脚的内部通常是一个反相器,晶振的两个引脚之间还需要连接一个电阻,使得反向器在振荡初始时处于线性状态(一般这个电阻已经集成在了芯片晶振的内部,因而这里没有再接电阻)。为了电路的稳定性起见,晶振还有两旁的瓷片电容,一般选择22pf,或者20pf(在许可值内,C值越小越好。虽然越大越有利于振荡器的稳定,但会增加起振时间),用来削减谐波对电路的稳定性的影响。其次应当注意的是:在晶振的下面最好不要布线,这样可以可以防止晶振干扰其他信号线,晶振和起振电容应当尽量靠近STM32的引脚,两个起振电容的线长应当一样长。
该设计以STM32F103C8T6作为控制芯片;以稳压二极管ZM4728A、稳压芯片XC6206作为供电电路的稳压器件;以CH340G为USB总线的转接芯片,结合S8050三极管以及S8550三极管来制作一键下载电路;以MH3028-24SS作为解码芯片,完成对SD卡音频文件的读取和解码;以PAM8043为音频功放芯片,完成对较小音频信号的放大,使其功率增加,驱动电阻,得到所需要的音频。
参考文献
[1]数码科技.世界首款360度环绕音箱亮相[EB/OL].https://m.elecfans.com/article/531816.html,2017-07-12/2020-2-26.
[2]MG Bray. Smart Infrared Sensors[J].International Journal of Computational Science & Engineering,2015,3(1):21-31.
[3]汤志强.通过手势控制的体感音箱[J].无线电,2011(7):9-27.
(作者单位:浙江工业职业技术学院)