Roboter über Bluetooth programmieren

MakeCode Editor

Fahrplan programmieren und an ein (Fahrzeug) Modell senden

Oft sind es mehr Kinder, als "Roboter" zur Verfügung stehen. Aber jedes Kind hat einen Calliope. Mit MakeCode kann der "Fahrplan" programmiert und auf den eigenen Calliope (Sender) übertragen werden. Eine Strecke hat 3 Parameter: Fahren, Lenken und Länge. 5 Strecken können gleichzeitig programmiert und auf Knopfdruck zu einem Modell gesendet werden. So können Kinder nacheinander mit einem oder wenigen Robotern ihre Programme testen. Mehrere Modelle werden durch Funkgruppen unterschieden.

Das Modell wird ebenfalls von einem Calliope gesteuert, der die Fahrstrecken per Bluetooth empfängt und dann abfährt. Fast fertig montiert und in vielen Schulen vorhanden eignen sich dafür Calli:bot. Zum selber bauen können alle Bauanleitungen von fischertechnik mit Motor und Servo (oder 2 Motoren) nachgebaut und mit Calliope gesteuert werden. Als Controller dient ein Calliope mini v3 mit angesteckter Leiterplatte.

Das Referenz Modell ist Maker Kit Car. Es ist das erste Modell mit digitaler Bauanleitung. Maker Kit Car ist in einer Stunde gebaut, Calliope drauf gesteckt und fährt (mit Fernsteuerung). So macht Roboter bauen Spaß.

Die Leiterplatte wurde von mir entworfen und in Kooperation mit einem Mitglied im Calliope Forum produziert. Sie ist zum selber löten, kann aber auch bestückt geliefert werden. Der Preis für eine fertige Leiterplatte entspricht etwa dem Preis für einen neuen Calliope mini.

Die Software für Sender, Calli:bot und Empfänger mit der Leiterplatte ist in einer einzigen Erweiterung calliope-net/fernsteuerung enthalten und bei GitHub gespeichert. Damit ist auch die Fernsteuerung mit Joystick und 6 Motoren gleichzeitig über Bluetooth möglich. Als Sensoren werden Encoder, Spursensor, Ultraschall und Laser Distance Sensor unterstützt. Der Joystick kann übrigens an jeden vorhandenen Calliope (Sender) einfach an I²C angesteckt werden und schon ist die Fernbedienung fertig. In diesem Projekt hier geht es aber ohne Joystick.

Wenn ein Calli:bot und ein zweiter Calliope als Sender vorhanden sind, muss nur noch die Software herunter geladen werden.

Material für den Sender

Sender und Callibot

Modell Calli:bot als Empfänger

Modell fischertechnik als Empfänger

Maker Kit Car Maker Kit Car Maker Kit Car

Aufgabe in einem eigenen Fenster anzeigen

Fahrplan programmieren und an Roboter senden

Roboter ist ein Modell mit CALLIOPE, der die ganze Elektronik, Motor und Servo steuert und über Bluetooth von einem anderen CALLIOPE ferngesteuert werden kann. Roboter kann ein Calli:bot sein oder ein selbst gebautes Modell. Alle Bauanleitungen von fischertechnik mit Motor und Servo (oder 2 Motoren) können nachgebaut und mit CALLIOPE gesteuert werden.

Du kannst auf jedem beliebigen 'CALLIOPE mini' (v1 v2 v3) mit MakeCode einen Fahrweg programmieren und mit Bluetooth an den Roboter senden. Das Programm kann aus 5 Strecken bestehen, die dann nacheinander abgefahren werden. Du kannst dir das auch wie einen Fahrplan mit Haltestellen vorstellen.

