Abstandsensor VL53L0X
Forumsregeln
Bitte beachte die Forumsregeln!
Bitte beachte die Forumsregeln!
-
- Beiträge: 47
- Registriert: 06 Nov 2020, 17:06
Abstandsensor VL53L0X
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
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
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
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
https://gundermann-software.de/shop/
Der Shop für viele Community Projekte
Der Shop für viele Community Projekte
-
- Beiträge: 47
- Registriert: 06 Nov 2020, 17:06
Re: Abstandsensor VL53L0X
Hallo Björn,
danke für den Hinweis.
Hättest Du einen Link auf den Treiber?
Vielen Dank.
Thomas
danke für den Hinweis.
Hättest Du einen Link auf den Treiber?
Vielen Dank.
Thomas
-
- Beiträge: 47
- Registriert: 06 Nov 2020, 17:06
Re: Abstandsensor VL53L0X
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
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
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
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
https://gundermann-software.de/shop/
Der Shop für viele Community Projekte
Der Shop für viele Community Projekte
Re: Abstandsensor VL53L0X
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
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
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.
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.
- elektrofuzzis
- Beiträge: 221
- Registriert: 25 Jun 2016, 09:40
Re: Abstandsensor VL53L0X
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
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