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.