在本教程中,您将学习如何使用Garmin(Qwiic)LIDAR-Lite v4 LED入门,包括:
1. 如何将LIDAR-Lite v4连接到Arduino。
2. 如何使用传感器的参数。
3. 传感器的操作检测范围。
Garmin(Qwiic)LIDAR-Lite v4 LED是一种LIDAR(光检测和测距)系统,它使用回声定位来检测物体。该传感器采用小型封装,可提供高精度和低功耗。
像所有LIDAR-Lite系列产品一样,该传感器可替代昂贵的传感器 激光LIDAR传感器 而且很便宜–但噪音影响且范围低– 红外线 和 超声波传感器。由于我计划将来在室内和室外机器人中使用基于激光的传感器,因此,我首先想了解一下是否可以在室内使用使用LED和光学器件代替激光的最便宜版本来构建2D障碍物检测系统。
在本教程中,我购买了LIDAR-Lite v4的Qwiic版本。 LIDAR-Lite v4传感器有两个版本: 带Qwiic连接系统的传感器 和 没有连接系统的传感器。 Qwiic系统提供了与开发板的便捷接口。

Garmin_LIDAR-Lite_v4 + Arduino的 +电池+降压DC-DC转换器
传感器使用LED,光学元件和接收器来测量光线的飞行时间。它发送近红外光并在目标物体反射后寻找其接收。传感器使用已知的光速计算光束的透射与响应之间的时间延迟。
LIDAR-Lite v4是一种主动式遥感系统,可产生能量–在这种情况下,轻–测量传感器和物体之间的距离。使用LED代替激光使该传感器对眼睛安全。目前这对我很重要,因为我使用的传感器没有安全保护装置。
到目前为止,我们已经看到了变体以及传感器的工作方式。要了解如何将传感器连接到Arduino,使用传感器的参数并确定传感器前方1米的操作检测范围,请继续阅读本教程。我保证您会了解所有这些。
1.如何将LIDAR-Lite v4连接到Arduino
读取LIDAR-Lite v4传感器输出的最简单解决方案是使用Arduino的I2C接口。除了I2C,传感器还包括一个称为ANT的无线通信系统。使用ANT系统的教程超出了本教程的范围。我的目标是将传感器与微控制器板配合使用,并通过I2C接口读取输出。
对于本教程,我使用Arduino UNO板来读取和控制传感器。这很重要,因为I2C接口正在使用开发板的SDA(数据线)和SCL(时钟线)。如果使用另一个微控制器板,则必须确保哪些引脚是SDA和SCL。
Arduino的 的 开发板的I2C引脚:
- Uno,以太网:A4(SDA),A5(SCL)
- Mega2560:20(SDA),21(SCL)
- 莱昂纳多:2(SDA),3(SCL)
- 到期日:20(SDA),21(SCL),SDA1,SCL1
数据采集期间,传感器需要85 mA的电流。 Arduino的 UNO的5V引脚适用于USB上的〜400 mA,与外部电源适配器一起使用时约为900 mA。如果您选择使用Arduino的5V引脚为传感器供电,建议在+和-之间使用680uF电容器。–当使能器件时,这些引脚可减轻涌入电流。
我没有使用Arduino的5V引脚为传感器供电,而是使用电池和降压稳压器为传感器提供5V电压。
一旦我们知道了数据线和时钟线引脚,就将传感器连接到Arduino板。对于UNO和外部电源,连接为:
- LIDAR-Lite 5 VDC 至 5V电源;
- LIDAR-Lite Ground 至 地线电源 并 Arduino的 的 Gnd; (我们必须在电源和Arduino之间共享地线)
- LIDAR-Lite I2C SDA 至 Arduino的 的 SDA (因为UNO是A4针)
- LIDAR-Lite I2C SCL 至 Arduino的 的 SCL (因为UNO是A5针)
使用I2C接口的另一个优势是,您可以配置LIDAR传感器地址,并在一个微控制器平台上将多达10个传感器链接在一起。
的 LIDARLite_Arduino_Library 使获取数据变得容易,并支持更改I2C地址和参数以配置传感器。
您可以下载该库并使用“Add .ZIP Library…”Arduino IDE中的菜单以安装库。
Arduino的 的 草图,以厘米为单位读取和转换传感器的输出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | #包括<Wire.h> #include“ LIDARLite_v4LED.h” LIDARLite_v4LED myLidarLite; #定义FAST_I2C 浮动 距离 ; 字节 liddarLiteAddress = 0x62; 虚空 设定 () { //初始化Arduino串口 序列号 . 开始 (115200); //初始化Arduino I2C(用于与LidarLite通信) 线 . 开始 (); #ifdef FAST_I2C #if ARDUINO>= 157 线 . setClock (400000UL); //将I2C频率设置为400kHz(对于Arduino Due) #其他 TWBR = (( F_CPU / 400000UL) - 16) / 2; //将I2C频率设置为400kHz #万一 #万一 digitalWrite( SCL , 低 ); digitalWrite( SDA , 低 ); myLidarLite.配置(0); } 虚空 循环 () { 如果 (myLidarLite.getBusyFlag() == 0) { //触发下一个范围测量 myLidarLite.takeRange(); //从设备寄存器读取新的距离数据 距离 = myLidarLite. 读 Distance(); } 序列号 . 打印 (“传感器距离:”); 序列号 . 打印 ( 距离 ); 序列号 . 打印 ( “ 厘米” ); 延迟 (100); } |

