ในบางโครงการของคุณคุณจะต้องใช้ในการวัดระยะทาง คุณควรรู้ว่าไฟล์ VL53L0X เป็นอุปกรณ์ที่ช่วยให้สามารถวัดได้ด้วยความแม่นยำสูง. นอกจากนี้ขนาดที่เล็กและราคาไม่แพงทำให้เหมาะสำหรับโครงการ DIY ของคุณโดยเฉพาะอย่างยิ่งเมื่อใช้ร่วมกับ Arduino
มีอุปกรณ์จำนวนมากที่สามารถวัดระยะทางได้บางเครื่องเป็นเครื่องวัดระยะทางโดยอาศัยอัลตร้าซาวด์ที่ส่งเสียงและเมื่อตีกลับกับวัตถุจะช่วยให้ทราบระยะทางที่มีความแม่นยำเพียงพอ แต่ถ้าคุณต้องการความแม่นยำสูงสุดสำหรับสิ่งนี้คุณต้องมี เครื่องวัดระยะทางแสง. อุปกรณ์ตรวจวัดประเภทนี้ ขึ้นอยู่กับเลเซอร์เช่นเดียวกับกรณีของ VL53L0X
ToF คืออะไร?
กล้อง Time of Flight หรือ ToF (Time-of-Flight) เป็นเทคนิคที่ใช้ในการวัดระยะทาง ขึ้นอยู่กับทัศนศาสตร์การวัดเวลาที่ผ่านไประหว่างการปล่อยลำแสงและการรับแสง สามารถเป็น CCD เซ็นเซอร์ CMOS และพัลส์สามารถเป็นอินฟราเรดเลเซอร์ ฯลฯ ระบบจะซิงโครไนซ์เพื่อเริ่มการวัดเวลาเมื่อชีพจรถูกกระตุ้นและหยุดตัวนับเมื่อได้รับการตีกลับจากเซ็นเซอร์
ด้วยวิธีนั้น สามารถคำนวณระยะทางได้ค่อนข้างแม่นยำ. ใช้เพียงวงจรลอจิกเพิ่มเติมที่รวมอยู่ในชิปเพื่อทำการคำนวณตั้งแต่ช่วงที่ลำแสงถูกยิงออกไปจนกระทั่งได้รับจึงกำหนดระยะทาง หลักการค่อนข้างตรงไปตรงมา
อุปกรณ์ประเภทนี้ใช้ใน หุ่นยนต์ เพื่อให้หุ่นยนต์หรือโดรนหลีกเลี่ยงสิ่งกีดขวางรู้ว่าพวกมันอยู่ห่างจากเป้าหมายมากแค่ไหนตรวจจับการเคลื่อนไหวหรือความใกล้สำหรับเซ็นเซอร์รถยนต์ที่ใช้สำหรับแอพพลิเคชั่นต่าง ๆ เพื่อใช้มิเตอร์อิเล็กทรอนิกส์เช่นแอคชูเอเตอร์ให้ Arduino ทำ เมื่อตรวจพบความใกล้เคียงบางอย่างของวัตถุ ฯลฯ
VL53L0X และแผ่นข้อมูลคืออะไร
El VL53L0X ใช้หลักการนี้ในการวัดระยะทางด้วยเลเซอร์อินฟราเรด รุ่นที่แล้ว. เมื่อใช้ร่วมกับโปรเซสเซอร์เช่น Arduino อาจเป็นเครื่องมือที่มีประสิทธิภาพสำหรับการวัด โดยเฉพาะชิปสามารถจับระยะห่างระหว่าง 50 มม. ถึง 2000 มม. นั่นคือระหว่าง 5 ซม. ถึง 2 เมตร
ในการวัดระยะทางที่ใกล้ขึ้นคุณอาจต้องใช้ชิปรุ่นนี้ที่เรียกว่า VL6180X ที่ช่วยให้คุณสามารถวัดช่วงระหว่าง 5 ถึง 200 มม. นั่นคือระหว่างครึ่งเซนติเมตรถึง 20 เซนติเมตร หากคุณต้องการค้นหาอุปกรณ์ที่คล้ายกัน แต่ใช้อัลตราซาวนด์ด้วยเหตุผลทางเทคนิคใด ๆ คุณควรดู HC-SR04 ซึ่งเป็นโมดูลราคาถูกที่ค่อนข้างถูกซึ่งเป็นที่นิยมในหมู่ผู้ผลิต
El ชิป VL53L0X ได้รับการออกแบบมาเพื่อ ทำงานได้แม้แสงโดยรอบจะค่อนข้างสูง. โปรดจำไว้ว่าเมื่อทำงานแบบออปติกยิ่งแสง "มลภาวะ" ของสิ่งแวดล้อมมีมากเท่าไหร่ก็ยิ่งยากที่จะจับการสะท้อนกลับของสัญญาณได้อย่างเพียงพอ แต่ในกรณีนี้จะไม่นำเสนอปัญหามากเกินไป นอกจากนี้ระบบการชดเชยที่รวมเข้าด้วยกันช่วยให้สามารถวัดได้แม้ว่าคุณจะใช้หลังกระจกป้องกันก็ตาม
ที่ทำให้มันเป็นหนึ่งเดียว เซ็นเซอร์ระยะทางที่ดีที่สุด ที่คุณจะพบในตลาด มีความแม่นยำสูงกว่าเซ็นเซอร์ที่ใช้อัลตราซาวนด์หรืออินฟราเรด (IR) มาก เหตุผลที่แม่นยำมากคือเลเซอร์จะไม่ได้รับผลกระทบจากเสียงสะท้อนหรือการสะท้อนจากวัตถุเหมือนในกรณีอื่น ๆ
ขณะนี้คุณสามารถพบว่ามันรวมอยู่ในล่อโดยมีราคาพิเศษประมาณ€ 16 หรือในจานที่เรียบง่ายกว่า€ 1 หรือ€ 3 ในกรณีอื่น ๆ คุณรู้อยู่แล้วว่าคุณจะพบมันในร้านค้าเช่น eBay, AliExpress, Amazon และอื่น ๆ ผู้ผลิตอุปกรณ์เหล่านี้มีหลากหลายดังนั้นหากคุณต้องการทราบรายละเอียดของรุ่นที่คุณซื้อควรตรวจสอบ เอกสารข้อมูลของผู้ผลิต ที่คุณเลือก ตัวอย่างเช่น:
El VL53L0X ภายในชิปมีตัวปล่อยพัลส์เลเซอร์และเซ็นเซอร์เพื่อจับลำแสงที่ส่งกลับ ในกรณีนี้ตัวปล่อยคือเลเซอร์ความยาวคลื่น 940 นาโนเมตรและประเภท VCSEL (เลเซอร์เปล่งพื้นผิวโพรงแนวตั้ง) สำหรับเซ็นเซอร์จับภาพเป็น SPAD (Single Photon Avalanche Diodes) นอกจากนี้ยังรวมอุปกรณ์อิเล็กทรอนิกส์ภายในที่เรียกว่า FlightSense ™ซึ่งจะคำนวณระยะทาง
El มุมการวัดหรือ FOV (Field of View) มันคือ25ºในกรณีนี้ นั่นแปลว่าพื้นที่การวัดเส้นผ่านศูนย์กลาง 0,44 ม. ที่ระยะ 1 ม. แม้ว่าช่วงการวัดจะขึ้นอยู่กับสภาพแวดล้อม ถ้าทำในบ้านจะสูงกว่าการทำนอกบ้านเล็กน้อย นอกจากนี้ยังขึ้นอยู่กับการสะท้อนของวัตถุที่คุณกำลังชี้:
การสะท้อนเป้าหมาย | ข้อตกลงและเงื่อนไข | ภายใน | ภายนอก |
---|---|---|---|
เป้าหมายสีขาว | ตามแบบฉบับ | 200cm | 80cm |
เลียนแบบ | 120cm | 60cm | |
เป้าหมายสีเทา | ตามแบบฉบับ | 80cm | 50cm |
ขั้นต่ำ | 70cm | 40cm |
นอกจากนี้ VL53L0X ยังมีอีกมากมาย โหมดการทำงาน ซึ่งอาจทำให้ผลลัพธ์แตกต่างกันไป โหมดเหล่านี้สรุปไว้ในตารางต่อไปนี้:
modo | การจับเวลา | ขอบเขต | ความแม่นยำ |
---|---|---|---|
โดยค่าเริ่มต้น | 30ms | 1.2m | ดูตารางด้านล่าง |
ความแม่นยำสูง | 200ms | 1.2m | + / -% ฮิต |
ระยะยาว | 33ms | 2m | ดูตารางด้านล่าง |
ความเร็วสูง | 20ms | 1.2m | + / -% ฮิต |
ตามโหมดเหล่านี้เรามีหลายอย่าง ความแม่นยำมาตรฐานและระยะยาว ที่คุณมีในตารางนี้:
ภายใน | ภายนอก | |||||
---|---|---|---|---|---|---|
การสะท้อนเป้าหมาย | ระยะทาง | 33ms | 66ms | ระยะทาง | 33ms | 66ms |
เป้าหมายสีขาว | 120 ซม | 4% | 3% | 60 ซม | 7% | 6% |
เป้าหมายสีเทา | 70 ซม | 7% | 6% | 40 ซม | 12% | 9% |
Pinout และการเชื่อมต่อ
เพื่อให้ทำงานได้อย่างถูกต้องคุณต้องการ อินเทอร์เฟซกับโลกภายนอก และสามารถทำได้โดยใช้หมุดหรือการเชื่อมต่อบางอย่าง Pinout ของ VL53L0X นั้นค่อนข้างง่ายมีเพียง 6 พินเท่านั้น สำหรับการทำงานร่วมกับ Arduino การสื่อสารสามารถทำได้ผ่าน I2C
คุณสามารถเลี้ยงมันได้ เชื่อมต่อหมุด ดังนั้น:
- VCC ถึง 5v จาก Arduino
- GND ถึง GND ของ Arduino
- SCL ไปยังขาอะนาล็อก Arduino ตัวอย่างเช่น A5
- SDA ไปยังพินอนาล็อกอื่น ตัวอย่างเช่น A4
- ไม่จำเป็นต้องใช้พิน GPI01 และ XSHUT ในขณะนี้
บูรณาการกับ Arduino
สำหรับโมดูลอื่น ๆ อีกมากมายสำหรับ VL53L0X คุณยังมีไลบรารี (เช่นโมดูลสำหรับ Adafruit) ของโค้ดที่มีอยู่ซึ่งคุณสามารถใช้เพื่อทำงานกับฟังก์ชันบางอย่างเมื่อคุณเขียน ซอร์สโค้ดเพื่อจัดการโครงการของคุณใน Arduino IDE. หากนี่เป็นครั้งแรกของคุณกับ Arduino ฉันขอแนะนำ คู่มือการเขียนโปรแกรมของเรา.
ตัวอย่างของ รหัสง่ายๆสำหรับคุณในการวัดและแสดงค่าการวัดผ่านพอร์ตอนุกรม เพื่อให้คุณสามารถเห็นได้จากหน้าจอพีซีของคุณในขณะที่คุณเชื่อมต่อกับบอร์ด Arduino คือ:
#include "Adafruit_VL53L0X.h" Adafruit_VL53L0X lox = Adafruit_VL53L0X(); void setup() { Serial.begin(9600); // Iniciar sensor Serial.println("VL53L0X test"); if (!lox.begin()) { Serial.println(F("Error al iniciar VL53L0X")); while(1); } } void loop() { VL53L0X_RangingMeasurementData_t measure; Serial.print("Leyendo sensor... "); lox.rangingTest(&measure, false); // si se pasa true como parametro, muestra por puerto serie datos de debug if (measure.RangeStatus != 4) { Serial.print("Distancia (mm): "); Serial.println(measure.RangeMilliMeter); } else { Serial.println(" Fuera de rango "); } delay(100); }
ในห้องสมุดของ Adafruit คุณมีตัวอย่างการใช้งานเพิ่มเติมหากต้องการ ...