vl53l1x — Driver del sensore di distanza ToF VL53L1X¶
Questo modulo fornisce un driver per il sensore di telemetria time-of-flight VL53L1X di STMicroelectronics tramite I2C. Il VL53L1X misura la distanza assoluta fino a ~4 m utilizzando un emettitore laser invisibile a 940 nm e un array di ricezione SPAD.
Esempio di utilizzo:
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)
Classi¶
- class vl53l1x.VL53L1X(bus: machine.I2C, address: int = 0x29)¶
Costruisce un’istanza del driver VL53L1X.
busè un oggetto busmachine.I2Cconfigurato, usato per comunicare con il sensore.addressè l’indirizzo I2C a 7 bit del dispositivo. Il valore predefinito è0x29.
Il costruttore esegue un soft reset, verifica l’ID del modello del chip, scrive il blocco di configurazione predefinito sul dispositivo e applica la correzione dei registri di avvio che l’API ST esegue al primo avvio della telemetria. La chiamata si blocca per ~200 ms mentre il sensore si stabilizza. Solleva
RuntimeErrorse il registro dell’ID del modello non restituisce il valore atteso0xEACC.- writeReg(reg: int, value: int) None¶
Scrive un singolo
valuea 8 bit nell’indirizzo del registro del dispositivo a 16 bitreg.
- writeReg16Bit(reg: int, value: int) None¶
Scrive un
valuea 16 bit (big-endian) nell’indirizzo del registro del dispositivo a 16 bitreg.
- readReg(reg: int) int¶
Legge un singolo valore a 8 bit dall’indirizzo del registro del dispositivo a 16 bit
rege lo restituisce comeint.
- readReg16Bit(reg: int) int¶
Legge un valore a 16 bit (big-endian) dall’indirizzo del registro del dispositivo a 16 bit
rege lo restituisce comeint.
- read_model_id() int¶
Restituisce il contenuto del registro dell’ID del modello a 16 bit all’indirizzo
0x010F. Il valore atteso per un VL53L1X è0xEACC.
Costanti¶
- vl53l1x.VL51L1X_DEFAULT_CONFIGURATION: bytes¶
Blocco di configurazione predefinito da 91 byte scritto sul dispositivo a partire dal registro
0x2Ddurante la costruzione. Il blocco imposta la polarità dell’interrupt, la soglia sigma, la soglia del segnale, il periodo intermisura, le soglie di distanza, il centro/dimensione della ROI e altri parametri di telemetria raccomandati dal driver ultra-leggero ST. La maggior parte dei byte non è modificabile dall’utente; fai riferimento ai commenti nel sorgente per i campi regolabili dall’utente.