基于单片机的激光测距仪设计
2020-07-10张宇杭
张宇杭
摘 要:常规的基于集成电路的激光测距仪设计方法操作繁琐、成本高。基于单片机设计的激光测距仪则可以执行预置、检测、显示、报警等多种操作,同时相对于专用集成电路来说成本更低,更易操作简单可靠。基于此,本文基于脉冲回波测距原理,基于单片机开发了一种广泛使用的激光测距仪。
关键词:单片机;激光测距仪;设计;脉冲回波
测距技术的发展始于接触式测距技术,接触式测距适用性较差,非接触测距技术应运而生,尤其是电磁波测距技术的诞生于应用是测量技术发展史的里程碑。最初被用于雷达测距定位,大大提升了距离测量的精度和速度,也为测量操作的自动化提供了技术支撑。当前,激光测距在工业生产中的应用正变得越来越普遍。基于此,本文针对脉冲回波激光测距仪器设计思路进行了简要论述,并探讨如何基于单片机设计激光测距仪,以丰富激光测距仪的功能,提高其测量精度,简化激光测距操作。
1脉冲回波激光测距仪设计思路
本次设计基于脉冲回波法测距原理开发出一种激光测距仪。当发射探针发射的激光与障碍物碰撞时会被反射,接收探针会接收到反射的激光。设计发射探针、接收探针使其位于同一位置。如果激光从发射到接收用时为t,则激光从探针反射至反射面用时为t/2。激光探针、反射面的距离S可以通过以下公式算得:
其中c表示大气环境中的光传播速度;t表示激光从发射到被接收的用时
因为在实际制作过程中缺少光纤,而激光器和光电二极管的端面形状面积相差很大与上文中的数学模型中所设的理想条件差距过大,所以采用回波法代替,无光纤时可正常使用而在拟合光纤后仅需在算法时间t中减去激光在光纤中的传播时间即可。激光发射与接收模型与上文光纤探针基本相同,不过发射光斑与接收面积的比值更大。
激光器经方波调制后为脉冲信号,因为漫反射及发射角等问题光电二极管采集到为类正弦信号,为方便后续处理需将正弦信号变成高低电平,及做比较处理大于均值的值记为高电平,其余值记为0。电路设计仿真如图1所示:
2硬件设计
2.1光学探针
通过使用Vl53l0X集成芯片,替代原设计中激光器、光电转换模块、流压转换模块。因为其本身具有配套的940nmvcsel发射器和接收光电二极管,在无重组配件选型情况下为设计提供便捷,同时其垂直腔表面发射激光,再加上内部配置物理红外滤光片使其具有更强的抗干扰性,与之配套的spad阵列(单光子雪崩二极管)与相较常规光电二极管性能更强,弱光探测更为敏感。这些使得该芯片具有良好的准确性与较长的探测距离满足设计需求,且其是较为成熟的完全集成微型模块体积小可靠性强,有效避免了缺少检测器械带来的影响,在测距过程中,Vl53l0X芯片发射多个vcsel红外脉冲,然后被待测目标反射回来,并被阵列接收检测,一次测量的时间预计为33毫秒(初始化/测距/内务处理),在实际测量中受传播损耗影响采用23毫秒。最小范围测量周期为8毫秒。
2.2单片机
设计中使用STC89C51单片机作为下位机。该单片机是宏晶科技生产的一种CMOS8位微控制器,指令代码完全兼容传统8051单片机,具有高性能、低功耗、超强抗干扰、使用方便简单的特点,是新一代8051单片機。其主频可达35MHz,定时器精度可达0.028μs,由定时时间t1、t2带来的误差为0.0097mm,误差值可忽略不计。
3电路设计
因为Vl53l0X芯片发射与接受探针间距较小,考虑到后期拟合光纤需要同时使用两枚该芯片,一枚正常进行激光测距使用,另一枚仅提供调制后的940nm激光。使用ALTUMDESIGNER进行电路设计,因为由单片机和集成芯片替代大部分电路,所以需连接芯片相对较少不进行PCB打样设计,供电部分因缺少稳压电源等设备,同时该电路需向计算机进行串行传输,所以通过USB转TTL线同时完成串行传输和供电,基于单片机的激光测距仪电路设计图如2所示
4 程序设计
本次程序设计使用汇编语言编程。程序基本流程是在完成系统的初始化之后,由脉冲产生电路产生脉冲信号,并且由功率放大器电路驱动半导体激光发生器以发射激光,激光遇到障碍物反射回来,经过放大电路后再次产生脉冲信号,单片机记录两个脉冲信号之间的时间间隔,根据上述公式可以计算激光发射点、障碍物之间的距离。只要根据该过程将程序写入单片机,就可以在显示模块上正确显示结果。与启动激光发射电路同时启动计时器,计时器计数功能用于记录激光发射时间和接收到反射激光的时间。当接收到激光时,在接收电路的输出端产生负跳变,在端子INT0或INT1处产生中断请求信号,单片机响应外部中断请求,执行外部中断服务程序,读取时间差并计算出距离。
4.1下位机程序
使用UVisionIDE软件通过C语言进行单片机控制程序编写,该程序采用PWM进行数据读取,距离=高电平时间(μs)/10:
4.2 上位机程序
首先创建一个while循环控制上位机程序开停,然后在其中进行后续程序编写。然后从VISA库调用VISA配置串口按对应端口将串口名称、波特率、数据位、奇偶、停止位和流控等控件连入如图3-8所示:然后创建一个真假循环控制上位机给下位机的数据发送,在其中调用VISA写入,将VISA资源名称与VISA配置串口VISA资源名称输出相连,错误输入与VISA配置串口错误输出相连,然后在写入缓存区创建字符串
在之后创建层叠顺序结构,在其中置入等待,并设计等待时间及每次距离数据读取前延时,在层叠顺序结构同样置入等待为while循环延时时间,以便设备有时间相应。在串行传输和读取中存在机械噪声和丢包现象不利于整体数据波形观测,所以需要进行有效值选择,首先创建一个真假循环真假条件默认为T,在其中调用数据节点、VISA读取,将数据节点的引用与VISA资源名称的VISA资源名称输出相连,错误输入与VISA资源名称的错误输出相连,再将其引用输出与VISA读取的VISA资源名称相连,错误输出与错误读取相连,将VISA读取的读取缓冲区输出的字符串通过字符串转换至数组,然后连入公式节点b1=a4左移八位+a5,如果b1<2500与a0=90与a1=90发生则b=b1输出b,因为发送数据到上位机的时候TX_DATA[0]=TX_DATA[1]=0x5a=90;来判断数据的有效性,a0:帧头0x5a、a1:帧头0x5a、a2:功能字节、a3:数据个数、a4:是数据高八位、a5:是数据的第八位、b1=a4左移八位+a5就是距离位移,通过帧头来判断是否发生丢包,同时距离位移不能超过2500mm因为量程是0-2500以此作为约束去除噪声,如果过大或没有数据仍使用上次赋值的b,将b连接至显示控件,并创建引用节点再真假循环外连接至波形图得到距离曲线程序
结语
综上所述,该激光测距仪性能稳定,功能丰富,操作简便,数据的接收处理效率较高,还可以方便的进行部件的连接和断开,易于维护。经测试器误差在2.15%左右。该激光测距解决了一些实际问题,例如传统激光测距仪的操作复杂,适用性差的问题,应用前景较好。
参考文献:
[1]陈羽. 高精度脉冲激光测距仪的研究[D]. 西安工业大学, 2014.
[2]徐成涛, 吴冠豪, 郑睿童. 脉冲式激光测距仪计时系统设计与实现[J]. 自动化仪表, 2012(05):77-80.
[3]孙兴信. 脉冲式激光测距仪的硬件设计[D].
[4]周宇. 脉冲式激光测距仪的研究与设计[D]. 2016.