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.

  • bus je konfigurirani objekt sabirnice machine.I2C koji se koristi za komunikaciju sa senzorom.

  • address je 7-bitna I2C adresa uređaja. Zadano 0x29.

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 RuntimeError ako registar ID-a modela ne vrati očekivanu vrijednost 0xEACC.

writeReg(reg: int, value: int) None

Zapisuje jedinstvenu 8-bitnu vrijednost value u 16-bitnu adresu registra uređaja reg.

writeReg16Bit(reg: int, value: int) None

Zapisuje 16-bitnu vrijednost value (big-endian) u 16-bitnu adresu registra uređaja reg.

readReg(reg: int) int

Čita jedinstvenu 8-bitnu vrijednost iz 16-bitne adrese registra uređaja reg i vraća je kao int.

readReg16Bit(reg: int) int

Čita 16-bitnu vrijednost (big-endian) iz 16-bitne adrese registra uređaja reg i vraća je kao int.

read_model_id() int

Vraća sadržaj 16-bitnog registra ID-a modela na 0x010F. Očekivana vrijednost za VL53L1X je 0xEACC.

reset() None

Izvodi meki reset uređaja prebacivanjem registra mekog reseta 0x0000. Blokira 100 ms dok je uređaj zadržan u resetu.

read() int

Pokreće čitanje registra RESULT__RANGE_STATUS (0x0089) i vraća konačnu udaljenost korigiranu za preslušavanje (crosstalk), u milimetrima, jednozonskog detektora SD0 kao int.

Konstante

vl53l1x.VL51L1X_DEFAULT_CONFIGURATION: bytes

Zadani 91-bajtni konfiguracijski blok zapisan u uređaj počevši od registra 0x2D tijekom 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.