C8051单片机实现多目标超声波测距的设计

发布时间:2024-02-23  

超声波测距传感器以其测量精度高、响应快和价格低廉而广泛应用在工业现场测距、移动机器人导航和定位等场合。超声波测距传感器常用的方式是1 个发射头对应1 个接收头,也有多个发射头对应1 个接收头。 它们共同之处是:每个接收头只测量一个位置,这个位置就是除盲区内因发射的超声波旁瓣引起的接收信号超声波包络峰值外,第1个接收信号超声波包络峰值对应的距离。 在机器人自主导航避障时,机器人只关心最近障碍物的距离,是能够完成自主避障的。 但是在机器人定位时,尤其在动态环境下,1 个接收头同时测量多个距离,能够更多地描述环境信息,这对机器人用超声波定位具有重要意义。


1 超声波

1. 1 超声波测距原理

超声波测距原理比较简单,一般是采用时差法。即:通过检测发射的超声波与其遇到障碍物后产生回波之间的时间差Δt ,求出障碍物的距离d ,计算公式为: d = cΔt/ 2 ,其中:

C8051单片机实现多目标超声波测距的设计

c 为超声波波速, T1 为环境摄氏温度。

1. 2 发射信号超声波包络

在发射头两端加40 kHZ 的矩形脉冲电压, 压电晶体把电能转变成机械能,带动其上振动板运动,见图1. 振动板的固有频率是40 kHZ,由于共振,振动板很快起振,然后稳定, 脉冲电压撤销, 振动板作阻尼振荡衰减。 若振动板长时间工作在最大振幅状态,即振动板新增能量与其损耗能量相等,这样产生的超声波能量大,有利于提高信噪比,但是接收信号超声波包络从起振到峰值的时间将变长(放大器增益小,不出现削顶的情况下) ,不利于阈值选择,误差变大,也不利于第二个位置的测量,另外盲区也会增大。 振动板振动时,空气、压电晶体(起振时是激励)等消耗振动板能量, 其中受空气阻力消耗的能量转变成发射超声波。 压电晶体激励撤销,则振动板振动作阻尼呈指数关系衰减。 把振动板简化成是一个弹簧振子,设振动板在一个正弦周期( T = 25μs) 内是标准正弦波,则在发射头振动板运动周期数n ≤发射头激励脉冲数N 时,发射头振动板运动满足:

x = A ( n) sinωt (1)

式中t ∈[ ( n - 1) T , nT ] , A ( n)是第n 个周期内的振幅。

k 是常数, E( n) 是第n 个周期内振动板的机械能。

a 是一个与衰减有关的常系数, Ef ( n) 第n 个周期内振动板损耗的机械能。

ΔE 是压电晶片每次施加的能量。

在n 》 N 时, 发射头振动板运动能量满足:

1. 3 接收信号超声波包络

发射头产生的超声波遇到不同介质就会产生回波,接收头把回波转变成电能,产生接收信号。 现分析超声波垂直入射到墙壁面时的接收信号,接收信号超声波包络由起振阶段和衰减阶段两部分组成,如图1。

接收信号与回波超声包络的各正弦波幅值关系是:

式中W R 是接收信号包络峰值,W Echo 是回波包络峰值, H 是回波的单位冲击响应。

C8051单片机实现多目标超声波测距的设计

图1 实际接收信号( N = 5)

从图1 中可看出, 接受信号包络从起振到峰值的时间要小于从峰值衰减至噪声幅值的时间。 实际总长度接近1. 5 ~ 2 ms ,而从起振到包络峰值只需250μs 左右,即9 ~ 12 个T , T = 25μs.

根据发射的超声波能量特点, 得出接收信号每个周期能量的表达式, 设每个周期内的正弦波是标准正弦波且发射头振动板尚未达稳定振动状态。

N 是发射头激励脉冲数。

由(6) 、(7) 式知:在N , a 一定的情况下,每个反射面产生的回波作用接收头得到的接收信号经归一化后是相同的。 为了便于取阈值,分析接收信号包络的特性与n、N 的关系是必要的。 首先找出定值a ,方法是取N = 5 , a值在一定范围内变化得到多幅仿真图,经比较a = 5 000/ s 时得到的图2 与图1 接近。 根据得到的a值可仿真N = 12 时的接收信号,见图3.

C8051单片机实现多目标超声波测距的设计

图2 接收信号仿真( N = 5 , a = 5 000/ s)

C8051单片机实现多目标超声波测距的设计

图3 接收信号仿真( N = 12 , a = 5 000/ s)

2 阈值和分辨率

阈值的选取,决定本测距系统的测量精度。 由于回波的能量大小受入射角、反射面大小、形状和材质、空气的湿度和温度等因素决定,为了较精确地测量文献中机器人与墙壁之间的距离,下面只针对超声波垂直入射墙壁,接受信号的大小进行分析。

在测量时,一旦有干扰物挡住超声波到墙壁的行进路径,则墙壁返回的信号将减弱,过高的阈值可能测不到墙壁回波信号,动态阈值因无规律可循而无法使用,故此阈值采用小固定值,因接收信号中的噪声峰值较稳定,固定阈值取3~5 倍噪声峰值。 由于墙壁回波信号不确定地高低变化,在标定测量参数时,用示波器采集信号,以接收信号包络峰值的0. 5 倍处(即图2 中n = 4 或5 处的时间) 作为距离信息。 这样处理的目的是: 即使接收信号过强或过弱,测距误差始终在3~5 cm 以内。 当N 过大时,盲区会增大同时测量精度也会下降,见图3.

