Events

:

:

Elektronik | Funk | Software

Der Technik-Blog

  • Social Media

    YouTube

    Werbung:


    Neue Artikel


    Events

    • Keine zukünftigen Events vorhanden

    Der Technik-Blog

    Arduino VL53L0X Laser Distance Sensor - Time of Flight

    VL53L0X TOF Laser Distanz Sensor

    Alex @ AEQ-WEB

    Beim VL53L0X handelt es sich um einen Laser-Distanz-Sensor mit I2C. Ein fertiges Board bieten viele Hersteller an, darunter auch Adafruit. In diesem Artikel geht es um die Inbetriebnahme des Sensors mit dem Arduino. Anschließend folgt noch ein Testbericht über die Genauigkeit des Sensors und ob dieser eventuell eine alternative zu den Ultraschall-Sensoren (Beispiel HC-SR04) ist.

    Weiterführende Links:

    LV53L0X Distance Sensor


    Anschluss an den Arduino

    Der Sensor kommuniziert über die I2C-Schnittstelle mit dem Arduino. Es werden neben der Stromversorgung noch für die Kommunikation die Anschlüsse A4 & A5 (SDA & SCL) vom Arduino benötigt. Der Sensor arbeitet sowohl mit 3,3 Volt als auch mit 5 Volt. Außerdem gibt es einen digitalen Ausgang, der beim Überschreiten eines definierten Bereiches aktiviert wird. Dadurch kann beispielsweise ein Interrupt ausgelöst werden. Die folgende Grafik zeigt den Anschluss des VL53L0X mit dem Arduino UNO:

    Werbung:

    Wie funktioniert der Sensor?

    Der Sensor sendet einen Lichtpuls im Infrarot-Bereich (940 nm) aus, der wiederum von einem Gegenstand vor dem Sensor reflektiert wird. Über die Laufzeit zwischen Infrarot-Diode und dem Phototransistor wird die Distanz von einem eingebauten Mikrocontroller errechnet. Die errechnete Distanz wird anschließend über I2C an den Mikrocontroller (Arduino, ESP etc.) gesendet. Außerdem gibt es zwei verschiedene Übertragungsmodi, nämlich eine aktive und eine passive. Beim aktiven Modus überträgt der Sensor ständig neue Messwerte an den Arduino, beim passiven Modus müssen die Messwerte erst vom Arduino aktiv abgefragt werden. Diese Funktionen sind auch als Continuous beziehungsweise Single bekannt.

    Die Library

    Es gibt mehrere Librarys für den VL53L0X, darunter befindet sich auch die VL53L0X von Adafruit. Nach einigen Praxistestes mit verschiedenen Librarys hat sich jedoch die VL53L0X Library von Pololu als die beste Bibliothek bewährt. Die Library ist sehr einfach zu bedienen und bietet verschiedene Betriebsmodi an:

  • Sehr schnelle Messintervalle, jedoch mit größeren Toleranzen
  • Sehr geringe Toleranzen, jedoch mit einer längeren Messzeit
  • Long-Range Modus

  • Der Sensor kann die Distanz innerhalb von rund 30 Millisekunden ermitteln, was besonders für Messungen an bewegten Objekten interessant ist. Allerdings muss man hier eine größere Ungenauigkeit in Kauf nehmen. Wenn vier bis fünf Messintervalle pro Sekunde noch ausreichend sind, so kann der High-Accuracy-Modus aktiviert werden. Der Sensor liefert in diesem Modus dann je nach Oberflächenbeschaffung des zu messenden Objektes deutlich präzisere Ergebnisse.

    Genauigkeit vom Sensor

    Die Genauigkeit des Sensors hängt neben der Einstellung vom Betriebsmodus vor allem auch von der Oberfläche des zu messenden Objektes ab. Nichtreflektierende Gegenstände wie Holz, matter Kunststoff, Karton etc. können sehr exakt gemessen werden. Ebenso auch Metalle, welche nicht zu stark reflektieren, liefern sehr gute Ergebnisse. Deutlich schlechtere Ergebnisse werden von reflektierenden Gegenständen wie Glas oder sehr glatte spiegelnde Oberflächen erzielt. In einem Praxistest wurden verschiedene Gegenstände (Kunststoff, Glas, Metall) über unterschiedliche Entfernungen gemessen, woraus folgende Ergebnisse gewonnen werden konnten:

    Werbung:

    Verhalten bei Kunststoff

    Distanz max. Abweichung
    30 mm 2 mm
    50 mm 2 mm
    100 mm 1 mm
    175 mm 4 mm
    210 mm 7 mm
    250 mm 3 mm
    300 mm 7 mm
    400 mm 35 mm
    500 mm 70 mm


    Verhalten bei Glas

    Distanz max. Abweichung
    30 mm 12 mm
    50 mm 4 mm
    100 mm 13 mm
    175 mm 3 mm
    210 mm 7 mm
    250 mm 11 mm
    300 mm 50 mm
    400 mm 150 mm
    500 mm nicht messbar


    Verhalten bei Metall (Matt)

    Distanz max. Abweichung
    30 mm 1 mm
    50 mm 1 mm
    100 mm 5 mm
    175 mm 4 mm
    210 mm 2 mm
    250 mm 3 mm
    300 mm 6 mm
    400 mm 24 mm
    500 mm 42 mm




    *Alle Angaben ohne Gewähr.
    Das folgende Bild zeigt den Versuchsaufbau, aus dem die Messwerte für die oberen Tabellen entnommen wurden:

    Zusammengefasst kann man sagen, dass der Sensor deutlich genauer im Vergleich zu den bekannten Ultraschall-Sensoren für den Arduino ist. In der Praxis ist der Sensor im Nahbereich von etwa 50 bis 350 Millimeter sehr gut zu gebrauchen. Anzumerken ist, dass der Sensor nicht punktförmig misst, sondern einen kleinen Kegel hat. Dies bedeutet, dass ab einer Entfernung von bereits mehr als 30 Zentimeter deutliche Reflexionen von umliegenden Gegenständen oder Flächen auftreten können, die wiederum die Messung beeinflussen. Trotzdem kann der Sensor Entfernungen von bis zu zwei Meter messen. Bei einer Messung zur Wand oder auf die Decke sind daher auch bei über einem Meter Entfernung noch präzise Ergebnisse zu erwarten. Ein weiterer Einflussfaktor ist die Sonneneinstrahlung und auch der Betrieb von mehreren Sensoren gleichzeitig im engen Umfeld.

    940nm - Stört das Sonnenlicht?

    Der Sensor arbeitet im Infrarot-Bereich am Farbspektrum nicht weit entfernt vom sichtbaren Bereich. Ebenfalls stark vertreten ist in diesem Bereich das Sonnenlicht. Wird der Sensor im Freien verwendet, muss dies berücksichtigt werden. Ein praktischer Outdoor-Test ist aktuell noch ausständig.

    Werbung:


    122X122

    Über den Autor

    Alex, der Gründer von AEQ-WEB. Seit über 10 Jahren beschäftigt er sich mit Computern und elektronischen Bauteilen aller Art. Neben den Hardware-Projekten entwickelt er auch Webseiten, Apps und Software für Computer.

    Top Artikel in dieser Kategorie:

    Arduino LM358 PT1000 Sensor Converter

    Temperatur messen mit PT1000 & Arduino

    • Video
    • DE/EN

    PT1000 Sensoren können nicht direkt analog mit einem Mikrocontroller gemessen werden. Wie baut man einen Messwandler mit dem LM358 für den PT1000 und Arduino?

    Weiterlesen
    Arduino PT100 Temperature Sensor Converter

    PT100 Temperatur messen mit Arduino

    • Video
    • DE/EN

    Der PT100 ist ein sehr präziser industrieller Temperatursensor. In diesem Artikel geht es um den Bau eines Messverstärkers zum Einlesen eines PT100 am Arduino

    Weiterlesen

    Social Media

    YouTube

    Werbung:


    Neue Artikel


    Events

    • Keine zukünftigen Events vorhanden