APP下载

超声波测距仪的设计与研究

2020-10-27杨澳妮吴若洁

电声技术 2020年6期
关键词:测距声波障碍物

时 杨,杨澳妮,吴若洁,徐 强

(四川师范大学,四川 成都 610000)

1 引言

超声波的检测通常相对快速、方便且能够很好地实现实时控制,在实时测量的高精度方面可以很好地满足科学和工业实用指标的要求。非接触式超声波的测距系统可广泛应用于防洪、空间定位、物体识别与定位、车辆安全与驾驶、辅助控制系统甚至是地形水文地貌等领域。因此,目前研究的超声波测距系统具有重要的经济学现实性和社会应用意义。

2 系统的硬件设计

该系统以STC89C52 为控制核心,硬件功能分为温度补偿、测距以及显示3 大部分,预留了按键电路供以后扩展功能使用,如语音播报等。系统总体框图如图1 所示,硬件设计电路图如图2 所示。

2.1 单片机选择

因为系统需要具有显示控制电路、温度测量电路以及测距电路,且需要使用更多的I/O 接口,所以使用的是STC89C52 微控制器。STC89C52 是一款低成本功耗、高性能的CMOS8 位微控制器,片上具有8 kB 的闪存Flash、32 位的I/O 线、3 个16位的定时器/中断计数器、1 个6 级定时器和中断结构的载体,完全满足了系统需求。

2.2 超声波测距模块设计

本系统主要采用HC-SR04 作为测距模块,自动向传感器发送8 个40 kHz 的方波。当传感器检测信号看到其中有方波信号返回时,IO 口Echo 输出为高电平;传感器未检测到信号时,Echo 为低电平[1]。

实际进行测量时,探头发射超声波。发射的同时开始计时,当超声波遇到障碍物时返回[2],接收探头检测到返回的超声波后停止计时,只需要记录时间量为t。通过公式s=vt/2,可得到障碍物距离s。

2.3 温度补偿模块

超声波在空气中传播的频率和速度一般会随周围环境的温度而发生变化,因此要精确测量与某个特定目标或其他物体之间的距离时,一定要注意确保周围的温度都处于合适的范围。

本系统主要采用DS18B20 温度传感器进行声波温度的补偿。声波在环境中传播的速度v用声波温度公式v=331.5+0.607t(m/s)计算,式中t为声波补偿温度(℃),由此可以减小声波随环境中温度变化引起的测量误差。

2.4 显示模块

LCD1602 能够清晰准确地显示字符和数字。本系统采用它作为显示模块,其中数据引脚连接到微控制器端口P0。

3 系统的软件设计

优秀的软件设计可以提高系统的可靠性,有效提高单片机的运行效率[2]。本设计将程序进行分块设计,分为测距程序、测温程序等。

3.1 主程序设计

上电后,单片机自动初始化读取端口和计数器的中断,先计算读取端口的温度,保留一个小数点后,将温度数据存储在单片机中。调用一个测距子程序,根据测距子程序计算当前的声波速度,以获得与障碍物的距离,并将当前的温度和障碍物的距离一起显示在LCD 屏幕上。主程序流程如图3 所示。

3.2 超声波测距程序设计

上电后单片机自动初始化。Trig 为高电平时,HC-SR04 开始正常工作,延时10 μs。先关闭单片机定时器,计数器自动清零。单片机检测到Echo=1时立即启动定时器,Echo=0 时单片机关闭定时器。Echo=1(高电平)的时间t即单片机超声波从发射到返回接收的持续时间[1],计算可得到距离s。测距流程如图4 所示。

4 系统测距结果及分析

为了分析系统误差,采用控制变量法,分以下4 组情况进行测量。

第1 组:正常情况下,超声波测距仪有温度补偿,室温19 ℃,障碍物为光滑的墙壁。

第2 组:只改变温度,即当温度升高到30 ℃,有温度补偿,障碍物为光滑的墙壁。

第3 组:只改变障碍物的粗糙程度,即当障碍物为粗糙的物体如纸浆盒时,温度为室温19 ℃,有温度补偿。

第4 组,没有温度补偿,即室温19 ℃,障碍物为光滑的墙壁。

测试数据如表1所示,其中误差均为绝对误差,测量结果和误差的单位均为m。

在0.03%误差下分析第1 组数据如图5 所示,对不同条件下的误差进行对比如图6 所示。

第1 组,在0~2 m 范围内,绝对误差不超过0.02 m,最大误差百分比为2.5%。在0.03%误差分析下,R2接近1,拟合优度好,测量结果精确度高。

第2 组,和第1 组误差对比,说明存在温度变化,同样有温度补偿,测量结果差距较大,最大误差在0.04 m,最大误差百分比约为5%。这是因为测量温度的升高将直接导致超声波探头的发射、传感器接收超声波信号的能力大大下降,同时超声波信号也会变弱,直接使得误差幅度变大。

第3 组,和第1 组误差对比,分析可得障碍物粗糙程度对测量结果的影响较小,误差在0.03 m 以内。可见,虽然被侧物粗糙,但在一定较短距离内超声波扩散程度低,接触到障碍物的点变化不大。

表1 不同条件下的测试数据

第4 组,没有设备进行温度补偿时,最大的误差范围是0.04 m,与第1 组相比精确度有所下降。这主要是因为超声波在空气环境中的传播速度易受工作温度的影响,一般工作环境温度每升高1 ℃,声速可以增加约0.6 m/s。因此,当工作环境温度变化剧烈时,一定要引入温度补偿来降低测量误差。

系统误差主要来自以下几方面。第一,发射超声波和启动定时器之间的时差。单片机一次只能处理一件事情,启动发射超声波和开始计时实际上是先后完成的,存在偏差,但只要指令速度足够快,可以弥补该项偏差。第二,收到回波和检测出回波的滞后。此时,可适当提高检测电路灵敏度进行补偿,但灵敏度过高会将一些干扰信号当成回波,导致单片机误判。第三,收到中断和中断响应的时间差,可通过提高单片机速度进行弥补。第四,计时器本身误差。此时应提高计时的最小单位,同时选用更好的晶振。

本文只在2 m 范围内进行误差测量和分析,最短测量距离为0.03 m。当实际距离小于0.03 m 时,由于超声波往返时间过短,单片机来不及计时,不能很好得计算声波持续时间,所以存在测距盲区。另外,超声波的最大振动幅度、反射和与入射声波之间的距离和夹角等因素,都会直接影响测量到该超声波系统的最大可测距离。

5 结语

本文主要研究基于单片机的超声波测距系统,将超声波在发射和接收之间的时间差与声波传播速度进行结合,经过温度补偿后,计算得出与障碍物的距离,进而由LCD 显示出来。通过分析实验结果可得,该测距控制系统的测量精度较高,可以广泛扩展应用于倒车行驶雷达、工业监控以及自动化远程监控等诸多领域。该超声波测距系统误差由多种原因引起:温度越高,测量精度越低;距离越远,误差越大;障碍物的粗糙程度也会对测量结果产生影响。

猜你喜欢

测距声波障碍物
基于RSSI测距的最大似然估计的节点定位算法
高低翻越
赶飞机
基于单片机的超声波测距导盲杖设计
直流系统行波测距的误差分析
基于VMD和TEO的高压输电线路雷击故障测距研究
月亮为什么会有圆缺
声波杀手
声波实验
“隐身 金字塔”