vl53l1x --- VL53L1X ToF 距离传感器驱动

本模块提供了通过 I2C 驱动 STMicroelectronics VL53L1X 飞行时间(ToF)测距传感器的驱动程序。VL53L1X 使用 940 nm 不可见激光发射器和 SPAD 接收阵列,可测量最远约 4 m 的绝对距离。

用法示例:

import time
from machine import I2C
import vl53l1x

bus = I2C(1)
tof = vl53l1x.VL53L1X(bus)

while True:
    print("Distance: {} mm".format(tof.read()))
    time.sleep_ms(100)

class vl53l1x.VL53L1X(bus: machine.I2C, address: int = 0x29)

构造一个 VL53L1X 驱动实例。

  • bus 是一个已配置的 machine.I2C 总线对象,用于与传感器通信。

  • address 是设备的 7 位 I2C 地址。默认为 0x29

构造函数会执行软复位、验证芯片型号 ID、将默认配置块写入设备,并应用 ST API 在首次启动测距时执行的启动寄存器修正。该调用会阻塞约 200 ms,等待传感器稳定。如果型号 ID 寄存器未返回预期值 0xEACC,则抛出 RuntimeError

writeReg(reg: int, value: int) None

向 16 位设备寄存器地址 reg 写入单个 8 位 value

writeReg16Bit(reg: int, value: int) None

向 16 位设备寄存器地址 reg 写入一个 16 位 value(大端序)。

readReg(reg: int) int

从 16 位设备寄存器地址 reg 读取单个 8 位值,并将其作为 int 返回。

readReg16Bit(reg: int) int

从 16 位设备寄存器地址 reg 读取一个 16 位值(大端序),并将其作为 int 返回。

read_model_id() int

返回位于 0x010F 的 16 位型号 ID 寄存器的内容。VL53L1X 的预期值为 0xEACC

reset() None

通过切换软复位寄存器 0x0000 对设备执行软复位。在设备保持复位状态期间阻塞 100 ms。

read() int

触发对 RESULT__RANGE_STATUS0x0089)的寄存器读取,并将单区检测器 SD0 最终经串扰校正的距离(以毫米为单位)作为 int 返回。

常量

vl53l1x.VL51L1X_DEFAULT_CONFIGURATION: bytes

在构造期间从寄存器 0x2D 开始写入设备的默认 91 字节配置块。该块设置了中断极性、sigma 阈值、信号阈值、测量间隔周期、距离阈值、ROI 中心/大小以及 ST 超轻量驱动推荐的其他测距参数。大多数字节不可由用户修改;用户可调字段请参阅源码内注释。