Arbeitsblatt: Wie rede ich mit einem Roboter? Ausgangslage: Ein Roboter besitzt Sensoren, um seine Umgebung wahrzunehmen, und Aktoren, um seine Umgebung zu beeinflussen. Auch Menschen besitzen Sensoren (Ohren, Augen ) und Aktoren (Füsse, Hände ). In vielen alltäglichen Situationen benutzt der Mensch seine Sensoren und Aktoren, ohne dabei bewusst zu überlegen. Dies macht es schwierig, zu erkennen, welche Fähigkeiten zum Erfüllen einer einfachen Aufgabe nötig sind. Zudem muss beim Roboter das ganze Programm bereits vorgängig festgelegt werden. Man kann dem Roboter während eines Ablaufs keine zusätzlichen Befehle oder Korrekturen mehr geben. Deshalb muss für den Roboter das ganze Programm im Voraus und in einer für ihn verständlichen Sprache festgelegt werden. Mit den folgenden Aufgaben wirst du dies üben und die wichtigsten Befehle und Begriffe der Robotersprache kennenlernen. Regeln: In den folgenden Übungen übernimmt die Lehrperson oder jemand aus der Klasse die Rolle des Roboters. Versuche, den Roboter bei allen Aufgaben so präzise wie möglich und so effizient wie möglich (also mit möglichst wenigen Befehlen) zu «programmieren». Beachtet dabei, dass der Roboter immer nur genau das ausführen kann, wozu er programmiert wurde, und selber keine intelligenten Entscheidungen treffen kann. Beispiel: Ein Befehl «Roboter, beginne eine Bewegung nach vorn!», gefolgt von «Roboter, beende deine Bewegung, wenn du im Ziel stehst», ist natürlich nicht möglich! Da der Roboter selber weder weiss noch erkennen kann, wo das Ziel liegt. Vorbereitung: Vereinbart miteinander Befehle, die der Roboter verstehen soll. So zum Beispiel: - vorwärtsgehen - Stopp - x Schritte vorwärtsgehen (anstelle von x kann eine beliebige Zahl stehen) - Robotervokabular/Befehle Elementare Aktionen Gehen Stopp Drehen links Drehen rechts Die Roboterperson geht. Die Roboterperson steht still. Die Roboterperson dreht sich nach links. Die Roboterperson dreht sich nach rechts. 1
Elementare Ablaufregelungen (x steht für eine beliebige Zahl) Warten x Schritte Warten x Sekunden Warten bis Berührung Warten, bis x Grad gedreht Warten, bis Distanz kleiner x Warten heisst nicht stillstehen, sondern die vorangehende Tätigkeit (Bewegung) wird ausgeführt, bis x Schritte getan sind. Warten heisst nicht stillstehen, sondern die vorangehende Tätigkeit (Bewegung) wird ausgeführt, bis x Sekunden vorbei sind. Falls dies verwendet wird, soll der Roboterspieler die Hand ausstrecken. x ist positiv für Drehungen nach rechts und negativ für Drehungen nach links. Die vorangehende Tätigkeit wird weitergeführt, bis die Distanz nach vorne kleiner x ist. «Intelligente» Aktionen mit integrierter Ablaufregelung (x steht für eine beliebige Zahl) Gehen x Schritte Gehen x Sekunden Gehen bis Berührung Drehen (links oder rechts) x Grad Gehen, bis Distanz kleiner x Die Roboterperson geht x Schritte und stoppt automatisch. Die Roboterperson geht x Sekunden lang und stoppt automatisch. Die Roboterperson geht, bis die Hand etwas berührt, und stoppt automatisch. Die Roboterperson dreht sich um x Grad und stoppt automatisch. Die Roboterperson geht, bis Distanz kleiner x, und stoppt automatisch. Weitere wichtige Ablaufregelungen (Schleife und Ablaufverzweigung) Wiederholen Schleife Befehle bis x Mal durchgeführt Prüfen, ob Sensorwert grösser x Falls wahr: Befehle A Falls falsch: Befehle B Ende Verzweigung Schleife: Die Roboterperson wiederholt die genannte Sequenz x Mal. Die Ablaufverzweigung ist von einem Sensorwert abhängig: Wenn der Sensorwert grösser x ist, werden die Befehle A durchgeführt, sonst werden die Befehle B durchgeführt. 2
Aufgabe 1: Sequenzieller Programmablauf Beschreibung: Beachtet, dass der Roboter für die folgende Aufgabe weder sehen noch hören kann. Er kann nur klaren Befehlen gehorchen, wie sie in seinem Programm von Anfang an festgeschrieben sind. 2. Programmiererinnen und Programmierer: Überlegt euch, mit welchen Befehlen aus den obigen Tabellen ihr das Programm des Roboters schreiben wollt, und schreibt sie hier wörtlich auf (jeder Befehl eine Zeile): 3. Programmiererinnen und Programmierer: Erklärt die Startposition. Lest die Befehle dem Robotermenschen vor. Wenn er alle verstanden hat, könnt ihr den Robotermenschen mit dem Befehl «Start» laufen lassen. 3
Aufgabe 2: Programmablauf mit «Warten» Beschreibung: Für diese zweite Aufgabe ist der Roboter mit einem Berührungssensor ausgestattet (beim Menschen z. B. die nach vorne gestreckte Hand). Dies erlaubt neue Möglichkeiten der Programmierung und Steuerung. Der entscheidende Befehl in der Robotersprache lautet: Warten bis Mit diesem Befehl kann man den Roboter eine Bewegung ausführen lassen, bis der Sensor anspricht. Man muss dann einfach noch die Bedingung angeben. Für die Lösung dürfen nur elementare Aktionen mit elementaren Ablaufregelungen verwendet werden. 2. Jede Gruppe überlegt sich, welche Befehle sie in das Programm des Roboters schreiben will, und schreibt sie hier wörtlich auf (jeder Befehl eine Zeile): 3. Programmierer: Erklärt die Startposition. Lest die Befehle dem Robotermenschen vor. Wenn er alle verstanden hat, könnt ihr den Robotermenschen mit dem Befehl «Start» laufen lassen. 4
Aufgabe 3: Programmablauf mit «Schleife» Beschreibung: Gewisse Programme kann man vereinfachen (kürzen), wenn mehrere Programmschritte innerhalb einer «Schleife» zusammengefasst und mehrfach wiederholt werden. Bei der folgenden Aufgabe lässt sich dies anwenden. 2. Jede Gruppe überlegt sich, welche Befehle sie in das Programm des Roboters schreiben will, und schreibt sie hier wörtlich auf (jeder Befehl eine Zeile): 3. Programmiererinnen und Programmierer: Erklärt die Startposition. Lest die Befehle dem Robotermenschen vor. Wenn er alle verstanden hat, könnt ihr den Robotermenschen mit dem Befehl «Start» laufen lassen. 5
Aufgabe 4: Programmablauf mit Verzweigung (auch Schalter genannt) Beschreibung: In gewissen Situationen ist es wünschenswert, dass der Roboter eine Entscheidung treffen kann. Dies wird meistens in Kombination mit einem Sensormesswert angewendet. Versucht, dies bei der folgenden Aufgabe anzuwenden. Der entscheidende Befehl in der Robotersprache lautet: Prüfen, ob Sensorwert grösser x Falls wahr: Programmsequenz A Falls falsch: Programmsequenz B Ende Verzweigung 2. Jede Gruppe überlegt sich, welche Befehle sie in das Programm des Roboters schreiben will, und schreibt sie hier wörtlich auf (jeder Befehl eine Zeile): 3. Programmiererinnen und Programmierer: Erklärt die Startposition. Lest die Befehle dem Robotermenschen vor. Wenn er alle verstanden hat, könnt ihr den Robotermenschen mit dem Befehl «Start» laufen lassen. 6
Zusammenfassung: Der Grundwortschatz für das Programmieren eines Roboters Für das Programmieren eines Roboters brauchst du nur die folgenden vier Befehle und zwei Begriffe zu kennen: Befehlstypen: - Aktion (Aufnahme/Abspielen, Klang und Anzeige funktionieren genau gleich) - Warten - Schleife - Schalter Begriffe: - sequenzieller Programmablauf - Bedingung Mit diesen Befehlen kannst du schon eine ganze Menge programmieren. Der Kreativität sind da fast keine Grenzen gesetzt. Beachte, dass in den Lösungen zu den Aufgaben die gleichen Arten von Befehlen immer mit der gleichen Farbe gekennzeichnet sind. Bei der Programmierung des echten Roboters auf dem Computer werden die gleichen Farben zur Kennzeichnung verwendet. Die wichtigsten Zusammenhänge: - Die Befehle vom Typ «Warten» und «Schalter» sind fast immer an die Bedingung eines Sensors gekoppelt. - Mithilfe des Befehls vom Typ «Schalter» können «Entweder-oder-Entscheidungen» getroffen werden. - Mithilfe von «Schleifen» können Befehle zusammengefasst und wiederholt werden, was eine effiziente Programmierung erlaubt. 7