Lernziele
  • Die Knöpfe A und B zur Bedienung des Roboters einsetzen können
  • Den Befehl wenn dann anwenden können
  • Den Befehl wenn dann zu wenn dann ansonsten erweitern können
  • Die Schleife während wahr einsetzen können
  • Die Schleife während wahr mit abbrechen beenden können

Arbeitsziel: Ein Muster unendlich oft abfahren und auf Knopfdruck wieder anhalten können

Zunächst sollen Sie sich klar machen, dass das Anhalten des Roboters nicht so einfach ist, wenn man nicht unter beim Start programmiert. Schaffen Sie sich eine freie Arbeitsfläche, bevor Sie die folgenden beiden Aufgaben lösen.

Aufgabe 1: Der Befehl dauerhaft

  1. Suchen Sie sich ein Muster aus der vorherigen Lektion aus, das sich unendlich oft abfahren lässt und das Sie schon programmiert haben.
  2. Öffnen Sie das entsprechende Programm.
  3. Unter Grundlagen gibt es neben dem Befehl beim Start auch den Befehl dauerhaft. Ziehen Sie ihn in das Programmierfeld und heften Sie Ihr Programm anschliessend dort an.
  4. Laden Sie das Programm auf den micro:bit und lassen Sie es laufen.
  5. Welche Möglichkeit haben Sie, das Programm zu stoppen?

Aufgabe 2: dauerhaft zum Zweiten

  1. Suchen Sie sich ein Muster aus der vorherigen Lektion aus, das sich nicht unendlich oft abfahren lässt und das Sie schon programmiert haben.
  2. Öffnen Sie das entsprechende Programm.
  3. Heften Sie Ihr Programm unter dauerhaft an.
  4. Laden Sie das Programm auf den micro:bit und lassen Sie es laufen.
  5. Welche Möglichkeit haben Sie, das Programm zu stoppen?

Der Befehl dauerhaft erzeugt eine sogenannte Endlosschleife. Immer wenn der Roboter in der untersten Zeile seines Programmes angekommen ist, springt er direkt wieder in die oberste Zeile und beginnt das Programm von Neuem.

Das Schwierige bei Endlosschleifen ist offensichtlich das Anhalten. Dafür braucht das Programm einen Input "Hey, es ist etwas passiert, höre jetzt auf!"

Im folgenden Abschnitt lernen Sie, wie man den Roboter mit Hilfe der Tasten A und B steuern kann. Erstellen Sie ein neues Projekt mit dem Namen Stoptest für die nächsten Aufgaben.

Aufgabe 3: Der Befehl wenn Knopf geklickt

Unter Eingabe finden Sie den Befehl wenn Knopf A geklickt. Ziehen Sie diesen in das Programmierfeld. Schreiben Sie damit ein Programm, das den Roboter auf Knopfdruck geradeaus fahren lässt. Man soll den Roboter auf Knopfdruck auch wieder stoppen können.

Aufgabe 4: Zusatzaufgabe: Drei Reaktionen

Neben A und B gibt es auch noch die Möglichkeit, beide Knöpfe gleichzeitig zu drücken: A + B.

Denken Sie sich eine zusätzliche Reaktion aus, die während der Fahrt stattfindet. Zum Beispiel könnte der Roboter einmal hupen oder mit den LEDs blinken.

Bauen Sie anschliessend Ihr Programm so um, dass der Roboter mit einer Knopfkombination gestartet wird, bei einer zweiten Ihre Aktion durchführt und mit der dritten wieder anhält und stehen bleibt.

Sie können selbst wählen, welche Knopfkombination für welche Reaktion sorgen soll.

Aufgabe 5: Abbiegen mit Start und Stop

Ändern Sie Ihr Programm so ab, dass der Roboter einmal rechts abbiegt. Der Roboter soll also losfahren, wenn der Knopf A gedrückt wird und anhalten, wenn Knopf B gedrückt wird. Falls B nicht gedrückt wird, soll der Roboter einfach geradeaus fahren nach der Kurve.

Aufgabe 6: Muster mit Start und Stop

Wählen Sie dasselbe Muster wie in Aufgabe 1. Programmieren Sie den Roboter so, dass er beim Drücken der Taste A losfährt und das Muster abfährt. Wird Taste B gedrückt, soll der Roboter anhalten.

Wird der Roboter das Muster mehrmals abfahren, wenn Taste B nicht gedrückt wird?

Aufgabe 7: Endlosschleife während wahr

Schauen Sie sich das nebenstehende Programm an. Was wird der Roboter tun, wenn es laufengelassen wird?

beim Start
  während wahr mache
    motor all → move Forward → at speed 41
    pausiere (ms) 1000
    motor left → move Forward → at speed 0
    pausiere (ms) 550

