曾新红,谢超强,李维坚
(广州航海学院电气工程系,广州 510725)
我国提倡垃圾分类,建立了资源垃圾分类回收系统。上海于2019年7月1日正式实施了垃圾分类,但还有很多人没有垃圾分类的概念,分不清楚干、湿垃圾。垃圾分类是实现绿色环保、可持续发展的重要途径,基于这种情况,设计了一款基于语音识别的智能分类垃圾桶。该设计利用STC11L08XE单片机,结合高性能语音LD3320语音识别模块[1]、舵机等,能够根据人们的语音提示,自动开合相应的垃圾桶盖,实现了智能垃圾分类。
该系统主要由电源、USB转TTL模块、单片机、语音识别模块和舵机组成。以单片机为核心,结合语音识别模块,识别人们所说的垃圾处理方式的关键词指令,根据相应的语音口令来控制相应垃圾桶上的舵机,实现垃圾桶盖自动开合,从而满足只需通过语音操控而无须接触垃圾桶就可实现垃圾分类的要求[1]。该设计系统结构如图1所示。
图1 系统结构图Fig.1 System structure drawing
USB转TTL模块是把电平转换到双方可识别的信号再进行通信[2]。由于电脑和单片机通信接口的电平逻辑不一样,本设计需要通过该模块把USB口的输出转为单片机可识别的电平。
使用的单片机型号为STC11L08XE,单片机基本参数如下:晶振22.118 4 MHz;波特率9 600 bit/S;工作电压3.6~2.4 V/2.1 V (3 V 单片机);工作频率范围0~35 MHz,相当于8051的0~420 MHz。利用单片机的P 2口作为PWM脉冲输出口,P 2口引脚功能分配如表1。
表1 P 2口引脚分配Fig.1 P2 pin distribution
目前,语音识别所采用的方法多为模板匹配法[3]。由于声音的多样性,想要语音识别模块精确得到正确的识别结果,要对很多声音和词语文本进行采集,存到模块数据库中,建造声学模型和语言词典模型,对模块进行事先训练。当有声音信号产生时,模块会对声音信号进行接收并分析,通过时域分析或频域分析后提取声音信号的特征,与声学模型和语言词典模型进行匹配,匹配成功后输出识别结果。
使用的语音识别芯片为LD3320芯片,它是一款不需外接存储器等辅助器件即可实现语音识别、人机对话、声控等功能的芯片[4]。
舵机是带有位置伺服驱动器的小型电机,它的转动角度多为0°~180°,转动角度取决于控制信号的PWM信号脉冲宽度[3],多用于需要角度能够灵活变化且能保持的控制系统。本设计使用的是SG90型舵机。
系统通电后,进行各个模块的初始化操作。语音识别模块进入一级口令识别模式,若一级口令识别成功,则进入二级口令匹配状态,即进入环境输入语音与系统中已设定好的关键词语拼音列表配对模式,配对成功后将进行对应语句的控制操作,驱动相应的舵机动作,达到用户设置好的延迟时间后,舵机复位,环境输入语音与已定关键词语拼音列表配对模式结束,回到口令识别模式进行待机。流程如图2所示。
图2 系统软件设计流程图Fig.2 Flow chart of system software design
该设计的主程序先对语音识别模块和舵机进行初始化,令口令模式进入死循环等待触发,触发成功即进行相应口令匹配和舵机控制,动作完成回到死循环状态,等待下一次触发。
为了较好地实现垃圾准确分类,该设计使用了两级口令模式。设计的一级口令“健康生活”为唤醒功能,二级匹配口令控制分类垃圾桶开盖功能,对于日常生活中各种垃圾的名称(即所扔垃圾的名字,如苹果,纸巾,塑料袋等),模块将自动识别口令并与已经输入的关键词进行匹配,匹配成功就会触发对舵机的操作,相应分类垃圾桶盖便会自动打开。为了防止语音干扰,匹配准确,还需要设置一些防干扰词语,避免相似词语互相干扰而造成输出错误的情况,确保准确率。
由于该设计需要控制4个舵机,每个舵机都需要连接一个5 V电压电源,而模块只有一个5 V电源接口。考虑到4个舵机常为单独动作,可用一个电源,并联4个接口,有足够功率驱动。将5 V电源口和GND口进行焊接,并联出多个5 V电源接口,如图3所示。
图3 集成模块焊接正面图Fig.3 Front view of integrated module welding
要考虑舵机和垃圾桶之间的连接达到最佳效果,一是需要考虑角度吻合,二是需要将舵机固定在垃圾桶旁且不显得累赘。经研究将舵机安放在垃圾桶的内左侧较合适,并在左侧开了小孔让线路穿出来,背后也开了小孔便于用绳索固定舵机,再用绳索将垃圾桶盖与舵机工作手臂相连。经多次调试后,确定将舵机转动角度设为180度的效果最佳。舵机与垃圾桶盖连接图如图4所示。
图4 舵机与垃圾桶盖连接外部图Fig.4 External drawing of steering gear and trash can cover connection
该系统中用到4个垃圾桶,需要4台舵机控制,效果大致相同,软件调试从一台舵机调试开始,再进行4台舵机的编写调试。采用延时函数来输出PWM信号到IO口控制舵机。为防止舵机随意转动,需预先给舵机的转矩设定一个初始角度。使用的单片机的晶振是22.118 4 MHz,所写的延时函数应与之匹配。将舵机程序插入语音识别模块主程序中,将舵机转矩位置初始化程序放在口令识别循环中的首行位置,可达到较佳效果。单台舵机调试完成后,再将4台舵机控制程序插入到主程序中,达到了理想的结果。语音识别智能分类垃圾桶设计成品如图5所示。
图5 语音识别智能分类垃圾桶成品图Fig.5 Finished trash cans of speech recognition of intelligent classification
系统经过调试,该垃圾桶组能准确实现垃圾分类。此款智能分类垃圾桶的设计为人们自觉进行垃圾分类提供了极大的便利,在日常生活中有一定的实用性。