基于超声波传感器的测距系统设计
扫描二维码
随时随地手机看文章
安全避障是移动机器人研究的一个基本问题。障碍物与机器人之间距离的获得是研究安全避障的前提,超声波传感器以其信息处理简单、价格低廉、硬件容易实现等优点,被广泛用作测距传感器。本超声波测距系统选用了SensComp公司生产的Polaroid 6500系列超声波距离模块和600系列传感器,微处理器采用了ATMEL公司的AT89C51。本文对此超声波测距系统进行了详细的分析与介绍。
1、 超声波传感器及其测距原理
超声波是指频率高于20KHz的机械波[1]。为了以超声波作为检测手段,必须产生超生波和接收超声波。完成这种功能的装置就是超声波传感器,习惯上称为超声波换能器或超声波探头。超声波传感器有发送器和接收器,但一个超声波传感器也可具有发送和接收声波的双重作用。超声波传感器是利用压电效应[1]的原理将电能和超声波相互转化,即在发射超声波的时候,将电能转换,发射超声波;而在收到回波的时候,则将超声振动转换成电信号。
超声波测距的原理一般采用渡越时间法TOF(time of flight)[2]。首先测出超声波从发射到遇到障碍物返回所经历的时间,再乘以超声波的速度就得到二倍的声源与障碍物之间的距离,即
1、硬件电路设计
我们设计的超声波测距系统由Polaroid 600系列传感器、Polaroid 6500系列超声波距离模块和AT89C51单片机构成。
2.1 Polaroid 600系列传感器
此超声波传感器是集发送与接收一体的一种传感器。传感器里面有一个圆形的薄片,薄片的材料是塑料,在其正面涂了一层金属薄膜,在其背面有一个铝制的后板。薄片和后板构成了一个电容器,当给薄片加上频率为49.4kHz、电压为300VAC pk-pk的方波电压时,薄片以同样的频率震动,从而产生频率为49.4kHz的超声波。当接收回波时,Polaroid 6500内有一个调谐电路,使得只有频率接近49.4kHz的信号才能被接收,而其它频率的信号则被过滤。
Polaroid 600超声传感器发送的超声波具有角度为30度的波束角[3],如图1所示:
图1 波束角
超声波传感器既可以作为发射器又可以作为接收器,传感器用一段时间发射一串超声波束,只有待发送结束后才能启动接收,设发送波束的时间为D,则在D时间内从物体反射回的信号就无法捕捉;另外,超声波传感器有一定的惯性,发送结束后还留有一定的余振,这种余振经换能器同样产生电压信号,扰乱了系统捕捉返回信号的工作。因此,在余振未消失以前,还不能启动系统进行回波接收,以上两个原因造成了超声传感器具有测量一定的测量范围。此超声波最近可以测量37cm。
2.2 Polaroid 6500系列超声波距离模块
Polaroid 6500系列超声波距离模块的硬件电路如图2所示:
图2 Polaroid 6500系列超声波距离模块的硬件电路
TL851是一个经济的数字12步测距控制集成电路。内部有一个420KHz的陶瓷晶振,6500系列超声波距离模块开始工作时,在发送的前16个周期,陶瓷晶振被8.5分频,形成49.4KHz的超声波信号,然后通过三极管Q1和变压器T1输送至超声波传感器。发送之后陶瓷晶振被4.5分频,以供单片机定时用。TL852是专门为接收超声波而设计的芯片。因为返回的超声波信号比较微弱,需要进行放大才能被单片机接收,TL852主要提供了放大电路,当TL852接收到4个脉冲信号时,就通过REC给TL851发送高电平表明超声波已经接收。
2.3 AT89C51单片机
本系统采用AT89C51来实现对Polaroid 600系列传感器和Polaroid 6500系列超声波距离模块的控制。单片机通过P1.0引脚经反相器来控制超声波的发送,然后单片机不停的检测INT0引脚,当INT0引脚的电平由高电平变为低电平时就认为超声波已经返回。计数器所计的数据就是超声波所经历的时间,通过换算就可以得到传感器与障碍物之间的距离。 超声波测距的硬件示意图如图3所示:
图3 超声波测距的硬件示意图
3、系统软件设计
系统程序流程图如图4所示:
图4超声波测距程序流程图
工作时,微处理器AT89C51先把P1.0置0,启动超声波传感器发射超声波,同时启动内部定时器T0开始计时。由于我们采用的超声波传感器是收发一体的,所以在发送完16个脉冲后超声波传感器还有余震,为了从返回信号识别消除超声波传感器的发送信号,要检测返回信号必须在启动发射信号后2.38ms才可以检测,这样就可以抑制输出得干扰。当超声波信号碰到障碍物时信号立刻返回,微处理器不停的扫描INT0引脚,如果INT0接收的信号由高电平变为低电平,此时表明信号已经返回,微处理器进入中断关闭定时器。再把定时器中的数据经过换算就可以得出超声波传感器与障碍物之间的距离。
4、实验数据处理
由于受环境温度、湿度的影响,超声传感器的测量值与实际值总有一些偏差,表1列出了本超声测距系统测量值与对应的实际值:
表1超声测距系统测量值与实际值 单位:cm
从表中的数据可以看出,测量值总是比实际值大出大约7cm,经过分析原因主要有三个方面:第一方面,超声波传感器测得的数据受环境温度的影响;第二方面,指令运行需占用一定的时间而使得测量的数据偏大;第三方面,为了防止其他信号的干扰,单片机开始计数时,驱动电路发送16个脉冲串。对于单个回声的方式,当驱动电路接收到碰到障碍物返回的第四个脉冲时就停止计数,所以最终测得的时间比实际距离所对应的时间多出四个脉冲发送的时间。为了减小测量值与实际值的偏差,我们采用最小二乘法[4~5]对表1的数据进行修正。经过拟合,我们得到下面的方程:
y=1.0145x-9.3354? (其中:y为实际值,x为测量值)
修正后本超声波测距系统测量值与实际值的对应关系如表2所示:
表2 修正后超声测距系统测量值与实际值 单位:cm
从修正后的数据我们可以看出,系统的测量误差在±2%以内,满足我们的测量要求。
5、结论
利用超声波传感器进行测距,其中主要的就是要保证在电路设计上一定要满足电路工作的可靠性、稳定性。经过实验与分析,我们认为用6500系列距离模块和600系列超声波传感器进行距离的测量简单、经济、可靠,测得数据的误差比较小。