vl53l1x — ovladač ToF senzoru vzdálenosti VL53L1X

Tento modul poskytuje ovladač pro laserový dálkoměr VL53L1X (time-of-flight) od STMicroelectronics přes I2C. VL53L1X měří absolutní vzdálenost až ~4 m pomocí neviditelného laserového emitoru 940 nm a přijímacího pole SPAD.

Příklad použití:

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)

Třídy

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

Vytvoří instanci ovladače VL53L1X.

  • bus je nakonfigurovaný objekt sběrnice machine.I2C použitý pro komunikaci se senzorem.

  • address je 7bitová I2C adresa zařízení. Výchozí hodnota je 0x29.

Konstruktor provede softwarový reset, ověří ID modelu čipu, zapíše do zařízení výchozí konfigurační blok a aplikuje opravu spouštěcích registrů, kterou ST API provádí při prvním spuštění měření. Volání blokuje na ~200 ms, než se senzor ustálí. Vyvolá RuntimeError, pokud registr ID modelu nevrátí očekávanou hodnotu 0xEACC.

writeReg(reg: int, value: int) None

Zapíše jedinou 8bitovou hodnotu value do 16bitové adresy registru zařízení reg.

writeReg16Bit(reg: int, value: int) None

Zapíše 16bitovou hodnotu value (big-endian) do 16bitové adresy registru zařízení reg.

readReg(reg: int) int

Přečte jedinou 8bitovou hodnotu z 16bitové adresy registru zařízení reg a vrátí ji jako int.

readReg16Bit(reg: int) int

Přečte 16bitovou hodnotu (big-endian) z 16bitové adresy registru zařízení reg a vrátí ji jako int.

read_model_id() int

Vrátí obsah 16bitového registru ID modelu na adrese 0x010F. Očekávaná hodnota pro VL53L1X je 0xEACC.

reset() None

Provede softwarový reset zařízení přepnutím registru softwarového resetu 0x0000. Blokuje na 100 ms, dokud je zařízení drženo v resetu.

read() int

Vyvolá čtení registru RESULT__RANGE_STATUS (0x0089) a vrátí konečnou vzdálenost korigovanou na přeslechy, v milimetrech, jednozónového detektoru SD0 jako int.

Konstanty

vl53l1x.VL51L1X_DEFAULT_CONFIGURATION: bytes

Výchozí 91bajtový konfigurační blok zapsaný do zařízení počínaje registrem 0x2D během konstrukce. Blok nastavuje polaritu přerušení, práh sigma, práh signálu, periodu mezi měřeními, prahy vzdálenosti, střed/velikost ROI a další parametry měření doporučené ovladačem ST ultra-light. Většina bajtů není uživatelsky modifikovatelná; uživatelsky laditelná pole najdete v komentářích ve zdrojovém kódu.