vl53l1x --- Driver cảm biến đo khoảng cách ToF VL53L1X

Module này cung cấp driver cho cảm biến đo khoảng cách time-of-flight VL53L1X của STMicroelectronics qua I2C. VL53L1X đo khoảng cách tuyệt đối lên đến ~4 m sử dụng bộ phát laser vô hình 940 nm và mảng thu SPAD.

Ví dụ sử dụng:

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)

Các lớp

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

Khởi tạo instance driver VL53L1X.

  • bus là đối tượng bus machine.I2C đã được cấu hình dùng để giao tiếp với cảm biến.

  • address là địa chỉ I2C 7-bit của thiết bị. Mặc định là 0x29.

Constructor thực hiện đặt lại mềm, xác minh ID model chip, ghi khối cấu hình mặc định vào thiết bị, và áp dụng bản vá thanh ghi khởi động mà ST API thực hiện khi bắt đầu đo khoảng cách lần đầu. Lệnh gọi này sẽ bị chặn khoảng ~200 ms trong khi cảm biến ổn định. Đưa ra RuntimeError nếu thanh ghi ID model không trả về giá trị mong đợi 0xEACC.

writeReg(reg: int, value: int) None

Ghi một value 8-bit đơn vào địa chỉ thanh ghi thiết bị 16-bit reg.

writeReg16Bit(reg: int, value: int) None

Ghi một value 16-bit (big-endian) vào địa chỉ thanh ghi thiết bị 16-bit reg.

readReg(reg: int) int

Đọc một giá trị 8-bit đơn từ địa chỉ thanh ghi thiết bị 16-bit reg và trả về dưới dạng int.

readReg16Bit(reg: int) int

Đọc một giá trị 16-bit (big-endian) từ địa chỉ thanh ghi thiết bị 16-bit reg và trả về dưới dạng int.

read_model_id() int

Trả về nội dung của thanh ghi ID model 16-bit tại 0x010F. Giá trị mong đợi cho VL53L1X là 0xEACC.

reset() None

Thực hiện đặt lại mềm thiết bị bằng cách bật/tắt thanh ghi đặt lại mềm 0x0000. Chặn trong 100 ms trong khi thiết bị được giữ trong trạng thái đặt lại.

read() int

Kích hoạt đọc thanh ghi RESULT__RANGE_STATUS (0x0089) và trả về phạm vi đo cuối cùng đã được hiệu chỉnh crosstalk, tính bằng milimét, của detector đơn vùng SD0 dưới dạng int.

Các hằng số

vl53l1x.VL51L1X_DEFAULT_CONFIGURATION: bytes

Khối cấu hình 91-byte mặc định được ghi vào thiết bị bắt đầu từ thanh ghi 0x2D trong quá trình khởi tạo. Khối này thiết lập cực tính ngắt, ngưỡng sigma, ngưỡng tín hiệu, chu kỳ đo giữa các lần, ngưỡng khoảng cách, tâm/kích thước ROI, và các thông số đo khoảng cách khác được khuyến nghị bởi driver siêu nhẹ ST. Hầu hết các byte không thể sửa đổi bởi người dùng; tham khảo các chú thích trong mã nguồn để biết các trường có thể điều chỉnh.