Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
embedded_systems:experimentiersystem:vl53l0x-tof-sensor [2019-03-22 11:57] – mlammerich | embedded_systems:experimentiersystem:vl53l0x-tof-sensor [2024-04-19 13:25] (aktuell) – Moritz Lammerich | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== VL53L0X Time of Flight Sensor ====== | ====== VL53L0X Time of Flight Sensor ====== | ||
- | Der VL53L0X ist eine neue Generation von ToF Sensoren, die genaue Distanzmessungen bis 2m erlaubt. | + | Der [[ https:// |
- | ===== Verwendung mit dem MPC555 ===== | ||
- | Der VL53L0X kann mit dem MPC55 verwendet werden. Es wird jedoch ein zweiter Mikrocontroller zum Anschluss an diesen benötigt. Die NTB stellt eine fertige Firmware für das [[https:// | + | ===== Verwendung |
- | ==== Verdrahtung ==== | + | Der VL53L0X wird direkt an eine I2C-Schnittstelle angeschlossen. |
+ | ^ Zynq7000 ^ VL53L0X | ||
+ | | MIO10 | SCL | | ||
+ | | MIO11 | SDA | | ||
+ | | < | ||
+ | | 3.3V | Vcc | | ||
+ | | GND | GND | | ||
+ | |||
+ | ==== Python Code ==== | ||
+ | |||
+ | Die Sensoren können mit Hilfe des '' | ||
+ | |||
+ | Der XSHUT Pin jedes VL53L0X Sensor benötigt einen eigenen '' | ||
+ | Die Pins/ | ||
+ | |||
+ | Beispiel: '' | ||
+ | |||
+ | Komplettes Beispiel: | ||
+ | <code python> | ||
+ | from vl53l0x_helper import init_vl53l0x | ||
+ | |||
+ | # initialize 2 ToF sensors conected to FlinkGPIO channels 0 and 1 | ||
+ | tofs = init_vl53l0x([0, | ||
+ | |||
+ | # print measurements | ||
+ | for _ in range(1, 11): | ||
+ | # combine all measurements into 1 string to print everything on one line | ||
+ | line = " " | ||
+ | print(" | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== Verwendung mit Deep auf dem MPC555 / Zynq7000 ===== | ||
+ | |||
+ | Der VL53L0X kann mit dem MPC55 und dem Zynq7000 verwendet werden. Es wird jedoch ein zweiter Mikrocontroller zum Anschluss an diesen benötigt. Die OST stellt eine fertige Firmware für das [[https:// | ||
+ | |||
+ | ==== Verdrahtung | ||
^ MPC555 ^ STM32L432KC ^ | ^ MPC555 ^ STM32L432KC ^ | ||
Zeile 16: | Zeile 51: | ||
| GND | GND | | | GND | GND | | ||
- | Anmerkung: die relevanten Pins des STM32L432KC sind 5V tolerant, es sind als keine Pegelwandler nötig. | + | ==== Verdrahtung Zynq7000 ==== |
+ | |||
+ | ^ Zynq7000 ^ STM32L432KC ^ Funktion ^ | ||
+ | | MIO 12 | PA1 (A1) | CLK | | ||
+ | | MIO 11 | PA11 (D10) | MISO | | ||
+ | | MIO 10 | PA7 (A6) | MOSI | | ||
+ | | MIO 13 | PB0 (D3) | CS | | ||
+ | | GND | GND | GND | | ||
+ | |||
+ | Anmerkung: die relevanten Pins des STM32L432KC sind 5V tolerant, es sind also keine Pegelwandler nötig. | ||
^ STM32L432KC ^ VL53L0X | ^ STM32L432KC ^ VL53L0X | ||
| PA9 (D1) | SCL | | | PA9 (D1) | SCL | | ||
- | | PA10 (D0) | + | | PA10 (D0) |
| PA3 (A2) | XSHUT (Sensor 1) | | | PA3 (A2) | XSHUT (Sensor 1) | | ||
| PA4 (A3) | XSHUT (Sensor 2) | | | PA4 (A3) | XSHUT (Sensor 2) | | ||
Zeile 39: | Zeile 83: | ||
Wird das Nucleo STM32L432KC Board per USB mit dem PC verbunden, meldet es sich als USB Massenspeicher an. Die Firmware kann einfach in Form der .bin Datei auf das Board kopiert werden. Das Board durchläuft automatisch einen Reset und ist nun programmiert. | Wird das Nucleo STM32L432KC Board per USB mit dem PC verbunden, meldet es sich als USB Massenspeicher an. Die Firmware kann einfach in Form der .bin Datei auf das Board kopiert werden. Das Board durchläuft automatisch einen Reset und ist nun programmiert. | ||
+ | |||
+ | Die Firmware kann {{.: | ||
==== Verwendung in Deep ==== | ==== Verwendung in Deep ==== | ||
- | Der Deep Treiber ist unter ch.ntb.inf.deep.runtime.mpc555.driver.VL53L0X zu finden. | + | Der Deep Treiber ist unter '' |
=== Initialisierung === | === Initialisierung === | ||
Zeile 72: | Zeile 118: | ||
<code java> | <code java> | ||
+ | // Nur MPC555 | ||
if (tof.resetDone()) | if (tof.resetDone()) | ||
{ | { | ||
Zeile 78: | Zeile 125: | ||
</ | </ | ||
- | === reset === | + | === Reset (nur MPC555) |
Die reset() Methode veranlasst einen Reset die STM32L432KC und der Vl53L0X Sensoren. | Die reset() Methode veranlasst einen Reset die STM32L432KC und der Vl53L0X Sensoren. | ||
Zeile 84: | Zeile 131: | ||
==== Debugging / Troubleshooting ==== | ==== Debugging / Troubleshooting ==== | ||
- | Das Nucleo STM32L432KC bietet eine virtuelle serielle Schnittstelle über USB, wenn es mit einem PC verbunden ist. Über diese werden | + | Das Nucleo STM32L432KC bietet eine virtuelle serielle Schnittstelle über USB, wenn es mit einem PC verbunden ist. Über diese werden |
- | Des Weiteren leuchet LD3 (grüne LED unten link, wenn USB Port oben), wenn der STM32L432KC auf einen SPI Transfer wartet und erlischt während dem Messvorgang. | + | Des Weiteren leuchet LD3 (grüne LED unten links, wenn USB Port oben), wenn der STM32L432KC auf einen SPI Transfer wartet und erlischt während dem Messvorgang. |
Diese sollte im normalen Betrieb blinken. | Diese sollte im normalen Betrieb blinken. | ||
+ | Das GPIO Signal der LED ist auf Pin D13 am Board zu finden. |