APP下载

基于STM32的激光与超声波联合测距设计

2021-08-02江智威刘培培殷佳莉

计算机技术与发展 2021年7期
关键词:高电平光敏测距

江智威,刘培培,杨 毅,殷佳莉

(成都理工大学 信息科学与技术学院(网络安全学院、牛津布鲁克斯学院),四川 成都 610059)

0 引 言

近些年,电子技术的不断发展使得非接触式的测距方法层出不穷,相较于传统人工测量存在的费时费力、部分环境人类难以实地测量等问题,电子测量方式应用更加广泛且更贴近生活。例如生活中常见的倒车预警、家装设计、工程测量等。随着5G、AI、物联网等新技术的不断成熟,自动泊车、自动驾驶、智能工作机器人等新科技产品也需要更加稳定的测距工具[1-3]。

常见的测距方法包括:视觉检测技术、雷达测距技术、超声波测距技术和激光测距技术。前两种方案的价格昂贵、软硬件设备复杂,不适合应用于日常生活中。超声波和激光的测距方式因其价格便宜、设备简单,成为了民用领域最常见的测距方式[4]。

超声波测距和激光测距都有较好的精度,但是二者都会因为环境条件的不同而影响其工作的稳定性。超声波测距的精确度容易受到环境温度、湿度的影响,而激光测距则可能受到环境光照强度,尤其是红外光强度的影响而导致测量结果的误差增大[5]。因此,该文设计一种激光与超声波混合的测距方式,利用二者影响因素的不同相互抵消误差,并使用最小二乘法减小测距误差,使测距结果更加准确。

1 系统总体设计

该文设计了一种基于STM32的激光与超声波联合测距方法。该方法所应用的主要设备包括:STM32F103开发板、VL53L0X激光测距模块、HC-SR04超声波传感器、光敏传感器、温度传感器、LCD显示屏。首先利用VL53L0X激光测距模块和HC-SR04超声波传感器模块对目标进行测距,光敏传感器和温度传感器用于监测测试环境的光照强度和温度,通过STM32F103ZET6主控芯片对所有模块发送控制指令和接收数据,并将得到的最终测量距离通过LCD屏幕显示。

该方案的系统结构框图如图1所示。

图1 系统结构框图

2 硬件模块介绍

2.1 STM32F103ZET6主控模块

该文选用的主控芯片是STM32F103ZET6芯片,STM32F103系列芯片是意法半导体公司基于Cortex-M3内核开发的一款芯片,最大工作频率达到了72 MHz。Cortex-M3内部的寄存器、数据路径、存储器接口等皆为32位。Cortex-M3内核采用了哈弗结构,拥有独立的指令总线和数据总线并且包含了多个能够并行处理的总线接口,使得调用指令和读写数据能并行处理,从而提升了工作速度。

该主控模块主要是对超声波测距模块、激光测距模块传输控制指令,控制测距模块工作并接收所测距离数据。主控模块同时控制光敏传感器和温度传感器进行工作,收集光照强度和温度数据对已经获得数据进行补偿和加权计算。

2.2 VL53L0X激光测距模块

VL53L0X是较常用的ToF激光测距传感器,其使用了940 nm无红光闪烁激光器,采用了脉冲式的测距技术,避免了相位式测距方法所存在的检测峰值的误差。脉冲式激光测距的原理和过程是测距仪器发射出的激光经被测物体反射后由接收端接收回射激光,测距仪器记录激光往返时间,测距仪器和物体之间的距离为:

(1)

其中,S1为所测距离,C1为光在空气中的传播速度,T1为激光往返时间。该方法的精确度取决于接收通道带宽、探测器信噪比和时间间隔精确度。

VL53L0X模块原理图如图2所示。从图中可以发现,VL53L0X自带了2.8 V的稳压芯片,因此无论是3.3 V还是5 V的外部电源都能使VL53L0X正常工作。模块通过IIC接口与外部通信,SCL和SDA用于连接MCU的IIC接口[6-8]。

图2 VL53L0X原理

VL53L0X模块提供了3种测量模式:(1)单次测量模式:该模式只触发进行一次测量,测量结束则返回待机状态等待下一次触发;(2)连续测量模式:该模式进行连续的测量,直到用户停止测距才返回待机状态;(3)定时测量模式:该模式下,模块通过用户定义的延迟时间进行连续测量,直到用户停止测距则返回待机状态。用户可以根据需要通过外部的KEY按钮选择工作模式,最大精确测量范围约为1米左右。

