vl53l1x — драйвер датчика відстані VL53L1X ToF

Цей модуль надає драйвер для датчика відстані STMicroelectronics VL53L1X, що вимірює час прольоту (ToF) через 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.

Конструктор виконує програмне скидання, перевіряє ідентифікатор моделі мікросхеми, записує блок конфігурації за замовчуванням на пристрій і застосовує виправлення регістрів під час запуску, яке ST API виконує при першому старті вимірювання. Виклик блокується приблизно на 200 мс, поки датчик стабілізується. Якщо регістр ідентифікатора моделі не повертає очікуваного значення 0xEACC, виникає RuntimeError.

writeReg(reg: int, value: int) None

Записати одне 8-бітне value за 16-бітною адресою регістра пристрою reg.

writeReg16Bit(reg: int, value: int) None

Записати 16-бітне value (big-endian) за 16-бітною адресою регістра пристрою reg.

readReg(reg: int) int

Прочитати одне 8-бітне значення з 16-бітної адреси регістра пристрою reg і повернути його як int.

readReg16Bit(reg: int) int

Прочитати 16-бітне значення (big-endian) з 16-бітної адреси регістра пристрою reg і повернути його як int.

read_model_id() int

Повернути вміст 16-бітного регістра ідентифікатора моделі за адресою 0x010F. Очікуване значення для VL53L1X — 0xEACC.

reset() None

Виконати програмне скидання пристрою, перемикаючи регістр програмного скидання 0x0000. Блокується на 100 мс, поки пристрій утримується у стані скидання.

read() int

Ініціювати читання регістра RESULT__RANGE_STATUS (0x0089) і повернути остаточну відстань одиночного детектора SD0 з корекцією перехресних завад у міліметрах як int.

Константи

vl53l1x.VL51L1X_DEFAULT_CONFIGURATION: bytes

Стандартний 91-байтний блок конфігурації, що записується на пристрій починаючи з регістра 0x2D під час ініціалізації. Блок задає полярність переривання, поріг сигма, поріг сигналу, період між вимірюваннями, порогові значення відстані, центр/розмір ROI та інші параметри вимірювання, рекомендовані наддрібним драйвером ST. Більшість байтів не підлягають зміні користувачем; зверніться до коментарів у вихідному коді для полів, що можна налаштувати.