原创 基于超声波传感器的测距系统设计

2009-7-10 20:42 2201 4 8 分类: MCU/ 嵌入式

基于超声波传感器的测距系统设计


来源:微计算机信息 | 赵广涛 程荫杭



       安全避障是移动机器人研究的一个基本问题。障碍物与机器人之间距离的获得是研究安全避障的前提,超声波传感器以其信息处理简单、价格低廉、硬件容易实现等优点,被广泛用作测距传感器。本超声波测距系统选用了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系列超声波距离模块 


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系列超声波传感器进行距离的测量简单、经济、可靠,测得数据的误差比较小。

PARTNER CONTENT

文章评论4条评论)

登录后参与讨论

用户536946 2009-8-13 18:56

sdk131416@126.com

用户536946 2009-8-13 18:54

能不能给点6500资料啊 小弟最近也在弄这模块 加电源测输出时没49.4k的波形啊

用户1537120 2009-7-25 21:34

不是啊!可以长的!我用凌阳的模块能测7米啊!

用户411614 2009-7-23 09:55

超声波最小测距只有37cm,不能再近点了吗?
相关推荐阅读
用户1537120 2009-11-21 18:57
关于ATmega16的延时程序
#include<iom16v.h>#define uint unsigned int#define uchar undigned charvoid delay(){      asm("...
用户1537120 2009-11-21 18:57
icc中文使用说明
icc中文使用说明,可以让初学者很快上手的文档。...
用户1537120 2009-11-21 18:57
AVR需要掌握的东东
    ★单灯闪烁实验    ★循环灯显示实验    ★键盘识别实验    ★定时器实验    ★PWM应用实验    ★多功能流水灯实验    ★简单时钟实验    ★按钮控制灯的实验    ★定时...
用户1537120 2009-11-21 18:57
ATmega16的熔丝设置详解
初学者对熔丝经常不解,AVR芯片使用熔丝来设定时钟、启动时间、一些功能的使能、BOOT区设定、当然还有最让初学者头疼的保密位,设不好锁了芯片很麻烦。要想使MCU功耗最小也要了解一些位的设定<?x...
用户1537120 2009-11-21 18:55
ICCAVR与Proteus联机调试图解教程
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />注:附件中有完整的文档 大家都知道I...
用户1537120 2009-11-21 18:53
转:AVR熔丝位配置详解
AVR开发前准备—熔丝位(Fuse)快速入门本页关键词:AVR 熔丝位(Fuse)快速入门 熔丝位 熔丝的作用AVR通过熔丝来控制芯片内部的一些功能,比如JTAG,时钟的使用,掉电检测电压,是否允许调...
EE直播间
更多
我要评论
4
4
关闭 站长推荐上一条 /3 下一条