Seite 1 von 1
Abstandsensor VL53L0X
Verfasst: 25 Jul 2021, 13:26
von Thomas-815
Hallo Computer-Experten,
ich bin auf der Suche nach einem RoboPro-Treiber für den Abstandsensor VL53L0X angeschlossen über I²C.
Kann mir da jemand helfen?
Ggf. auch Register, die initialisiert bzw ausgelesen werden müssen.
Für Eure Unterstützung vielen Dank.
Grüße
Thomas
Re: Abstandsensor VL53L0X
Verfasst: 25 Jul 2021, 14:40
von Bjoern
Hallo Thomas,
einen Robo Treiber habe ich jetzt nicht. Aber du kannst doch einfach im Arduino Treiber schauen welche Kommandos da gesendet werden.
Das sollte nicht so schwer sein.
Grüße
Björn
Re: Abstandsensor VL53L0X
Verfasst: 25 Jul 2021, 14:46
von Thomas-815
Hallo Björn,
danke für den Hinweis.
Hättest Du einen Link auf den Treiber?
Vielen Dank.
Thomas
Re: Abstandsensor VL53L0X
Verfasst: 25 Jul 2021, 15:24
von Thomas-815
Hallo Björn,
hab dieses hier gefunden
https://github.com/pololu/vl53l0x-arduino.
Leider übersteigt das mein Verständnis
Nun, werde mal drüber schlafen - vielleicht habe ich dann mehr Glück.
Trotzdem vielen Dank.
Thomas
Re: Abstandsensor VL53L0X
Verfasst: 25 Jul 2021, 18:49
von Bjoern
Hallo Thomas,
da ich auch mit Arduino arbeite habe ich einfach in der Arduino IDE den Treiber nachgeladen.
Kannst du ja auch mal probieren. Ist ja alles freeware.
Evtl. ein anderer Treiber der für dich einfacher verständlich ist.
im Endeffekt wird da viel auf die Register geschrieben bzw. gelesen.
Björn
Re: Abstandsensor VL53L0X
Verfasst: 21 Jun 2025, 18:11
von axel57
Hat sich in den letzten 4 Jahren etwas zum RoboPro-Treiber für den Sensor getan?
Ich finde so richtig keine schlüssige Anleitung im Netz. Nur immer Arduino und daraus Rückschlüsse zu ziehen
sehe ich mich auserstande.
Gruß der Axel
Re: Abstandsensor VL53L0X
Verfasst: 21 Jun 2025, 20:11
von calliope
In den Foren stelle ich immer wieder fest: Wenn nach ROBO Pro Coding gefragt wird, wird mit Arduino geantwortet. Was hat das eine mit dem anderen zu tun?
In ROBO Pro Coding kann man keine Treiber laden. An die RX und TXT 4.0 Controller kann man aber sehr wohl eigene (3,3Volt) I2C Sensoren anschließen.
Re: Abstandsensor VL53L0X
Verfasst: 22 Jun 2025, 08:22
von elektrofuzzis
Hallo,
Ich habe ChatGPT gefragt. Die Antwort ist ziemlich brauchbar.
‐------------
Hier ist ein einfacher Treiber für den VL53L0X Time-of-Flight Sensor in RoboPro (der grafischen Programmiersprache für Fischertechnik-Controller), geschrieben in der Struktur von Unterprogrammen und I²C-Kommunikation, wie sie in RoboPro verwendet wird.
Da RoboPro keine C-ähnliche Textsprache ist, sondern grafisch mit Bausteinen arbeitet, bekommst du hier einen konzeptionellen Ablauf in Pseudocode mit Hinweisen, wie du das in RoboPro mit Bausteinen umsetzen kannst.
Voraussetzungen
Der VL53L0X ist per I²C mit dem TXT-Controller verbunden.
Die I²C-Adresse des Sensors ist i. d. R. 0x29 (Hexadezimal), also 41 in Dezimal.
RoboPro-Version: 4.x oder höher.
I²C-Bibliothek muss aktiviert sein.
Unterprogramm: VL53L0X_Init
Ziel: Sensor initialisieren (wichtig: im VL53L0X ist oft keine explizite Init nötig, außer bei Adressänderung oder Range-Modus-Einstellung).
Ablauf:
1. Schreibe bei Bedarf Konfigurationswerte (z. B. zur Aktivierung oder Adressänderung).
2. Wartezeit von 10–50 ms für Initialisierung.
RoboPro-Bausteine:
I²C Write (Register 0x88, 0x00 – optional)
Wartebaustein: 50 ms
Unterprogramm: VL53L0X_ReadDistance
Ziel: Einen Messwert (Entfernung in mm) lesen.
Ablauf (vereinfacht, auf Basis von API-Verhalten):
1. Sende Mess-Start-Kommando (falls nötig)
2. Warte auf "Messung fertig"
3. Lese Wert aus Register 0x1E oder 0x14 (je nach Modus)
In RoboPro (vereinfacht):
[I²C Write] // Adresse: 0x29, Register: 0x00, Wert: 0x01 (Messung starten)
[Warte 50ms] // Oder Abfrage, ob Messung fertig
[I²C Read] // Adresse: 0x29, Register: 0x14 (2 Byte lesen)
[Bytes zusammenfügen zu 16-Bit-Wert]
[Ausgabe: Entfernung in mm]
Beispiel: Messwert auslesen
1. Sende Start-Messung
- I²C Write an 0x29:
- Register: 0x00 (SYSRANGE_START)
- Wert: 0x01
2. Warte z. B. 50 ms
3. Lese Ergebnis:
- I²C Read an 0x29:
- Register: 0x14 (RESULT_RANGE_STATUS + 10)
- Lese 2 Byte (high + low)
4. Kombiniere Bytes:
- distance = high << 8 | low
5. Gebe distance in mm zurück
Der Sensor braucht ca. 30–50 ms pro Messung.
-------------
I2c Write und Read gibt es als fertige Bausteine in RoboPro. Direkt so nehmen, brauchst keine Optionen. Nur Adresse und Register angeben. Ist alles 8 Bit Kommunikation.
Beachte, dass Du spätestens alle 5 Sekunden ein i2c Kommando schicken musst, sonst bleibt die Kommunikation hängen (alter Bug).
Viel Spaß
Stefan
Re: Abstandsensor VL53L0X
Verfasst: 23 Jun 2025, 19:32
von axel57
Hab das versucht zu testen.
Adresse OK

