vl53l1x --- Driver sensor jarak ToF VL53L1X

Modul ini menyediakan driver untuk sensor jarak time-of-flight VL53L1X dari STMicroelectronics melalui I2C. VL53L1X mengukur jarak absolut hingga ~4 m menggunakan pemancar laser tak terlihat 940 nm dan array penerima SPAD.

Contoh penggunaan:

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)

Kelas

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

Membuat instance driver VL53L1X.

  • bus adalah objek bus machine.I2C yang telah dikonfigurasi untuk berkomunikasi dengan sensor.

  • address adalah alamat I2C 7-bit dari perangkat. Default-nya adalah 0x29.

Konstruktor melakukan soft reset, memverifikasi ID model chip, menulis blok konfigurasi default ke perangkat, dan menerapkan perbaikan register saat startup yang dilakukan oleh ST API pada awal ranging pertama. Pemanggilan ini memblokir selama ~200 ms saat sensor stabil. Memunculkan RuntimeError jika register ID model tidak mengembalikan nilai yang diharapkan 0xEACC.

writeReg(reg: int, value: int) None

Menulis satu value 8-bit ke alamat register perangkat 16-bit reg.

writeReg16Bit(reg: int, value: int) None

Menulis value 16-bit (big-endian) ke alamat register perangkat 16-bit reg.

readReg(reg: int) int

Membaca satu nilai 8-bit dari alamat register perangkat 16-bit reg dan mengembalikannya sebagai int.

readReg16Bit(reg: int) int

Membaca nilai 16-bit (big-endian) dari alamat register perangkat 16-bit reg dan mengembalikannya sebagai int.

read_model_id() int

Mengembalikan isi register ID model 16-bit di 0x010F. Nilai yang diharapkan untuk VL53L1X adalah 0xEACC.

reset() None

Melakukan soft reset perangkat dengan mengubah register soft-reset 0x0000. Memblokir selama 100 ms saat perangkat ditahan dalam kondisi reset.

read() int

Memicu pembacaan register RESULT__RANGE_STATUS (0x0089) dan mengembalikan jarak akhir yang telah dikoreksi crosstalk, dalam milimeter, dari detektor satu zona SD0 sebagai int.

Konstanta

vl53l1x.VL51L1X_DEFAULT_CONFIGURATION: bytes

Blok konfigurasi 91-byte default yang ditulis ke perangkat mulai dari register 0x2D selama konstruksi. Blok ini mengatur polaritas interupsi, ambang sigma, ambang sinyal, periode antarpengukuran, ambang jarak, pusat/ukuran ROI, dan parameter ranging lain yang direkomendasikan oleh driver ultra-ringan ST. Sebagian besar byte tidak dapat dimodifikasi pengguna; lihat komentar dalam sumber untuk field yang dapat disesuaikan pengguna.