意法半导体公司还为VL53L0模块提供了4种不同精度的测量模式:(1)默认精度模式:测距范围约1.2米,测量时间约30 ms;(2)高精度模式:测距范围约1.2米,测量时间约200 ms,黑暗环境中的精确度在正负3%左右;(3)长距离模式:测距范围约2米,测量时间约33 ms,但只适合在黑暗(无红外光)环境中使用;(4)高速模式:测距范围约1.2米,测量时间约20 ms,精度在正负5%左右。

该文采用ATK-VL53L0X-V1.1激光测距模块,具有测量精度高、体积小、支持IIC通信等特点。在测试中,选用单次测量、默认精度模式。

2.3 HC-SR04超声波测距模块

该文选取HC-SR04超声波传感器,此模块精度较高、盲区少,常用于机器人避障、物体测距、倒车雷达等民用领域。HC-SR04包含Vcc、Gnd、Trig、Echo四个接口。Vcc和Gnd分别接入3.3 V电源和地,主控模块发送一个10 μs以上的高电平,Trig端接收到高电平后传感器开始工作,模块内部循环发出8个40 kHz的脉冲,回响信号由低变高则计时开始,当回响信号由高电平变回低电平则计时结束,其高电平通过Echo引脚传回MCU。超声波模块的工作时序如图3所示。

图3 超声波传感器时序

根据图3可以看出,回响信号的高电平持续时间与距离有关,则超声波模块的距离计算公式为:

(2)

其中,S2为超声波模块所测距离,C2为声速,T2为回响信号高电平的持续时间[9-11]。

2.4 温度测量模块

STM32内部有一个温度测量传感器,可以用于测量周围温度。该传感器通过ADCx_IN16通道与开发板的MCU相连接。它的输出电压值与温度相关,并将输出电压转化为数字值输出到LCD屏幕。该温度测量模块的模拟采样时间是17.1 μs,支持的温度测量范围值为-40至125摄氏度,精度约为±1.5摄氏度。

使用内部温度传感器时,先激活ADC的内部通道,将ADC_CR2的AWDEN位设置为1,启动传感器并设置其与ADCx_IN16通道连接。只需通过ADCx_IN16通道读取传感器传回的电压值即可根据公式计算出当前温度。

2.5 光敏传感器模块

光敏传感器作为最常见的传感器之一,有光电管、光敏电阻、光电二极管、光电三极管、CCD或CMOS图像传感器等。该文采用一个光电二极管作为器件的光敏传感器。光电二极管与常规二极管的原理和功能类似,它有一个具有光敏特性的PN结,工作时需对其加上反向电压。当受到光照时,PN结中形成空穴对,使得少数载流子密度增加,从而导致反向饱和电流增大形成光电流,并随着光照强度的变化而变化。

将光电二极管与一个电阻串联,将电流变化转换为电压变化,只需通过测量电压值就可以判断当前的光照强度。整个光敏传感器模块通过PF8通道与MCU相连,通过读取PF8通道的数值计算当前光照强度。

2.6 数据传输模块

该系统的数据传输主要通过ADC通道和IIC通道。STM32F103ZET拥有3个12位的逐次逼近型的模数转换器,最大转换速率为1 MHz,可测量16个外部信号源和2个内部信号源。IIC总线是由SDA数据线和SCL时钟构成的串行总线。当SCL为高电平,SDA由高电平向低电平跳变则开始传输数据,SDA由低电平向高电平跳变时结束数据传输。

测量模块测得距离、温度、光强度的数据后,通过ADC和IIC通道传输给MCU进行下一步处理。

3 系统程序及算法设计

3.1 系统工作流程

该系统利用Keil5对项目软件进行开发,采用C语言进行程序的编写。主要程序包含:系统主程序、激光传感器工作程序、超声波传感器程序、温度传感器程序、光敏传感器程序、数据收发程序、LCD显示程序,整个系统的工作流程如图4所示。

图4 系统流程

第一步:电源通电,系统对各个器件进行初始化。

第二步:温度传感器测量环境温度,对超声波测距进行温度补偿计算。测温公式为:

T={(V25-Vsense)/Avg-Slope}+25

(3)

其中,T为所测温度值,V25是在25摄氏度环境下的基准测量电压值(约为1.43 V),Vsense为当前所测电压值,为Vsense曲线的平均斜率(约为4.6 mV/℃)。

由于不同温度下,声音速度有差别,故对超声波声速进行补偿计算,减少其误差。超声波声速的温度补偿公式为:

C3=331.4+0.6T

(4)

其中,C3为温度补偿后的声音传播速度,T为所测的工作环境温度[12-13]。