- 1.PNG (5.19 KiB) 267 mal betrachtet
Aber Schaltung zeigt keinen Wert. Wo liegt der Fehler?
Gruß der Axel
Re: Abstandsensor VL53L0X
Verfasst: 23 Jun 2025, 19:54
von calliope
Mit welchem "RoboPro" hast du das gemacht?
Und was ist dein Plan? Hast du ein Modul mit dem bestimmten Chip? Und wenn ja welches Modul? Den Chip gibt es ja bei verschiedenen Anbietern?
An welchen Controller willst du den anschließen?
Wenn du nur Abstand messen willst, warum kein Ultraschall Sensor?
Oder willst du die hohe Kunst der Laser Sensor Konfiguration ausprobieren und nutzen?
Ich benutze einen (anderen) Laser Sensor über I2C am Calliope.
Re: Abstandsensor VL53L0X
Verfasst: 23 Jun 2025, 22:29
von axel57
Robo Pro Version 4.7.0
Ich wollte es über Robo Pro erlernen um dann an der Oxocard weiterzuarbeiten.
Der Schwerpukt war das benutzen von I²C-Komponenten mit der Oxocard.
Scheint nicht so einfach zu sein, so wie IO Board PCF8574, LED Display COM-11440 oder Nunchuck.
Es handelt sich um den CJVL53L0x02.
Gruß der Axel
Re: Abstandsensor VL53L0X
Verfasst: 23 Jun 2025, 22:41
von Karl
Hallo,
bin ja der "Experte" schlechthin..., ganz viel..., "Nicht Ahnung".
Arbeitet die Oxocard nicht mit Python. Wäre Robo Pro Coding nicht dafür eher geeignet ?
Verzeiht mir wenn ich am Thema vorbei gelesen habe.
Re: Abstandsensor VL53L0X
Verfasst: 24 Jun 2025, 07:18
von axel57

- I2C.jpg (43.67 KiB) 172 mal betrachtet
Hast recht, aber das spielt bei I²C so ja keine Rolle. Geht bei beiden.
Funktioniert bei Oxocard super (Beispiel: auslesen Nunchuck)
Gruß der Axel
Re: Abstandsensor VL53L0X
Verfasst: 24 Jun 2025, 08:48
von jona2004
Hallo,
Das Datenblatt von STM
https://www.st.com/en/imaging-and-photo ... 53l0x.html empfiehlt,
zum start erstmal einige Register auszulesen um zu überprüfen ob das setup funktioniert.
Kapitel 4.2 im Datenblatt.
z.B. sollte das Lesen der u.a. registerdaddressen folgende Werte anch einem reset zurückgeben:
0xC0 -> 0xEE
0xC1 -> 0xAA
0xC2 -> 0x10
...
Das würde ich erstmal ausprobiren.
PS: Ich habe den Abstandssensor nicht nur ein bischen Erfahriung mit I2C.
In Robopro gibt es auch eine Bibliothek mit einigen I2C Beispielen.
Grüße Joachim
Re: Abstandsensor VL53L0X
Verfasst: 24 Jun 2025, 09:42
von calliope
Um i2c zu erlernen, ist ein Laser Sensor viel zu kompliziert. Ich habe hier 2 Beispiele, die sich ganz einfach ansteuern lassen:
https://docs.m5stack.com/en/unit/cardkb_1.1
https://www.sparkfun.com/sparkfun-qwiic ... -sr04.html
Zu beachten ist, ob der Controller 5V oder 3,3V Logik hat. Ein 3,3V Modul an 5V geht kaputt. Ein 3,3V/5V Modul an 3,3V funktioniert vielleicht, aber nicht immer.
Ich habe i2c am Calliope gelernt und übertrage das gerade auf
ROBO Pro Coding. Leider hat fischertechnik nicht die plausibelsten Bezeichnungen für die Produkte gewählt, dass es immer wieder zu Verwechslungen kommt.