0 引言
与市场上价格较高的对射式超声测距模块[1-2]相比,反射式超声测距传感器价格低廉,兼容性和接口标准化程度更好[3]。本文以反射式HC-SR04集成模块为核心器件,提出了一种对射式超声测距系统(The Opposite-type Ultrasonic Ranging System Based on the HC-SR04,OURS)。该系统采用8个40 kHz的超声波作为声源,具有抗干扰性强、声源品质高和性价比高等特点[4]。受限于单个HC-SR04模块的最高精度只有3 mm,整个系统的测距精度只能达到1 cm,但对大型目标跟踪定位等定距精度要求不高的应用场合[1,5],OURS已能很好满足要求。本文系统已成功应用于大学生机器人竞赛,取得了良好的效果。
1 系统工作原理
本文提出的对射式超声测距方案以HC-SR04集成模块为核心器件,并采用渡越时间法[6]构建。
1.1 HC-SR04集成模块
HC-SR04超声波测距模块可提供2 cm~400 cm的非接触式距离感测功能,测距精度可高达3 mm[7];模块包括超声波发射器、接收器与控制电路。图1给出了HCSR04集成模块的工作原理框图,图2进一步给出了HCSR04集成模块工作的基本时序图。HC-SR04的超声波测距公式为:
1.2 利用HC-SR04搭建OURS
1.2.1 搭建思路
(1)通过红外对射开关单元,实现发射探头和接收探头的同步。
(2)将发射接收探头原本应该发射出来的信号物理地清除(屏蔽)。使用大约1 mm厚的热熔胶就可以很好地屏蔽发射声波。
(3)接收探头“受到欺骗”,实际接收的是发射探头发射出的信号(而不是自己发射的回波)。接收探头据此信号测出的距离为两探头间的距离。
1.2.2 用HC-SR04+ATEML89S52构建OURS
考虑到价格低廉、性能稳定等因素,本文首先选用ATEML89S52单片机配套HCSR04搭建OURS系统。但该单片机的电流驱动不足,不宜采用一个引脚为两个模块同时提供逻辑电平,故本文采用图3(a)所示的搭建方案,图3(b)是其对应的理想情况工作时序图。其中,接收方Trig引脚发送高电平是在一个较早的时间点,这个时间点允许一定的任意性。
从图3可看出,系统工作时在发射方Trig的下降沿上给发射方红外开关施加了高电平,使得单片机不必同时为两个模块提供高电平,减轻了其负担。同时,本方案还近似认为红外光传输不需要时间,在超声探头Trig引脚下降沿到达的瞬间,Echo引脚就开始提供计时高电平信号。
1.2.3 用HC-SR04+ FREESCALE HCS08 AW60构建OURS
相比于ATEML89S52单片机,FREESCALE(HCS08 AW60)单片机属于中档产品,价格稍贵,但运行速度快、电流驱动能力强,可同时用一个引脚给多个器件提供电平,允许引入一路不需要主MCU处理的红外信号,从而简化了电路的搭建和处理。图4给出了基于FREESCALE单片机搭建的OURS系统原理框图和工作时序图。
1.3 距离监测与处理
1.3.1 ATEML89S52处理逻辑
接收端ATEML89S52单片机的外置晶振频率为12 MHz,计数器工作频率设定为1 MHz(计数间隔1 s),进行两探头对向测距的处理逻辑:
while(1){
while(红外开关低电平)
刷新时间为0;
while(Echo引脚为高电平)
Do nothing;
读取时间;
计算距离;
显示距离;
}
1.3.2 FREESCALE处理逻辑
接收端FREESCALE单片机使用8 MHz的内部RC振荡器,计数器工作频率设定为4 MHz(计数间隔0.25 s),进行两探头对向测距的处理逻辑:
while(1){
while(Echo引脚为低电平)Do thing;
while(Echo引脚为高电平)刷新时间为当前值;
读取最后一次刷新的时间;
计算距离;
显示距离;
}
2 实验结果及讨论
2.1 实验结果
为验证OURS测距效果,本文针对5 cm、10 cm、…、100 cm共20个间距进行了实验。表1给出了两种方案对应的实验结果,包括每个距离三次测量的单片机计数器平均计数值、视测距和标定后测量距离。OURS系统的视测距结果拟合曲线如图5所示。
由单片机计数器值乘以计数间隔,得到高电平持续时间,该时间值乘以声速可得系统的视测距。由表1及图5可看出,无论是采用ATEML89S52还是采用FREESCALE单片机,其视测距与实际距离都存在相对固定系统偏差。采用Origin9.0工具的线性拟合功能进行视测距系统误差拟合,拟合输出结果如表2所示。
表1的标定后测距,分别给出了根据式(2)、式(3)标定后的测距值。在厘米精度范围,目标系统的测距效果及线性度相当好,存在的误差主要是系统误差。
由拟合结果,可分别获得两种单片机方案的视测距标定公式:
FREESCALE标定测距=1.280 3+1.040 03×视测距(2)
ATEML89S52标定测距=-16.259 4+1.050 21×视测距(3)
2.2 结果分析
实验结果表明,本文系统测距存在系统误差。造成系统误差原因包括元器件的延时、单片机运行速度、超声集成模块近距离检测存在死区以及环境干扰等因素。
(1)52单片机测距系统误差来源分析
系统误差的主要来源是HC-SR04超声探头Trig引脚与Echo引脚时序设计上存在固有时延。在Trig引脚低电平下降沿之后Echo引脚并非立即产生高电平,而是有一定时延。图6是从相关引脚电平监视示波器上截取的一幅图。其中,虚线是Trig引脚电平变化波形图,实线是Echo引脚的电平变化波形图。按图6波形估算,Trig引脚下降沿与Echo引脚上升沿的时间差约为500 ?滋s,这会导致视测距增加十几厘米。
系统误差的次要来源是红外开关的时延。从图3(b)可以看出,接收方红外开关动作滞后,会导致单片机开始计时的时刻滞后,但对Echo引脚的下降沿到达时刻无影响,这会造成视距离的减小。对于标称响应时间小于0.03 ms的高速光电开关而言[8],这项延时会导致视测距缩短约1 cm。
(2)FREESCALE单片机测距系统误差来源分析
误差的主要来源只有红外开关的延时。与52单片机类似,对于标称响应时间小于0.03 ms的高速光电开关而言,其延时会导致视测距缩短约1 cm。
(3)OURS系统测量随机误差分析
考虑到OURS设计一般采用中低端单片机,可用的外中断数少且还要兼顾其他任务,系统采样使用轮询工作模式,最小采样时间间隔与算法执行时间有关。由于Echo引脚电平上升沿和下降沿的到来时间通常是随机地落在两个采样间隔之间,一次过程最坏情况可能会导致两个采样时间间隔的计时时间差。52单片机速度慢些,这项随机误差也会稍大些,可能会带来几毫米的随机误差;而FREESCALE单片机的这项随机误差通常小于1 mm。
此外,由于不同温、湿天气会对声波传播速度造成一定影响,也可能会带来一定的随机误差[9]。
(4)超声模块测距存在近距离盲区
FREESCALE单片机进行低于10 cm测距时,误差明显较大,这与单纯反射模块在近距离测距存在盲区有关。在近距离测距时,已经不能忽略探头上两话筒之间的距离;此外,在近距离对射条件下,探头的体积同样不可简单忽略[10-11]。
3 结论
利用价格低廉的HCSR04模块设计对射式测距系统,性价比高、可靠性好,可用于声源定位、目标跟踪等场合。实验结果表明,该方案测距误差主要是系统误差,可通过标定消除,系统测距误差可控制在±1 cm以下。
参考文献
[1] OTREBSKA M, SKARKA W, ZAMORSKI P. Designing safety systems for an electric racing car[J]. Springer-Verlag TST, 2013, CCIS395:139-146.
[2] 张利红,陈伯俊.一种低成本超声波测距仪的设计[J].化工自动化及仪表,2010,37(8):49-52.
[3] 李军,申俊泽.超声测距模块HC-SR04的超声波测距仪设计[J].单片机与嵌入式系统应用,2011(10):77-78.
[4] 赵凌.基于超声波传感器的测距报警系统设计[J].电子测试,2013(10):35-37.
[5] FL?魷REZ S A R, FR?魪MONT V, BONNIFAIT P, et al. Multi-modal object detection and localization for high integrity driving assistance[J]. Machine Vision and Applications,2011,1:1-18.
[6] 黄增荣,秦会斌,黄博志,等.扩频法超声测距中的渡越时间的确定[J].计量学报,2007,28(3):280-283.
[7] 苏琳.基于HC-SR04的超声波测距器的设计[J].科技信息,2012(9):124-125.
[8] 吴华军.高速光电转换模块关键技术研究[D].成都:电子科技大学,2012.
[9] 买买提热夏提·买买提,亚森江·吾普尔,复尔开提·夏尔丁.简谈空气中的声速与温度关系[J].物理实验,2007,27(11):43-47.
[10] Zhang Qiangli, ZHENG Y P, GAIN G. Flatness considerations on the ultra-wideband low-noise amplifier design[J]. IEEE Transaction, 2005,6(4).
[11] 何希才,薛永毅.传感器技术及应用[M].北京:北京航空航天大学出版社,2005.