- LEGO Mindstorms
-
Lego Mindstorms (eigene Schreibweise LEGO Mindstorms) ist der Name einer Produktserie des Spielwarenherstellers Lego, die einen programmierbaren Legostein (RCX = Robotics Command System) sowie Elektromotoren, Sensoren und Lego-Technik-Teile (Zahnräder, Achsen, Lochbalken, Pneumatik-Teile usw.) enthält, um Roboter und andere autonome und interaktive Systeme zu konstruieren und programmieren.
Inhaltsverzeichnis
Einsatz
Obwohl es ein technisches Spielzeug ist, kann es ebenso (wie von Lego und dem MIT ursprünglich auch geplant) als Lehrmittel eingesetzt werden; es ist ein gutes Beispiel für ein eingebettetes System (embedded system), bei dem ein Mikrokontroller mit elektromechanischen Teilen und Sensoren zusammenarbeitet. Beinahe alle Arten von mechanischen Anlagen mit eingebetteten Systemen, von der Aufzugsanlage bis hin zu Industrierobotern, können mit Mindstorms nachgebaut werden. Eine Ergänzung zu Mindstorms stellen die Lego Spybotics dar, die einen programmierbaren Legostein mit zwei Motoren und Sensoren besitzen. Ein Vorläufer der Mindstorms-Serie waren die Cybermaster-Sets.
Legonummern
Die Mindstorms-Basiskästen haben folgende Lego-Nummern:
- Version 1.0: 9719
- Version 1.5: 9747
- Version 2.0: 3804
- NXT: 8527
Mindstorms 1.0 bis 2.0
Die Mindstorms-Versionen 1.0, 1.5 und 2.0 unterscheiden sich hardwareseitig nur wenig: In Version 1 hat die "RCX"-Einheit eine Buchse für externe Stromversorgung, die in den späteren Versionen eingespart wurde; mit Version 2.0 wurde der Infrarot-Sender ("Tower"), der an den Computer angeschlossen wird, von serieller Schnittstelle auf USB-Anschluss umgestellt. Auch die Software der älteren Versionen kann durch ein Update auf den neusten Stand aktualisiert werden.
Der programmierbare Legostein RCX besitzt einen Renesas-H8/300-Microcontroller als CPU. Er wird programmiert, indem ein in einer der diversen Programmiersprachen geschriebenes Programm vom PC zur CPU des RCX mit Hilfe einer IR-Schnittstelle heruntergeladen wird. Nachdem das Programm gestartet worden ist, kann der mit einem RCX gebaute Mindstormsroboter völlig autonom handeln und auf äußere und innere Ereignisse reagieren, entsprechend den Programmieranweisungen. Des Weiteren können zwei oder mehr RCX miteinander über die IR-Schnittstelle kommunizieren, was Wettbewerbe und Kooperationen ermöglicht. Der RCX besitzt drei Motorausgänge sowie drei Sensoreingänge. Die Leistungssteuerung der Motorausgänge erfolgt über Pulsweitenmodulation.
RCX-Sensoreingänge
Für viele Bastler, die eigene Sensoren entwickeln wollen, ist es interessant den vom RCX angezeigten Sensorwert (0...1023) interpretieren zu können. Dieser Wert ergibt sich aus der am Sensoreingang anliegenden Spannung. Ohne Sensor beträgt diese 5 V, fällt aber ab, sobald ein Sensor mit einem endlichen Widerstand angeschlossen wird. Die Anzeige des RCX lässt sich wie folgt aus der anliegenden Spannung U berechnen:
Die anliegende Spannung U wiederum kann z. B. aus dem angeschlossenen Widerstand R oder dem Strom I an den Sensoren berechnet werden. Der maximale elektrische Strom beträgt 0,5 mA (intern ist dem Sensor ein 10-kΩ-Widerstand vorgeschaltet).
Die Sensoren können in einem aktiven (Lichtsensor, Drehsensor) und einem passiven Modus (Schalter, Temperatursensor) betrieben werden. Im passiven Modus wird wie oben beschrieben nur der Spannungsabfall an den Sensoreingängen gemessen. Im aktiven Modus liegt für je 3 ms die Batteriespannung am Sensoreingang an, um den Sensor mit Strom zu versorgen. Für 0,1 ms wird dann in den passiven Modus geschaltet, um den Sensorwert zu erfassen. In dieser Zeit muss sich der aktive Sensor durch eine eigene Stromquelle (Kondensator) versorgen.
Mindstorms NXT
siehe Hauptartikel: NXT
Anfang 2006 präsentierte Lego auf der Consumer Electronics Show ein neues Mindstorms-System namens NXT. Die Hauptverbesserungen sind ein 32-Bit-ARM-Prozessor und die neuen Geräusch- und Ultraschallsensoren. Außerdem lässt sich der Roboter mit dem Handy oder Computer per Bluetooth fernsteuern. Des Weiteren soll es bald möglich sein, dass das Handy als Kamerasensor benutzt werden kann. Der Bausatz Mindstorms NXT mit 577 Legoelementen (Nr. 8527, Standardversion) ist seit dem 15. Oktober 2006 in Deutschland erhältlich. Zu den älteren Versionen ist das "NXT"-System nicht kompatibel; die Betriebssystem-Software unterscheidet sich grundsätzlich, und auch die neuen Anschlüsse für Sensoren und Aktoren sind nicht kompatibel zu den älteren Mindstorms-Versionen - es existieren allerdings Adapter, mit denen ältere Sensoren teilweise auch im NXT-System verwendet werden können.
Das LEGO Mindstorms NXT-Set enthält:- einen programmierbaren NXT-Stein mit 32-Bit-Mikroprozessor
- mit vier Sensor- und drei Motoranschlüssen
- drei Servomotoren mit eingebauten Rotationssensoren
- Geräuschsensor
- Ultraschallsensor
- Druckkontaktsensor
- Lichtsensor
- Real-Sound-Lautsprecher
- Bluetooth- und USB-Anschluss
- grafisches Software-Interface für PC und Mac
Die mitgelieferte Programmierumgebung NXT-G wurde in Zusammenarbeit mit National Instruments entwickelt und basiert auf der graphischen Programmiersprache LabVIEW.
Die Schulversion des Mindstorms-NXT-Bausatzes mit 431 Lego-Elementen (Nr. 9797) hat eine etwas andere Zusammensetzung. Der Bausatz enthält zusätzlich einen 1400-mAh-Lithium-Ionen-Akku und drei Adapterkabel für den Anschluss von Lampen und älteren Motoren und Sensoren, dafür jedoch weniger Lego-Bausteine.
Programmierung
Der RCX kann mithilfe der mitgelieferten Entwicklungsumgebung für RCX-Code, die Schulversion mit dem auf LabVIEW basierenden ROBOLAB programmiert werden. Der NXT wird in beiden Versionen mit dem auf LabVIEW basierenden NXT-G programmiert.
- von Drittanbietern (textbasiert):
- pbForth -- für den Hitachi H8 in LEGO Mindstorms Robotics Invention System als Alternative (Alternative auch zur Firmware)
- leJOS – Programmierung in Java
- NQC (Not Quite C [dt. „Nicht ganz C“])
- BricxCC - Programmierung in C bzw. C++
- BrickOS (ehemals LegOS) – Programmierung in C bzw. C++
- Interactive C – Bietet Zusatzfunktionen wie Textausgabe
- Robot C – Steuert verschiedene Systeme (unter anderem RCX und NXT)
- BASIC
- MindSqualls - dient zur Erstellung von C#-Programmen, mit denen man dann den NXT fernsteuern kann
- RWTH - Mindstorms NXT Toolbox für MATLAB - Bibliothek zur Fernsteuerung des NXT per Bluetooth und USB
- von Drittanbietern (mit grafischer Oberfläche):
- Kara – Programmierung mittels Zustandsautomaten
- Microsoft Robotics Studio
- DialogOS - Steuerung des Roboters per Sprache
Literatur
- Dave Baum, Michael Gasperi, Ralph Hempel, Luis Villa (2000). Extreme Mindstorms: an Advanced Guide to Lego Mindstorms. Apress. ISBN 1-893115-84-4
- Benjamin Erwin (2001). Creative Projects with Lego Mindstorms (book and CD-ROM). Addison-Wesley. ISBN 0-201-70895-7
- Dave Baum (2002). Definitive Guide to Lego Mindstorms, 2nd ed. APress. ISBN 1-59059-063-5
- Ferrari et al. (2001). Building Robots With Lego Mindstorms: The Ultimate Tool for Mindstorms Maniacs. Syngress. ISBN 1-928994-67-9
- Brian Bagnall (2007). Maximum Lego NXT: Building Robots with Java Brains. Variant Press. ISBN 0-9738649-1-5
Weblinks
- Offizielle Lego-Mindstorms-Website
- Franz’ Lego Mindstorms Roboshow
- Mikes Lego Mindstorms Page
- Programmierung von Lego-Mindstorms-Robotern mit dem Java-Betriebssystem leJOS, Ronny Harbich, 2006
- Offizielle Seite der Java-Programmierung von LEGO-Mindstorms Robotern
- Site der Entwickler von Robot C
- DialogOS - Spracherkennung für Mindstorms Roboter
- pbForth -- für den Hitachi H8 in LEGO Mindstorms Robotics Invention System als Alternative (Alternative auch zur Firmware)
Wikimedia Foundation.