Lego Mindstorms
aus Wikipedia, der freien Enzyklopädie
Lego Mindstorms (offizielle Schreibweise: LEGO Mindstorms) ist der Name einer Produktserie von 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 auch (wie von Lego und dem MIT ursprünglich auch geplant) als Lehrmittel eingesetzt werden; es ist ein gutes Beispiel für ein Eingebettetes System mit computergesteuerten elektromechanischen Teilen. 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.
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.
Wann kamen die verschiedenen Roboter in den Verkauf?
Inhaltsverzeichnis |
[Bearbeiten] Programmiersprachen für Lego Mindstorms
- Von Lego entwickelte (mit grafischer Oberfläche):
- RCX Code
- ROBOLAB (basiert auf LabVIEW)
- von Drittanbietern (textbasiert):
- leJOS – Programmierung in Java
- NQC (Not Quite C [dt. „Nicht ganz C“])
- BricxCC (Bricx Command Center] – Entwicklungsumgebung, die das Arbeiten mit NQC erleichtert
- BrickOS (ehemals LegOS) – Programmierung in C bzw. C++
- Interactive C – Bietet Zusatzfunktionen wie Textausgabe
- Robot C – Steuert verschiedene Systeme (unter anderem RCX und NXT)
- von Drittanbietern (mit grafischer Oberfläche):
- Kara – Programmierung mittels Zustandsautomaten
- Microsoft Robotics Studio
[Bearbeiten] Programmierung
Die mitgelieferte Software ermöglicht, mit einer grafischen Benutzeroberfläche Programme aus Bausteinen zusammenzusetzen. Für komplexere Aufgaben kann der RCX mit verschiedenen C-ähnlichen Programmiersprachen programmiert werden. Die Programme können sehr einfach und kurz sein. Ein simples Programm in NQC für den RCX könnte so aussehen:
task main () { On(OUT_A); Wait(200); Off(OUT_A); }
Jedes Programm dieser Programmiersprache sollte mit task main beginnen. On(OUT_A); bedeutet, dass sich der Motor A dreht. Eine Anweisung wird mit einem Semikolon beendet. Steht eine Wait–Anweisung, bedeutet das lediglich, dass das Programm für die Zeit in den Klammern wartet und danach erst fortfährt. In diesem Beispiel dreht sich der Motor A für 2 Sekunden und wird dann mit dem Befehl Off(OUT_A); angehalten. Das Programm endet und beginnt mit den geschweiften Klammern.
[Bearbeiten] RCX-Sensoreingänge
Für viele Bastler, die eigene Sensoren entwickeln wollen, ist es interessant, den vom RCX 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.
[Bearbeiten] Mindstorms 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 dann auch 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.
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. Seit dem 5. Dezember 2006 ist ein spezielles Toolkit von National Instruments erhältlich, mit welchem die Programmierung auch direkt in LabVIEW ab der Version 7.1 erfolgen kann.
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.
Hardware-Spezifikationen:
- Atmel®-32-bit-ARM®-Prozessor, AT91SAM7S256; 256 KB FLASH-RAM, 64 KB RAM, 48 MHz
- Co-processor: Atmel® 8-bit AVR, ATmega48; 4 KB FLASH-RAM, 512 Byte RAM, 8 MHz
- Bluetooth: CSR BlueCoreTM 4 v2.0 +EDR; unterstützt das Serial-Port-Profile (SPP), 26 MHz
- USB-2.0-Anschluss, 12 Mbit/s
- ein Eingang kann als High-Speed-Port, entsprechend IEC 61158 Type 4/EN 50170, genutzt werden
- zweifarbige grafische LC-Anzeige; 100 × 64 Pixel, Abmessungen: 26 × 40,6 mm
- Soundausgabe mit 8-Bit-Auflösung und einer Samplingrate von 2..16 kHz
[Bearbeiten] Literatur
- Dave Baum, Michael Gasperi, Ralph Hempel, Luis Villa (2000). Extreme Mindstorms: an Advanced Guide to Lego Mindstorms. Apress. ISBN 1893115844
- Benjamin Erwin (2001). Creative Projects with Lego Mindstorms (book and CD-ROM). Addison-Wesley. ISBN 0201708957
- Dave Baum (2002). Definitive Guide to Lego Mindstorms, 2nd ed. APress. ISBN 1590590635
- Ferrari et al. (2001). Building Robots With Lego Mindstorms: The Ultimate Tool for Mindstorms Maniacs. Syngress. ISBN 1928994679
- Brian Bagnall (2007). Maximum Lego NXT: Building Robots with Java Brains. Variant Press. ISBN 0973864915
[Bearbeiten] Weblinks
- Lego Mindstormsforum mit vielen Hilfen
- Offizielle Lego-Mindstorms-Website
- Franz’ Lego Mindstorms Roboshow
- Mike’s Lego Mindstorms Page
- Programmierung von Lego-Mindstorms-Robotern mit dem Java-Betriebssystem leJOS, Ronny Harbich, 2006
- Site der Entwickler von Robot C
Kategorien: Lego | Roboter | Sensorik