3款入门激光测距传感器横评:小车避障选哪颗

2026-10-28 13:03:20 4阅读

做DIY避障小车,超声波HC-SR04大家都用过,但这东西有几个硬伤:声音慢、窄口盲区、吸声面测不到、刷新率低。现在ToF(飞行时间)激光测距传感器价格下来了,淘宝十几块到几十块就能买,是时候给避障系统升级一下了。

目前DIY圈最常见的激光测距有三款:意法的VL53L0X和VL53L1X两颗芯片,以及北醒的TF-Luna单点LiDAR。我三颗都用过不少时间,从做小车上的实际表现、参数、接线、软件坑位到场景推荐,给大家算清楚。

三款激光测距传感器横评封面:TF-Luna

参数速览表

先把关键参数列成表,这样对比最直观:

VL53L0X:ST第二代FlightSense芯片,量程3厘米到2米(白色反射面实际约1.2到1.5米),I2C接口,940nm激光,视角约25度,最快刷新率约50Hz(高速模式精度±5%),高精度模式200ms、±3%,2.8到5V模块,TB售价8到12元,Class1激光安全。

VL53L1X:ST第三代,量程4厘米到4米(白色面实际2.5到3米),I2C接口,940nm激光,视角约27度但支持编程ROI(可以把视角缩小到特定区域),最快刷新率50Hz,精度±1%,自带改进的环境光抑制,2.6到5V模块,TB售价20到30元,Class1激光安全。

TF-Luna:北醒光子的单点LiDAR模块,量程10厘米到8米,UART/I2C双接口,850nm激光,视角约2度(光束非常窄),最快刷新率250Hz,精度±6cm(0.1到3米段±3cm),5V供电,TB售价35到50元,Class1激光安全。

价格差距从10块到50块,五倍的价差,但性能维度完全不一样,不能简单说"贵的就好",要看你的车干什么用。

VL53L0X:便宜够用的入门款

Pololu VL53L0X激光测距传感器模块

VL53L0X是2016年的老芯片,但胜在便宜和库成熟。Adafruit和Pololu都有官方库,Arduino、ESP32、MicroPython、Raspberry Pi、ROS全覆盖,拿到手5分钟就能读数据。模块上一般带LDO稳压和电平转换,3.3V/5V都能直接接,I2C只占两根线,多颗传感器可以用XSHUT引脚改地址挂同一根总线。

短板很明显:实际能测的距离取决于目标反射率。白色墙面2米没问题,深色毛绒物体(比如猫、黑色衣服)可能80厘米就没信号了,阳光直射下基本废,室外避障不现实。还有个网上常见的坑——2025年起Pololu论坛和Adafruit论坛都有人反馈新批次VL53L0X出现跑几分钟后锁死输出0mm的故障,据用户反馈更换传感器能恢复,可能是批次问题。长期跑的项目建议做个I2C超时重启机制。

适合的场景:室内小范围桌面避障(30厘米到1米)、手势/接近检测、水杯/垃圾桶液位检测、ESPHome家居自动化(原生支持,配置最简单)。小车在室内慢速度(低于0.3m/s)跑,单颗L0X足够。

VL53L1X:综合性价比最优

Adafruit VL53L1X激光测距传感器模块

VL53L1X是L0X的升级款,最大的变化有三点:量程翻番到4米、支持编程ROI、环境光抑制好了很多。ROI这个功能对机器人来说特别实用——接收端是16x16的SPAD阵列,你可以只选其中几个阵元接收,相当于把视角从27度收窄到几度,避开侧面干扰(比如门框边缘、墙角),或者精确瞄准某一个目标。多传感器组网时这个功能能大大减少串扰。

L1X在室内白色面实际能稳定读到3米,深色物体也能读到1.5米以上,阳光下室内靠窗位置依然工作。刷新率最高50Hz(时间预算20ms),做小车避障反应时间完全够。ESPHome原生还不支持L1X,需要接第三方组件,Arduino/ESP-IDF下SparkFun和Pololu的库都很成熟。

短板:第一是贵,比L0X贵2到3倍;第二是模块尺寸比L0X略大一点点;第三是I2C时序要求比L0X严格,ESP32上有时候初始化失败要多试几次。另外Pololu有用户反馈VL53L1X的Pololu库在ESP32-C3上有兼容性问题,STM32duino库反而更稳定。

