vl53l1x --- ไดรเวอร์เซนเซอร์วัดระยะ VL53L1X ToF¶
โมดูลนี้จัดเตรียมไดรเวอร์สำหรับเซนเซอร์วัดระยะแบบ time-of-flight VL53L1X ของ STMicroelectronics ผ่าน I2C เซนเซอร์ VL53L1X วัดระยะสัมบูรณ์ได้ถึงประมาณ 4 เมตร โดยใช้เลเซอร์ที่มองไม่เห็น 940 nm และอาร์เรย์รับ SPAD
ตัวอย่างการใช้งาน:
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)¶
สร้าง instance ไดรเวอร์ VL53L1X
busคือออบเจกต์ I2C busmachine.I2Cที่ตั้งค่าแล้ว ใช้สำหรับสื่อสารกับเซนเซอร์addressคือที่อยู่ I2C 7 บิตของอุปกรณ์ ค่าเริ่มต้นคือ0x29
คอนสตรักเตอร์ทำการ soft reset, ตรวจสอบ model ID ของชิป, เขียนบล็อกการตั้งค่าเริ่มต้นลงในอุปกรณ์, และใช้การแก้ไข register เริ่มต้นที่ ST API ทำในการเริ่มต้น ranging ครั้งแรก การเรียกนี้จะบล็อกประมาณ 200 ms ขณะที่เซนเซอร์ตั้งตัว จะยก
RuntimeErrorหาก register model ID ไม่คืนค่าที่คาดหวัง0xEACC- writeReg16Bit(reg: int, value: int) None¶
เขียน
value16 บิต (big-endian) ไปยังที่อยู่ register อุปกรณ์ 16 บิตreg
- readReg16Bit(reg: int) int¶
อ่านค่า 16 บิต (big-endian) จากที่อยู่ register อุปกรณ์ 16 บิต
regและคืนค่าเป็นint
- read_model_id() int¶
คืนเนื้อหาของ register model-ID 16 บิตที่
0x010Fค่าที่คาดหวังสำหรับ VL53L1X คือ0xEACC
ค่าคงที่¶
- vl53l1x.VL51L1X_DEFAULT_CONFIGURATION: bytes¶
บล็อกการตั้งค่า 91 ไบต์เริ่มต้นที่เขียนลงในอุปกรณ์เริ่มจาก register
0x2Dระหว่างการสร้าง บล็อกนี้กำหนด interrupt polarity, sigma threshold, signal threshold, intermeasurement period, distance thresholds, ROI center/size และพารามิเตอร์ ranging อื่นๆ ที่แนะนำโดยไดรเวอร์ ultra-light ของ ST ส่วนใหญ่ไม่สามารถปรับเปลี่ยนได้โดยผู้ใช้ โปรดดูคอมเมนต์ในซอร์สสำหรับฟิลด์ที่ผู้ใช้ปรับได้