vl53l1x — VL53L1X ToF-afstandssensordriver

Deze module biedt een driver voor de STMicroelectronics VL53L1X time-of-flight afstandssensor via I2C. De VL53L1X meet absolute afstand tot ~4 m met een 940 nm onzichtbare laseremitter en een SPAD-ontvangstarray.

Voorbeeldgebruik:

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)

Klassen

class vl53l1x.VL53L1X(bus: machine.I2C, address: int = 0x29)

Construeer een VL53L1X-driverinstantie.

  • bus is een geconfigureerd machine.I2C busobject dat wordt gebruikt om met de sensor te communiceren.

  • address is het 7-bits I2C-adres van het apparaat. Standaard 0x29.

De constructor voert een soft reset uit, verifieert de model-ID van de chip, schrijft het standaardconfiguratieblok naar het apparaat en past de opstartregister-fixup toe die de ST-API uitvoert bij de eerste start van een meting. De aanroep blokkeert ~200 ms terwijl de sensor tot rust komt. Werpt RuntimeError op als het model-ID-register niet de verwachte waarde 0xEACC teruggeeft.

writeReg(reg: int, value: int) None

Schrijf een enkele 8-bits value naar het 16-bits apparaatregisteradres reg.

writeReg16Bit(reg: int, value: int) None

Schrijf een 16-bits value (big-endian) naar het 16-bits apparaatregisteradres reg.

readReg(reg: int) int

Lees een enkele 8-bits waarde van het 16-bits apparaatregisteradres reg en geef deze terug als een int.

readReg16Bit(reg: int) int

Lees een 16-bits waarde (big-endian) van het 16-bits apparaatregisteradres reg en geef deze terug als een int.

read_model_id() int

Geef de inhoud terug van het 16-bits model-ID-register op 0x010F. De verwachte waarde voor een VL53L1X is 0xEACC.

reset() None

Voer een soft reset van het apparaat uit door het soft-reset-register 0x0000 om te schakelen. Blokkeert 100 ms terwijl het apparaat in reset wordt gehouden.

read() int

Activeer een registerlezing van RESULT__RANGE_STATUS (0x0089) en geef de uiteindelijke crosstalk-gecorrigeerde afstand, in millimeters, van de enkelzonedetector SD0 terug als een int.

Constanten

vl53l1x.VL51L1X_DEFAULT_CONFIGURATION: bytes

Standaard 91-byte configuratieblok dat tijdens de constructie naar het apparaat wordt geschreven, beginnend bij register 0x2D. Het blok stelt de interruptpolariteit, sigma-drempelwaarde, signaaldrempelwaarde, intermeetperiode, afstandsdrempelwaarden, ROI-centrum/-grootte en andere meetparameters in die door de ST ultra-light driver worden aanbevolen. De meeste bytes zijn niet door de gebruiker aanpasbaar; raadpleeg de opmerkingen in de broncode voor de door de gebruiker afstembare velden.