适合的场景:室内小车避障主力、机器人ROS导航单点测距、窄口/垃圾桶/管道检测(用ROI)、3到4米室内测量。预算允许的话,新做项目直接上L1X比L0X划算,多花10块钱换来的距离和ROI能力值回票价。

TF-Luna:快、远、准的"小雷达"

Benewake TF-Luna单点激光雷达模块

TF-Luna是北京北醒光子的产品,和前两颗ST的ToF传感器完全不是一个量级——它是真正的小型LiDAR。激光波长850nm(略发红,注意别盯着看),光束角只有2度(比ST的27度窄十多倍),所以它测远距离特别准,最远8米,中短距离精度±3厘米。最高250Hz刷新率,延迟仅4毫秒,比L1X快5倍。接口同时支持UART和I2C,固件里可以直接切换。

TF-Luna最大的优势是速度和距离。小车跑得越快,需要的测距越远、越快——以0.5m/s速度行驶时刹车距离约10厘米,加上传感器延迟和舵机反应时间,250Hz刷新率意味着每次更新间隔只有4毫米,完全来得及反应。远距离(3到8米)导航TF-Luna是DIY级唯一的性价比选择,机器人走廊跟墙、跟随人都能用。

短板:第一是5V供电、电流比ST两颗大(待机约50mA,工作约120mA),电池供电的小项目要考虑功耗;第二是10厘米内盲区,近距离(贴脸)反而测不到,必须搭配L0X/L1X近距离补盲;第三是850nm激光在强阳光下表现不如940nm(虽然北醒做了抗阳光处理);第四是价格最贵,50块左右,比L1X再贵一倍。

适合的场景:中速到快速小车(0.4m/s以上)避障、走廊/跟随/远距离导航、无人机定高、需要快响应的实时避障。如果你的车跑得比较快,或者要做ROS导航,TF-Luna是入门预算内最好的选择,直接上。

组合建议和避坑

纯室内慢速玩具车:单颗VL53L0X,10块钱搞定。

一般室内避障项目:单颗VL53L1X,综合性价比最好,距离够、库成熟、ROI实用。

室外/阳光/快速小车/导航:TF-Luna前向+两侧VL53L0X补盲,TF-Luna覆盖10厘米到8米快速测距,L0X补10厘米内和侧面近距离盲区。这个组合总成本约70元,但覆盖了从0到8米全距离段,是我最推荐的机器人避障配置。

软件上几个通用坑:第一,所有激光测距都会偶尔返回异常值(0或满量程),一定要做滑动中位值滤波(取最近5次排序取中值),不要用单次读数触发刹车。第二,多颗传感器同一I2C总线必须逐颗上电改地址,不能默认地址一起上电会冲突。第三,反射率极低的黑色绒面、透明玻璃、水面,所有ToF传感器都测不准,避障逻辑里要加物理碰撞开关兜底。第四,小车刹车距离公式:D_stop = v × (t_poll + t_proc + t_brake),速度越快需要的测距距离越远,选传感器要按这个公式算一遍,别光看参数表。

三颗传感器各有清晰的定位,没有一颗能通吃所有场景。按自己车的速度和使用环境选,别盲目买最贵的,也别为了省10块钱让车天天撞墙。


作者:数据媛小满
链接:https://www.aiddithome.com/p/9a8e166dedc8d.html
本作版权归作者所有,未经允许请勿转载。若存在违规行为,您可以点击 “举报”。


登录 后发表评论
4条评论
好说好说
1楼 · 2小时前

滑动中位值滤波这个确实必加,不然偶尔跳个4米小车直接冲上去

Lumen微光
2楼 · 2小时前

问下TF-Luna用UART还是I2C好?我打算ESP32接,怕UART占串口

调参到凌晨
3楼 · 2小时前

之前用HC-SR04避障,跑快了必撞墙,看来得换TF-Luna了

阿强焊点总飞
4楼 · 2小时前

VL53L0X锁死0mm的问题我也遇到过,跑大概10分钟就死,加了个看门狗重启才解决,确实是坑