Time-of-Flight Mikro-LIDAR-Entfernungssensor (VL53L0X)¶
Einführung¶
Der VL53L0X ist ein Time-of-Flight (ToF) Distanzmesssensor, der mithilfe von Lasertechnologie präzise Entfernungen bis zu 2 Metern messen kann. Das Modul ist ein Multisensor-System, das einen integrierten Laseremitter, Detektor und Mikrocontroller enthält. Es ist vollständig ausgestattet mit erforderlichen Komponenten wie Pull-up-Widerständen und Kondensatoren und bietet einen Messbereich von 50 - 1200 mm.
Funktionsprinzip¶
Das VL53L0X-Modul arbeitet auf dem Prinzip der Flugzeit (ToF). Es sendet einen Laserimpuls aus und misst die Zeit, die der Impuls benötigt, um zurückzukommen. Diese Zeit ist proportional zur Entfernung zwischen Sensor und Objekt. Das Modul nutzt ein SPAD-Array (Single-Photon-Avalanche-Diode) für die Detektion des reflektierten Lichts vom Objekt. Das SPAD-Array kann selbst einzelne Photonen detektieren. Ein integrierter Mikrocontroller verarbeitet die Daten des SPAD-Arrays und berechnet die Entfernung zum Objekt.
Anwendungsbeispiele¶
Hardwarekomponenten
Arduino Uno R4 oder R3 Board * 1
Time-of-Flight Mikro-LIDAR-Entfernungssensor * 1
Jumperkabel
Schaltungsaufbau
Programmcode¶
Bemerkung
Für die Installation der Bibliothek verwenden Sie den Arduino-Bibliotheksmanager und suchen Sie nach „Adafruit_VL53L0X“ und installieren Sie diese.
Code-Erläuterung¶
Einbindung der notwendigen Bibliothek und Initialisierung des Sensorobjekts. Wir beginnen mit der Einbindung der Bibliothek für den VL53L0X-Sensor und erstellen eine Instanz der Klasse Adafruit_VL53L0X.
Bemerkung
Verwenden Sie den Arduino-Bibliotheksmanager und suchen Sie nach „Adafruit_VL53L0X“ und installieren Sie diese.
#include <Adafruit_VL53L0X.h> Adafruit_VL53L0X lox = Adafruit_VL53L0X();
Initialisierung in der Funktion
setup()
. Hier richten wir die serielle Kommunikation ein und initialisieren den Entfernungssensor. Kann der Sensor nicht initialisiert werden, hält das Programm an.void setup() { Serial.begin(115200); while (!Serial) { delay(1); } Serial.println("Adafruit VL53L0X test"); if (!lox.begin()) { Serial.println(F("Failed to boot VL53L0X")); while (1) ; } Serial.println(F("VL53L0X API Simple Ranging example\n\n")); }
Erfassung und Anzeige der Messwerte in der Funktion
loop()
. Kontinuierlich nimmt der Arduino eine Entfernungsmessung vor und zeigt diese, falls gültig, im seriellen Monitor an.void loop() { VL53L0X_RangingMeasurementData_t measure; Serial.print("Reading a measurement... "); lox.rangingTest(&measure, false); if (measure.RangeStatus != 4) { Serial.print("Distance (mm): "); Serial.println(measure.RangeMilliMeter); } else { Serial.println(" out of range "); } delay(100); }
Weitere Ideen¶
Integration des Sensors in eine Anzeige (wie ein OLED), um die Entfernungsdaten anzuzeigen.
Verwenden der Entfernungsdaten, um andere Komponenten wie LEDs oder Summer auszulösen, wenn ein Objekt in einen bestimmten Bereich kommt.
Weitere Projekte¶
fun_tof_distance_monitor