石伟 杨子龙 朱高阳
【摘要】本文在超声波测距的原理提出了一种导盲眼镜的设计方法。该设计以51单片机为主控核心,将超声波测距后的距离等信息通过语音合成技术实时播报出来。该系统在调整校正后有效距离可达4m以上,精度为2cm。有效地解决了盲人安全行走的问题。
【关键词】超声波;测距;语音合成技术
一、背景及意义
中国是全世界盲人最多的国家之一,目前我国眼部残疾人士多达600万,占世界眼疾人数的18%。眼部疾病在中国也是一个主要的公共卫生问题。由于生理上的缺陷,盲人在生活、工作等方面有着诸多不便。在当今人体可穿戴设备快速发展下,如何设计出盲人可穿戴设备对盲人和社会具有十分重要的意义。
二、超声波测距的实现
(一)超声波测距原理
超声波是一种振动频率高于20 kHz的机械波。目前超声波测距方法主要有相位检测法、声波幅值检测法和渡越时间法三种[1]。本设计采用超声脉冲回波渡越时间法。超声波传感器在发射超声波时开始计时,当途中遇到障碍物时立即回传,接收器接收到反射波时停止计时。设超声波脉冲由传感器发出到接受所经历的时间为t,超声波在空气中的传播速度为340m/s,则传感器到目标的距离S=340*t/2m。这就是渡越时间法的测量原理。
图1 超声波测距原理框图
(二)超声波测距的误差分析
根据超声波测距公式s=c×t,主要分为以下两个方面的误差:
1.时间误差
当要求测距误差小于1mm时,已知超声波速度C=344m/s(20℃室温),忽略声速的传播误差。测距误差△t<(0.001/344)≈0.000002907s即2.907μs[2]。
从而可知在超声波传播速度准确的前提下当要求误差在毫米级时,时间差在微米级。由于89C51单片机的晶振频率为11.1592MHz,因此使得单片机能达到微米级的精度,从而确保误差在1mm之内。
2.超声波传播速度误差
超声波传播受环境温度影响比较明显。温度为0℃时超声波速度是344m/s,30℃时达到349m/s。一般温度每升高一度,传播速度大约增加0.6m/s。若超声波在30℃的环境下以0℃的声速测量100m距离所引起的测量误差将达到5m,测量1m误差将达到5cm。解决温度带来的影响一般采用温度补偿法[3]。由于本设计要求测量距离在5m之内,因此综合考虑可以忽略这种误差。
三、硬件电路的设计
(一)超声波发射电路
超声波发射电路由超声波探头和超声波放大器组成。超声波探头将电信号转换为机械波发射出去,而单片机所产生的40 kHz的方波脉冲需要进行放大才能将超声波探头驱动将超声波发射出去,所以发射驱动实际上就是一个信号的放大电路,本设计由单片机产生40KHz的方波,选用74LS04芯片进行信号放大(见图2)。
(二)超声波接收电路
由于超声波在空气中的传播过程中会发生衰减,如果距离较远,那么接收到的超声波信号就会比较微弱,因此需要对接收到的信号进行放大。超声波接收电路主要是由集成电路CX20106A芯片电路构成的,CX20106A芯片电路可以对超声波信号进行放大、限幅、带通滤波、峰值检波、整形、比较等功能,比较完之后超声波接收电路会输出一个低电平到单片机去请求中断,此时单片机停止计时,并开始去进行数据的处理。
CX20106A芯片的前置放大器具有自动增益控制的功能,当测量的距离比较近时,放大器不会过载;而当测量距离比较远时,超声波信号微弱,前置放大器就有较大的放大增益效果。CX20106A芯片的5脚在外接电阻对它的带通滤波器的频率进行调节,而且不用再外接其他的电感,能够很好地避免外加磁场对芯片电路的干扰,而且它的可靠性也是比较高的。CX20106A芯片电路本身就具有很高的抗干扰的能力,而且灵敏度也比较高,所以,能满足本设计的要求。
图3 超声波接收电路图
(三)语音合成模块
此模块电路采用SYN6658语音合成芯片。SYN6658通过UART接口或SPI接口通讯方式,接受带合成的文本数据,实现文本到语音的转换。具有清晰、自然、准确的中文语音合成效果。可采用GB2312、GBK、BIG5和Unicode四种编码方式[4]。
图4 语音合成模块电路图
主控制器和SYN6658语音合成芯片之间通过UART接口或SPI接口连接,控制器可通过通讯接口向SYN6658语音合成芯片发送控制命令和文本,SYN6658语音合成芯片把接收到的文本合成为语音信号输出,输出的信号经功率放大器进行放大后连接到喇叭进行播放(见图4)。
四、软件设计
主程序对整个单片机系统进行初始化后,单片机提供一个10us以上的脉冲触发信号来触发超声波发射电路,同时将定时器T0启动,在接收到超声波信号后关闭定时器,根据根据时间差计算出距离,然后调用语音播放程序,根据实际距离来选择播报不同的信息。
图5 总系统流程图 图6 语音播放流程图
部分程序:
#include
#include
void main(void)
{unsigned char TempCyc;
Delay400Ms();
LCMInit();
Delay5Ms();
DisplayListChar(0, 0, mcustudio);
DisplayListChar(0, 1, email);
ReadDataLCM();
for(TempCyc=0;TempCyc<10;TempCyc++)
Delay400Ms();
DisplayListChar(0, 1, Cls);
while(1)
{
TMOD=0x01;
TH0=0;
TL0=0;
ET0=1;
EA=1;
while(1)
{
StartModule();
//DisplayOneChar(0,1,ASCII[0]);
while(!RX);
TR0=1;
while(RX);
TR0=0;
Conut();
delayms(80);
} }}
五、結语
本系统经过多次试验,测试所得结果与设计要求基本一致。该超声波测距的导盲设计有效距离可达到3.8m,测量精度为2.0cm,同时可以实时地通过语音模块播报提示,具有很好的导航功能,能够能够满足盲人导航器的设计要求,为盲人安全行走提供了保障。
参考文献
[1]时德钢,刘晔,王峰,韦兆碧,王采堂.超声波精确测距的研究[J].计算机测量与控制,2002,10(7).
[2]纪良文,蒋静坪.机器人超声测距数据的采集与处理[J].电子技术应用,2006.
[3]白顺先.超声波测距系统的设计与实现[J].高校理科研究,2000(08).
[4]SYN6588中文语音合成芯片数据手册[Z].北京:北京宇音天下科技有限公司,2012.
基金项目:国家级大学生创新创业训练计划项目(教高司函[2013]102号)。
作者简介:石伟(1991—),男,山东临沂人,大学本科,现就读于曲阜师范大学信息科学与工程学院,研究方向:电子信息科学与技术。