摘 要:本文介绍了设计一种垃圾分类语音系统,主要由安装在垃圾桶把手处的压力传感器,检测放大器,中央处理器,语音识别器,语音输出端,语音测试端以及供电电源组成;以实现语音提示,垃圾桶自动开合,垃圾自动分类等主要功能。
关键词:语音提示 自动开合 垃圾分类
中图分类号:G642 文献标识码:A 文章编号:1672-1578(2018)01-0054-02
1 引言
随着垃圾产量日益增长。其引发的环境问题日益突出。面对垃圾泛滥成灾的局面,世界各国的视线已经不停留在如何控制和销毁垃圾的问题上,而是采取积极的态度和有利的措施进行科学的处理,回收利用垃圾,实现资源的重复利用。欧美、日本等发达国家已实行垃圾分类政策多年,但垃圾分类主要依靠于人工分拣,分类过程繁琐。2015年4月,国家发改委、住建部、财政部、环保部、商务部联合印发通知,确定南通、南京、苏州等26个城市(区)为第一批生活垃圾分类示范城市(区)。“十二五”期间,市委、市政府决定,在南通市区范围内率先启动生活垃圾分类试点,将生活垃圾分类管理列为生态文明建设重点范围,力求通过开展生活垃圾分类管理,提高垃圾资源化处置管理水平,促进循环经济发展。因此生活垃圾分类,势在必行。
因此如何通过垃圾分类管理,最大限度地实现垃圾资源的利用,减少垃圾处置量,改善人类生存环境质量,是当前世界公共关注的问题。本文所设计的垃圾分类语音系统,通过设置语音系统能够有效提高垃圾分类的准确性,还能起到智能开启垃圾桶的效果。
2 总体设计
本文设计的垃圾分类语音系统能够实现语音提示以及垃圾分类,防止垃圾誤放的能力,包括安装在垃圾桶把手处的压力传感器,检测放大器,中央处理器,语音识别器,语音输出端,语音测试端以及供电电源;供电电源将电源电压转换成各个部件所需要的电压并给各部件供电,压力传感器与检测放大器电连接,检测放大器与所述中央处理器电连接,中央处理器与所述语音识别器电连接,中央处理器用于根据压力传感器信号判别垃圾桶是否打开,通过串口通讯给语音识别器发出播放相应语音命令;语音识别器分别与语音输出端及语音测试端电连接,语音输出端将语音识别器播放的语音段电信号转换成声波,语音测试端利用按键测试语音识别器是否工作正常。
当用户手握把手并打开垃圾桶盖时,传感器模块感应打开垃圾桶盖的压力或振动,并将压力或振动信号转换成电信号,经放大滤波比较等,然后将处理后信号送入CPU模块,通过程序控制与判断,得出垃圾桶盖打开,然后通过串口发出命令给语音模块播放相应语音,告知用户投放哪种类型的垃圾,以便起到更好的垃圾分类效果。总体设计框图如图l所示。
3 控制部分硬件电路设计
样机采用典型sTC89C51型单片机,控制电机运转,实现垃圾桶自动开合、检测分类、语音提示等主要功能。控制电路原理图如图2所示。从功能模块的角度,可以将垃圾分类语音系统分为五个主要模块。各模块具体功能如下:
(1)电源模块:电源是保证机器人稳定、可靠运行的关键部件,它直接影响着机器人性能的好坏。将电源电压转换成各个部件所需要的电压并给各部件供电。电机电源采用稳压电源模块,通过电源稳压芯片如7805等,转换成系统要求的5V直流,并整流滤波使电压稳定。
(2)语音模块:语音识别器分别与语音输出端及语音测试端电连接,语音输出端将语音识别器播放的语音段电信号转换成声波,语音测试端利用按键测试语音识别器是否工作正常。
(3)压力传感器模块:压力传感器通过感应打开垃圾桶盖时触摸产生的压力与振动,并将压力与振动信号转成成电信号,送给检测放大器。
(4)检测放大器模块:检测放大器将压力传感器输出信号进行滤波放大整形,使之符合CPU模块识别要求。
(5)CPU模块:中央处理器用于根据压力传感器信号判别垃圾桶是否打开,通过串口通讯给语音识别器发出播放相应语音命令。
4 软件程序设计
本设计在keil环境中采用C语言编程:
//c语言源程序
#include
typedef unsigned char uint8;
sbit KEY1=P1^7;
uint8 First[]={0x7E,0x04,0x03,0x00,0X01,0xEF};
/*UART初始化 波特率:9600*/
void UART_init(void)
{
SCON = 0x40; // 10位uart,允许串行接受
TMOD = 0x20; // 定时器1工作在方式2(自动重装)
TH1 = 0xFD;
TL1 = 0xFD; //设置波特率为9600
TR1 = 1;
}
/*外中断0下降沿触发,并打开总开关、分开关*/
void int0_init(void)
{
IT0 = 1;
EA = 1;
EX0 = 1;
}
/*UART 发送一字节 入口参数uint8的数据类型 即要发送的数据*/
void UART_send_byte(uint8 dat)
{
SBUF = dat;
while (TI == 0);
TI = 0;
}
/* UART 发送字符串
第一个参数要发送字符串或数据的首地址
第二个参数是要发送的数据或字符串的长度*/
void UART_send_string(uint8 *buf,uint8 len)
{ uint8 i;
for(i=0;i UART_send_byte(*buf++); } void delay(void) { unsigned int j; for(j=0;j<10000;j++); } void my_int0() interrupt 0 { EX0 = 0; UART_init(); UART_send_string(First,6); KEY1 = 0; delay(); KEY1 = 1; EX0 = 1; } main() { int0_init(); } ;匯编语言源程序 ORG 0000H LJMP MAIN ORG 0003H LJMP MY_INT0 ORG 0100H MAIN: SETB IT0 ;下降沿触发中断0 SETB EA SETB EX0 SJMP $ MY_INT0: CLR EX0 LCALL FASONG CLR P1.7 ;亮灯示意指令发送完毕 LCALL DELAY SETB P1.7 SETB EX0 RETI FASONG: MOV SCON, #40H ;串口为工作方式1 MOV PCON, #00H ;SMOD=0,波特率不倍增 MOV TMOD, #20H ;定时器1工作模式2 MOV TH1, #0FDH MOV TL1, #0FDH ;11.052MHz,9600bps SETB TR1 CLR A MOV R7, #06H MOV DPTR, #TABLE LOOP: MOVC A,@A+DPTR MOV SBUF, A JNB TI, $ ;等待发送完毕 CLR A CLR TI INC DPTR DJNZ R7, LOOP CLR TR1 RET DELAY: MOV R6, #01H L0: MOV R5, #0FFH L1: MOV R4, #0FFH DJNZ R4, $ DJNZ R5, L1 DJNZ R6, L0 RET TABLE: DB 7EH, 04H, 03H, 00H, 01H, 0EFH ;播放第一首歌 END 5 结语 本设计通过设置语音系统能够有效提高垃圾分类的准确性。有助于树立正确的垃圾分类的观念,起到很好的引导和管理作用,并且系统的智能化程度高,并有助于节能环保。 参考文献: [1] 樊纲.低碳城市在行动[M].北京:中国经济出版社,2011. [2] 王子彦.中国城市垃圾分类回收的问题及对策[J].生态经济,2009. [3] 徐金龙.城市生活垃圾管理的国际经验[J].生态经济,2012. 作者简介:薛小晶(1982-),女,南通科技职业学院讲师,主要从事机电专业教学研究。