Garmin(Qwiic)LIDAR-Lite v4 LED测得的距离
此刻,我们知道如何以厘米为单位读取和转换传感器的输出。在本教程的下一部分中,我们将进一步学习如何使用传感器的参数。
2.如何使用传感器参数
在本教程的这一部分中,我们将使用传感器的参数。
传感器的数据表中列出了控制寄存器列表。可以读取其中一些参数(状态,板温,硬件版本等),而可以读取/更新其中的大多数参数以符合您的要求。
数据表中的参数:

控制寄存器列表[ 资源 ]
读取参数:
1 2 3 4 5 6 7 8 9 10 11 12 13 | / *参数 -------------------------------------------------- ---------------------------- regAddr: 注册要读取的地址 s:指向要读取的字节数组的指针 numBytes: “ s”数组中要读取的字节数 lidarlite地址:默认0x62。* / 字节 liddarLiteAddress = 0x62; 字节 距离 Array[1]; myLidarLite. 读 (0xE0, 距离 Array, 1, liddarLiteAddress); 序列号 . 打印 (“板温:”); 序列号 . 打印 ( 距离 Array[0]); |

显示传感器的温度
编写参数与读取参数一样容易。在编写参数之前,您必须检查数据表中函数的有效值。
1 2 3 4 5 6 7 8 9 | / *参数 -------------------------------------------------- ---------------------------- regAddr: 注册要写入的地址 s:指向要写入的字节数组的指针 numBytes: “ s”数组中要写入的字节数 lidarlite地址:默认0x62。* / uint8_t 数据字节 = 0x00; myLidarLite. 写 (0xEB, &dataByte, 1, 0x62); //关闭高精度模式 |
到目前为止,我们已将传感器连接到Arduino,按序列打印测量的距离,并读取/写入传感器的参数。在本教程的下一部分中,我们将确定传感器前方1米处的操作检测范围。
3.传感器的工作检测范围
障碍物检测适用于从初始位置移动到目标位置并避免其路径上有障碍物的自主机器人。我们旨在检测传感器前面特定区域中的所有物体,而与物体的形状或大小无关。
确定LIDAR传感器范围的第一步是确定机器人所需的范围。让我解释一下这是什么意思!
LIDAR-Lite v4传感器的最大距离为10米,分辨率为1厘米。对于室内机器人而言,10米的范围意义重大,而对于在动态环境中快速移动的室外机器人而言– it is not enough.
我的目标是将LIDAR-Lite v4与伺服电机配合使用,以构建基于2D的物体检测系统。该系统将连接到移动机器人并在室内进行测试。我将在另一篇文章中向您显示结果。
由于我的公寓内没有宽敞的空间,因此目前传感器前方1米的有效检测范围就足够了。
从我的测试结果可以看出,传感器前方1米的操作检测范围可以解释为一个边长7厘米的正方形。

传感器的动作检测范围
结论
该传感器功耗低,并且在确定距离方面非常稳定。在测试过程中,我使用了几种由不同材料制成的物体-可以准确地检测到木质,塑料和柔软材料。这就是我最喜欢LIDAR-Lite v4的地方。
如果将传感器安装在移动机器人上,则可能会出现缺少安装孔或任何其他类型的支撑的问题。更麻烦的是,连接接口在一侧,这使得固定支持更加困难。
您是否推荐它替代激光雷达?
您是否考虑过将激光雷达安装在倾斜/旋转装置上?
1.是,但用于室内
2.是的,我将其放在平底锅系统上