vl53l1x — Controlador del sensor de distancia ToF VL53L1X

Este módulo proporciona un controlador para el sensor de medición por tiempo de vuelo VL53L1X de STMicroelectronics a través de I2C. El VL53L1X mide la distancia absoluta hasta ~4 m utilizando un emisor láser invisible de 940 nm y una matriz receptora SPAD.

Ejemplo de uso:

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)

Clases

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

Construye una instancia del controlador del VL53L1X.

  • bus es un objeto de bus machine.I2C configurado que se utiliza para comunicarse con el sensor.

  • address es la dirección I2C de 7 bits del dispositivo. El valor predeterminado es 0x29.

El constructor realiza un reinicio por software, verifica el ID del modelo del chip, escribe el bloque de configuración predeterminado en el dispositivo y aplica la corrección de los registros de arranque que la API de ST realiza en el primer inicio de medición. La llamada se bloquea durante ~200 ms mientras el sensor se estabiliza. Lanza RuntimeError si el registro del ID del modelo no devuelve el valor esperado 0xEACC.

writeReg(reg: int, value: int) None

Escribe un único value de 8 bits en la dirección de registro del dispositivo de 16 bits reg.

writeReg16Bit(reg: int, value: int) None

Escribe un value de 16 bits (big-endian) en la dirección de registro del dispositivo de 16 bits reg.

readReg(reg: int) int

Lee un único valor de 8 bits de la dirección de registro del dispositivo de 16 bits reg y lo devuelve como un int.

readReg16Bit(reg: int) int

Lee un valor de 16 bits (big-endian) de la dirección de registro del dispositivo de 16 bits reg y lo devuelve como un int.

read_model_id() int

Devuelve el contenido del registro del ID del modelo de 16 bits en 0x010F. El valor esperado para un VL53L1X es 0xEACC.

reset() None

Realiza un reinicio por software del dispositivo alternando el registro de reinicio por software 0x0000. Se bloquea durante 100 ms mientras el dispositivo se mantiene en reinicio.

read() int

Activa una lectura del registro RESULT__RANGE_STATUS (0x0089) y devuelve la distancia final, corregida por diafonía, en milímetros, del detector de zona única SD0 como un int.

Constantes

vl53l1x.VL51L1X_DEFAULT_CONFIGURATION: bytes

Bloque de configuración predeterminado de 91 bytes que se escribe en el dispositivo a partir del registro 0x2D durante la construcción. El bloque establece la polaridad de la interrupción, el umbral sigma, el umbral de señal, el período entre mediciones, los umbrales de distancia, el centro/tamaño de la ROI y otros parámetros de medición recomendados por el controlador ultraligero de ST. La mayoría de los bytes no son modificables por el usuario; consulte los comentarios en el código fuente para conocer los campos ajustables por el usuario.