Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
embedded_systems:experimentiersystem:vl53l0x-tof-sensor [2022-05-12 12:08] Moritz Lammerichembedded_systems:experimentiersystem:vl53l0x-tof-sensor [2024-04-19 13:25] (aktuell) Moritz Lammerich
Zeile 3: Zeile 3:
 Der [[ https://www.st.com/en/imaging-and-photonics-solutions/vl53l0x.html | VL53L0X ]] ist eine neue Generation von ToF Sensoren, die genaue Distanzmessungen bis 2m erlaubt. Der [[ https://www.st.com/en/imaging-and-photonics-solutions/vl53l0x.html | VL53L0X ]] ist eine neue Generation von ToF Sensoren, die genaue Distanzmessungen bis 2m erlaubt.
  
-===== Verwendung mit dem MPC555 / Zynq7000 =====+ 
 +===== Verwendung mit Python unter Linux auf dem Zynq7000 ===== 
 + 
 +Der VL53L0X wird direkt an eine I2C-Schnittstelle angeschlossen.  
 +^ Zynq7000 ^ VL53L0X          ^ 
 +| MIO10    | SCL              | 
 +| MIO11   | SDA              | 
 +| <FlinkGPIO channel> | XSHUT | 
 +| 3.3V    | Vcc | 
 +| GND         | GND              | 
 + 
 +==== Python Code ==== 
 + 
 +Die Sensoren können mit Hilfe des ''vl53l0x_helper'' Treibers im [[ https://gitlab.ost.ch/tech/inf/teaching/sysp/software/python-scripts/driver | driver ]] Repository initialisiert werden. 
 + 
 +Der XSHUT Pin jedes VL53L0X Sensor benötigt einen eigenen ''FlinkGPIO'' Kanal. 
 +Die Pins/Kanäle sind ''init_vl53l0x'' als Liste von ''int''s (Ganzzahlen) zu übergenen. Die Anzahl Sensoren leitet sich aus der Anzahl an GPIO Kanälen ab, mit denen ''init_vl53l0x'' aufgerufen wird. ''init_vl53l0x'' gibt die initialisierten Sensoren als Liste zurück. Das Aufrufen von ''get_distance()'' auf einem Listenelement liefert den aktuellen Messwert des entsprechenden Sensors. 
 + 
 +Beispiel: ''sensors = init_vl53l0x([0, 1])'' initialisiert 2 Sensoren. ''sensors[0]'' verwendet ''FlinkGPIO'' Kanal 0 und ''sensors[1]'' verwendet ''FlinkGPIO'' Kanal 1. ''sensors[0].get_distance()'' liefert den aktuellen Messwert des ersten Sensors (GPIO 0), während ''sensors[1].get_distance()'' den Messwert des 2. Sensors (GPIO 1) zurück gibt. 
 + 
 +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, 1]) 
 + 
 +# print measurements 
 +for _ in range(1, 11): 
 +    # combine all measurements into 1 string to print everything on one line 
 +    line = " ".join(["% d" % tof.get_distance() for tof in tofs]) 
 +    print("distance %s" % line) 
 + 
 +</code> 
 + 
 +===== 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://www.st.com/en/evaluation-tools/nucleo-l432kc.html | Nucleo STM32L432KC Board]] zur Verfügung. **Es können maximal 4 Sensoren angesteuert werden.** 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://www.st.com/en/evaluation-tools/nucleo-l432kc.html | Nucleo STM32L432KC Board]] zur Verfügung. **Es können maximal 4 Sensoren angesteuert werden.**