基于VL53L0X的激光避障传感器设计
2019-07-01
(江西师范大学 江西 南昌 330022)
由于在自动引导运输车(AGV)、生产线等自动化设备时刻运动的领域,需要一种可以自动感应障碍物并做出报警的传感器,这种传感器需要有一定的避障角度,并且可以由用户任意设置避障距离,同时受外界的干扰,特别是红外线干扰要低。当前方障碍物的距离小于设定值时,传感器要做出及时的报警。
意法半导体公司推出了一种世界上最小的飞行时间(TOF)测距传感器-VL53L0X。内部集成了940nm激光发射器和 SPAD 红外接收器,采用了第二代FightSenseTM技术,通过接收器所接收到的光子时间来计算距离,最远测量距离可达两米,非常适合中短距离测量的应用。同时,传感器通信方式采用IIC方式,支持设置默认、高精度、长距离、高速三种测量模式。并提供了校准的功能。满足不同的工作需求。配合上红外物理滤光片,可以实现更长的距离,更高的免疫性和更好的鲁棒性。
本文提出了一种基于VL53L0X测距来实现避障的多功能传感器。内部采用的是单片机和VL53L0X通信,并配合外围电路来实现避障和报警。主要功能是:用户可以调节传感器避障角度和避障距离。当传感器报警时,可以通过指示灯提示,同时内部电路的光耦继电器由常开变成闭合状态,外界电路通过这种状态改变可以获得电平输出的报警方式。主要特性是:(1)可以在高红外线光的环境下工作。(2)测量范围与目标物体的反射率无关。(3)室内1.8米范围内的精度可以达到5%。主要优势是:(1)尺寸较小,利于安装。(2)功能丰富,满足多种使用要求。(3)和相同功能的产品相比更具有价格优势。
一、设计方案综述
方案采用ST公司的STM32F103C8T6单片机来作为核心的MCU,单片机的串口作为用户设置传感器避障距离的输入口。单片机和VL53L0X之间通过IIC总线连接从而获取到实时的数据。当单片机获得的数据小于用户设定的避障距离时,单片机一方面通过IO口驱动发光二极管发光,另一方面IO口和光耦相连,将光耦的常开状态转换成闭合状态,这是一种常见的NPN型光耦继电器输出。具体的方案流程图如下:
图1 设计框图
二、硬件设计综述
(1)由于工业上大多数采用24V的电源。所以本方案采用的电源也是24V输入电源。单片机供电电压为3.3V,所以还需要将24V转化为3.3V,本方案采用的是TPS5430降压芯片,将24V转化为5V,然后用AMS1117-3.3将5V转化3.3V。3.3V作为单片机和VL53L0X的供电电源。
(2)单片机采用的是一款基于ARM Cortex-M 内核STM32系列的32位的微控制器STM32F103C8T6。程序存储器容量是64KB。供电电压2V~3.6V,48引脚。这种单片机采用LQFP48封装,尺寸较小,性能稳定且价格便宜。
(3)VL53L0X作为ST公司推出的一种测距模块,在和单片机IIC通信过程中需要加上拉电阻4.7K,电源采用的也是3.3V供电。为了方便电路的设计,可以将VL53L0X单独设计成一个电路。电路如下:
图2 VL53L0X电路
(4)输出采用的光耦是东芝产的TLP280-4四通道的光耦。当有输出的时候,单片机引脚置0,光耦一路导通,则光耦输出对地导通,外界可以接上拉电阻,通过查询上拉电阻阻值的变化获得是否报警。为了得到多个不同状态的输出,本设计用单片机的两个IO口PB10和PB11来共同表示当前的输出。由于光耦内部需要限流,所以光耦的输入输出两端都外接了2K阻值的电阻。输出电路如下:
图3 光耦输出
三、软件设计综述
软件设计主要是:单片机将测量距离进行数据处理,以及整个运行逻辑。
单片机通过IIC总线控制VL53L0X,并获取到当前的测量距离。根据ST提供的数据手册,并由官方提供的API函数库可以实现对测量数据的读取。但是,由于环境的不确定性,在实际测量中,数据发生错误主要是传感器前方2米范围内没有任何障碍物的时候,VL53L0X测量得到的数据也会出现小于2米的值。多次测量中,一串数据会出现1次或者两次错误的数据,如果这些错误数据小于报警阈值,那么传感器就会发生报警。这就产生了前方明显没有障碍物而发生的误报警。单片机内部需要有一种算法来防止这种误报警。
本方案采用的算法是累加算法。先设定一个变量为错误次数。如果测量值小于或者等于报警阈值,则变量加1,如果测量值大于报警阈值,则立即将错误次数清零。在多次测量过程中,如果错误次数累加到了3,说明连续三次都是小于报警阈值,则立即报警。这种累加算法可以有效滤掉一串数据中的某几个连续错误数据。算法流程图如下:
图4 算法流程图
传感器的整个运行逻辑为:根据IIC总线地址的不同,循环查询不同的总线地址上的VL53L0X,在和不同的VL53L0X进行通信的时候,数据处理之后需要报警,则单片机引脚置0,使光耦导通。光耦导通外接电路就对地导通,从而产生报警信号。流程图如下:
图5 运行逻辑
四、结束语
本设计实现了一种基于VL53L0X的激光避障传感器设计,作为当前比较新颖的激光测距技术,VL53L0X的推出大大推进了距离测量的应用发展。本设计结合STM32F103C8T6单片机,实现了一种可以供AGV、自动化设备运行中避障功能的方案。硬件上完整提出了设计,软件上通过累加算法有效消除了不同环境对传感器造成的数据干扰。是一种比较可行的方案。由于VL53L0X单价成本才十几元,可以将多个VL53L0X组合成不同角度的避障方案,安装角度的不同来实现角度的扩展。由于整个设计高效且运用的都是常见的物料,有效控制了成本。