VL53L0X เป็นเซ็นเซอร์ระยะทางที่มีขนาดกะทัดรัดและแม่นยำของการบิน (TOF) ที่สามารถวัดระยะทางได้สูงสุด 2 เมตรด้วยความแม่นยำมิลลิเมตร มันใช้เลเซอร์เพื่อวัดเวลาที่แสงเดินทางไปยังวัตถุและด้านหลังทำให้เหมาะสำหรับหุ่นยนต์การตรวจจับความใกล้ชิดและการตรวจจับอุปสรรค ในบทช่วยสอนนี้เราจะแนะนำคุณผ่านการเชื่อมต่อ VL53L0X กับ Arduino
สิ่งที่คุณต้องการ
- โมดูลเซ็นเซอร์ระยะทาง VL53L0X
- คณะกรรมการ Arduino (เช่น Uno, Mega, Nano)
- เครื่องหั่นขนมปังและสายจัมเปอร์
- คอมพิวเตอร์ที่ติดตั้ง Arduino IDE
ขั้นตอนที่ 1: ทำความเข้าใจกับเซ็นเซอร์ VL53L0X
VL53L0X สื่อสารโดยใช้โปรโตคอล I2C ทำให้ง่ายต่อการเชื่อมต่อกับ Arduino มันมีคุณสมบัติ:
- อินเทอร์เฟซ I2C: ใช้สาย SDA และ SCL
- ความสามารถต่าง ๆ : มาตรการระยะทางจากไม่กี่มิลลิเมตรถึง 2 เมตร
vl53l0x pinout
เข็มหมุด | การทำงาน |
---|---|
vin | แหล่งจ่ายไฟ (3.3V/5V) |
gnd | พื้น |
SDA | สายข้อมูล i2c |
SCL | สายนาฬิกา i2c |
Xshut | อินพุตปิดเครื่อง (ไม่บังคับ) |
GPIO1 | ขัดจังหวะ (ไม่บังคับ) |
ขั้นตอนที่ 2: การเดินสาย VL53L0X ถึง Arduino
เชื่อมต่อ VL53L0X กับ Arduino ของคุณดังนี้:
VL53L0X PIN | พิน Arduino |
---|---|
vin | 5V |
gnd | gnd |
SDA | A4 (SDA) |
SCL | A5 (SCL) |
บันทึก: หากคุณใช้ Arduino Mega หรือบอร์ดอื่น ๆ ให้ตรวจสอบ I2C Pinout
ขั้นตอนที่ 3: ติดตั้งไลบรารี VL53L0X
ห้องสมุด Adafruit VL53L0X ช่วยลดความซับซ้อนของการโต้ตอบกับเซ็นเซอร์
ขั้นตอนในการติดตั้ง:
- เปิด Arduino IDE
- ไป ร่าง > รวมห้องสมุด > จัดการห้องสมุด.
- ค้นหา "Adafruit VL53L0X" แล้วคลิก ติดตั้ง.
ขั้นตอนที่ 4: อัปโหลดรหัส
นี่คือตัวอย่างตัวอย่างในการอ่านการวัดระยะทางจาก VL53L0X:
#include <Wire.h>
#include <Adafruit_VL53L0X.h>
Adafruit_VL53L0X lox = Adafruit_VL53L0X();
void setup() {
Serial.begin(9600);
while (!Serial) {
delay(1); // Wait for Serial Monitor to open
}
Serial.println("Adafruit VL53L0X Test");
if (!lox.begin()) {
Serial.println("Failed to find VL53L0X sensor! Check wiring.");
while (1);
}
Serial.println("VL53L0X sensor initialized.");
}
void loop() {
VL53L0X_RangingMeasurementData_t measure;
lox.rangingTest(&measure, false); // Perform a ranging test
if (measure.RangeStatus != 4) { // Check if valid
Serial.print("Distance (mm): ");
Serial.println(measure.RangeMilliMeter);
} else {
Serial.println("Out of range");
}
delay(100); // Wait before the next measurement
}
ขั้นตอนที่ 5: ทดสอบการตั้งค่า
- เชื่อมต่อ Arduino กับคอมพิวเตอร์ของคุณผ่าน USB
- เปิด Arduino IDE และเลือกที่ถูกต้อง กระดาน และ ท่าเรือ ภายใต้ เครื่องมือ เมนู.
- อัปโหลดรหัสไปยัง Arduino โดยคลิก อัพโหลด.
- เปิดมอนิเตอร์อนุกรม (เครื่องมือ > จอภาพอนุกรม) และตั้งค่าอัตราการรับส่งข้อมูลเป็น
9600
. - ชี้เซ็นเซอร์ VL53L0X ที่วัตถุ ระยะทางในมิลลิเมตรควรปรากฏในจอภาพอนุกรม
ตัวเลือก: การใช้เซ็นเซอร์ VL53L0X หลายตัว
ในการใช้เซ็นเซอร์ VL53L0X หลายตัวบนบัส I2C เดียวกันคุณต้องเปลี่ยนที่อยู่ I2C ของพวกเขาโดยใช้ไฟล์ XSHUT
เข็มหมุด:
- ดึง
XSHUT
พินของเซ็นเซอร์หนึ่งตัวต่ำเพื่อปิดการใช้งาน - เริ่มต้นเซ็นเซอร์ที่ใช้งานอยู่และเปลี่ยนที่อยู่ I2C
- ทำซ้ำสำหรับเซ็นเซอร์เพิ่มเติม
รหัสตัวอย่างสำหรับการเปลี่ยนที่อยู่ I2C:
lox.setAddress(0x31); // Set a new I2C address (default is 0x29)
แอปพลิเคชันของ VL53L0X
- การตรวจจับอุปสรรคสำหรับหุ่นยนต์
- เซ็นเซอร์ความใกล้ชิดสำหรับอุปกรณ์สมาร์ท
- การควบคุมแสงอัตโนมัติ
- ระบบการลงจอดโดรน
การแก้ไขปัญหา
- ไม่มีการตอบสนองจากเซ็นเซอร์: ตรวจสอบสายไฟอีกครั้งและตรวจสอบให้แน่ใจว่าเซ็นเซอร์ใช้พลังงาน
- นอกช่วงการอ่าน: ตรวจสอบให้แน่ใจว่าวัตถุเป้าหมายอยู่ในช่วงที่มีประสิทธิภาพของเซ็นเซอร์ (สูงสุด 2 เมตร)
-
เซ็นเซอร์หลายตัวรบกวน: ใช้
XSHUT
PIN เพื่อกำหนดที่อยู่ I2C ที่ไม่ซ้ำกัน
บทสรุป
คุณได้ตั้งค่าเซ็นเซอร์ระยะทางระยะเวลา VL53L0X ของ VL53L0X สำเร็จด้วย Arduino ขนาดที่แม่นยำและขนาดกะทัดรัดทำให้เป็นเครื่องมือที่หลากหลายสำหรับโครงการต่าง ๆ ทดลองกับแอพพลิเคชั่นที่แตกต่างกันเช่นหุ่นยนต์หรือระบบสมาร์ทโฮมเพื่อใช้ประโยชน์จากเซ็นเซอร์ที่ทรงพลังที่สุด!