Erweiterungen und Modifikationen - teuler/robotling GitHub Wiki

Erweiterungen

Drei Distanzsensoren am Sensorarm

Mit dem GP2Y0AF15X ist ein deutlich kompakterer Sharp Infrarot-Distanzsensor erhältlich. Mit drei dieser Sensoren lässt sich ein Aufbau basteln, mit dem der Bereich vor dem Roboter so überwacht wird, dass kein hin- und herschwenken des Kopfs mehr notwendig ist (Video).

Der Sensor ist allerdings nur für einen Bereich von 1 bis 15 cm spezifiziert und daher ist die Erkennung von Hindernissen/Kanten etwas schwieriger - eine Kante sieht (wegen Reflexionen?) auf eine bestimmte Entfernung für den Roboter aus wie ein Hindernis. Daher verwechselt der Roboter manchmal Kanten und Hindernisse, aber zumindest vermeidet er beides verlässlich.

DotStar FeatherWing anschließen

Auf das Feather-Modul mit dem Mikroprozessor können sogenannte FeatherWings aufgesteckt werden, wie z.B. das Adafruit DotStar FeatherWing, das eine Anzeige enthält, die aus einer 6x12 Matrix von RGB-LEDs besteht. Im Bild rechts sieht man das Modul auf einen Robotling aufgesteckt.

Dafür müssen die Steuerleitungen der DotStar-Matrix an den I²C Bus-angeschlossen werden (siehe Abbildung rechts):

  1. Zunächst durchtrennt man die Verbindungen bei DIN und CIN,
  2. dann lötet man ein kurzes Kabel von DIN zu MOSI (Pin 18) ...
  3. und ein weiteres kurzes Kabel von CIN zu SCK (Pin 5).

Durch das Hinzufügen von "dotstar_feather" zur String-Liste in der Variable MORE_DEVICES in hexbug_config.py wird der entsprechende Treiber geladen. Der Demo-Code benutzt dann die 6x12 RGB-Matrix, um den Zustand des Roboters zu visualisieren.

Die der Python-Treiber (...\driver\dotstar.py) basiert auf dem entsprechenden CircuitPython-Modul von Adafruit.

Modifikationen

M4 Express anstatt HUZZAH32 Feather-Modul

Der Demo-Code (Release v1.5) wurde auch mit CircuitPython und Adafruits Feather M4 Express getestet. Das M4 Express-Modul enthält statt eines ESP32 einen ATSAMD51 Cortex M4-Mikrokontroller. Dieser verfügt zwar weder über Bluetooth noch WLAN, hat dafür aber einen onboard-NeoPixel, ein kleines Experimentierfeld und eine etwas schnellere FPU.

Um das M4 Express-Modul zu verwenden, muss eine Kabelbrücke angelötet werden, die A0 und A3 verbindet (siehe Abbildung rechts). Der Hintergrund ist der, dass das M4 Express-Modul an Pin A0 keine PWM-Funktionalität unterstützt, dieser Pin vom "robotling"-Board aber für die Ansteuerung von einem Kanal des Motortreibers benötigt wird.

Weiter zu Telemetrie über MQTT