- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于超声波测距的导盲系统设计
摘要:文章设计了一种基于超声波测距原理的导盲系统。系统以STC125A60S2单片机为核心控制器件,利用渡越时间法测量经温度传感器DB18B-20补偿后的距离,实现对盲人行走道路上障碍物距离的测量及定位,并通过SYN6658语音模块进行语音播报导航。
0 引言
根据最新研究报告,中国每年新增盲人大约45万,预计到2020年我国视力残疾人数将为目前的4倍,达5000余万。由于生理上的缺陷,盲人在生活、工作等方面有着诸多不便。因此,将现今技术用于盲人导航是十分必要的。
超声波具有方向性强、能量易于集中、传播距离较远及对障碍物定位精确等特点,其产品具有体积相对较小、方便携带、价格低廉等优点。因此采用超声波测距及语音播报实现盲人导航,具有一定的实用价值。
1 超声波测距的原理
1.1 超声波測距方法
超声波是指振动频率大于20kHz以上的声波。超声波测距方法主要有相位检测法、声波幅值检测法和渡越时间法三种。其中,相位检测法精度高,但检测范围有限;声波幅值检测法易受反射介质的影响。因此,本设计采用渡越时间法测距。
超声波测距的工作原理:发射换能器向外发射超声波,同时单片机开始计时,超声波在介质中传播的途中遇到障碍物后会立即反射回来,当接收换能器接收回波时单片机停止计时,从而得到计时器精确记录的时间t,再根据渡越时间法求出目标障碍物距信号发射源的距离。
S=ct/2 (1)
对一般流质媒质而言,声波是一种纵波,传播速度为:c=√E/ρ,其中E为媒质的弹性模量; ρ为媒质密度;c是复数,其实数部分代表传播速度,虚数部分与衰减常数有关。超声波测距原理图如图1所示。
1.2 超声波测距的温度误差分析
空气密度越高,超声波的传播速度就越快,而空气的密度又与温度有着密切的关系,此温度对测量精度有一定的影响。气体中声速受温度影响最大,超声波在空气中传播速度为
C=331.4×1+T/273 (2)
其中T为环境摄氏温度,因此我们需要采用测温模块对温度产生的影响进行补偿。
2 系统硬件设计
2.1 总体设计
本系统由STC12C5A60S2单片机、超声波发射电路模块、回波接收电路模块、测温模块、语音模块五大部分组成。如图2所示。
STC12C5A60S2单片机是本系统的核心,控制各个模块协调工作。通过单片机的P1.0引脚控制超声波发射电路模块产生40 kHz的脉冲信号,并驱动超声波传感器发射超声波。当第一个脉冲发射结束后,启动计数器开始计时,超声波回波信号通过放大和判别后送到单片机的外部中断器,单片机一旦接收到回波信号,便产生外部中断。单片机STC12C5A60S2停止计数器计数,从而得到超声波的在空气介质中的传输时间t,最后通过温度补偿,利用式(1)计算出发射点距障碍物的距离,并通过语音模块播报提示。
2.2 超声波发射电路设计
由于NE555集成芯片搭建电路简单、需用元件少、容易实现,并且产生波形失真度小,故本系统采用NE555集成电路作为发射电路。根据上述,知发射端工作频率为40kHZ,采用NE555芯片构成时基电路及外围元件构成多谐振电路,通过调节电阻R3的值从而改变频率。其工作电路如图3所示。
图3中555定时器构成的多谐振荡器,复位端4由单片机的P0.4口控制,当单片机给低电平时,电路停振;当单片机给高电平时电路起振接通电源后,电容C2来不及充电,6脚电压Uc=0,则Uc=1,此时555芯片内部的三极管VT处于截止状态。这时Vcc经过R3和R2向C2充电,当充至Uc=2/3 Vcc时,输出翻转U1=0,VT导通;这时电容C2经R2和VT放电,当降至Uc=1/3Vcc时,输出翻转U1=1。C2放电终止、又重新开始充电,周而复始,形成振荡。其振荡周期与充电时间tPH和放电时间tPL有关,振荡周期为:
由式(4)可知,555多谐振荡器的振荡频率由R2、R3、C2来确定。在电路设计时,先确定C2、R2的取值,即C2=3300pf,R2=2.7 KΩ。再将C2和R2的值代入式(4)可知:
为增大U1的输出功率,将555芯片的8脚接+12V的电压,同时将其复位端4接高电平。通过调节电位器R3的阻值,使输出波形的频率为40k HZ。
2.3 接收端电路设计
鉴于回波信号的变化范围较大,因此对放大电路的增益提出了两个要求:一是放大增益要大,以适应小信号的需要;二是放大增益能变化,以适应信号变化范围大的需要。
由于回波信号为40kHZ交流信号,频率较高,当回波信号放大时,放大器必须具有良好的交流特性,以提高信号的放大精度。鉴于该接收电路具有信号的转化、放大、检波、整流等特性。因此,我们设计了如图4所示的回波接收电路。
信号流程:当R40收到超声波时,R40将超声波信号变为电压信号,此信号电压加到BG2的基极,经BG2放大后从集电极输出,经C7耦合到BG3基极,被BG3放大后从集电极输出,被C8、D5、D6组成的倍压检波电路变为直流电压。双倍于交流信号电压的直流信号电压加到BG3的基极,BG3再放大后由P送往后继电路。
当R40没有收到超声波时,R40没有交流输出,BG2处于静态,BG3也处于静态。C8、D5、D6组成的倍压检波电路没有直流电压输出,BG4处于无偏置状态,处于截止状态,无信号输出。
BG4是以开关方式工作的,当R40检测到超声波时,BG4饱和,C—E之间等于短路,当R40没有检测到超声波时,BG4截止,C—E之间等于开路。
2.4 温度测量电路
常温下,超声波的传播速度为340m/s,但传播速度易受到空气的温度、湿度、压强等因素的影响,其中温度的影响最大,一般温度每升高1℃,声速增加约为0.61m/s。
本文采用DS18B20检测现场温度,用以实现实际波速的校准。DS18B20是DallaS公司开发的12Wire(单总线)高精度数字式半导体温度传感器。其抗干扰能力强、转换精度高,使用时无需标定或调试,与微处理器的接口电路简单,可方便地实现多点组网测温,给硬件设计带来了极大的方便。
DS18B20单总线通信功能是分时完成的,因此读写时序很重要。系统对DS18B20的各种操作必须按协议进行。
操作协议为:初始化DS18B20(发复位脉沖)→发ROM功能命令→发存储器操作命令→处理数据。系统采用STC89S52作为控制核心,P1.7接数据总线,控制DS18B20进行温度转换和传输数据,同时数据总线上还要接4.7k左右的上拉电阻。
对DS18B20采用外部供电,从VDD引脚接入一个外部电源,优点在于I/O线不需要上拉,而且总线控制器无需在温度转换期间一直保持高电平。这样在转换期间可以允许在单线总线上传输其他数据,硬件电路如图5所示。
2.5 语音电路设计
本系统语音模块采用了SYN6658语音模块。SYN6658通过UART接口或SPI接口通讯方式,接收待合成的文本数据,实现文本到语音的转换它具有小尺寸贴片封装、硬件接口简单、低功耗、音色清亮圆润等优点。除此之外,SYN6658在识别文本/数字/字符串中更智能、更准确,语音合成自然度上升了一个大的台阶。本系统利用该芯片进行语音播报从而实现导航的效果。
主控制器STC12C5A60S2和SYN6658语音合成芯片之间通过UART接口或SPI接口连接,控制器可通过通讯接口向SYN6658语音合成芯片发送控制命令和导航提示语句文本,SYN6658语音合成芯片把接收到的导航语句文本合成为语音信号输出,输出的信号经功率放大器放大后由喇叭播放。
3 软件设计
本系统的软件主要完成超声波的发射、接收、单片机的计时及温度补偿后的距离计算、语音播报等功能。它包括主程序、计时中断子程序、语音播报子程序等。其流程如图6所示。
4 结束语
本系统经过多次试验,测试所得结果与设计要求基本一致。系统成功且精确地测出距离并进行了温度补偿计算,本超声波测距的导盲设计有效距离可达到3.8m,测量精度为2.0cm,同时可以实时地通过语音模块播报提示,具有很好的导航功能,能够满足盲人导航器的设计要求,为盲人安全、快速行走提供了保障。