KNW-VEQ-110 3D面阵相机
KNW-VEQ-50 3D面阵相机
KNW-VEQ-210 3D面阵相机
KNW-VEQ-420 3D面阵相机
KNW-VEQ-S2015A 3D面阵相机
KNW-VEQ-S2060A 3D面阵相机
KNW-S5030B 3D面阵相机
KNW-VEQ-S5036A 3D面阵相机
KNW-VEQ-S5050A 3D面阵相机
KNW-VEQ-S5100A 3D面阵相机
KNW-S5045B 3D面阵相机
KNW-S5090B 3D面阵相机
KNW-S5135B 3D面阵相机
KNW-S5585B 3D面阵相机
KNW-VEQ-S5350A 3D面阵相机
最近我在捣鼓一个自动化项目,用上了激光矩阵传感器。这东西听起来高大上,其实就是一堆激光器排列成矩阵,用来测距或者3D扫描。市面上常见的比如LMS系列或者一些开源模块,连接起来说简单也简单,说复杂也复杂,尤其是第一次上手时,很容易被那些密密麻麻的针脚和协议搞蒙。
先说说最基础的东西:电源。激光矩阵传感器对电压和电流要求比较严,一般模块都是5V或者3.3V,但有些大功率的型号需要12V。千万别直接怼到树莓派或Arduino的5V引脚上,那样会烧掉板子或传感器。正确的做法是单独配一个稳压电源,比如LM2596模块调好电压。我吃过一次亏,一个俄罗斯产的LD06模块,直接接5V,结果输出端冒烟了,后来发现它需要3.3V供电,而且纹波要小于50mV。连接前一定先看手册,确认电源规格。
接下来是通讯接口。绝大多数激光矩阵传感器用UART串口或I2C,少数用SPI。如果是UART,记住要交叉连接:传感器的TX接主机的RX,传感器的RX接主机的TX,地线共地。这个很容易搞反,我见过有人焊好线后死活读不到数据,折腾半天才发现是TX和RX接反了。波特率要匹配,常见的是115200或921600,如果波特率错乱,数据全是乱码。用示波器或者逻辑分析仪看一下信号波形最靠谱,如果没工具,可以先用串口助手挨个试波特率。
有些传感器不是直接出数字信号,而是模拟电压输出。比如一些老款的激光测距模块,输出是0-5V的模拟量。这时候需要接ADC引脚,比如Arduino的A0。注意量程,如果传感器输出5V,而你的单片机ADC只能承受3.3V,必须用分压电阻,不然会烧引脚。分压电阻用两个10K的串联,中间抽头接ADC就行,简单粗暴。
再说说屏蔽和干扰。激光矩阵传感器工作时会产生高频脉冲,很容易引入噪声。尤其是如果线很长,比如超过30厘米,我建议用屏蔽双绞线,屏蔽层单端接地。否则你会看到数据跳变,测出的距离忽远忽近。我在一个项目中,把传感器线缆和电机驱动线走同一个线槽,结果数据直接炸了,后来分开布线并加磁环才稳定下来。
别忘了初始化顺序。有些传感器上电后需要先发送一个握手指令,比如AT+START,然后才能正常输出数据。如果不发这个指令,它一直处于待机模式,根本不出数。这点在国产模块上特别常见,比如思岚的RPLIDAR,必须先发一个字节的启动命令。读取数据时,也要注意帧格式,通常用校验位来判断数据是否完整,比如CRC16校验,如果校验不过,直接丢弃这帧数据。
连接激光矩阵传感器,先看手册,再测电源,然后配对通讯接口,最后处理干扰。要是遇到问题,别急着怀疑硬件坏了,先拿万用表测测电压,用逻辑分析仪看看波形。我踩过不少坑,写出来希望你能少走弯路。如果你也在玩这个,欢迎留言交流,一起搞定这些激光小玩意儿。