Lego Mindstorms (offizielle 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.
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 (besser bekannt als 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.
Die Mindstorms-Basiskästen haben folgende Lego-Nummern:
Inhaltsverzeichnis |
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.
Für viele Bastler, die eigene Sensoren entwickeln wollen, ist es interessant, den vom == ausgegebenen 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.
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:
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.
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.