vl53l1x — Driver pentru senzorul de distanță ToF VL53L1X¶
Acest modul oferă un driver pentru senzorul de telemetrie time-of-flight VL53L1X de la STMicroelectronics prin I2C. VL53L1X măsoară distanța absolută până la ~4 m folosind un emițător laser invizibil de 940 nm și un tablou de recepție SPAD.
Exemplu de utilizare:
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)
Clase¶
- class vl53l1x.VL53L1X(bus: machine.I2C, address: int = 0x29)¶
Construiește o instanță de driver VL53L1X.
buseste un obiect de magistralămachine.I2Cconfigurat, folosit pentru a comunica cu senzorul.addresseste adresa I2C pe 7 biți a dispozitivului. Implicit0x29.
Constructorul efectuează o resetare software, verifică ID-ul modelului cipului, scrie blocul de configurare implicit în dispozitiv și aplică corecția registrelor de pornire pe care API-ul ST o efectuează la prima pornire a telemetriei. Apelul blochează ~200 ms cât timp senzorul se stabilizează. Generează
RuntimeErrordacă registrul ID-ului modelului nu returnează valoarea așteptată0xEACC.- writeReg(reg: int, value: int) None¶
Scrie o singură
valuepe 8 biți în adresa de registru pe 16 biți a dispozitivuluireg.
- writeReg16Bit(reg: int, value: int) None¶
Scrie o
valuepe 16 biți (big-endian) în adresa de registru pe 16 biți a dispozitivuluireg.
- readReg(reg: int) int¶
Citește o singură valoare pe 8 biți din adresa de registru pe 16 biți a dispozitivului
regși o returnează caint.
- readReg16Bit(reg: int) int¶
Citește o valoare pe 16 biți (big-endian) din adresa de registru pe 16 biți a dispozitivului
regși o returnează caint.
- read_model_id() int¶
Returnează conținutul registrului ID-ului modelului pe 16 biți de la
0x010F. Valoarea așteptată pentru un VL53L1X este0xEACC.
Constante¶
- vl53l1x.VL51L1X_DEFAULT_CONFIGURATION: bytes¶
Blocul de configurare implicit de 91 de octeți scris în dispozitiv începând de la registrul
0x2Dîn timpul construcției. Blocul setează polaritatea întreruperii, pragul sigma, pragul de semnal, perioada dintre măsurători, pragurile de distanță, centrul/dimensiunea ROI și alți parametri de telemetrie recomandați de driverul ultra-light al ST. Majoritatea octeților nu pot fi modificați de utilizator; consultați comentariile din sursă pentru câmpurile ajustabile de utilizator.