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 [2024-01-23 12:12] Urs Grafembedded_systems:experimentiersystem:vl53l0x-tof-sensor [2024-04-19 13:25] (aktuell) Moritz Lammerich
Zeile 4: Zeile 4:
  
  
-===== Verwendung mit dem Python unter Linux auf dem Zynq7000 =====+===== Verwendung mit Python unter Linux auf dem Zynq7000 =====
  
-Der VL53L0X kann mit dem MPC55 und dem Zynq7000 verwendet werden. Es wird jedoch  +Der VL53L0X wird direkt an eine I2C-Schnittstelle angeschlossen.  
-STM32L432KC ^ VL53L0X          ^ +Zynq7000 ^ VL53L0X          ^ 
-PA9 (D1)    | SCL              | +MIO10    | SCL              | 
-PA10 (D0)   | SDA              | +MIO11   | SDA              | 
-PA3 (A2)    | XSHUT (Sensor 1) +<FlinkGPIO channel> | XSHUT | 
-PA4 (A3)    | XSHUT (Sensor 2) | +| 3.3V    Vcc |
-| PA5 (A4)    | XSHUT (Sensor 3) | +
-| PA6 (A5)    XSHUT (Sensor 4) |+
 | GND         | GND              | | 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 ===== ===== Verwendung mit Deep auf dem MPC555 / Zynq7000 =====