Lernziele
- Die Knöpfe
AundBzur Bedienung des Roboters einsetzen können- Den Befehl
wenn dannanwenden können- Den Befehl
wenn dannzuwenn dann ansonstenerweitern können- Die Schleife
während wahreinsetzen können- Die Schleife
während wahrmitabbrechenbeenden 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
- Suchen Sie sich ein Muster aus der vorherigen Lektion aus, das sich unendlich oft abfahren lässt und das Sie schon programmiert haben.
- Öffnen Sie das entsprechende Programm.
- Unter
Grundlagengibt es neben dem Befehlbeim Startauch den Befehldauerhaft. Ziehen Sie ihn in das Programmierfeld und heften Sie Ihr Programm anschliessend dort an. - Laden Sie das Programm auf den micro:bit und lassen Sie es laufen.
- Welche Möglichkeit haben Sie, das Programm zu stoppen?
Aufgabe 2: dauerhaft zum Zweiten
- Suchen Sie sich ein Muster aus der vorherigen Lektion aus, das sich nicht unendlich oft abfahren lässt und das Sie schon programmiert haben.
- Öffnen Sie das entsprechende Programm.
- Heften Sie Ihr Programm unter
dauerhaftan. - Laden Sie das Programm auf den micro:bit und lassen Sie es laufen.
- 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:
- Starten Sie ein neues Projekt
Endlosmuster. - Nehmen Sie die Endlosschleife aus Aufgabe 7 und heften Sie sie unter
wenn Knopf A geklickt. - Nehmen Sie den Befehl
wenn dann ansonstenaus Aufgabe 9 und fügen Sie ihn in der Endlosschleife ein. Setzen Sie als Bedingungwenn Knopf B gedrückt. - Falls tatsächlich Knopf B gedrückt ist, soll der Roboter sofort alle Motoren stoppen und die Endlosschleife mit
abbrechenbeenden. Dadurch ist dann auch das Programm beendet, das durch Knopf A gestartet wurde. - 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.
- 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
-
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?
-
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
- Eine
wenn dann ansonsten-Anweisung hat als Bedingungwenn Knopf A+B geklickt. Welche Anweisung führt der Roboter aus, wenn nur Knopf A geklickt wird, diedann-Anweisung oder dieansonsten-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
- In einer Schleife wird der Befehl
abbrechenbenutzt. 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
- Warum muss man im Programm von Aufgabe 10 den B-Knopf lange gedrückt halten, wenn man den Roboter anhalten will?