vl53l1x — sterownik czujnika odległości ToF VL53L1X#

Ten moduł udostępnia sterownik dla czujnika dalmierza time-of-flight VL53L1X firmy STMicroelectronics przez I2C. VL53L1X mierzy odległość bezwzględną do ~4 m, wykorzystując niewidzialny emiter laserowy 940 nm oraz matrycę odbiorczą SPAD.

Przykład użycia:

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)

Klasy#

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

Tworzy instancję sterownika VL53L1X.

  • bus to skonfigurowany obiekt magistrali machine.I2C używany do komunikacji z czujnikiem.

  • address to 7-bitowy adres I2C urządzenia. Domyślnie 0x29.

Konstruktor wykonuje miękki reset, weryfikuje identyfikator modelu układu, zapisuje do urządzenia domyślny blok konfiguracyjny i stosuje poprawkę rejestrów startowych, którą ST API wykonuje przy pierwszym uruchomieniu pomiaru. Wywołanie blokuje na ~200 ms, podczas gdy czujnik się ustala. Zgłasza RuntimeError, jeśli rejestr identyfikatora modelu nie zwraca oczekiwanej wartości 0xEACC.

writeReg(reg: int, value: int) None#

Zapisuje pojedynczą 8-bitową wartość value do 16-bitowego adresu rejestru urządzenia reg.

writeReg16Bit(reg: int, value: int) None#

Zapisuje 16-bitową wartość value (big-endian) do 16-bitowego adresu rejestru urządzenia reg.

readReg(reg: int) int#

Odczytuje pojedynczą 8-bitową wartość z 16-bitowego adresu rejestru urządzenia reg i zwraca ją jako int.

readReg16Bit(reg: int) int#

Odczytuje 16-bitową wartość (big-endian) z 16-bitowego adresu rejestru urządzenia reg i zwraca ją jako int.

read_model_id() int#

Zwraca zawartość 16-bitowego rejestru identyfikatora modelu pod adresem 0x010F. Oczekiwana wartość dla VL53L1X to 0xEACC.

reset() None#

Wykonuje miękki reset urządzenia poprzez przełączenie rejestru miękkiego resetu 0x0000. Blokuje na 100 ms, podczas gdy urządzenie jest utrzymywane w stanie resetu.

read() int#

Wyzwala odczyt rejestru RESULT__RANGE_STATUS (0x0089) i zwraca końcową, skorygowaną o przesłuch odległość, w milimetrach, jednostrefowego detektora SD0 jako int.

Stałe#

vl53l1x.VL51L1X_DEFAULT_CONFIGURATION: bytes#

Domyślny 91-bajtowy blok konfiguracyjny zapisywany do urządzenia, począwszy od rejestru 0x2D podczas tworzenia instancji. Blok ustawia polaryzację przerwania, próg sigma, próg sygnału, okres międzypomiarowy, progi odległości, środek/rozmiar ROI oraz inne parametry pomiaru zalecane przez sterownik ultra-light firmy ST. Większość bajtów nie podlega modyfikacji przez użytkownika; pola dostrajalne przez użytkownika opisano w komentarzach w kodzie źródłowym.