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.
buses un objeto de busmachine.I2Cconfigurado que se utiliza para comunicarse con el sensor.addresses la dirección I2C de 7 bits del dispositivo. El valor predeterminado es0x29.
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
RuntimeErrorsi el registro del ID del modelo no devuelve el valor esperado0xEACC.- writeReg(reg: int, value: int) None¶
Escribe un único
valuede 8 bits en la dirección de registro del dispositivo de 16 bitsreg.
- writeReg16Bit(reg: int, value: int) None¶
Escribe un
valuede 16 bits (big-endian) en la dirección de registro del dispositivo de 16 bitsreg.
- readReg(reg: int) int¶
Lee un único valor de 8 bits de la dirección de registro del dispositivo de 16 bits
regy lo devuelve como unint.
- readReg16Bit(reg: int) int¶
Lee un valor de 16 bits (big-endian) de la dirección de registro del dispositivo de 16 bits
regy lo devuelve como unint.
- read_model_id() int¶
Devuelve el contenido del registro del ID del modelo de 16 bits en
0x010F. El valor esperado para un VL53L1X es0xEACC.
Constantes¶
- vl53l1x.VL51L1X_DEFAULT_CONFIGURATION: bytes¶
Bloque de configuración predeterminado de 91 bytes que se escribe en el dispositivo a partir del registro
0x2Ddurante 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.