Für eine Strecke musst du 3 Parameter programmieren:

  1. Fahren
    Die Geschwindigkeit in Prozent (%) und vorwärts / rückwärts (minus ist rückwärts). 0% ist Stillstand.
    Der Parameter kann Werte von -100% bis 100% haben.
  2. Lenken
    Die Richtung, in die gelenkt wird, wird als Winkel angegeben. 90 Grad (°) ist geradeaus.
    Mit dem Regler kannst du Werte von 0° (ganz nach links lenken) bis 180° (ganz nach rechts lenken) einstellen.
  3. Länge
    Die zu fahrende Strecke in Zentimeter (cm). Der Parameter kann Werte von 0 cm bis 255 cm haben.
    Die längste Strecke ist 2 Meter und 55 Zentimeter. Größere Zahlen sind nicht möglich. Du kannst aber im nächsten Schritt weiter fahren. Oder umlenken und zurück. Bei Motoren ohne Encoder wird der Parameter Länge als Zehntelskunden ausgewertet (10 cm entspricht 1 s).

Editor MakeCode

  1. am PC im Browser Edge die Webseite makecode.calliope.cc öffnen
  2. oder am iPad App 'Calliope mini' öffnen
    Calliope App Editoren und Programme Makecode
    • 'Editoren und Programme'
    • 'MakeCode'
  3. 'Neues Projekt'
  4. Name: Fahrplan
  5. Hardware steht auf dem CALLIOPE (Sender) auf der Rückseite neben dem USB Anschluss
    1.3 2.0 2.1 3.0
    v1 v2 v3
  6. 'Erweiterungen' (im Werkzeugkasten unter Motoren) anklicken
    Erweiterungen
  7. das Fenster Erweiterungen wird geöffnet
    Erweiterung laden
  8. calliope-net/fernsteuerung in das weiße Feld schreiben und ENTER drücken (nicht die Lupe!)
  9. unten auf das weiße Kästchen fernsteuerung tippen (wenn verdeckt: Bildschirmtastatur ausblenden)

Die Erweiterung fernsteuerung hat 4 neue Einträge hinzu gefügt:

MakeCode Anfang

Baue die Blöcke zusammen wie auf den folgenden Bildern. Die Blöcke haben die gleiche Farbe wie der Text im Werkzeugkasten. Der Block 'dauerhaft' kann gelöscht werden. Dazu wird er zurück in den Werkzeugkasten geschoben, bis der Mülleimer erscheint. Löschen geht auch mit der rechten Maustaste.

Block Fernsteuerung
Block Fahrplan

Jetzt kannst du die 3 Parameter einstellen:

1. Fahren
In der Mitte zeigt der Schieberegler 0%, das bedeutet Stillstand. Nach rechts wird die Geschwindigkeit in Fahrtrichtung vorwärts größer bis 100%. Von der Mitte nach links werden die Zahlen mit Minus Vorzeichen angezeigt. Minus bedeutet rückwärts und geht bis -100%.

Fahren Prozent

2. Lenken
Der Servo lenkt die Vorderräder. Bei zwei Motoren dreht sich zum Lenken einer langsamer. Dieser Regler zeigt den Winkel in Grad (°) an. 90° bedeutet geradeaus. Größere Zahlen als 90° lenken nach rechts. Kleinere Zahlen als 90° lenken nach links. Der rote Balken zeigt die Richtung an, in die gefahren wird. Die Grad Zahl ist nicht so wichtig.

Servo Winkel

3. Länge
Jetzt fehlt noch die Information, wie weit mit der Geschwindigkeit und Lenkung gefahren werden soll. Die Länge wird in Zentimeter angegeben. Die längste Strecke ist 255 cm = 2 Meter und 55 Zentimeter.

Um die Länge in Zentimeter zu messen, braucht der Motor einen Encoder. Der Encoder zählt pro Umdrehung des Rades eine bestimmte Anzahl Impulse. Calli:bot 2E hat einen Encoder, Calli:bot 2 nicht. Es gibt auch fischertechnik Motoren mit und ohne Encoder. (Der Maker Kit Car Baukasten hat einen roten Encodermotor.)

Bei Motoren ohne Encoder wird der Parameter Länge nicht als Zentimeter, sondern als Zehntelsekunden ausgewertet. 10 cm entspricht 1 s; 100 cm entspricht 10 s; die längste Fahrzeit 255 cm entspricht 25,5 Sekunden. Die Länge der Strecke ist ohne Encoder abhängig von der Geschwindigkeit und der Batterie Ladung.

