一、项目名称:
超声波测算单元
二、项目概述:
对现代汽车应用而言,测距/感知部分相当重要,现今这类技术主要有景深摄像头,激光雷达,毫米波雷达和超声波雷达。
诚然激光雷达和毫米波雷达有更好的性能,但是超声波雷达也有自身的优点:
廉价,可靠,不惧雨雾灰尘,没有隐私风险,没有伤害性风险。
所以超声波在汽车领域最早应用,缺点是性能不够,距离太近。
本项目希望基于简单廉价的硬件系统,研发出灵活有效的算法,提高信噪比,增加测量距离,实现成本优秀的测算单元。
三、作品实物图
本项目是个探索型项目,目标是试验,研究算法。因为时间的关系,目前调试完硬件和初步的算法。
因为硬件上突出简洁,功能性能均由算法实现,所以结构相当精简。
硬件框图:
其中,主控MCU选择了TI的MSPM0G1507,主要是因为其内置了较好的模拟外设,拥有不错的ADC和双内置PGA,所以放大电路都在MCU内部了,电路超简洁:
两个PGA组成两级同相放大器,因为回波信号极小,所以两级都采用最大倍数,32*32=1024倍。
附加一个psram,供存储大量采样数据以调试算法。
超声波驱动采用H桥驱动芯片MX6208,支持车载12V输入,可以实现双倍峰峰值。
对照实物:
其中按大赛要求选择了主控MSPM0G1507,另外FRDM-MCXN947(具有16位ADC可以作为数据参照)实验时用于对比。
模块预留了驱动输入和放大输出接口。
调试时:
软件上的调试结构:
设置TIMERA0输出互补PWM波,按超声波传感器中心频率设定为40KHz,发射一段时间后关闭。
(虽然mx6208有刹车功能,可以输出均接地,但之后仍有相当量的余振只能等待,余振影响最近可测量距离,分体式传感器可以大幅度改善此问题)
之后关闭PWM,并把端口设置改为GPIO,拉低,MX6208输出进入高阻态。
接收到回波信号进入MCU内部PGA两级放大后ADC采样,储存以待分析。
调试状态将内存中的采样数据发送PC,因为上位机软件的要求。比如vofa+的firewater格式要求数据转为ASCII码。
细节见附件源码。效果:
距离墙面2m。
驱动电压为12V
驱动电压为9V
驱动电压为5V
可见即使是5V,短距离也具有实用性。
核心算法:
采用按发射波频率进行结果累加平均,可以有效的提升信噪比。
数据波形:
10倍平均波形:
20倍平均波形
可以看到信噪比的提升。
目前这是比较合适的参数。
算法寻找的峰值点:
取第一个峰值点计算时间,测算出距离:
测量数据在195cm~198cm之间浮动。
分析:
因为运算速度不够,不能随采样数据实时算法处理,所以必须一次性采样全部数据然后计算。为了减少数据量减少计算时间,采用的采样间隔是5us。
对于40KHz的超声波来说,一个波只有5个采样点,很难采到波峰值,精度必然影响很大,识别错过一个波形的误差是0.347mmX25us = 8.675mm,错两个波形就大概到±2cm了。
如果能做到1M(间隔1us)或更高的采样率,精度和稳定性都将更好。
户外测试,干扰更大,距离更开阔,可以达到6m以上较好的效果。
提高驱动电压到14v,则可测到7m多。这个驱动电压是比较低的,通常的超声波驱动可以几十到一百伏。显然还有优化空间。
总结:
项目基本实现了预期效果,验证了高精简的硬件设计配合算法可以实现低成本高可靠高性能的超声波测量应用。同时性能上还有比较大的提升空间。
可以广泛用于汽车、机器人、工业和各种其他场合,前景非常好,
四、演示视频
参数调试:
参考附件
户外测试:
3m稳定性
参考附件
5m稳定性
参考附件
5m对花坛变距离测量
参考附件
6m对墙壁变距离测量
参考附件
五、项目文档
原理图:
参考附件
PCB:
参考附件
程序基于ti mspm0_sdk_2_03_00_07,keil5.38
串口版本:
参考附件
驱动max7219数码管的版本,用于户外测试:
参考附件