|
[项目] 【Arduino】168种传感器系列实验(221)---360°激光雷达模块 |
激光雷达YDLIDAR X4 的系统报文 系统报文时系统根据接收的系统命令反馈的应答报文,不同的系统命令,系统报文的应答模式和应答内容也不一样,其中应答模式有三种:无应答、单次应答、持续应答。 无应答表示系统不反馈任何报文;单次应答表示系统的报文长度是有限的,应答一次即结束;持续应答表示系统的报文长度是无限长的,需要持续发送数据,如进入扫描模式时。 单次应答和持续应答的报文采用同一个数据协议,其协议内容为:起始标志、应答长度、应答模式、类型码和应答内容,通过串口 16 进制输出。 ![]() ➢ 起始标志:X4 的报文标志统一为 0xA55A; ➢ 应答长度:应答长度表示的是应答内容的长度,但当应答模式为持续应答时,长度应为无限大,因此该值失效; ➢ 应答模式:该位只有 2bits,表示本次报文是单次应答或持续应答,其取值和对应的模式如下: ![]() ➢ 类型码:不同的系统命令,对应不同的类型码; ➢ 应答内容:不同的系统命令,反馈不同的数据内容,其数据协议也不同。 注 1:X4 的数据通信采用的是小端模式,低位在前。 注 2:应答报文中,第 6 个字节的低 6 位属于应答长度,高 2 位属于应答模式。 |
激光雷达YDLIDAR X4 的数据协议 不同的系统命令,有着不同报文的报文内容。而不同类型码的报文中,其应答内容的数据协议也不尽相同。因此,用户需要根据相应的数据协议,来解析应答内容中的数据,如点云数据、设备信息等。 扫描命令 [A5 60] 当外部设备向 X4 发送扫描命令时,X4 会进入扫描模式,并反馈点云数据。其应答报文为: ![]() 其中第 6 个字节高 2 为 01,因此应答模式取值为 0x1,为持续应答,忽略应答长度,类型码为 0x81;应答内容为系统扫描的点云数据,其按照以下数据结构,以 16 进制向串口发送至外部设备。扫描命令应答内容数据结构描述: ![]() |
激光雷达YDLIDAR X4 的功耗控制 X4 的对外接口中,提供了电机的相关控制接口(M_EN,M_SCTP)和功耗的控制接口(DEV_EN),用户可设置该三个控制信号来控制设备的功耗。 待机控制 为了方便用户快速使用,X4 控制信号的默认值(请参考数据手册)没有实现最低功耗,因此,当用户需要调试出最低功耗的待机状态,需要进一步对 M_EN、DEV_EN 进行如下调控: M_EN = 0V,DEV_EN = 0V。 以此便关闭了电机的使能和测距使能,整个系统便处于最低功耗的待机状态。 速度控制 同时,用户可以根据实际需要,改变扫描频率来满足需求。通过改变 M_SCTP 管脚输入电压,或改变输入的 PWM 信号的占空比,来调控电机转速(具体控制方法,请参考数据手册)。 ![]() |
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验二百二十一:360°旋转扫描激光雷达测距传感器 ROS机器人建图导航定位 ROS小车导航路径规划避障模块(EAI YDLIDAR X4) 项目之一:从 RPLIDAR 获取数据的简单通用方法(您可以基于此模板自由添加您的应用程序代码) 实验接线: 1、将 RPLIDAR 的串行端口 (RX/TX/GND) 连接到您的 Arduino 板(引脚 0 和引脚 1) 2、将 RPLIDAR 的电机控制引脚连接到 Arduino 板引脚 3
|
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed