基于单片机和超声波的倒车测距仪
2016-11-30
辽宁机电职业技术学院,辽宁丹东 118009
一、引言
汽车给生活带来便利的同时,也出现一些不安全因素,例如倒车时发生的安全事故占总交通事故的25%。[1]
汽车倒车测距仪(以下简称测距仪)由单片机、超声波传感器、显示模块和语音模块等组成。通过语音提示和显示提醒,帮助司机了解车后情况,提高倒车安全性。超声波测距具有成本低、精度高、可靠,使用方便、应用广泛、实时性好等优点,完全能满足泊车时倒车的需要[1]。
二、测距仪的原理
1、超声波测量原理
超声波测距采用的是非接触式测量,具有不受光线、被测对象颜色、材质等因素影响,对环境有一定的适应能力,且操作简单、测量精度高。
超声波测距的方法很多,其中渡越时间检测法实现起来简单,成本低,可测距离范围较大。渡越时间法超声波测距原理图如图1所示。利用超声波发射探头(T)发出一串超声波信号,遇到障碍物后反射返回,到达超声波接收探头。超声波探头与被测物体之间存在以下关系:
其中,s—超声波探头与被测物体之间的距离,单位:m;
c—超声波在空气中的传播速度,单位:m/s;
t—超声波接收时间,单位:s ;
d—被测距离,单位:m;
h—超声波传感器发射器与接收器之间的距离,单位:m。
这种测量方法叫渡时间法,经过比较与分析,采用这种方法作为超声波测距方法,电路容易实现[2]。
2、超声波传感器
超声波传感器可以分成两类,一类是电气方式,一类是机械方式。压电式传感器是利用超声波的相关特性制作而成的,它是由压电晶片在交变电压的作用下而产生的,具有高频率,短波长,方向性好等特点。
压电式超声波发生器的原理就是压电晶体的谐振效应。它由两个压电晶体片和一个共振将板组成。给一定幅值的交变电压加至压电晶片的两级,这两块金属极板就形成电场,有电场就存在电场力。压电晶片处在电场中,在电场力的作用下发生形变。压电晶片在交变电场力的作用下,发生往复的变形、振动,这就生成了超声波,这个过程称为逆压电效应,也是发射超声波的过程。
发射出去的超声波,一部分在空气中衰减掉了,一部分沿原路返回。由于超声波具有一定的能量,当共振板接收到超声波后,将压迫于压电晶体,产生共振,将机械能转换为电信号,这时就是接收超声波的过程。这时就可以称为超声波接收器。这种超声波传感器的外形及内部结构如图2所示。
超声波传感器发射器与接收器有分开设计的,也有一体模块。当超声波在空气中传播时,衰减的程度跟频率成正比,短距离测距应该选频率高的传感器,长距离距则可以选频率低的传感器。本设计应用在倒车报警系统中,属于短距离测距,所以选取中心频率为40kHz的超声波传感器测距,目标测距量程是2cm~4m,测量精度可以达到3mm。这样传感器方向性尖锐,避开了噪声,提高了信噪比;虽然传播损失相对低频有所增加,但不会给发射和接收带来困难[3]。
3、测量方案选择
测量时对精度影响的因素主要有单片机计数误差、回波时间误差、温度误差、对射角引起的误差等。针对这些因素采用高精度的单片机和晶振,增加发射脉冲的方波数量,进行温度补偿。由于倒车测距中,两者之间的距离远远小于测量长度,所以对射角引超的误差可以忽略。
采用超声波在空气中的传播速度与温度有很大关系,因此需对其进行温度补偿。而温度补偿在软件和硬件上也很容易实现。温度对超声波速度影响非常大,采用DS18B20进行测温。DS18B20是一线式数字温度传感器,温度测量范围是-55℃~+125℃,可编程为9位到12位A/D转换精度,测温分辨率可达0.0625℃。声速随温度变化公式为:
式中,T—温度。
三、汽车倒车测距仪的硬件电路设计
硬件电路主要分为单片机控制电路、LCD显示电路、超声波发射电路、超声波检测接收电路、按键电路、语音电路、电源电路等部分。系统起动后,进行测温,然后开始测距,输出信号驱动超声波发射电路发射超声波,超声波接收电路接收反射回来的超声波信号,再经单片机系统温度补偿计算距离,将结果送至显示电路和语音电路[4]。系统框图如3所示。
1、HC-SR04基本工作原理
在进行硬件设计时,超声波发射和接收电路可以用HC-SR04模块实现,该模块可以提供2~400cm的非接触式测距功能,精度可达3mm,模块包括发射器、接收器、控制电路。本文使用该模块进行测距。超声波测距传模块的实物如图4所示, 4个引脚分别是VCC,TRIG(触发控制信号输入),ECHO(回响信号输出)、GND。当接收端Echo接收到回波信号时,拉高电平信号,表示测距成功,同时,Echo引脚接到单片机的P3.2引脚,
模块基本工作原理是使用单片机引脚10μs的高电平信号触发模块的TRIG,开始测量,模块自动发出8个40kHz的方波,自动检测是否有信号返回。有信号返回时,ECHL引脚输出一个高电平 ,通过反向器接到单片机的中断口,高电平的时间就是从信号发射到信号返回的总时间。如果可以使用该模块,产品可以更加小型化。
2、LCD12864液晶显示电路
LCD12864液晶分辨率是128×64,显示直观、美观,内部有中文字库,可以直接其写入中文显示,避免了字符之间的互相转换;通信方式有并行和串行,含有简体中文字库,有8192个16×16汉字和128个16×8点阵ASCII字符。接口方式简单、操作指令方便。可以显示8×4行16×16点阵的汉字,同时可完成图形显示。该液晶显示器与同类型的图形点阵液晶显示模块相比,不论硬件结构还是显示程序都简洁得多,而且价格略低于相同点阵的图形液晶模块。使用8位并联方式,通过单片机的P1口和P2口连接LCD。
3、温度电路
温度采用DALLAS公司生间的智能温度传感器DS8B20作检测元件,测温范围在-55-+125℃,最高分辨率可达0.0625℃,采用单总线与单片机相连。
4、语音电路
XFS5051CE是科大讯飞推出的一款功能及集成度最高的语音合成模块。模块有中文或英文语言,还支持6种方言。集成了语音编解码功能,能录音和播放。具有编码高效率压缩、音效高质量、编码低延迟等特点。语音编码解码速率可以选8K或16K。因此选择它作为语音模块。模块通讯接口支持UART、I2C、SPI三种通讯方式。单片机通过控制语音模块的7、8引脚,以I2C方式通信[5],其中DAC连接语音模块的17引脚。
5、单片机电路
MSP430系列单片机是美国德州仪器公司推出的汽车类16位超低功耗混合信号微控制器;执行速度快、高精确度,集成度高,开发方便等优点。
单片机的电源电压在1.8V~3.6V,2.2V/1MHz时的电流只有270μA。单片机工作频率最高可达16MHz,指令周期只有62.5ns,也可使用内部数字振荡器(DCO)或外接32768Hz低速晶体,可以在高性能和低功耗之间选择。片上1个10位的A/D转换器,2个16位定时器,4个8位I/O端口,其中P1,P2口有中断能力。有多种SPI,串行口、I2C总线接口。拥有32KB闪存,1KB内存,支持JTAG编程和仿真调试[2]。
四、汽车倒车测距仪的软件设计
软件设计主要由主程序、超声波发射子程序、超声波接收子程序、显示子程序、报警程序、键盘程序及语音程序组成。
超声波主程序流程图如图5所示。主程序用于设置定时器的初值和工作方式等之后,调用超声波发生子程序发出多个超声波脉冲。一旦接收到返回超声波信号,立即进入超声波接收子程序,取出时间值。然后在主程序中,判断是否溢出,没有溢出并调用显示和语音子程序,如果达到报警值还会触发声光报警。
超声波发射子程序的作用是通过单片机MSP430引脚发送20μs的高电平触发信号,然后HC-SR04模块开始发射8个40kHz的超声波信号,检测到有返回信号后停止发射返回。
利用外部中断0检测返回的超声波信号是否结束。当ECHO引脚为同高变低时,说明从到发射信号到返回信号一个过程结束。马上引起外部中断0,在中断中读取时间t中断返回。
主程序中开始测温度,进行温度补偿计算,并计算出相应距离。如果超过报警值,启动声光报警。然后开始LCD显示和语音播放。再一次循环测量,直到用户关闭测距仪。
在测量过程中,通过对MSP430单片机的设置,使用看门狗程序,当出现程序跑飞和死机的现象时,马上重启测距仪。
五、实验数据
在室温下,分别在距2cm,3cm,5cm,20cm,30cm,50cm,1m,2m,2.5m,3.5m,4m,5m 处 放置超声波反射挡板,每一位置连续测量10组数据。利用测量的数据,检验波测距的盲区及最大测量距离。实验结果表明,本系统对于小于2cm的测量距离,由于会造成超声波的多次反射,无法测量,2cm以下为测距仪的盲区。4m内精度为3mm。在距离5m左右的位置,由于超声波回波信号微弱,系统检测精度不够,实际值与测量值之间的偏差在2cm左右。
六、结束语
整个测距仪的硬件以MSP430单片机为核心,超声波发射和收发部分用了一体化的模块HC-SR04实现,抗干扰性极强,可靠性高。使用了温度补偿,提高了测量精度。测距仪能在司机泊车倒车时,能以语音、显示方式或声光报警多种方式,提示后方障碍物的存在,可作为泊车时的倒车雷达使用。系统精度高,体积小,结构简单,使用方便,满足了倒车测距的准确性和应用性,减少了倒车事故的发生,提高了安全性。作为单片机实训项目,让学生真正看到单片机在现实生活的实际应用,提高学生的实践能力、分析问题能力和创新能力。