vl53l1x — VL53L1X ToF távolságérzékelő illesztőprogram

Ez a modul illesztőprogramot biztosít az STMicroelectronics VL53L1X repülési idő (time-of-flight) alapú távolságmérő érzékelőjéhez I2C-n keresztül. A VL53L1X abszolút távolságot mér ~4 m-ig egy 940 nm-es, láthatatlan lézersugárzó és egy SPAD vevőtömb segítségével.

Példa a használatra:

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)

Osztályok

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

VL53L1X illesztőprogram-példány létrehozása.

  • A bus egy konfigurált machine.I2C busz-objektum, amelyet az érzékelővel való kommunikációhoz használ.

  • Az address az eszköz 7 bites I2C-címe. Alapértelmezetten 0x29.

A konstruktor szoft resetet hajt végre, ellenőrzi a chip modellazonosítóját, az eszközre írja az alapértelmezett konfigurációs blokkot, és alkalmazza azt az indítási regiszterjavítást, amelyet az ST API az első távolságmérés indításakor hajt végre. A hívás ~200 ms-ig blokkol, amíg az érzékelő beáll. RuntimeError kivételt dob, ha a modellazonosító-regiszter nem a várt 0xEACC értéket adja vissza.

writeReg(reg: int, value: int) None

Egyetlen 8 bites value érték írása a reg 16 bites eszközregiszter-címre.

writeReg16Bit(reg: int, value: int) None

Egy 16 bites value érték (big-endian) írása a reg 16 bites eszközregiszter-címre.

readReg(reg: int) int

Egyetlen 8 bites érték beolvasása a reg 16 bites eszközregiszter-címről, és visszaadása int típusként.

readReg16Bit(reg: int) int

Egy 16 bites érték (big-endian) beolvasása a reg 16 bites eszközregiszter-címről, és visszaadása int típusként.

read_model_id() int

Visszaadja a 0x010F címen lévő 16 bites modellazonosító-regiszter tartalmát. A VL53L1X esetén a várt érték 0xEACC.

reset() None

Az eszköz szoft resetjének végrehajtása a 0x0000 szoft-reset regiszter átkapcsolásával. 100 ms-ig blokkol, amíg az eszközt resetállapotban tartja.

read() int

A RESULT__RANGE_STATUS (0x0089) regiszter beolvasásának kiváltása, és az SD0 egyzónás detektor végső, áthallással korrigált távolságának visszaadása milliméterben, int típusként.

Konstansok

vl53l1x.VL51L1X_DEFAULT_CONFIGURATION: bytes

Az alapértelmezett 91 bájtos konfigurációs blokk, amelyet a létrehozás során a 0x2D regisztertől kezdődően ír az eszközre. A blokk beállítja a megszakítás polaritását, a szigma-küszöbértéket, a jelküszöbértéket, a mérések közötti periódust, a távolsági küszöbértékeket, a ROI középpontját/méretét és más, az ST ultra-light illesztőprogram által ajánlott távolságmérési paramétereket. A legtöbb bájt nem módosítható a felhasználó által; a felhasználó által hangolható mezőkért lásd a forráskódbeli megjegyzéseket.