vl53l1x — Drivrutin för VL53L1X ToF-avståndssensor

Denna modul tillhandahåller en drivrutin för STMicroelectronics avståndsmätningssensor VL53L1X med flygtidsmätning (time-of-flight) över I2C. VL53L1X mäter absolut avstånd upp till ~4 m med en osynlig laseremitter på 940 nm och en mottagande SPAD-array.

Exempelanvändning:

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)

Klasser

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

Konstruerar en instans av VL53L1X-drivrutinen.

  • bus är ett konfigurerat machine.I2C-bussobjekt som används för att kommunicera med sensorn.

  • address är enhetens 7-bitars I2C-adress. Standardvärdet är 0x29.

Konstruktorn utför en mjuk återställning, verifierar chippets modell-ID, skriver standardkonfigurationsblocket till enheten och tillämpar den uppstartsregisterkorrigering som ST:s API utför vid den första avståndsmätningsstarten. Anropet blockerar i ~200 ms medan sensorn stabiliseras. Genererar RuntimeError om modell-ID-registret inte returnerar det förväntade värdet 0xEACC.

writeReg(reg: int, value: int) None

Skriver ett enstaka 8-bitars value till den 16-bitars enhetsregisteradressen reg.

writeReg16Bit(reg: int, value: int) None

Skriver ett 16-bitars value (big-endian) till den 16-bitars enhetsregisteradressen reg.

readReg(reg: int) int

Läser ett enstaka 8-bitars värde från den 16-bitars enhetsregisteradressen reg och returnerar det som ett int.

readReg16Bit(reg: int) int

Läser ett 16-bitars värde (big-endian) från den 16-bitars enhetsregisteradressen reg och returnerar det som ett int.

read_model_id() int

Returnerar innehållet i det 16-bitars modell-ID-registret på 0x010F. Det förväntade värdet för en VL53L1X är 0xEACC.

reset() None

Utför en mjuk återställning av enheten genom att växla mjukåterställningsregistret 0x0000. Blockerar i 100 ms medan enheten hålls i återställning.

read() int

Utlöser en registerläsning av RESULT__RANGE_STATUS (0x0089) och returnerar det slutliga överhörningskorrigerade avståndet, i millimeter, för enzonsdetektorn SD0 som ett int.

Konstanter

vl53l1x.VL51L1X_DEFAULT_CONFIGURATION: bytes

Standardkonfigurationsblock på 91 byte som skrivs till enheten med början på register 0x2D under konstruktionen. Blocket sätter avbrottspolaritet, sigmatröskelvärde, signaltröskelvärde, intermätningsperiod, avståndströskelvärden, ROI-centrum/-storlek samt andra avståndsmätningsparametrar som rekommenderas av ST:s ultralätta drivrutin. De flesta byte är inte användarmodifierbara; se kommentarerna i källkoden för de användarjusterbara fälten.