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.
busest un objet de busmachine.I2Cconfiguré, utilisé pour communiquer avec le capteur.addressest l’adresse I2C 7 bits du périphérique. Par défaut0x29.
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
RuntimeErrorsi le registre d’ID du modèle ne renvoie pas la valeur attendue0xEACC.- writeReg(reg: int, value: int) None¶
Écrit une unique
value8 bits dans le registre 16 bits du périphérique à l’adressereg.
- writeReg16Bit(reg: int, value: int) None¶
Écrit une
value16 bits (big-endian) dans le registre 16 bits du périphérique à l’adressereg.
- readReg(reg: int) int¶
Lit une unique valeur 8 bits dans le registre 16 bits du périphérique à l’adresse
reget 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
reget 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 est0xEACC.
Constantes¶
- vl53l1x.VL51L1X_DEFAULT_CONFIGURATION: bytes¶
Bloc de configuration de 91 octets par défaut écrit dans le périphérique à partir du registre
0x2Dlors 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.