การใช้เซ็นเซอร์เวลาบิน VL53L0X กับ Raspberry Pi

Using the VL53L0X Time-of-Flight Sensor with the Raspberry Pi

ที่ VL53L0X เป็นเซ็นเซอร์เวลาบิน (TOF) ที่วัดระยะทางอย่างแม่นยำโดยใช้เทคโนโลยีเลเซอร์ มันมักจะใช้ในหุ่นยนต์ระบบอัตโนมัติและการตรวจจับอุปสรรค คู่มือนี้จะนำคุณผ่านการตั้งค่าและใช้ VL53L0X กับ Raspberry Pi


สิ่งที่คุณต้องการ

  1. Raspberry Pi (รุ่นใด ๆ ที่มีการสนับสนุน GPIO เช่น PI 3, PI 4)
  2. โมดูลเซ็นเซอร์ระยะทาง VL53L0X
  3. เครื่องหั่นขนมปังและสายจัมเปอร์
  4. ติดตั้ง Python บนราสเบอร์รี่ pi

ขั้นตอนที่ 1: การเดินสาย VL53L0X ไปยัง Raspberry Pi

ที่ VL53L0X สื่อสารผ่าน I2Cดังนั้นเราจำเป็นต้องเชื่อมต่อกับพิน I2C ของ Raspberry Pi

การเชื่อมต่อ

VL53L0X PIN Raspberry Pi Pin
VCC 3.3V (พิน 1)
gnd พื้นดิน (พิน 6)
SDA SDA (พิน 3, GPIO2)
SCL SCL (PIN 5, GPIO3)
xshut (ไม่บังคับ) GPIO ใด ๆ (เพื่อเปิด/ปิดการใช้งานเซ็นเซอร์)

ขั้นตอนที่ 2: เปิดใช้งาน I2C บน Raspberry Pi

เนื่องจาก VL53L0X สื่อสารผ่าน I2C เราจึงต้องเปิดใช้งานอินเตอร์เฟส I2C

  1. เปิดเครื่องมือกำหนดค่า Raspberry Pi:

    sudo raspi-config
    
  2. นำทางไปยัง ตัวเลือกอินเตอร์เฟส> i2c และเปิดใช้งาน

  3. รีบูตราสเบอร์รี่ pi:

    sudo reboot
    
  4. ตรวจสอบว่าตรวจพบเซ็นเซอร์โดยการทำงาน:

    sudo i2cdetect -y 1
    

    VL53L0X ควรปรากฏที่ 0x29.


ขั้นตอนที่ 3: ติดตั้งไลบรารีที่ต้องการ

  1. อัปเดตรายการแพ็คเกจของ Raspberry Pi:
    sudo apt update && sudo apt upgrade -y
    
  2. ติดตั้งไลบรารี Python ที่จำเป็น:
    sudo apt install -y python3-pip i2c-tools python3-smbus
    pip3 install adafruit-circuitpython-vl53l0x
    

ขั้นตอนที่ 4: การอ่านข้อมูลระยะทางจาก VL53L0X

นี่คือสคริปต์ Python ในการวัดระยะทางโดยใช้เซ็นเซอร์ VL53L0X

ตัวอย่างรหัส Python

import time
import board
import busio
import adafruit_vl53l0x

# Initialize I2C and VL53L0X sensor
i2c = busio.I2C(board.SCL, board.SDA)
vl53 = adafruit_vl53l0x.VL53L0X(i2c)

try:
    while True:
        distance = vl53.range  # Read distance in millimeters
        print(f"Distance: {distance} mm")
        time.sleep(1)
except KeyboardInterrupt:
    print("Exiting...")

ขั้นตอนที่ 5: แอปพลิเคชันของ VL53L0X

  1. การตรวจจับอุปสรรค - ใช้ในหุ่นยนต์และยานพาหนะอัตโนมัติเพื่อตรวจจับวัตถุ
  2. การตรวจจับความใกล้ชิด - ทำประตูอัตโนมัติระบบรักษาความปลอดภัยหรือแอพพลิเคชั่น IoT
  3. การวัดระดับ - ตรวจสอบระดับของของเหลวในภาชนะ
  4. การรับรู้ท่าทาง - ติดตามการเคลื่อนไหวของมือสำหรับอินเทอร์เฟซแบบไม่สัมผัส

การแก้ไขปัญหา

  1. ไม่พบอุปกรณ์ (i2cdetect ไม่แสดง 0x29)

    • ตรวจสอบสายไฟของ SDA/SCL พิน
    • ตรวจสอบให้แน่ใจว่าอินเทอร์เฟซ I2C เปิดใช้งานบน Raspberry Pi
  2. การอ่านที่ไม่ถูกต้อง

    • ตรวจสอบให้แน่ใจว่าเซ็นเซอร์ไม่ได้ถูกขัดขวาง
    • หลีกเลี่ยงพื้นผิวสะท้อนแสงซึ่งอาจทำให้การอ่านไม่ถูกต้อง
  3. เซ็นเซอร์ VL53L0X หลายตัว

    • ใช้ Xshut PIN เพื่อกำหนดที่อยู่ I2C ที่แตกต่างกันให้กับเซ็นเซอร์ VL53L0X หลายตัว

บทสรุป

VL53L0X นั้นทรงพลัง เซ็นเซอร์ระยะทางที่ใช้เลเซอร์ ที่รวมเข้ากับ Raspberry Pi อย่างราบรื่น โดยทำตามคำแนะนำนี้คุณสามารถวัดระยะทางสำหรับหุ่นยนต์ระบบอัตโนมัติและโครงการ IoT ได้อย่างแม่นยำ ทดลองกับแอพพลิเคชั่นที่แตกต่างกันเพื่อปลดล็อกศักยภาพอย่างเต็มที่! 🚀

แสดงความคิดเห็น

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.