Schreiben Sie das Programm anschliessend ab und laden Sie es auf den micro:bit. Entspricht die tatsächliche Ausführung Ihren Erwartungen?

Aufgabe 8: während falsch statt während wahr

Probieren Sie aus, was der Roboter tut, wenn Sie den Befehl während wahr zu während falsch abändern.

Was also macht während wahr? Was macht während falsch?

Aufgabe 9: Der Befehl wenn dann ansonsten

Schauen Sie sich das nebenstehende Programm an.

beim Start
  wenn Knopf A ist geklickt dann
    motor all → move Forward → at speed 41
  ansonsten
    LEDlight left → turn ON
    LEDlight right → turn ON
    pausiere (ms) 500
    LEDlight left → turn OFF
    LEDlight right → turn OFF

Was wird der Roboter tun, wenn es laufengelassen wird?

Schreiben Sie das Programm anschliessend ab und laden Sie es auf den micro:bit. Den Befehl wenn dann ansonsten finden Sie unter Logik.

Entspricht die tatsächliche Ausführung Ihren Erwartungen?

Aufgabe 10: Endlosschleife mit Abbruch

Kombinieren Sie nun die in Aufgabe 7 und Aufgabe 9 gelernten Befehle, um ein Endlosmuster zu fahren, das auf Knopfdruck gestartet und beendet werden kann.

Folgen Sie zum Programmieren den folgenden Schritten:

  1. Starten Sie ein neues Projekt Endlosmuster.
  2. Nehmen Sie die Endlosschleife aus Aufgabe 7 und heften Sie sie unter wenn Knopf A geklickt.
  3. Nehmen Sie den Befehl wenn dann ansonsten aus Aufgabe 9 und fügen Sie ihn in der Endlosschleife ein. Setzen Sie als Bedingung wenn Knopf B gedrückt.
  4. Falls tatsächlich Knopf B gedrückt ist, soll der Roboter sofort alle Motoren stoppen und die Endlosschleife mit abbrechen beenden. Dadurch ist dann auch das Programm beendet, das durch Knopf A gestartet wurde.
  5. Falls Knopf B gerade nicht gedrückt ist, soll der Roboter ein beliebiges Muster abfahren. Wählen Sie ein Muster, das sich endlos wiederholen kann. Fügen Sie die entsprechenden Befehle ein.
  6. Laden Sie das Programm auf den micro:bit und testen Sie es. Hinweis: Knopf B lange gedrückt halten, um das Programm zu beenden.

Aufgabe 11: Ein anderes Endlosmuster

Nehmen Sie Ihr Programm aus Aufgabe 10 und ändern Sie es so ab, dass der Roboter ein anderes Muster abfährt.

Aufgabe 12: Zusatzaufgabe: Verschiedene Endlosmuster

Nehmen Sie Ihr Programm aus Aufgabe 10 und ändern Sie es so ab, dass der Roboter zwei verschiedene Muster abfahren kann.

Wenn beide Knöpfe zugleich gedrückt werden, soll der Roboter anhalten.

Kontrollaufgaben

  1. Nehmen Sie an, der Roboter soll nicht auf Knopfdruck anhalten können. Sie sollen den Roboter dazu bringen, endlos ein Muster abzufahren. Welche zwei Möglichkeiten haben Sie dazu?

  2. In einer dauerhaft-Schleife werden zu Beginn beide Motoren eingeschaltet und nach einiger Zeit wieder ausgeschaltet. Warum bleibt der Roboter trotzdem nicht stehen, wenn das Programm ausgeführt wird?

dauerhaft
  motor all → move Forward → at speed 41
  pausiere (ms) 500
  LEDlight left → turn ON
  pausiere (ms) 100
  LEDlight left → turn OFF
  pausiere (ms) 500
  motor all → move Forward → at speed 0
  1. Eine wenn dann ansonsten-Anweisung hat als Bedingung wenn Knopf A+B geklickt. Welche Anweisung führt der Roboter aus, wenn nur Knopf A geklickt wird, die dann-Anweisung oder die ansonsten-Anweisung?
beim Start
  wenn Knopf A+B ist geklickt dann
    motor all → move Forward → at speed 41
  ansonsten
    motor all → move Backward → at speed 41
  1. In einer Schleife wird der Befehl abbrechen benutzt. Was passiert mit der Endlosschleife beim Ausführen des Programms?
beim Start
  während wahr mache
    motor all → move Forward → at speed 41
    pausiere (ms) 500
    abbrechen
  motor all → move Forward → at speed 0
  1. Warum muss man im Programm von Aufgabe 10 den B-Knopf lange gedrückt halten, wenn man den Roboter anhalten will?