Der "Fahrplan" mit einer Strecke ist schon fertig. Übertrage das Projekt auf deinen CALLIOPE (Sender). Wenn der Roboter (z.B. Calli:bot) empfangsbereit ist, drücke Knopf A. Dein Programm wird per Bluetooth übertragen und der Roboter sollte die Strecke einmal fahren und dann stehen bleiben. Danach kann ein anderer CALLIOPE (Sender) sein gespeichertes Programm senden.

Projekt ändern und erweitern

Füge weitere Strecken hinzu. Hole den Block (Fahren | Lenken | Länge) aus 'Sender - Fahrplan' und füge ihn in die leeren Stellen hinter Strecke 2 bis 5 ein.

Block Strecke

Hier stehen zwei Blöcke zur Auswahl. Den ersten Block mit den Schiebereglern kennst du schon. Den kannst du auch für die anderen Strecken nehmen.

In den zweiten Block werden direkt Bytes eingetragen, das ist genauer.

Jetzt kannst du 5 verschiedene Strecken programmieren, die nacheinander gefahren werden: verschiedene Geschwindigkeiten, vorwärts, rückwärts, nach links und rechts lenken und jede Strecke kann eine andere Länge von wenigen cm bis 2,55 m haben. Auf dem Titelbild sind Beispiele: calliope.schule/fahrplan.aspx
Du kannst in MakeCode auch ein fertiges Projekt laden: Importiere URL... calliope-net/fahrplan-s61

Denke dir einen Fahrplan aus, wo der Roboter am Ende wieder ungefähr am Start ankommt.

Funkgruppe ändern

Programmiere so, dass der verfügbare Platz reicht und der Roboter nicht gegen die Wand oder Hindernisse fährt. Wenn der Ultraschall Sensor ein Hindernis erkennt, bricht die aktuelle Strecke ab und die nächste Strecke wird gefahren. Erfolgreich absolvierte Strecken werden in der mittleren Spalte der LED Matrix angezeigt.

mehrere Roboter: Funkgruppe ändern

Um mehrere Modelle über Bluetooth zu steuern, sollten sie auf verschiedene Funkgruppen reagieren. Beim CALLIOPE (Sender) kann der Block 'beim Start' erweitert werden. Dann kann die Funkgruppe 1 bis 8 ausgewählt werden, die beim Senden verwendet wird.
Angezeigt wird die Funkgruppe in den zwei linken Spalten der LED Matrix durch 1 bis 8 rote LED.

Funkgruppe ändern Funkgruppe 5

Bei den CALLIOPE (Roboter) wird die Funkgruppe mit Knopf A halten -1 und B halten +1 geändert. Sender und Empfänger müssen die gleiche Anzeige in der LED Matrix haben. Die Funkgruppe bleibt beim Ausschalten erhalten.

am Ende: die Vorführung

Am Ende kann jeder von seinem CALLIOPE nacheinander einmal seinen Fahrplan zum Roboter senden und alle beobachten die Fahrt.

technische Daten

Block Strecke

Fahren (Geschwindigkeit) 8 Bit 1..255 (0 ist ungültig) → 128 ist Stop (H-Bridge)

rückwärts stop vorwärts Fahren  
-100% -75% -50% -25% 0% +25% +50% +75% +100% Picker  
1 32 64 96 128 159 191 223 255 sendData 8 Bit

Lenken (Winkel) 5 Bit 1..31 (0 ist ungültig) → 3° Schritte am Servo Pin

links gerade rechts Lenken  
18° 36° 54° 72° 90° 108° 126° 144° 162° 180° Picker  
1 4 7 10 13 16 19 22 25 28 31 sendData 5 Bit
135° 126° 117° 108° 99° 90° 81° 72° 63° 54° 45° Servo Pin  

Länge (Encoder Impulse)

Drehzahl fischertechnik Motoren bei 9 Volt im Leerlauf

Kontakt und Impressum