vl53l1x — VL53L1X ToF-Distanzsensor-Treiber¶
Dieses Modul stellt einen Treiber für den ToF-Entfernungssensor (Time-of-Flight) VL53L1X von STMicroelectronics über I2C bereit. Der VL53L1X misst die absolute Distanz bis zu ~4 m mithilfe eines unsichtbaren 940-nm-Laseremitters und eines SPAD-Empfangsarrays.
Beispielverwendung:
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)¶
Erzeugt eine VL53L1X-Treiberinstanz.
busist ein konfiguriertesmachine.I2C-Busobjekt, das zur Kommunikation mit dem Sensor verwendet wird.addressist die 7-Bit-I2C-Adresse des Geräts. Standardwert ist0x29.
Der Konstruktor führt einen Soft-Reset durch, verifiziert die Chip-Modell-ID, schreibt den Standardkonfigurationsblock auf das Gerät und wendet die Start-up-Register-Korrektur an, die die ST-API beim ersten Start einer Messung durchführt. Der Aufruf blockiert für ~200 ms, während sich der Sensor einpegelt. Löst
RuntimeErroraus, wenn das Modell-ID-Register nicht den erwarteten Wert0xEACCzurückgibt.- writeReg(reg: int, value: int) None¶
Schreibt einen einzelnen 8-Bit-
valuein die 16-Bit-Geräteregisteradressereg.
- writeReg16Bit(reg: int, value: int) None¶
Schreibt einen 16-Bit-
value(Big-Endian) in die 16-Bit-Geräteregisteradressereg.
- readReg(reg: int) int¶
Liest einen einzelnen 8-Bit-Wert aus der 16-Bit-Geräteregisteradresse
regund gibt ihn alsintzurück.
- readReg16Bit(reg: int) int¶
Liest einen 16-Bit-Wert (Big-Endian) aus der 16-Bit-Geräteregisteradresse
regund gibt ihn alsintzurück.
- read_model_id() int¶
Gibt den Inhalt des 16-Bit-Modell-ID-Registers bei
0x010Fzurück. Der erwartete Wert für einen VL53L1X ist0xEACC.
Konstanten¶
- vl53l1x.VL51L1X_DEFAULT_CONFIGURATION: bytes¶
Standardmäßiger 91-Byte-Konfigurationsblock, der während der Konstruktion ab Register
0x2Dauf das Gerät geschrieben wird. Der Block setzt die Interrupt-Polarität, den Sigma-Schwellenwert, den Signalschwellenwert, die Intermessungsperiode, die Distanzschwellenwerte, das ROI-Zentrum/die ROI-Größe und weitere Messparameter, die vom ST Ultra-Light-Treiber empfohlen werden. Die meisten Bytes sind nicht benutzermodifizierbar; die benutzerkonfigurierbaren Felder entnehmen Sie den Kommentaren im Quelltext.