vl53l1x — VL53L1X ToF 거리 센서 드라이버

이 모듈은 STMicroelectronics VL53L1X 비행 시간(time-of-flight) 거리 측정 센서를 I2C로 제어하는 드라이버를 제공합니다. VL53L1X는 940 nm 비가시 레이저 방출기와 SPAD 수신 어레이를 사용하여 최대 약 4 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)

클래스

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

VL53L1X 드라이버 인스턴스를 생성합니다.

  • bus 는 센서와 통신하는 데 사용되는, 구성된 machine.I2C 버스 객체입니다.

  • address 는 장치의 7비트 I2C 주소입니다. 기본값은 0x29 입니다.

생성자는 소프트 리셋을 수행하고, 칩 모델 ID를 검증하며, 기본 구성 블록을 장치에 기록하고, ST API가 첫 측정 시작 시 수행하는 시작 레지스터 수정을 적용합니다. 센서가 안정될 때까지 약 200 ms 동안 호출이 블록됩니다. 모델 ID 레지스터가 예상값 0xEACC 를 반환하지 않으면 RuntimeError 가 발생합니다.

writeReg(reg: int, value: int) None

16비트 장치 레지스터 주소 reg 에 단일 8비트 value 를 기록합니다.

writeReg16Bit(reg: int, value: int) None

16비트 장치 레지스터 주소 reg 에 16비트 value (빅 엔디언)를 기록합니다.

readReg(reg: int) int

16비트 장치 레지스터 주소 reg 에서 단일 8비트 값을 읽어 int 로 반환합니다.

readReg16Bit(reg: int) int

16비트 장치 레지스터 주소 reg 에서 16비트 값(빅 엔디언)을 읽어 int 로 반환합니다.

read_model_id() int

0x010F 에 있는 16비트 모델 ID 레지스터의 내용을 반환합니다. VL53L1X의 예상값은 0xEACC 입니다.

reset() None

소프트 리셋 레지스터 0x0000 을 토글하여 장치의 소프트 리셋을 수행합니다. 장치가 리셋 상태로 유지되는 동안 100 ms 동안 블록됩니다.

read() int

RESULT__RANGE_STATUS (0x0089) 레지스터 읽기를 트리거하고, 단일 영역 검출기 SD0 의 최종 크로스토크 보정 거리를 밀리미터 단위의 int 로 반환합니다.

상수

vl53l1x.VL51L1X_DEFAULT_CONFIGURATION: bytes

생성 시 레지스터 0x2D 부터 시작하여 장치에 기록되는 기본 91바이트 구성 블록입니다. 이 블록은 인터럽트 극성, 시그마 임계값, 신호 임계값, 측정 간 주기, 거리 임계값, ROI 중심/크기, 그리고 ST 초경량 드라이버가 권장하는 기타 거리 측정 매개변수를 설정합니다. 대부분의 바이트는 사용자가 수정할 수 없습니다. 사용자 조정 가능 필드는 소스 내 주석을 참고하십시오.