vl53l1x — VL53L1X ToF upravljački program za senzor udaljenosti¶
Ovaj modul pruža upravljački program za STMicroelectronics VL53L1X senzor za mjerenje udaljenosti metodom vremena leta (time-of-flight) preko I2C. VL53L1X mjeri apsolutnu udaljenost do ~4 m koristeći nevidljivi laserski emiter od 940 nm i SPAD prijamno polje.
Primjer upotrebe:
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)
Klase¶
- class vl53l1x.VL53L1X(bus: machine.I2C, address: int = 0x29)¶
Konstruira instancu VL53L1X upravljačkog programa.
busje konfigurirani objekt sabirnicemachine.I2Ckoji se koristi za komunikaciju sa senzorom.addressje 7-bitna I2C adresa uređaja. Zadano0x29.
Konstruktor izvodi meki reset, provjerava ID modela čipa, zapisuje zadani konfiguracijski blok u uređaj i primjenjuje popravak početnih registara koji ST API izvodi pri prvom pokretanju mjerenja. Poziv blokira ~200 ms dok se senzor ustali. Podiže
RuntimeErrorako registar ID-a modela ne vrati očekivanu vrijednost0xEACC.- writeReg(reg: int, value: int) None¶
Zapisuje jedinstvenu 8-bitnu vrijednost
valueu 16-bitnu adresu registra uređajareg.
- writeReg16Bit(reg: int, value: int) None¶
Zapisuje 16-bitnu vrijednost
value(big-endian) u 16-bitnu adresu registra uređajareg.
- readReg(reg: int) int¶
Čita jedinstvenu 8-bitnu vrijednost iz 16-bitne adrese registra uređaja
regi vraća je kaoint.
- readReg16Bit(reg: int) int¶
Čita 16-bitnu vrijednost (big-endian) iz 16-bitne adrese registra uređaja
regi vraća je kaoint.
- read_model_id() int¶
Vraća sadržaj 16-bitnog registra ID-a modela na
0x010F. Očekivana vrijednost za VL53L1X je0xEACC.
Konstante¶
- vl53l1x.VL51L1X_DEFAULT_CONFIGURATION: bytes¶
Zadani 91-bajtni konfiguracijski blok zapisan u uređaj počevši od registra
0x2Dtijekom konstrukcije. Blok postavlja polaritet prekida, sigma prag, prag signala, period između mjerenja, pragove udaljenosti, središte/veličinu ROI-ja i druge parametre mjerenja koje preporučuje ST ultra-light upravljački program. Većina bajtova ne može se mijenjati od strane korisnika; za polja koja korisnik može podesiti pogledajte komentare u izvornom kodu.