Der programmierbare Roboterarm
Unterrichtseinheit
In der vorliegenden Unterrichtseinheit "Der programmierbare Roboterarm" sollen die Schülerinnen und Schüler erste Einblicke in die Automatenprogrammierung und die Strukturierung von Programmen erhalten. Die Materialien können für die Erarbeitung im Unterricht und zur Wiederholung oder Prüfungsvorbereitung - auch am heimischen Rechner - eingesetzt werden.Die Behandlung des Themas "Informationen verarbeiten" wird an vielen Schulen mittels der Programme "Karol - der Roboter" oder "Kara" erledigt. Bei beiden Programmen tun sich die Schülerinnen und Schüler schwer damit, Sensoren zu erkennen und automatisierte Abläufe hineinzuinterpretieren. An diesem Problem soll nun der "Roboterarm" ansetzen und den Lernenden diese wichtigen Begriffe der Informatik praxisnah veranschaulichen. Das in dieser Unterrichtseinheit verwendete dreidimensionale Modell eines Roboterarms wurde durch die objektorientierte Programmiersprache VRML (Virtual Reality Modeling Language) verwirklicht.Der programmierbare Roboterarm setzt jede Eingabe der Schülerinnen und Schüler bildlich um - durch diese Veranschaulichung ist der Lernerfolg "vorprogrammiert". Das VRML-Plugin von blaxxun Contact steht kostenfrei zur Verfügung. Der gesamte Kurs "Der programmierbare Roboterarm" ist in vier Kapitel unterteilt. Während sich die ersten drei Kapitel an die Klassen 7 bis 8 richten, können die Inhalte des vierten Kapitels auch in Klasse 10 beziehungsweise Jahrgangsstufe 11 und 12 zum Einsatz kommen. Ausführliche Hinweise zum Lehrplanbezug (hier Sachsen) finden Sie auf den folgenden Seiten. 1. Einführung in die Automatenprogrammierung - Sensoren und Zustände Schülerinnen und Schüler erkunden den Roboterarm. Sie erstellen das UML-Diagramm und modifizieren es durch Methodenaufrufe. 2. Einführung in die Automatenprogrammierung - Lineare Programmierung Nach dem "Spielen" mit dem Roboterarm über die Programmbuttons geht es nun um die Automatisierung von Abläufen - der eigentlichen Aufgabe von Robotern. 3. Einführung in die Automatenprogrammierung - Programmanalyse Die Lernenden müssen die Zusammenhänge zwischen den Sensorzuständen und den Methodenaufrufen abstrahieren. 4. Strukturiertes Programmieren - Nutzung von Kontrollstrukturen Nach dem linearen Programmieren lernen die Schülerinnen und Schüler Schleifen und Verzweigungen kennen. Die Schülerinnen und Schüler untersuchen durch die Nutzung des VRML-Modells die Sensoren und ihre verschiedenen Zustände an einem Roboterarm. untersuchen das UML-(Unified Modeling Language-)Diagramm des "Industrieroboters" sowie das Schema der Zustände und ihre Beeinflussung mit verschiedenen Methoden. bestimmen vorprogrammierte Bewegungsabläufe unter Berücksichtigung der Sensorenzustände mittels Programmeingabe und halten diese in Zustandstabellen fest. untersuchen die Kontrollstrukturen Schleifen (Wiederholungen) und bedingte Verzweigungen und wenden diese an. Erkundung des 3D-Modells Durch eine spielerische Beschäftigung mit dem VRML-Modell (Abb. 1) soll den Schülerinnen und Schülern klar werden, über welche Sensoren der Roboterarm verfügen muss und welche Zustände diese Sensoren annehmen können. So können die Lernenden gemeinsam das UML-(Unified Modeling Language-)Diagramm sowie das Schema der Zustände und der Methoden erarbeiten (siehe "roboterarm_1.pdf"). Dabei wird ihnen auch klar, von welchem Zustand man NICHT in einen anderen Zustand kommt. Plugin erforderlich Das dreidimensionale Modell wurde durch die objektorientierte Programmiersprache VRML (Virtual Reality Modeling Language) verwirklicht, die speziell für das Internet entwickelt worden ist. Das zur Darstellung des Modells erforderlich Plugin können Sie kostenlos aus dem Internet herunterladen: blaxxun Contact 5.1 Download des Plugins von der Homepage des Autors der Unterrichtseinheit Cortona3D Viewer Download der Freeware-Version Cortona von Parallel Graphics Methodenaufrufe Nach der Erarbeitung Theorie kann das UML-Diagramm erstellt und durch Methodenaufrufe modifiziert werden (siehe "roboterarm_1.pdf"). Das erworbene Wissen kann simultan am Rechner auf die Probe gestellt werden. Für die Methodenaufrufe stehen im ersten Teil des Programms "Roboterarm.exe" sechs Button zur Verfügung (Abb. 2, Platzhalter bitte anklicken): R - Arm nach rechts drehen L - Arm nach links drehen H - Roboterarm nach oben (hoch) schwenken T - Roboterarm nach unten (tiefer) schwenken A - Greifer öffnen (auf) Z - Greifer schließen (zu). Über diese Buttons wird der Roboterarm gesteuert. Bei einem falschen Methodenaufruf gibt das Programm eine entsprechende Fehlermeldung aus. Wird zum Beispiel der Button "R" gedrückt, wenn der Richtungssensor bereits "rechts" anzeigt, hat dies eine entsprechende Fehlermeldung zur Folge. Lernumgebung "Programmierbarer Roboterarm" Die Lernumgebung ist - wie alle weiteren Materialien zur Unterrichtseinheit - in dem Downloadpaket programm_roboterarm.zip enthalten (siehe Startseite des Artikels). Das Programm wird per Klick auf die Datei "Roboterarm.exe" gestartet. Die EXE-Datei ruft die Bilddateien der Unterordner "mit_kugel" und "ohne_kugel" sowie die PDF-Arbeitsblätter auf und muss daher mit diesen Ordnern und Dateien auf einer Ebene liegen. Lernbereich 1, Computer verstehen: Daten und Strukturen Übertragen des Prinzips "Eingabe - Verarbeitung - Ausgabe" auf Vorgänge im Alltag, Bedienen technischer Geräte Lernbereich 2, Computer nutzen und anwenden: Objekte - Attribute - Methoden Zuordnung von konkreten Objekten zum Modell: Objekt - Attribut - Attributwert, UML-Notation (Unified Modeling Language) Lernbereich 1, Informationen repräsentieren: Klassen und Objekte Klassen aus der Erfahrungswelt: Name, Attribut, Attributwertebereich, Methode Einfache Programmierung Zur Automatisierung von Abläufen muss ein Weg gefunden werden, wie man der Maschine mitteilen kann, was man von ihr will. Das geschieht im Allgemeinen über die Programmierung. Die Schülerinnen und Schüler sollen an dieser Stelle jedoch keine Programmierprofis werden, sondern sich mit den Strukturen einer Programmiersprache vertraut machen. Die vorliegende Programmiersprache besteht im Wesentlichen aus einer Aneinanderreihung der Großbuchstaben R, L, H, T, A und Z, wobei jeder Buchstabe eine Methode aufruft und somit einen Sensorzustand verändert: R - Arm nach rechts drehen L - Arm nach links drehen H - Roboterarm nach oben (hoch) schwenken T - Roboterarm nach unten (tiefer) schwenken A - Greifer öffnen (auf) Z - Greifer schließen (zu). "Sehen", was man programmiert Die Eingabe falscher Buchstaben wird durch den Parser herausgefiltert - es erfolgt keine Fehlermeldung. Dies kann man übrigens später nutzen, um zum Beispiel im Rahmen der Binnendifferenzierung Wörter zu finden, die den Roboterarm sinnvoll programmieren. Die in Frage kommenden Buchstaben mit ihrem dazugehörigen Methodenaufruf sind während der Eingabephase immer auf dem Bildschirm präsent (Abb. 3, Platzhalter bitte anklicken). Durch die signifikante Bedeutung der Programmierbefehle dieser rudimentären Programmiersprache sollte jede Schülerin und jeder Schüler binnen kürzester Zeit Erfolgserlebnisse in Form von gewünschten Bewegungsabläufen erringen. Lernbereich 1, Computer verstehen: Daten und Strukturen Übertragen des Prinzips "Eingabe - Verarbeitung - Ausgabe" auf Vorgänge im Alltag: Bedienen technischer Geräte Lernbereich 1, Informationen repräsentieren: Klassen und Objekte Klassen aus der Erfahrungswelt: Name, Attribut, Attributwertebereich, Methode Lernbereich 2, Informationen verarbeiten: Modell - Algorithmus - Lösung Begriff: Algorithmus (Endlichkeit, Eindeutigkeit, Ausführbarkeit, Allgemeingültigkeit), Kennen des Problemlöseprozesses (Problemanalyse, Lösungsentwurf, Umsetzung, Test, Dokumentation), selbstständiges Lösen einfacher Probleme, einfache Automaten, Aufgaben in einfachen grafischen Programmierumgebungen (kritische Bewertung der Resultate) Nennung der Methodenaufrufe Im dritten Abschnitt des Programms zeigt sich, ob die Lernenden die Theorie zur linearen Programmierung verstanden haben. Die Schülerinnen und Schüler haben nun die Aufgabe, vorgegebene Bewegungsabläufe in Programme umzusetzen. Dazu können sie Bewegungsabläufe betrachten, indem sie den entsprechenden Button anklicken (Beispiel 1-4; Abb. 4, Platzhalter bitte anklicken). Die Lernenden können sich die Sequenzen beliebig oft vorspielen lassen. Dann muss ein Programm aus einer Aneinanderreihung der Großbuchstaben R, L, H, T, A und Z formuliert und in die entsprechende Eingabemaske eingetragen werden. Nach einem Klick auf den "ok"-Button wird die Eingabe analysiert und bewertet. Ausfüllen der Zustandstabellen Die eigentliche Schwierigkeit besteht dabei nicht in der konkreten Auflistung der Methodenaufrufe in Form eines Programms, sondern vielmehr im Ausfüllen der Zustandstabellen. Dazu müssen die Schülerinnen und Schüler die Zusammenhänge zwischen den Sensorzuständen und den Methodenaufrufen abstrahieren. Die Sensorenzustände werden nicht mehr angezeigt. Lernbereich 1, Computer verstehen: Daten und Strukturen Übertragen des Prinzips "Eingabe - Verarbeitung - Ausgabe" auf Vorgänge im Alltag: Bedienen technischer Geräte Lernbereich 1, Informationen repräsentieren: Klassen und Objekte Klassen aus der Erfahrungswelt: Name, Attribut, Attributwertebereich, Methode Lernbereich 2, Informationen verarbeiten: Modell - Algorithmus - Lösung Begriff: Algorithmus (Endlichkeit, Eindeutigkeit, Ausführbarkeit, Allgemeingültigkeit); Kennen des Problemlöseprozesses: Problemanalyse, Lösungsentwurf, Umsetzung, Test und Dokumentation; selbstständiges Lösen einfacher Probleme, einfache Automaten, Aufgaben in einfachen grafischen Programmierumgebungen; kritische Bewertung der Resultate Lernbereich 2, Formeln und Gleichungen Die Schülerinnen und Schüler erfassen komplexere Aufgabentexte und übertragen den lösungsnotwendigen Inhalt in die mathematische Sprache und deren Symbolik. Sie erfassen Strukturen von Termen, Gleichungen und Formeln. Anschauliche Einblicke in die Programmierung Das strukturierte Programmieren - also die Nutzug von Kontrollstrukturen - setzt bei den Schülerinnen und Schülern ein erhöhtes Maß an Abstraktionsvermögen voraus. Durch Anschaulichkeit kann man ihnen jedoch den Weg der Aneignung erster Erfahrungen mit dieser Materie ebnen. Diesen Anspruch versucht das Programm "Roboterarm" gerecht zu werden. Nach den ersten Einblicken in die (lineare) Programmierung des Roboterarms sollen nun Aufgaben programmiertechnisch gelöst werden, bei denen man vorzugsweise Kontrollstrukturen einsetzt. Schleifen und Verzweigungen Beim linearen Programmieren galt bisher: Ein Programm für den programmierbaren Roboterarm besteht aus einer Reihe von Großbuchstaben, die von links nach rechts abgearbeitet werden. Beim strukturierten Programmieren kommen nun jedoch Schleifen und Verzweigungen mit hinzu. Da Schleifen und Verzweigungen dem linearen Ablauf des Programms widersprechen, spricht man nicht mehr von linearer Programmierung, sondern von strukturierter Programmierung. Im vierten Abschnitt des Programms werden nacheinander die folgenden Themen behandelt, die über die jeweiligen Reiter aufgerufen werden können (Abb. 5, Platzhalter bitte anklicken). Über den letzten Karteikartenreiter kommt man zurück zum Hauptmenü. Es empfiehlt sich, die Kapitel der Reihe nach abzuarbeiten: Bedienung des Roboterarms über Buttons Lineares Programmieren mit Kugeltransport Kontrollstruktur "Schleifen" Kontrollstruktur "Bedingte Verzweigungen" Beibehaltung der Befehle Die bereits bekannten Programmierbefehle werden beibehalten. Auch in diesem Programmteil ist während der Bedienung darauf zu achten, dass die Anzeige der Sensoren berücksichtigt wird. Wenn zum Beispiel der Richtungs-Sensor bereits "links" anzeigt, kann der Befehl "L" (Roboterarm nach links schwenken) nicht mehr ausgeführt werden. Das Programm gibt eine Fehlermeldung aus. Neuer Befehl: Kugeltausch Hinzu kommt nun die Last in Form einer Kugel, die durch den Roboterarm vom rechten Lager auf das linke Lager befördert werden soll. Jede der Kugeln hat die Masse 300 Kilogramm. Sobald der Greifer um die Kugel geschlossen wird, zeigt der Last-Sensor die aktuelle Last an. Nachdem die Kugel mittels Roboterarm vom rechten Lager auf das linke Lager befördert wurde, kann der Kugeltausch (neuer Befehl der Programmiersprache: "K") durchgeführt werden. Neue Sensoren: Last- und Lastlage In diesem Zusammenhang sind zwei neue Sensoren hinzugekommen, welche die Last betreffen. Der Roboterarm verfügt nun über einen Last-Sensor, der die Masse der Last in Kilogramm ermittelt. Der zweite Sensor ist der Lastlage-Sensor, der über die aktuelle Lage der Kugel informiert. Für den problemlosen Kugeltausch (Abb. 6) müssen zwei Bedingungen erfüllt sein: Die Kugel muss vom rechten Lager auf das linke Lager befördert worden sein. (Lastlage-Sensor: links ) Die Kugel muss freigegeben sein. (Roboterarm-Sensor: oben ) Kugeltausch Die Programmiersprache bestand bisher aus der Aneinanderreihung der Großbuchstaben R, L, H, T, A und Z. Damit konnte man den Roboterarm durch seine gesamten Bewegungsfreiheiten (Sensor-Zustände) führen. Zum Erfüllen der nun anstehenden Aufgaben benötigt man darüber hinaus noch den Befehl "K", der die Methode Kugeltausch aufruft. Gemäß der unter "4.1 Bedienung des Roboterarms über Buttons" betrachteten Bedingungen kann nun eine nach links transportierte Kugel - die vom Greifer freigegeben wurde - ausgetauscht werden (Abb. 7). "Aufgabe erfüllt" Die Kugel wird von ihrem linken Podest (Sensor-Lastlage = links ) entfernt und die nächste Kugel auf dem rechten Podest bereitgestellt (Sensor-Lastlage = rechts ). Für die Erfüllung der Aufgabe ist zu beachten, dass die Anzahl der bewegten Kugeln erst nach dem Kugeltausch erfasst wird (Abb. 8). "Schleifen" statt Wiederholung von Programmteilen Der Abschnitt "Schleifen" bearbeitet innerhalb des Roboterarm-Programms zum ersten Mal Programmstrukturen, die von der linearen Programmierung abweichen. Wenn zum Beispiel nicht nur eine Kugel bewegt werden soll, sondern eine beliebige Anzahl, so musste man dafür bisher einen bestimmten Programmteil mehrfach wiederholen. Das kann man auch eine Schleife erledigen lassen. Als Schleife wird ein Programmteil bezeichnet, der mehrfach nacheinander ausgeführt werden kann. Syntax der Schleife Der Roboterarm erkennt die Kontrollstruktur einer Schleife an der Syntax "W3(ZA)" (Abb. 9). Das "W" kennzeichnet die Struktur als Wiederholung (Schleife), die darauf folgende Ziffer (1-9) gibt die Anzahl der Wiederholungen an. Für die Bearbeitung der gestellten Aufgaben sind einstellige Zahlen ausreichend - mehrstellige Zahlen werden auf die letzte Stelle reduziert. Die Befehlssequenz in der Klammer stellt den zu wiederholenden Programmteil dar. Beim Programmablauf würde "W3(ZA)" dasselbe ergeben wie "ZAZAZA". Allerdings kann man bei vielen Wiederholungen oder größeren Schleifen Befehle sparen. Bei der Verwendung von Schleifen ist zu beachten, dass mehrere Schleifen nacheinander - aber nicht geschachtelt - eingegeben werden dürfen. Unterschiedliche Beantwortung einer Bedingung mit mehreren Alternativen Mit den "Wiederholungen" kennt man bereits eine Kontrollstruktur, die das Verzweigen eines Programms ermöglicht. Eine echte Verzweigung jedoch - die sich aus der unterschiedlichen Beantwortung einer Bedingung mit mehreren Alternativen ergibt - ist das noch nicht. In dem hier vorgestellten Programmteil werden dem Roboterarm Kugeln mit unterschiedlichen Lasten (null bis 500 Kilogramm) vorgelegt. Die Masse von 300 Kilogramm ist dabei die Obergrenze, die der Roboterarm heben kann, ohne Schaden zu nehmen. Sobald der Roboterarm eine Kugel im Greifer hat (Richtung: links , Arm: unten , Greifer: zu ) wechselt die Lastposition auf den Zustand im Greifer und nun muss der Test erfolgen, ob die Last vom Roboterarm bewegt werden kann oder nicht. Syntax der bedingten Verzweigung Der Roboterarm erkennt die Kontrollstruktur der Verzweigung an der Syntax "I". Der Großbuchstabe "I" steht für das englische "if ... then". Die erste Befehlsfolge wird ausgeführt, wenn die Kugel die erlaubte Masse von höchstens 300 Kilogramm hat. Bei der anderen Alternative (Masse > 300 Kilogramm) wird die zweite Befehlsfolge ausgeführt. Es ist darauf zu achten, dass der Roboterarm am Ende des Tests bei beiden Alternativen dieselben Sensoren-Zustände hat, damit das Programm anschließend fehlerfrei weiter ausgeführt werden kann. Beispiel "Bewege fünf Kugeln" Für die Bearbeitung der zweiten Aufgabe "Bewege fünf Kugeln" kann der Test problemlos in die Schleife eingebaut werden - es darf aber nur ein Test im Programm durchgeführt werden. Wenn die Kugel zu schwer ist, muss sie rechts liegen bleiben, bis der Roboterarm wieder nach oben geschwenkt ist. Nun kann die Kugel auch in der rechten Position getauscht werden und der Kugeltausch wird für die Erfüllung der Aufgabe mitgezählt. Abb. 10 zeigt eine schematische Darstellung der Verzweigung für die Befehlsfolge "RTZI L". Sensoren-Zustände vor der Verzweigung Richtung: rechts , Arm: unten ; Greifer: zu Sensoren-Zustände nach der Verzweigung Richtung: rechts ; Arm: oben ; Greifer: zu Der Unterschied besteht darin, dass sich nach der Verzweigung für den Fall "Masse > 300 Kilogramm" keine Kugel im Greifer befindet, sondern auf dem rechten Podest. Anderenfalls befindet sich die Kugel im Greifer. Wenn alle Aufgaben erfolgreich gelöst worden sind, sollten die Schülerinnen und Schüler die Struktur von Programmen grundlegend beherrschen und für weiterführende Programmieraufgaben gut vorbereitet sein. Lernbereich 1, Computer verstehen: Daten und Strukturen Übertragen des Prinzips "Eingabe - Verarbeitung - Ausgabe" auf Vorgänge im Alltag: Bedienen technischer Geräte Lernbereich 2, Computer nutzen und anwenden: Objekte - Attribute - Methoden Zuordnung von konkreten Objekten zum Modell: Objekt - Attribut - Attributwert Lernbereich 1, Informationen repräsentieren: Klassen und Objekte Klassen aus der Erfahrungswelt: Name, Attribut, Attributwertebereich, Methode Lernbereich 2, Informationen verarbeiten: Modell - Algorithmus - Lösung Begriff: Algorithmus (Endlichkeit, Eindeutigkeit, Ausführbarkeit, Allgemeingültigkeit); Programmstrukturen, Folge, Wiederholung, Verzweigung: Kennen des Problemlöseprozesses (Problemanalyse, Lösungsentwurf, Umsetzung, Test, Dokumentation, Lösen eines einfachen Problems unter Nutzung der Programmstrukturen, selbstständiges Lösen einfacher Probleme, einfache Automaten), Aufgaben in einfachen grafischen Programmierumgebungen (kritische Bewertung der Resultate) Lernbereich 1, Komplexe Anwendungssysteme Anwenden der Kenntnisse zu Modellen auf ein neues Werkzeug (Erkennen von Objekten, selbstständiges Einarbeiten in die Bedienung), sich positionieren zu Möglichkeiten und Grenzen der gewählten Werkzeuge Lernbereich 2, Informatische Modelle Einblick gewinnen in die Systematik informatischer Modellierung, Klassifizierung von Modellen in der Informatik Lernbereich 2, Formeln und Gleichungen Schülerinnen und Schüler erfassen komplexere Aufgabentexte und übertragen den lösungsnotwendigen Inhalt in die mathematische Sprache und deren Symbolik. Sie erfassen Strukturen von Termen, Gleichungen und Formeln.
-
Informatik / Wirtschaftsinformatik / Computer, Internet & Co.
-
Sekundarstufe I,
Sekundarstufe II