Programmierung eingebetteter Systeme mit Lego Mindstorms Softwarepraktikum SS Jianmin Li
Informatik XI – Software für eingebettete Systeme Arbeitsgebiete: Software- und Systems-Engineering für eingebettete Systeme Architekturentwurf und -evaluation Modellbasierte Analyse von nicht-funktionalen Eigenschaften (z.B. Sicherheit, Zuverlässigkeit, Wartbarkeit) Modellbasierter Entwurf Formale Verifikation von Echtzeitsystemen Agile Methoden für eingebettete Systeme
Softwarepraktikum SS08 Betreuer: http://www-i11.informatik.rwth-aachen.de/index.php?id=lego_ss08 L²P Lernraum: Ankündigungen Links (freie Javabücher, APIs, …) Wichtige Unterlagen über das Praktikum Anmeldung übers Campus bis zum 2008-04-18 Jianmin Li E-Mail: li@informatik.rwth-aachen.de Tel.: 80-21156 Büro: Raum 2320 (HBau)
Das Ziel des Praktikums Roboterfußballspiel mit LEGO NXT Baukästen Motivation und Lernziel: Fachliche Kompetenz Eingebettete Systeme Bilderverarbeitung Echtzeit Programmierung von hardwarenahen Komponenten mit Java und C++ Software Engineering Methode (am 10.04.08 Prof.Lichter) Teamfähigkeit
Aufgabenstellung des LEGO NXT Praktikums Das LEGO NXT Roboter Fußballspiel LEGO NXT Fußballgruppe mit der Markierung der verschiedenen Farben Ein Torwart Ein Angreifer Kamera Server System Kommunikation per Bluetooth zwischen dem Server und den Robotern Ziel: Wettbewerb zwischen den Teilnehmern
Teilprojekt des LEGO Praktikums I 1 Kamera Gruppe und 2-3 Roboter Gruppen Vorbereitungsaufgaben: Aufbau des Spielfelds (Größe, Kamera auswählen): Kamera Server Gruppe Festlegung der Spielregeln: LEGO Roboter Gruppe Kommunikationsprotokoll zwischen Kamera Server und NXT: LEGO Roboter Gruppen + Kamera Server Gruppe
Teilprojekt des LEGO Praktikums II Was können LEGO NXT Roboter machen?: sich in alle Richtungen bewegen können den Ball finden, dribbeln und möglichst viele Tore schießen die für ihn bestimmten Informationen von Kamera-Server filtern. Aus diesen Informationen Bewegungsbefehle berechnen und sie ausführen. … Was kann der Kamera Server machen?: Graphische Anzeige der Situation im Spielfeld Die Position und den Winkel von Ball und Roboter anhand der Farbmarkierung auswerten per Bluetooth an die Roboter in weicher Echtzeit Informationen übermitteln Außerdem gibt es einige Vorbereitungsaufgaben, die zu die Gruppen zugeordnet werden.
Ausstattung I LEGO NXT Baukasten: LEGO NXT Link: Weissgrauer NXT Baustein 32-bit-Arm und 8-bit AVR 215 KB Flash RAM und 64 KB RAM 3 Servomotoren mit Rotationssensoren 2 Berührungssensoren 1 Lichtsensoren 1 Ultraschallsensor 1 Akustiksensor Bluetooth und USB Link: http://mindstorms.lego.com/Overview/ Zentraler Baustein ist der NXT, der aus einem Hauptprozessor Atmel 32-bit-ARM und Koprozessor Atmel 8-bit AVR besteht. Der Ko-Prozessor dient zu Ansteuerung von LCD, USB.Controller. Der Hauptprozessor stellt 215 KB Flash RAM und 64 KB RAM für die Firmware bzw. Betriebsysteme und Programmen zur Verfügung. Über die detailierten technischen Daten findet Ihr auf dem Hompage von LEGO NXT.
Ausstattung II Entwicklungsumgebung für LEGO NXT leJOS + Eclipse leJOS (LEGO Java Operating System): Light-Version von JVM Eclipse : offene Entwicklungsplattform für die Codierung LeJOS: es implementiert einen Teil der Java Virtual Maschine. Es ermöglicht die direkte Ausführung von Java-Programmen auf NXT. Naben der Virtual Maschine liefert leJOS NXJ einen Compiler, einen Linker und Java Basisiklassen. Die aktuelle Version von leJOS enthältet einen Plugin für Eclipse. Eclipse ist eine offene Entwicklungsplattform und vereinfacht Java-Programmierungsphase. Dieser Plugin von leJOs ermöglicht die Java Entwicklungsumgebung von Eclipse mit leJOS. Es stellt Funkionalität für den Firmware leJOS Download, sowie Möglichkeiten zum Compilieren, Linken und Herunterladen des Codes zum NXJ.
leJOS Eclipse auf dem PC NXJ .class lejosc lejosrun lejos .bin ROM Loader Virtual Machine Java data Java program Java source code Compiler leJOS Library Java class files Linker leJOS binary IR I/O Sensors, Motors, LCD, Sound, IR .java
Ausstattung III Kamera (?): Entwicklungsumgebung: WebCam oder Alternative auswählen: 200-300 Euro 1 Laptop als Server Entwicklungsumgebung: Impresario Tool: LTI-Lib mit C++ Microsoft Visual Studio .NET 2003 Bluetooth C++ Bibliothek http://www.norgesgade14.dk/bluetoothlibrary.php Link: http://ltilib.sourceforge.net/doc/homepage/index.shtml
Ausstattung IV Werkzeuge für Dokumentation und Projektmanagement SVN(Tortoise) svn://berlin.ixi.informatik.rwth-aachen.de/repos/Lego08/… Kamera Doc Gruppe 1-3 JavaDoc Doxygen 12
Organisation Gruppeeinteilung 1 Kamera Gruppe 2 – 3 LEGO NXT Gruppen pro Gruppe: 5 -6 Personen Rolleneinteilung ein Projektleiter koordiniert mit allen Gruppemitglieder und den anderen Gruppen die Einhaltung des Zeitplans die Erfüllung der gesetzten Meilensteine Jeder Teilnehmer einer Gruppe führt mind. zwei Rollen aus (Anforderungsspezifikator, Architekt, Implementierter, Tester usw.) Es ist sehr empfehlich, in die Vorlesung von Prof. Lichter.
Organisation Zeitplan: 13 Termine 09.04. 2008 Vorstellung des Projekts, Gruppeeinteilung und Wahl des Projektleiters 10.04. 2008 Vorlesung von Prof. Lichter, 14:15-15:45, am AH IV 16.04.2008 Präsentation über Kommunikationsprotokoll, Spielfeld und Spielregeln Präsentation jeder Gruppe über ihre Planung mit Meilensteinen, die Aufteilung der Teilaufgaben sowie die entsprechenden Teilnehmer usw. … Spezifikation & Realisierung: Präsentation in 5 Minuten über den aktuellen Stand des Teilprojektes jeder Gruppe 16.07.2008 Wettbewerbe zwischen Teilnehmern und Abschlussbericht abzugeben 14
Organisation Scheinkriterien: Ein Abschlussbericht ist in Latex anzufertigen Gesamtkonzept, Aufteilung der Teilaufgaben innerhalb einer Gruppe Zeitplanung & Meilensteine Spezifikation der Anforderungen des Teilprojektes Software Architektur des Teilprojektes (Software Module, Schnittstellen) Ansätze von Methoden und Tools in der Implementierung Testfälle und Testergebnisse Bewertung der Vorgehensweise innerhalb der Gruppe, aufgetretene Probleme, nicht realisierte Funktionalität Erfolgreiche Teilnahme an allen Terminen Vorlesung von Prof. Lichter am 10. 04. 2008, 14:15-15:45, am AH IV
Organisation Zugangsdaten zu SVN Server und Laptop im Praktikumraum L2P Elearning-Raum Impresario Tool