多目标测量要能区分出两个不同目标。 由于阈值取得小,则系统的分辨能力很差,从图2 上可看出接收信号经1. 5 ms 后正弦幅值是包络峰值的0. 015倍。 图2 的波形只有在超声波垂直入射墙壁时才能得到,在大多数情况下接收信号从起振到包络峰值基本固定,但是接收信号从包络峰值以后各不一样,一般从起振经1. 5 ms~2 ms 后都会降到阈值以下。

在测量墙壁距离时,只要干扰物与墙壁保持30 cm以上距离则墙壁距离能较精确获得。

3 系统硬件

C8051 系列单片机具有丰富的模拟、数字外设和多种总线接口,支持在线编程,是很多测控系统的首选。系统硬件框图如图4 ,C8051F021 有5 个定时器,5 个PCA 通道,测4 个方向的超声波传感器发射头可共用1 个40 kHz 方波信号,实行同步发射;4 个接收头可接入PCA 的4 个通道。 信号放大电路的放大倍数在800 左右,即使接收信号经过带通滤波器,噪声峰值也达30 mv.

C8051单片机实现多目标超声波测距的设计

图4 单接收头多目标测量电路框图

C8051单片机实现多目标超声波测距的设计

图5 用示波器标定系统(只有一个发射头和一个接收头)

4 系统软件

系统软件基本构架如下:

void main ()

{ cONfig () ; EA = 1 ; While (1) {} ; }

void time0_inter () interrupt 1 {}

void time1_inter () interrupt 3 {}

void time2_inter () interrupt 5 {}

void time3_inter () interrupt 14 {}

void time4_inter () interrupt 16 {}

void PCA_inter () interrupt 9 {}

初始化程序config () : I/ O 交叉开关配置;使用外部时钟,指定系统时钟;time 0~4 中断使能,其中time 0 溢出中断发生,产生40 kHz 方波信号输出;PLA 中断开启。

中断函数time0_inter ( ) :产生5 个40 kHz 方波信号输出后关闭time0 中断, TF0 = 0 ; PLA 溢出、边缘捕捉中断开启。

中断函数PCA_inter () :若是溢出中断发生(30ms) ,则关闭PCA_inter ( ) 中断,CF = 0 ,开启time0中断;若是CCFn = 1 ,则记下定时器时间(与初值相减后代入标定式得距离) ,给定time n 计时初值并启动time n 溢出中断( 2 ms) , 关闭CCFn 中断,CCFn = 0.

中断函数time1 _inter ( ) ~ time4 _inter ( ) : 当time n 中断发生则开启CCFn 中断,关闭time n 中断, TFn = 0.


5 结语

本文对单个接收头在一次采样时间(30 ms) 内测量多个目标进行了尝试,仿真并分析了接收信号波形,用0. 5 倍包络峰值标定而用小阈值测量,在2个目标与接收头距离之差大于30 cm 以上时能较精确测量出2 个目标,误差不超过2 cm.

由于一次能在同一时刻测多个距离,增大了超声波传感器捕获的信息量,移动机器人装配了该传感器能在人员不是密集的动态环境下根据4 面墙壁定位。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    简易24M逻辑分析仪电路分析;简易24M逻辑分析仪电路分析 最近在写一个I2C外设的驱动程序,奈何一直没有调试通,于是就开始怀疑I2C协议是否存在问题。无奈之前某宝买的逻辑分析仪坏了(20块的......
    你要使用RCC功能,那么可以看到0x40021000•0x400213ff这部分地址需要有读写属性。 03跟踪某个变量 1)找到逻辑分析仪 完成了基本的配置以后,我们就可以debug了 Debug......
    调试测试 五、开发板实物调试 逻辑分析仪准备 逻辑分析仪上位机软件学习 下载程序 通电运行 观察逻辑信号 六、日志调试 串口软硬件工具准备 串口程序创建 日志程序编写方式 调试输出信息 ......
    基于STC12系列单片机的通用红外遥控信号分析程序(一);前言   最近学51单片机学习到红外遥控解码与发送部分,开发板的相关教程只有NEC协议的解码,基本的解码套路是1838接收头输出管脚接单片机......
    据中对应于芯片输入管脚的那些数据位是激励位,对应于输出管脚的数据位是功能正确时的响应。对于功能测试,测试矢量预先根据真值表生成并存于单片机FLASH中。如果是逻辑分析,测试矢量由用户提供。响应......
    电源。      2)在电梯控制系统中,非常重要的组件模块是高精度检测电梯重量的重量检测模块。价格便宜、检测精度高的重量检测用于基于单片机的电梯控制系统的重量检测模块中。可以在0......
    debug两个部分设置。 3.变量和函数名自动补全以及中文乱码设置。 4.逻辑分析仪。信号不存在或者不能出图形。 ......
    手把手教你基于RT-Thread Studio使用STM32单片机的PWM外设;一、使用说明 目前我使用的是STM32L475系列单片机,是ali当时在PDD 50块钱卖的一个开发板,其他STM32......
    公司推出了自己的开发平台以及相关CPU的IP核,常见的为两种:一种是通用型CPU,如xilinx和altera公司的32位以及64位通用CPU核;还有就是专用型的,常见的为51系列单片机的CPU核,但是目前关于单片机的......
    师在遇到这样的挑战时,就应该选择逻辑分析仪来帮助设计。近年来,逻辑分析仪的性能和易用性都有突飞猛进的发展,而对于具备视窗用户接口和基于视窗的开放式PC控制器、所有......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>