沈阳城市建设学院信息与控制工程系 孙宝洁 刘 伟 魏惠芳 王志鹏 张馨文
垃圾分类投放也越来越成为人们生活中的一部分,实行垃圾分类也越来越受人们的关注。基于这些因素进行语音控制垃圾分类的智能垃圾桶设计,本次设计的主要是利用STM32单片机以及以LD3320语音识别模块为核心来设计。垃圾桶会通过步进电机自动对该垃圾进行分类并自动地开合相应的桶盖,并且通过语音播报模块来告诉人们该垃圾是属于哪种类型的垃圾。通过研究实现系统功能设计,避免了人们扔垃圾需要接触垃圾桶时细菌的传播,确实方便了人们在日常生活中对不同垃圾的准确分类。
随着大量垃圾的产生,垃圾的组成也越来越复杂,垃圾污染问题也越来越严重,垃圾如何处理已成为人们面临的一个严重问题。垃圾场存在着多种病毒、细菌、支原体等病菌,危害人的健康,诱发疾病的产生。特别是人们使用过后的旧电池,因为电池中含有多种重金属物质,比如电池中所含的铅会造成人的神经素乱,更可怕的是旧电池中如果不加以集中处理,使其自生自灭更会使人致癌。
实行垃圾分类越来越受到广大人民的关注,垃圾分类投放在全国各个城市也越来越普及开来。
自动翻闭盖的垃圾桶:该垃圾桶通过红外线检测装置,来判定是否有人接近垃圾桶,当红外线装置检测到有人或者物体接触时,该垃圾桶会自动地打开桶盖,当检测不到有人或者物体接近时,该垃圾桶在一定的时间延迟后会自动地关闭桶盖。同时没电的时候也可以进行手动操作,性能相对比较可靠。
智能感应垃圾桶:它的追踪系统可以利用智能手机捕捉路人的行为数据。通过判定路人的智能手机与垃圾桶的距离,路过垃圾桶的路人速度,行走的方向和手机的品牌等信息来分析路人特征,根据经过的路人不同,垃圾桶自带的大屏幕上播放的广告也会做出相应的变化,实现了垃圾桶的电气化、自动化。不过由于售价相对较高,对于地方的推广还存在有一定难度。
通过对目前市场常见的智能垃圾桶的分析,该智能垃圾桶的设计应包含以下功能:(1)应具备语音识别功能,对接收到的语音进行分析处理,然后确定该垃圾属于哪种类型的垃圾;(2)自动开合垃圾桶盖功能,根据人们日常生活习惯,设置适当的间隔时间来自动关闭桶盖。
该智能垃圾桶的主要功能包括:当人们要扔垃圾时首先语音唤醒智能垃圾桶,垃圾桶被唤醒后会通过语音播报模块发出声音提示,然后人们只需要对着垃圾桶说出要扔垃圾的名字,垃圾桶会再次通过语音播报模块来播报该垃圾属于哪种类型的垃圾,在播报的同时打开相对应的垃圾桶盖来让人们进行垃圾的投递工作。垃圾桶盖开启后,将会在一定的时间延迟内自动关闭。通过上述功能的实现,用户就可以方便地对垃圾进行正确的分类投放。
该系统设计主要包括三大部分:主控芯片STM32,LD3320语音数据采集部分,以及驱动部分。本设计以LD3320语音识别模块为核心原件,以STM32为载体,以SG90舵机来模拟垃圾桶盖的开闭。本设计采用C语言来对该系统进行编辑与开发。为了更加高效地完成任务,利用模块化的设计思想,把任务分割成若干个相互独立的模块,但是各个模块相互之间又存在着联系。在软件设计中运用模块化框架结构的程序设计,可使整个系统看起来更加的流畅。进而设计形成一个语音智能垃圾桶系统。系统的结构图如图1所示。
图1 系统结构图
首先系统先从外部接收一个语音信号,该语音信号被系统接收后,系统会对该语音信号进行一些相关处理,并在预先编辑好的语音库中寻找一个最佳的匹配结果,最后将该语音信号处理的结果发送到主控芯片STM32F103中。主控芯片接收到语音处理结果后,对处理结果进行分析,然后控制驱动部分即SG90舵机来模拟完成垃圾桶开盖、关盖等动作,同时也会通过语音播报模块来播报当前所扔的垃圾属于哪种类型的垃圾,方便人们对垃圾分类的认识。
LD3320语音识别模块在开始工作时,不需要进行预先的训练和录音,对于语音识别具有较高的准确率,LD3320芯片能够在没有任何外接辅助芯片的情景下直接对接收的语音进行识别处理。LD3320芯片的设计和生产商时IC Route公司,该公司生产的LD3320芯片被用户常用于语音识别的场景。该芯片的语音识别功能得到大家的认可。该模块提供了贴片,既可以通过贴片方式作为客户设计的电路板中的一部分,也可以单独地作为一个普通模块使用。极小的体积,十分方便嵌入到各种产品中,性价比很高。模块自带一颗MCU,用于处理底层驱动和生成通信格式,用户无须为复杂的底层驱动、传感器感应计算、校准等工作而烦恼。只要是具有串口功能的MCU,如STM32、STC15、Arduino、MSP430等单片机,都可以通过解析简单的数据帧,获取识别结果。
LD3320语音识别模块工作流程图如图2所示。
图2 语音模块工作流程
采用JQ8400芯片作为该系统的语音播报模块,同时在JQ8400芯片的基础上外接了一个扬声器装置。JQ8400语音播报模块采用的是SOC解决方案,该芯片的尺寸较小,但是小尺寸不仅不影响该芯片与其他产品的嵌入,反而使该芯片与其他产品的嵌入更加灵活方便。同时,该芯片自身具有音频解码的功能,可以对接收到的音频文件进行一系列的解码处理,对于解码后的音频还可以很大地保证音质,从而按照人们想要的方式进行音频输出,该系统同样具有较高的稳定性。
SG90舵机属于一个模拟舵机。模拟舵机特点是舵机本身需要不断地接收PWM信号,并根据此信号来控制舵机角度的旋转。由于舵机工作时所接收的信号是一个PWM方波信号,因此模拟舵机需要不停地接收某个方波信号,该接收的方波信号始终是同一个方波。此外,舵机的旋转是通过舵机内部的产生的电压差来控制的,舵机的内部本身就有一个参考电压,当舵机接收PWM信号后会产生一个偏置电压,该偏执电压与舵机内部本身的参考电压对比将会形成一个电压差,当有舵机内部电压差产生时,舵机才会开始旋转。当舵机开始转动时,舵机内部形成的电压差将会随之减少,直至舵机内部的电压差变为零为止,舵机才会结束旋转动作。脉冲宽调制只有高电平(1),以及低电平(0),两种I/O口状态,于是,通过控制微处理器输出1-0-1-0-1-0-1-0……如此循环往复。舵机的工作状态如图3所示。
图3 PWM脉冲宽度与舵机转动角度的关系
本系统主要采用语音识别技术,通过语音识别对处理分类垃圾,并打开相对应垃圾种类的垃圾桶,本设计设置两种垃圾桶工作模式:①待机模式(通电后未被使用采取低功耗模式);②工作模式(通过特定语音唤醒系统,让垃圾桶进行下一步操作)。此外,无语音指令或者语音指令错误时,系统便一直处于待机状态。该系统的主程序流程图如图4所示。
图4 主程序流程图
LD3320的用户使用模式:用户在使用该芯片时可以对两种模式进行相应的设置。触发识别模式:当系统接收到外部的唤醒后,LD3320芯片便开始处于工作状态,并在一定的时间内保持对外部语音信息进行识别。当识别结束后,需要语音识别模块再次工作时,则需要对系统重新唤醒。即每识别完一次后想要再次识别需要对该系统进行重新唤醒工作。循环识别模式:如果系统检测识别到语音指令后,会在语音识别模块的数据库中进行关键词对比,当该语音指令匹配到一个最佳识别结果后,该系统则会对应一个相应的输出结果。待输出结束后,系统又会自动地重新启动语音识别模块,从而继续保持着对语音信号的识别。语音识别模块主要电路图如图5所示。
图5 语音识别模块电路图
首先,在STC11L08XE单片机中初始化语音识别模块,对延迟函数,中断处理函数进行编写。读写模式进行选择,本设计选用并行模式读写模式,即设置MD管脚为低对串口进行初始化:串口选择8位异步通信方式,由定时器1控制。在程序的一开始,首先进行复位动作,对芯片的RSTB和CSB给一个低电平,为了更加稳定的工作,在高低电平变化之间给一个5ms的延迟。如果在工作过程中,芯片的工作状态异常,可用这种方法使芯片恢复到原来的状态。
舵机模块的设计与采用:本系统采用SG90舵机来模拟垃圾桶盖的开启与关闭。在主控模块STM32单片机识别编码成功后,会控制编码所对应的舵机来旋转90°。以此来模拟垃圾桶盖的开合,舵机的旋转操作由STM32单片机来控制。这里系统采用定时器二(TIM2),定时器三(TIM3),并且每个定时器有四个PWM通道相对应。TIM3的PWM输出引脚分别为PB0(CH3)、PB1(CH4)、PB5(CH2),TIM2的PWM输出引脚分别为PA1(CH2)、PA2(CH3)、PA3(CH4)。舵机电路图如图6所示。
图6 舵机电路图
舵机工作程序如下:LD3320集成播报模块,预先给JQ8400语音芯片存放本设计所需要的提示语音,然后语音播报模块是通过LD3320单片机的一些相关引脚进行控制的。JQ8400芯片电路图如图7所示。
图7 JQ8400电路图
首先,进行语音文件的合成,打开下载好的语音合成工具,在最上面空白区域输出要合成的内容,然后在右下角“保存语音文件”处选定,最后单击“开始合成”,合成完成后该文件夹内会出现一个“wav”格式的文件,此文件即为合成的语音文件。操作流程图如图8所示。
图8 语音调试步骤
语音合成好后,需要对合成好的语音文件使用MP3格式转换器将语音文件转换成MP3格式。操作步骤:首先打开MP3转换器,打开后单击“添加文件”,选择要转换的语音文件,转换格式系统默认为MP3格式,以及比特率、频率、声道按照系统默认的选择即可,不需要进行操作更改,紧接着选择自己将转换后的文件要存放的路径,最后单击“立即开始转换”即可。操作步骤如图9所示。
图9 语音转换步骤
根据自己的需要在输入文本区域分别输入所要合成的内容,例如本系统就录入了:小爱在呢、其他垃圾、有害垃圾、可回收垃圾等相关语音,同时对合成完成的语音文件进行保存以及对文件名称进行相应的修改,依次按上述顺序进行编码。
结论:本次设计的智能垃圾桶系统主要使垃圾桶具有了语音识别功能,以及根据语音指令自动开合不同类型垃圾桶盖的功能。针对现有的智能垃圾分类体系的不足完成了一项低成本、低耗能、语音控制系统的智能垃圾桶的设计,具有一定的实用价值。智能垃圾桶系统能够有效地帮助人们对不同类型的垃圾进行准确地分类投放,它缓解了人们在垃圾分类早期不能准确分类和投放垃圾的问题,在当今国家大力提倡以及强制实施垃圾分类的情况下,本设计的语音播报功能能够有效地帮助人们加深对垃圾分类知识的理解,让人们逐渐将各种垃圾分类变为常识知识。本次设计对自己来说也是一次历练,不仅在知识面上得到了拓展,同时自己在编程能力上也有了一定的提高。在实际语音测试中,系统有时候会识别错误的语音,造成舵机开始旋转工作。通过大量的实验发现是由于外放喇叭与语音识别模块相距较近造成的干扰,导致语音识别不能准确地进行,还有在嘈杂的环境下,该系统不能识别相应的指令,只有在相对安静的环境中,该系统才能够准确地识别相应的指令并进行工作,仍有进一步的改进空间。