LiDAR Abstandssensor ToF VL6180X: Unterschied zwischen den Versionen
| (6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 12: | Zeile 12: | ||
Typische Einsatzgebiete des VL6180X sind Objekterkennung, Hindernisvermeidung, Gestensteuerung, Abstandsmessung in der Robotik sowie Industrie- und Konsumerelektronik. Dank seiner kompakten Bauform, der hohen Messgenauigkeit im Nahbereich und der Unabhängigkeit von Umgebungslicht stellt der VL6180X eine robuste Lösung für präzise Kurzdistanz-Messaufgaben dar. | Typische Einsatzgebiete des VL6180X sind Objekterkennung, Hindernisvermeidung, Gestensteuerung, Abstandsmessung in der Robotik sowie Industrie- und Konsumerelektronik. Dank seiner kompakten Bauform, der hohen Messgenauigkeit im Nahbereich und der Unabhängigkeit von Umgebungslicht stellt der VL6180X eine robuste Lösung für präzise Kurzdistanz-Messaufgaben dar. | ||
Hinweis: Integrierte Photodiode (ALS) funktioniert beim vorliegenden Modell nicht mit der Pololu Bibliothek. | |||
= Technische Übersicht = | = Technische Übersicht = | ||
| Zeile 26: | Zeile 28: | ||
| Kommunikationsschnittstelle I²C<br/> || 400 kHz<br/> | | Kommunikationsschnittstelle I²C<br/> || 400 kHz<br/> | ||
|- | |- | ||
| Adresse<br/> ||0x29<br/> | | I2C-Adresse<br/> ||0x29<br/> | ||
|- | |- | ||
| Messbereich<br/> ||2- | | Messbereich<br/> ||2-200 mm<br/> | ||
|- | |- | ||
| Gewicht ||11 g | | Gewicht ||11 g | ||
| Zeile 51: | Zeile 53: | ||
| 5 || SHDN||Ausschaltpin || Um den Sensor abzuschalten, diesen Pin auf LOW ziehen || | | 5 || SHDN||Ausschaltpin || Um den Sensor abzuschalten, diesen Pin auf LOW ziehen || | ||
|- | |- | ||
| 6 || SCL||I²C Takt || SCL || | | 6 || SCL||I²C Takt || SCL || D17/SCL | ||
|- | |- | ||
| 7 || SDA||I²C Daten || SDA || | | 7 || SDA||I²C Daten || SDA || D16/SDA | ||
|} | |} | ||
| Zeile 74: | Zeile 76: | ||
===Arduino-Bibliothek installieren=== | ===Arduino-Bibliothek installieren=== | ||
VL6180X von Pololu (1.4.0) | VL6180X von Pololu (1.4.0) | ||
https://github.com/pololu/vl6180x-arduino | |||
Installation über: Sketch → Bibliothek einbinden → Bibliotheken verwalten → VL6180X suchen | Installation über: Sketch → Bibliothek einbinden → Bibliotheken verwalten → VL6180X suchen | ||
Wenn Sie die HSHL-Bibliotheksordner einbinden, sind alle Ordner bereits installiert. | Wenn Sie die HSHL-Bibliotheksordner einbinden, sind alle Ordner bereits installiert. | ||
'''Quelle:'''<br> | '''Quelle:'''<br> | ||
https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner | https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner | ||
| Zeile 85: | Zeile 89: | ||
| <strong><code>DemoTOFVL6180X.ino</code> </strong> | | <strong><code>DemoTOFVL6180X.ino</code> </strong> | ||
|- | |- | ||
|<syntaxhighlight lang="c" style="background-color: #EFF1C1; font-size:larger">#include <Wire.h> | |<syntaxhighlight lang="c" style="background-color: #EFF1C1; font-size:larger">#include <Wire.h> // I2C | ||
#include <VL6180X.h> | #include <VL6180X.h> // VL6180X von Pololu | ||
VL6180X sensor; | VL6180X sensor; // Instanz | ||
void setup() | void setup() | ||
{ | { | ||
Serial.begin(9600); | Serial.begin(9600); | ||
Wire.begin(); | Wire.begin(); | ||
sensor.init(); | sensor.init(); | ||
sensor.configureDefault(); | sensor.configureDefault(); | ||
sensor.setTimeout(500); | sensor.setTimeout(500); | ||
} | } | ||
void loop() | void loop() | ||
{ | { | ||
Serial.print(sensor.readRangeSingleMillimeters()); // Entfernung in mm | |||
if (sensor.timeoutOccurred()) { Serial.print(" TIMEOUT"); } | |||
Serial.println(); | |||
if (sensor.timeoutOccurred()) { | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Aktuelle Version vom 8. Januar 2026, 11:14 Uhr

Autoren: Marc Ebmeyer, Prof. Dr.-Ing. Schneider
Einleitung
Der VL6180X ist ein integrierter LiDAR-Abstandssensor der Firma STMicroelectronics, der auf dem Time-of-Flight-(ToF-)Messprinzip basiert. Im Gegensatz zu herkömmlichen optischen Abstandssensoren misst der VL6180X die tatsächliche Laufzeit eines ausgesendeten Infrarot-Lichtimpulses und ermöglicht dadurch präzise und zuverlässige Distanzmessungen unabhängig von der Reflektivität des Zielobjekts.
Der Sensor verfügt über eine integrierte Infrarot-Laserdiode (Emitter) mit einer Wellenlänge von 850 nm sowie einen Single-Photon-Avalanche-Diode-(SPAD-)Empfänger. Die Entfernung wird aus der gemessenen Laufzeit des reflektierten Lichtsignals berechnet. Der typische Messbereich des VL6180X liegt bei 0 mm bis ca. 100 mm, wodurch er besonders für Kurzstrecken-Anwendungen geeignet ist.
Neben der Abstandsmessung integriert der VL6180X zusätzlich einen Umgebungslichtsensor (ALS), der Beleuchtungsstärken in Lux erfassen kann. Beide Messfunktionen sind über eine I²C-Schnittstelle ansteuerbar, was eine einfache Integration in Mikrocontroller- und Embedded-Systeme ermöglicht. Der Sensor arbeitet mit einer Versorgungsspannung von 2,6 V bis 5,5 V und zeichnet sich durch einen geringen Energieverbrauch aus.
Typische Einsatzgebiete des VL6180X sind Objekterkennung, Hindernisvermeidung, Gestensteuerung, Abstandsmessung in der Robotik sowie Industrie- und Konsumerelektronik. Dank seiner kompakten Bauform, der hohen Messgenauigkeit im Nahbereich und der Unabhängigkeit von Umgebungslicht stellt der VL6180X eine robuste Lösung für präzise Kurzdistanz-Messaufgaben dar.
Hinweis: Integrierte Photodiode (ALS) funktioniert beim vorliegenden Modell nicht mit der Pololu Bibliothek.
Technische Übersicht
| Eigenschaft | Daten |
|---|---|
| Modell | VL6180 ToF |
| Spannungsversorgung |
VCC 3-5 V |
| Wellenlänge |
850 nm |
| Kommunikationsschnittstelle I²C |
400 kHz |
| I2C-Adresse |
0x29 |
| Messbereich |
2-200 mm |
| Gewicht | 11 g |
| Abmessungen | 18,5 mm x 16,5 mm x 3 mm |
Pinbelegung
| Pin | Bezeichnung | Belegung | Signal | Arduino Uno R3 |
|---|---|---|---|---|
| 1 | VIN | Betriebsspannung Vcc | 3 V-5 V | VCC 5 V |
| 2 | 2v8 | 2,8 V Ausgangsspannung bis 100 mA | 2,8 V | |
| 3 | GND | Masse | 0 V | GND |
| 4 | GPIO | Datenbereitschaftspin GPIO | 2,8 V | |
| 5 | SHDN | Ausschaltpin | Um den Sensor abzuschalten, diesen Pin auf LOW ziehen | |
| 6 | SCL | I²C Takt | SCL | D17/SCL |
| 7 | SDA | I²C Daten | SDA | D16/SDA |
Messverfahren
Der verbaute Sensor VL6180X misst optisch die Entfernung mithilfe eines VCSEL-Infrarot-Strahler ( Vertical-Cavity Surface-Emitting Laser) und eines Näherungssensors und eines Umgebungslichtsensors. Es basiert auf die von ST patentierte FlightSense Technologie sie misst die Entfernung. Sie ermöglicht eine absolute Entfernungsmessung unabhängig von der Reflexion des Ziel Reflexionsgrades. Anstatt durch Messung der Lichtmenge die Entfernung zu schätzen, die vom Objekt zurückgeworfen wird (was erheblich von Farbe und Oberfläche beeinflusst wird), misst der VL6180X durch die Kombination eines IR-Senders, eines Entfernungssensors und eines Umgebungslichtsensor die Zeit, die das Licht benötigt, um zum nächstgelegenen Objekt und zurück zum Sensor benötigt (Time-of-Flight).
Das Modul ist für den Betrieb mit geringem Stromverbrauch ausgelegt. Annäherungs- und Umgebungslicht- Messungen können automatisch in benutzerdefinierten Intervallen durchgeführt werden. Mehrere Schwellenwerte und Interrupt-Schemata werden unterstützt, um die Host-Operationen zu minimieren. Die Steuerung durch den Host und das Auslesen der Ergebnisse erfolgt über eine I2C-Schnittstelle. Optionale Zusatzfunktionen, wie Messbereitschaft und Schwellenwert Interrupts, werden über zwei programmierbare GPIO-Pins bereitgestellt.
Messschaltung

Software
Arduino
Arduino-Bibliothek installieren
VL6180X von Pololu (1.4.0)
https://github.com/pololu/vl6180x-arduino
Installation über: Sketch → Bibliothek einbinden → Bibliotheken verwalten → VL6180X suchen
Wenn Sie die HSHL-Bibliotheksordner einbinden, sind alle Ordner bereits installiert.
Quelle:
https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner
Ziel:
c:\HSHL-User\Documents\Arduino\libraries
DemoTOFVL6180X.ino
|
#include <Wire.h> // I2C
#include <VL6180X.h> // VL6180X von Pololu
VL6180X sensor; // Instanz
void setup()
{
Serial.begin(9600);
Wire.begin();
sensor.init();
sensor.configureDefault();
sensor.setTimeout(500);
}
void loop()
{
Serial.print(sensor.readRangeSingleMillimeters()); // Entfernung in mm
if (sensor.timeoutOccurred()) { Serial.print(" TIMEOUT"); }
Serial.println();
}
|
URL: https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/ArduinoUnoR3/examples/DemoTOFVL6180X/DemoTOFVL6180X.ino
Simulink



Messungen

Video
Datenblätter
- Datenblatt VL6180X Modul cdn.shopify.com 02.04.2025
- Datenblatt VL6180X ST Microelektronics 02.04.2025
Literatur
→ zurück zum Hauptartikel: HSHL-Mechatronik-Baukasten, WS2025 - Sensortechnik