Inhaltsverzeichnis:

CircuitPython und TinyLiDAR: Einfaches Beispiel - Gunook
CircuitPython und TinyLiDAR: Einfaches Beispiel - Gunook

Video: CircuitPython und TinyLiDAR: Einfaches Beispiel - Gunook

Video: CircuitPython und TinyLiDAR: Einfaches Beispiel - Gunook
Video: CircuitPython с Raspberry Pi Pico — начало работы 2024, November
Anonim
CircuitPython und TinyLiDAR: Einfaches Beispiel
CircuitPython und TinyLiDAR: Einfaches Beispiel

Das MicroElectronicDesign tinyLiDAR ist ein auf ST VL53L0X basierendes Time-of-Flight (ToF) Ranging-Modul mit einer i2c-Busverbindung. Die Adafruit-Mikrocontroller-Boards werden einfach an diesen Sensor angeschlossen, da sie das i2c-Protokoll über ihre Datenpins sprechen können.

Die M0/M4-Serie hat den Vorteil gegenüber anderen Boards, dass sie eine Teilmenge von Python unterstützt, wodurch die Programmierung einem breiteren Publikum zugänglicher wird als C auf einem Arduino. Dies ist ein einfaches Beispiel, bei dem CircuitPython auf einem Gemma M0-Board verwendet wird, um die Entfernungswerte von einem tinyLiDAR zu lesen und die Entfernung durch Variieren der Helligkeit der integrierten RGB-LED anzuzeigen. Das Board muss die M0-Version für Python-Unterstützung sein.

Hinweis: Adafruit stellt auch verschiedene Distanzsensorplatinen her, darunter eine basierend auf dem VL53L0X.

Schritt 1: CircuitPython-Code

  1. Laden Sie lib/adafruit_dotstar.mpy und lib/adafruit_bus_device/i2c_device.mpy herunter, falls Sie diese noch nicht haben. Diese sind Teil des optionalen Bibliothekspakets. Hinweise zur Installation finden Sie im ersten Abschnitt von CircuitPython I2C. Diese Dateien müssen in den Verzeichnissen lib und lib/adafruit_bus_device auf der Gemma M0 gespeichert werden.
  2. Laden Sie gemma-m0-tinylidar-simple.py herunter, benennen Sie es in main.py um und kopieren Sie es in das Stammverzeichnis des Gemma M0.

Das Programm schreibt die Ausgabe auf die serielle Konsole und variiert die Helligkeit der Gemma MO RGB-LED proportional zur gelesenen Entfernung. Die Gemma M0-LED wechselt beim Lesen zwischen ein und aus, blinkt also mit ungefähr 5 Hz und das Standardverhalten des tinyLiDAR-Boards besteht darin, seine blaue LED pro Befehl mit 10 Hz zu blinken.

Der Bus wird mit 100 kHz betrieben, was für diesen Fall gut funktioniert. Wie bei jedem Bus wird die Kommunikationsgeschwindigkeit durch die Eigenschaften der Übertragungsleitung(en) begrenzt, daher sollte auf Länge, Kapazität und andere Faktoren geachtet werden.

Schritt 2: Anschließen des TinyLiDAR an eine Gemma M0

Anschließen des TinyLiDAR an eine Gemma M0
Anschließen des TinyLiDAR an eine Gemma M0

Das Bild zeigt ein effektives, aber unelegantes temporäres Setup, um den tinyLiDAR mit einem Gemma M0-Board zu verbinden. Der "Grove" 4-Pin-Universalstecker des tinyLiDAR wird über ein Seeed Grove-Konvertierungskabel, einen Ersatz-Header und Krokodilklemmen zum Anschluss an die Gemma M0 verwendet. Ein gewisser Abstand zwischen den Pins am Header beseitigt das Risiko eines versehentlichen Kurzschlusses. Die Anschlüsse sind:

  • Schwarz: Masse zu Masse
  • Rot: +V bis 3Vo
  • Weiß: SDA auf D0 (Daten)
  • Gelb: SCL bis D2 (Uhr)

Die Adafruit-Boards haben einige Pins, die das i2c-Protokoll effizient in Hardware unterstützen. Bei der Gemma M0 müssen diese verwendet werden, D0 für Daten und D2 für Clock.

Ein i2c-Bus erfordert einen Pull-Up-Widerstand auf den Daten- und Taktleitungen. In diesem Fall bietet der tinyLiDAR einige 4,7K On-Board-Widerstände. Wenn diese durch Durchtrennen der Leitungen aus dem Stromkreis entfernt wurden, müssen Äquivalente in den Stromkreis eingefügt werden.

Schritt 3: Serieller Ausgang

Serieller Ausgang
Serieller Ausgang

Das Programm schreibt eine Ausgabe an die serielle Konsole, die die gemessene Entfernung anzeigt. Hier ist ein Beispiel-Screenshot eines Terminals, das ein Objekt zeigt, das sich vom Sensor entfernt.

Empfohlen: