Skip to content
Thomas Euler edited this page Apr 8, 2023 · 18 revisions

Demoprogramme für MMBasic und MicroPython befindet sich in Code. Die Grundfunktionalität des MicroPython-Programms und von rbl2_v1_12_tof_picodisplay.bas ist sehr ähnlich, aber es gibt kleine Unterschiede. Zum Aufbau des MMBasic-Programms gibt es hier detaillierte Erläuterungen.

Wie man den Pico vorbereitet, ggf. die jeweilige Firmware aktualisiert und den Code auf den Pico bekommt, ist auf eigenen Seiten für MMBasic bzw. MicroPython erklärt.

Grundfunktionalität

Drawing HINWEIS: Die folgende Beschreibung bezieht sich auf das MicroPython-Program und auf die Version rbl2_v1_12_tof_picodisplay.bas des MMBasic-Programms.

Nach dem Programmstart wartet der Roboter darauf, dass die A-Taste gedrückt wird. Ist der Roboter aktiv, beendet man das Programm, indem man die X-Taste drückt. Wenn der Roboter aktiv ist, läuft er los; dabei pulsiert die RGB-LED auf dem Display-Breakout. Wie unter Distanzsensoren beschrieben, läuft der Roboter nur vorwärts, wenn von den Sensoren kein Objekt erfasst wird und keine Tischkante erkannt wird. Je nach Hindernis, stoppt der Roboter und dreht sich vom Hindernis weg oder geht ggf. vorher ein paar Schritte zurück.

Das Display zeigt verschiedene Werte an, darunter den Batteriestand, welcher "Typ" Hindernis erkannt wurde und die Messwerte der Sensoren. Diese Anzeige unterscheidet sich derzeit zwischen der MicroPython- und der MMBasic-Version.

Kalibrierung der Beinstellung

MMBasic

Das Programm rbl_servo_calibration.bas hilft bei der Kalibrierung der Beinsensoren. Das Programm benötigt die API-Bibliothek rbl_lib.bas, in der alle Grundfunktionen des Roboters zusammengefasst sind (siehe auch Program versions using rbl_lib.bas).

Das Kalibrierungsprogramm gibt zwei Zeilen MMBasic-Programmcode aus, die entweder in ein Stand-alone-Programm oder in rbl_lib.bas übernommen werden müssen. Die entsprechenden Programmzeilen erkennt man anhand der Variablennamen:

Dim integer _serv_range_us(1,2)  = (899,1600, 1149,1800, 1869,2065)
Dim integer _serv_range_deg(1,2) = (-40, 40, -40, 40, -20, 20)

Alternativ schreibt das Kalibrierungsprogramm eine Konfigurationsdatei rbl.cfg auf das interne Laufwerk A:. Wenn diese Datei vorhanden ist, benutzt rbl_lib.bas die Werte in der Datei anstatt der Standardwerte.

MicroPython

Ein kurzes MicroPython-Skript hilft bei der Kalibrierung der Bein- bzw. Servopositionen. Mal lädt es in den Editor der Wahl und führt es in der REPL direkt auf dem Mikrocontroller aus. Es fragt nacheinander alle Servos und deren Extrempositionen ab; man kann die aktuelle Position dann jeweils bestätigen (y) oder durch die Eingabe eines positiven oder negativen Betrags in Mikrosekunden korrigieren.

Am Anfang des Skripts erwartet es die folgende Informationen:

SRV_ID         = bytearray([0,1,2])
SRV_PIN        = bytearray([board.D21, board.D10, board.D2])
SRV_RANGE_US   = [(1110, 1810), (1100, 1800), (1291, 1565)]
SRV_RANGE_DEG  = [(-40, 40), (-40, 40), (-20, 20)]

Wenn das Skript durchgelaufen ist, gibt es in der History die Zeilen SRV_RANGE_US und SRV_RANGE_DEG aus, mit denen man in rbl2_config.py die entsprechenden Zeilen ersetzen kann.

Weiter zu Erweiterungen & Modifikationen

Home

  1. Werkzeuge und Material (DE | EN)
  2. Aufbau
    2.1 Mechanik (DE | EN)
    2.2 Aufbau und Hinweise (DE | EN)
    2.3 Elektronik und Platine (DE | EN)
  3. Sensoren (DE | EN)
  4. Demo (DE | EN)
  5. Erweiterungen & Modifikationen
    5.1 Alternatives Display (DE | EN)
    5.2 CO2-Wächter (DE | EN)
  6. Galerie (DE | EN)
  7. Software - MMBasic
    7.1 MMBasic zum Laufen bringen (DE | EN)
    7.2 Kommentare zum Programm (DE | EN)
    7.3 Robotling API (DE | EN)
    7.4 Building PicoMite MMBasic (DE | EN)
  8. Software - MicroPython
    8.1 Running MicroPython (DE | EN)
    8.2 Building MicroPython (DE | EN)

Clone this wiki locally