[[PageOutline]] = Verwendung der Lego-NXT-Roboter im Informatikunterricht = Seit dem Schuljahr 2010/11 finden am Kepler-Gymnasium für alle 10ten Klassen eine Einführung in Robotik und Programmierung mit [wikipediaDe:NXT Lego-NXT-Robotern] statt. Der Unterricht wird unter Verwendung einer Poolstunde halbjährig vierzehntägig erteilt. Im Anschluss können die Schüler die inhaltlich anschließende Informatik-AG belegen. == Ziel == Ziele des Einführungsunterrichts sind u.a.: - Profilgebung des Kepler-Gymnasiums - Abbau von Hemmschwellen durch interessanten spielerischen Umgang mit Technik - Für die meisten Schüler Erstkontakt mit Grundideen der algorithmischen Programmierung - Werbung für die inhaltlich anschließende Informatik-AG In Kombination mit der Informatik-AG ermöglicht die Teilnahme an der Poolstunde die Abiturprüfung im Fach Informatik. == Ausrüstung == **[Todo]** (Hier kurz eine Übersicht über die vorhandenen Kästen und Sensoren...) == Programmierung == Zur Programmierung der NXT-Bausteine kommt zunächst die mitgelieferte Software zum Einsatz. Sie erlaubt das visuelle Programmieren durch Anordnen und "Verkabeln" von Icons auf einem zweidimensionalen Bildschirm. Damit lassen sich von einfachen zeitlichen Abläufen über Schleifen und Verzweigungen bis hin zu sensorisch gesteuerten komplexen Programmen alle wesentlichen Programmstrukturen verwirklichen. Für den Einsatz in der Informatik-AG ist die Verwendung einer textbasierten Programmiersprache vorgesehen. Hier gibt es neben der vom Hersteller gelieferten C-ähnlichen Sprache [wikipedia:NXT-G] auch [wikipedia:Lego_Mindstorms#Programming_languages_2 Open-Source-Anbindungen an weitere wichtige Progammiersprachen]. === Python === Es existieren zwei verschiedene Anbindung an Python ([http://home.comcast.net/~dplau/nxt_python/ NXT_Python] und dessen Weiterentwicklung [http://code.google.com/p/nxt-python/ nxt-python]). Alles zur Verwendung des Python-Interfaces für unseren Unterricht findet sich unter UnterrichtLegoNxt/Python. === [http://sourceforge.net/projects/tuxminds/ TuxMinds] === [http://sourceforge.net/projects/tuxminds/ TuxMinds] ist eine Open-Source-Alternative zur mitgelieferten grafischen Programmierumgebung, die unter Linux läuft. Sie stammt aus der Schulumgebung (http://www.it-projekt-muenster.de/). == Einleitung == Zur Einleitung orientieren sich die Schüler darüber, welche Arten von Robotern es (real oder fiktiv) gibt, die sind nämlich sehr unterschiedlich. Unser Lego-Roboter ist nur eine davon. Die Schüler erstellen gruppenweise kleine Vorträge zu den verschiedenen Robotertypen. Jeder Vortrag soll auch eine kurze Definition enthalten, was (auf dem jeweiligen Einsatzfeld) //einen Roboter ausmacht//. === Weiterführende Literatur === ==== Science-Fiction-Klassiker ==== ===== Buch "I, Robot" von Isaac Asimov ===== Besprechen der drei Roboterregeln. Besprechen der visionären Leistung Asimovs. Einfluss seiner Visionen auf unsere heutige Realität. ===== Alle Kurzgeschichten von Philip K. Dick ===== Besprechen der visionären Leistung Dicks. Einfluss seiner Visionen auf unsere heutige Realität. === Wissenschaftliche Literatur (historisch) === ==== Valentino Braitenberg ==== - Valentine Braitenberg, //Vehicles: Experiments in Synthetic Psychology, MIT Press Cambridge 1984 ISBN 978-0-262-52112-3//\\ (Englisch, Auszüge auf Google Books erhältlich) - Übersetzung: //Vehikel. Experimente mit künstlichen Wesen//, LIT Verlag Münster 2004 ISBN 3-8258-7160-6 - http://de.wikipedia.org/wiki/Valentino_Braitenberg === Populärwissenschaftliche Literatur === ==== !Hofstädter/Dennett ==== - Douglas Hofstädter und Daniel Dennett, //The Mind's I: Fantasies and reflections on self and soul// (ISBN 0-553-34584-2) - Komplett erhältlich auf http://themindi.blogspot.de/ (Lizenz fragwürdig) - Darin: //[http://themindi.blogspot.de/2007/02/chapter-7.html Chapter 7: The Soul of Martha a Beast]// - http://de.wikipedia.org/wiki/Douglas_R._Hofstadter == Aufgaben == Die Schüler werden der Reihe nach die folgenden Aufgaben mit ihren Robotern lösen: === Vorbereitung === 1. [./bauen Roboter nach Bauplan aufbauen] 1. [./software mit der Software vertraut machen] === Motoren ansteuern === 3. [./geradeaus Roboter vorwärts geradeaus fahren lassen] 1. [./einmeter genau einen Meter fahren lassen]\\\\ 1. [./drehen auf der Stelle drehen lassen] (links-/rechtsherum) 1. [./vierteldrehung genau 90° auf der Stelle drehen lassen]\\\\ 1. [./quadrat ein Quadrat fahren lassen]\\\\ 1. freiwillig: [./kurve Kurven fahren lassen] (verschiedene Radien) 1. freiwillig: [./kreis einen Kreis fahren lassen] (verschiedene Radien) === Programmiertechnik: //Schleife// === 10. [./quadratschleife ein Quadrat fahren -- mit Programmschleife!] === Sensoren abfragen === 11. [./drucksensor auf Druck losfahren] 1. [./schallsensor auf Zuruf losfahren, anhalten und zurückkommen] === Sensomotorische Interaktion === (ein lineares Programm sensorgesteuert abarbeiten) 13. [./fuehler Fühler]\\\\ 1. [./soeren Wer nicht "sören" will muss fühlen] 1. [./wegfahren Der schüchterne Roboter] 1. [./arena Roboterduell!] 1. [./labyrinth Ich bin ein Roboter, holt mich hier raus!]\\\\ 1. [./karavane Roboterkaravane] - Vorarbeit: Vor einem Hindernis anhalten und warten, dann weiterfahren - Erweiterung: Geschwindigkeit abhängig vom Abstand regeln - Vorarbeit: Auf die Wand zufahren, je näher der Roboter dran ist immer langsamer werden\\\\ 1. [./farbsensor einer schwarzen Linie entlangfahren] Was passiert, wenn der Roboter die Linie verliert? Kann er selbstständig eine Linie (wieder-) finden? 1. [./interaktiv1 Interaktiver Roboter I: Roboter durch klatschen lenken] === Komplexe Programmsteuerung === (ein Programm mit vorgegebenen Verzweigungen sensorgesteuert abarbeiten, Entscheidungsbaum) 21. [./interaktiv2 Interaktiver Roboter II: Roboter durch Farbkarten lenken] - [wird fortgesetzt] === Komplexe Sensomotorische Interaktion === - [eine laufende Programmschleife sensorgesteuert unterbrechen] - [aus einer laufenden Programmschleife sensorgesteuert in Unterprogramme springen] ---- [[CC_BY_NC_SA(Dr. Rüdiger Kupper und Jens Baumgärtner, Kepler-Gymnasium Freudenstadt)]]