第三步:激光模块和超声波模块进行测距工作,光敏传感器对工作环境的光照强度进行测量。该文采用STM32开发板板载的光敏二极管作为光敏传感器。光敏二极管与一个1 kΩ的电阻串联,可通过测量其电压变化,并通过ADC读取电压值。将其量化后,将光照强度分为0至100,其中0对应最暗,100对应最亮。这里主要在太阳光下进行测量,因为太阳光中的红外光对激光传感器的精度影响较大。

第四步:将激光测距和超声波测距的结果进行加权计算,加权计算公式为:

S=(1-A/100)×S1+(A/100)×S2

(5)

其中,S为加权计算后的距离,A为光照强度,S1为激光所测距离,S2为超声波所测距离。

第五步:将加权计算后的距离带入所求得的线性回归模型,求出最终结果。

第六步:最终结果的输出包含多种形式,可以通过LCD屏幕直接显示测距结果,也可以把结果通过串口通信、蓝牙通信等手段输出给PC机、手机等终端设备做进一步的处理。该文采用LCD屏幕作为测距结果输出设备。

3.2 最小二乘回归校正算法

最小二乘法在误差估计的相关问题中有着广泛的应用。它通过已有数据,寻找使误差的平方和最小化的函数,从而达到降低误差的目的。最小二乘法具有最小方差性、线性、无偏性,这三种性质保证了其估计值是相对贴近实际值的结果。

该文选用了一阶最小二乘回归算法对除了温度、光照以外的其他因素造成的测距误差进行校正。最小二乘回归算法的数学模型为:

Dn(x)=a0+a1x+a2x2+…+anxn

(6)

该文采用的是一阶最小二乘回归,故所求的回归模型表达式为:

f(x)=ax+b

(7)

其中,f(x)为最小二乘回归校正后的距离,x为激光与超声波联合测距经过加权计算后的距离,a、b为待确定系数。a、b的值满足方差E取值最小[14-15]。

(8)

其中,yi为实际距离,xi为测量距离。利用式(8)分别对a,b求解偏微分,并令其为0,则a、b的求解公式为:

(9)

利用所测得的数据,求出a、b并带入式(7),可以解得最小二乘回归模型为:

f(x)=1.04x-0.16

(10)

4 实验及结果分析

该文采用50 cm直尺作为标准距离,对激光与超声波联合测距设备进行对照测试。测试分别在上午、中午与夜晚进行,光照强度分别为50、90、0,环境温度为27℃、32℃、26℃。分时段测量的目的是为了模拟不同的工作环境,使得测试结果尽量贴近实际应用情况。测试结果如表1~表3所示。

表1 上午测距结果

表2 中午测距结果

表3 夜晚测距结果

根据表1至表3,再对12次测量的误差分别取平均值,超声波测距的平均误差为4.08%,激光测距的平均误差为4.63%,加权后测距的平均误差为3.59%。通过比较可以得知,加权后的平均测距误差比超声波测距的误差降低了约0.49%,比激光测距的平均误差降低了1.04%。该实验结果表明,根据激光与超声波影响因素不同而采用加权平均计算减小误差的方法是可行且有效的。

利用式(9)继续对加权后距离进行最小二乘回归校正。校正后结果值如表4所示。

表4 最小二乘回归校正结果

通过对表4中校正后误差取平均值,可得校正后平均误差值为2.15%,相较于加权后的平均误差值3.59%再次降低了1.44%。因此,可以得到最终结论,该设计方案相较于传统的超声波测距和激光测距有着更高的稳定性。

5 结束语

基于STM32芯片,功能模块主要包括距离测量模块、外部环境检测模块、数据处理模块和数据通信模块,利用超声波测距技术、激光测距技术为测距基础工具,用光敏传感器和温度传感器作为外部辅助工具,通过ADC和IIC通信接口传输数据,最后采用加权平均计算和最小二乘法的校正算法处理测量数据,设计出了一种更具稳定性的短距离测距工具。该文详细介绍了超声波测距、激光测距和最小二乘回归算法的相关技术原理,描述了系统的硬件和软件的设计流程,制作并设计了模拟实验。实验结果表明,该设计方案能起到提高稳定性、减小误差的作用。该设计成本低、容易操作、稳定性强,可以应用于倒车预警、家居测量、工程测绘等领域中。

猜你喜欢

高电平光敏测距
基于RSSI测距的最大似然估计的节点定位算法
鸣律
鲜木耳真的有毒吗
高电平MMC子模块电容电压控制策略研究
数字电子技术的应用
浅谈物理电路与数字电路
关于Multisim10.0的高电平调幅电路仿真研究
220 kV电网行波测距系统组网运行实践探讨
吃了这些药要注意防晒