vl53l1x — Драйвер датчика расстояния ToF VL53L1X¶
Этот модуль предоставляет драйвер для дальномерного датчика времени пролёта VL53L1X от STMicroelectronics, работающего по шине I2C. VL53L1X измеряет абсолютное расстояние до ~4 м, используя невидимый лазерный излучатель 940 нм и приёмную матрицу SPAD.
Пример использования:
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.
Конструктор выполняет программный сброс, проверяет идентификатор модели чипа, записывает в устройство блок конфигурации по умолчанию и применяет стартовую коррекцию регистров, которую API от ST выполняет при первом запуске измерения. Вызов блокируется на ~200 мс, пока датчик стабилизируется. Возбуждает
RuntimeError, если регистр идентификатора модели не возвращает ожидаемое значение0xEACC.- writeReg(reg: int, value: int) None¶
Записывает одно 8-битное значение
valueв 16-битный адрес регистра устройстваreg.
- writeReg16Bit(reg: int, value: int) None¶
Записывает 16-битное значение
value(старшим байтом вперёд) в 16-битный адрес регистра устройстваreg.
- readReg(reg: int) int¶
Считывает одно 8-битное значение из 16-битного адреса регистра устройства
regи возвращает его какint.
- readReg16Bit(reg: int) int¶
Считывает 16-битное значение (старшим байтом вперёд) из 16-битного адреса регистра устройства
regи возвращает его какint.
- read_model_id() int¶
Возвращает содержимое 16-битного регистра идентификатора модели по адресу
0x010F. Ожидаемое значение для VL53L1X —0xEACC.
Константы¶
- vl53l1x.VL51L1X_DEFAULT_CONFIGURATION: bytes¶
Блок конфигурации по умолчанию длиной 91 байт, записываемый в устройство начиная с регистра
0x2Dпри создании. Блок задаёт полярность прерывания, порог сигмы, порог сигнала, период между измерениями, пороги расстояния, центр/размер ROI и другие параметры измерения, рекомендованные ультра-облегчённым драйвером ST. Большинство байтов не подлежат изменению пользователем; за пользовательски настраиваемыми полями обращайтесь к комментариям в исходном коде.