vl53l1x — Pilote du capteur de distance ToF VL53L1X

Ce module fournit un pilote pour le capteur de télémétrie à temps de vol VL53L1X de STMicroelectronics via I2C. Le VL53L1X mesure la distance absolue jusqu’à ~4 m à l’aide d’un émetteur laser invisible à 940 nm et d’un réseau récepteur SPAD.

Exemple d’utilisation:

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)

Classes

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

Construit une instance du pilote VL53L1X.

  • bus est un objet de bus machine.I2C configuré, utilisé pour communiquer avec le capteur.

  • address est l’adresse I2C 7 bits du périphérique. Par défaut 0x29.

Le constructeur effectue une réinitialisation logicielle, vérifie l’ID du modèle de la puce, écrit le bloc de configuration par défaut dans le périphérique, et applique le correctif de registres de démarrage que l’API ST effectue au premier démarrage de la télémétrie. L’appel se bloque pendant ~200 ms le temps que le capteur se stabilise. Lève RuntimeError si le registre d’ID du modèle ne renvoie pas la valeur attendue 0xEACC.

writeReg(reg: int, value: int) None

Écrit une unique value 8 bits dans le registre 16 bits du périphérique à l’adresse reg.

writeReg16Bit(reg: int, value: int) None

Écrit une value 16 bits (big-endian) dans le registre 16 bits du périphérique à l’adresse reg.

readReg(reg: int) int

Lit une unique valeur 8 bits dans le registre 16 bits du périphérique à l’adresse reg et la renvoie sous forme d”int.

readReg16Bit(reg: int) int

Lit une valeur 16 bits (big-endian) dans le registre 16 bits du périphérique à l’adresse reg et la renvoie sous forme d”int.

read_model_id() int

Renvoie le contenu du registre d’ID de modèle 16 bits à l’adresse 0x010F. La valeur attendue pour un VL53L1X est 0xEACC.

reset() None

Effectue une réinitialisation logicielle du périphérique en basculant le registre de réinitialisation logicielle 0x0000. Se bloque pendant 100 ms tant que le périphérique est maintenu en réinitialisation.

read() int

Déclenche une lecture du registre RESULT__RANGE_STATUS (0x0089) et renvoie la portée finale corrigée de la diaphonie, en millimètres, du détecteur à zone unique SD0 sous forme d”int.

Constantes

vl53l1x.VL51L1X_DEFAULT_CONFIGURATION: bytes

Bloc de configuration de 91 octets par défaut écrit dans le périphérique à partir du registre 0x2D lors de la construction. Le bloc définit la polarité de l’interruption, le seuil sigma, le seuil de signal, la période entre mesures, les seuils de distance, le centre/la taille de la ROI, et d’autres paramètres de télémétrie recommandés par le pilote ultra-light ST. La plupart des octets ne sont pas modifiables par l’utilisateur ; reportez-vous aux commentaires dans le code source pour les champs réglables par l’utilisateur.