vl53l1x — VL53L1X ToF mesafe sensörü sürücüsü

Bu modül, STMicroelectronics VL53L1X uçuş süresi (time-of-flight) mesafe ölçüm sensörü için I2C üzerinden bir sürücü sağlar. VL53L1X, 940 nm görünmez lazer yayıcı ve bir SPAD alıcı dizisi kullanarak ~4 m’ye kadar mutlak mesafe ölçer.

Örnek kullanım:

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)

Sınıflar

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

Bir VL53L1X sürücü örneği oluşturur.

  • bus, sensörle iletişim kurmak için kullanılan, yapılandırılmış bir machine.I2C veri yolu nesnesidir.

  • address, aygıtın 7 bitlik I2C adresidir. Varsayılan olarak 0x29.

Yapıcı, yazılımsal bir sıfırlama gerçekleştirir, çip model kimliğini doğrular, varsayılan yapılandırma bloğunu aygıta yazar ve ST API’sinin ilk mesafe ölçüm başlatmasında uyguladığı başlangıç yazmaç düzeltmesini uygular. Çağrı, sensör yerleşirken ~200 ms boyunca bloklanır. Model kimliği yazmacı beklenen 0xEACC değerini döndürmezse RuntimeError ortaya çıkarır.

writeReg(reg: int, value: int) None

16 bitlik aygıt yazmaç adresi reg konumuna tek bir 8 bitlik value yazar.

writeReg16Bit(reg: int, value: int) None

16 bitlik aygıt yazmaç adresi reg konumuna 16 bitlik bir value (büyük uçlu) yazar.

readReg(reg: int) int

16 bitlik aygıt yazmaç adresi reg konumundan tek bir 8 bitlik değer okur ve bir int olarak döndürür.

readReg16Bit(reg: int) int

16 bitlik aygıt yazmaç adresi reg konumundan 16 bitlik bir değer (büyük uçlu) okur ve bir int olarak döndürür.

read_model_id() int

0x010F konumundaki 16 bitlik model kimliği yazmacının içeriğini döndürür. Bir VL53L1X için beklenen değer 0xEACC değeridir.

reset() None

Yazılımsal sıfırlama yazmacı 0x0000 konumunu değiştirerek aygıtın yazılımsal bir sıfırlamasını gerçekleştirir. Aygıt sıfırlama durumunda tutulurken 100 ms boyunca bloklanır.

read() int

RESULT__RANGE_STATUS (0x0089) yazmacının bir okumasını tetikler ve tek bölgeli dedektör SD0 için, çapraz konuşma düzeltmeli son mesafeyi milimetre cinsinden bir int olarak döndürür.

Sabitler

vl53l1x.VL51L1X_DEFAULT_CONFIGURATION: bytes

Yapım sırasında 0x2D yazmacından başlayarak aygıta yazılan, varsayılan 91 baytlık yapılandırma bloğu. Blok; kesme polaritesini, sigma eşiğini, sinyal eşiğini, ölçümler arası periyodu, mesafe eşiklerini, ROI merkezini/boyutunu ve ST ultra hafif sürücünün önerdiği diğer mesafe ölçüm parametrelerini ayarlar. Çoğu bayt kullanıcı tarafından değiştirilemez; kullanıcı tarafından ayarlanabilen alanlar için kaynak içi açıklamalara bakın.