Der Tilted Twister löst Zauberwürfel
Startseite

Lego Mindstorms

Lego Mindstorms bringt Spaß auf Erwachsenem Niveau. Das Produkt zielt auf Menschen ab, die spielerisches Interesse an der Konstruktion von Maschinen haben, die sie anschließend auch selbst programmieren möchten. Schulen und sogar Universitäten verwenden es im Unterricht.

Der Schwierigkeitsgrad hängt ganz davon ab, welchen Aufgaben man sich stellt. Die Basis-Modelle kann sicher jedes 10 Jährige Kind nachbauen. Spannender jedoch ist es, sich eigene Aufgaben auszudenken und umzusetzen.

Zur Mechanik muss ich wohl nicht viel sagen. Es handelt sich um Lego Technik Teile aus Plastik, die ohne Werkzeug zusammengesteckt werden. Spannend wird das Ganze durch den Einsatz der Getriebemotoren und Sensoren, welche an den Computer-Baustein angeschlossen werden.

Auf dem PC erstellt man grafische Programm-Ablauf Pläne, die man zur Ausführung per USB oder Bluetooth in den Computer-Baustein. Mindstorms Roboter funktionieren daher typischerweise autark ohne PC, man kann sie allerdings auch vom PC aus fernsteuern.

Von den meisten elektrischen Teilen hat Lego detaillierte technische Unterlagen veröffentlicht, womit sie zur Entwicklung eigener Erweiterungen einladen.

Wer sich unsicher ist, ob er Lego Mindstorms gut finden soll, dem möchte ich die Videoclips auf Youtube nahelegen. Die herausragendsten Projekte, die ich dort gefunden habe sind:

Lego Mindstorms ist ein wertvolles Geschenk, das lange hält und sehr lehrreich sein kann.

Alternative Software

Die grafische Programmiersoftware ist sicher leicht zu erlernen, aber große Programme werden dort schnell unübersichtlich. Wer das Programmieren in Text-Form bevorzugt bzw. erlernen möchte, greift zur Java Variante Lejos (Windows, Linux, Mac).

Unter Windows kann man den älteren NXT Computer außerdem in einer C-Ähnlichen Programmiersprache mit Bricx CC programmieren.

Computer Baustein

Der neue EV3 Computer hat einen 300MHz ARM Mikrocontroller, mit 16MB Flash Speicher und 64MB RAM. Der EV3 braucht so viel Speicher, weil er ein Linux Betriebssystem enthält. Zusätzlich gibt es einen Steckplatz für USB Sticks (z.B. für WLAN) und Mikro-SD Karten. Der Computer hat Anschlüsse für 4 Motoren, und 4 Sensoren.

Der alte NXT Computer enthält einen 48MHz ARM Mikrocontroller mit 256kB Programmspeicher und 64kB RAM. Er wird von einem zweiten 8bit Mikrocontroller unterstützt. Der Computer hat Anschlüsse für 3 Motoren, und 4 Sensoren. Im Vergleich zum neuen Modell erscheint dessen Speicher-Ausstattung mickrig, aber sie reicht trotzdem für ziemlich komplexe Programme aus. Außerdem ist die Lejos Software für den NXT weiter ausgereift, als die EV3 Version. Daher kann ich den Kauf eines günstigen gebrauchten NXT durchaus empfehlen.

Beide Computer Modelle haben ein monochromes LC-Display zur Anzeige von Text und Grafik. Mit einen kleinen Lautsprecher geben sie Töne und selbst aufgenommene Geräusche wieder.

Jeder Sensor-Port hat sowohl einen analogen Eingang, als auch zwei digitale I/O Leitungen, die man auch als I²C Bus nutzen kann. Beim NXT Computer kann der Sensor-Port 4 außerdem als RS485 Bus verwendet werden. Beim EV3 können alle vier Sensor-Ports als serielle UART Schnittstelle verwendet werden.

Pinbelegung der Anschlüsse

Pin Farbe Motorports Sensorports
NXT EV3
1 weiss Motor 9V 1A
mit PWM geregelt
analoger Eingang mit 10k Ohm pull-up auf 5V
und schaltbare Stromquelle 18mA auf 9V
2 schwarz GND Eingang für auto-detect der Sensoren.
Low=NXT Sensor, offen oder High=EV3 Sensor
3 rot GND
4 grün VCC 4,3V max. 180mA für alle Ports zusammen
5 gelb digitaler Eingang digitaler I/O und I²C Bus SCL
RS-485 Bus A* UART Rx (input)
6 blau digitaler Eingang digitaler I/O und I²C Bus SDA
RS-485 Bus B* UART Tx (output), analoger Eingang
*) Nur am Port 4

Die Leitungen sind alle kurzschlussfest. Passende Kabel mit den speziellen Steckern bekommt man im Online-Shop von Lego zu einem fairen Preis.

Sensoren, die sowohl am NXT als auch am EV3 funktionieren sollen, müssen Pin 2 und 3 miteinander verbinden.

Die per Software zuschaltbare Stromquelle an Pin 1 liefert konstante 18mA. Die Leerlauf-Spannung der Stromquelle entspricht der Batterie-Spannung und ist mit 6-9V nicht konstant. Normalerweise ist die Stromquelle ausgeschaltet, dann wird der Eingang über einen internen 10k Ohm Widerstand auf 5V gezogen.

Der analoge Eingang misst Spannungen im Bereich 0 bis 3,3 Volt, verträgt aber auch 9V ohne Schaden zu nehmen. Für die digitalen Eingänge gelten Spannungen zwischen 2V und 9V als High Pegel.

Die digitalen I/O Pins liefern als Ausgang annähernd 3,3V bei High Pegel. Wegen der internen 4,7k Ohm Schutzwiderstände, die in Reihe zum Mikrocontroller geschaltet sind, sind die digitalen Ausgänge nur sehr gering belastbar.

Eigene Schaltungen mit I²C Bus

Elektroniker könnten sich für die folgenden Chips von der Firma NXP interessieren: Man kann theoretisch jeweils bis zu 16 Stück von diesen Chips an einen einzigen Sensor-Port anschließen, so kommen sie insgesamt auf fast 600 I/O Leitungen. Sowohl Lejos als auch Bricx CC unterstützen diese Chips. Meine kleine Erweiterung sieht so aus:

Die Materialkosten dieser Platine (Schaltplan) liegen bei etwa 10 Euro. Das teuerste daran sind die Schraubklemmen :-)

Für den EV3 Computer muss man noch einen Kondensator mit ungefähr 1,6nF von SDA nach GND hinzufügen.

Achtung: Die Ausgänge des PCF8574 sind vom Typ Open-Collector. Der Chip kann seine Ausgänge mit GND verbinden, aber nicht mit VCC. LEDs muss man daher so anschließen, dass sie leuchten, wenn der Anschluss auf LOW (GND) liegt.


PCF8574 o---[===]---|<|---o VCC
           220 Ohm     LED
Schalter oder Taster schließt man mit einem Pull-Up Widerstand an, so dass der Eingang auf HIGH liegt, solange der Taster nicht gedrückt ist:

PCF8574 o---+------[===]-----o VCC
            |     4,7k Ohm
            |       
            +------/ --------| GND
                 Taster                       

Modellbau Servos

Die preisgünstigen Modellbau-Servos kann man mit Hilfe meines Servo Controllers anschließen.

An jeden Sensorport kann man bis zu 15 dieser Controller für jeweils 10 Servos anschließen, so kommt man insgesamt auf bis zu 600 Servos. Die analogen Eingänge des Computer Bausteins bleiben dabei unbenutzt und stehen daher für andere Zwecke frei.

Download Java Klasse für Lejos.

Als neue Alternative bin ich inzwischen auf fertige Module mit dem Chip PCA9685 gestoßen. Diese bieten 16 PWM Ausgänge pro Chip.

Neigungs- und Beschleunigungs-Sensor Bosch BMA020

Beim ELV Versand kann man einen sehr preisgünstigen Beschleunigungssensor bekommen (Artikel-Nr. 68-091521) - er kostet ungefähr 7 Euro. Der Sensor misst fortlaufend die Beschleunigung auf allen drei Achsen und liefert die drei Messergebnisse in Form von Integer Zahlen. Da die Erdanziehungskraft auf den Sensor wirkt, kann man damit auch den Neigungswinkel messen.

Download Datenblatt und Java Klasse für Lejos

Das Foto rechts zeigt, wie das Modul umgebaut werden muss, damit es am Lego Computer funktioniert:

Diese Lötarbeiten sind nichts für Anfänger, da die Bauteile winzig klein sind.

Standardmäßig aktualisiert der Sensor seine Messwerte 25 mal pro Sekunde. Er liefert Werte im Bereich -512...+511 bei maximal 2G Beschleunigung. Der Messbereich kann auf 4G und 8G umgestellt werden.

Ladegerät

Ein Satz Akkus reicht selbst bei sparsamer Nutzung der Motoren nur für wenige Betriebsstunden aus. Das ist zunächst kein Problem, denn man kann die Akkus ja austauschen und wieder aufladen. Irgendwann wollen Sie aber mal ein Programm für längere Zeit laufen lassen. Oder sie möchten die Akkus nicht täglich wechseln, weil der Zugang zum Batteriefach verbaut ist.

Zu diesem Zweck bietet Lego einen Lithium Ionen Akku mit Lade-Netzteil an. Diese Teile sind aber sehr teuer.

Das gleiche Funktionsprinzip kann man auch auf normale Nickel Akkus anwenden, nur muss man dann ein wenig basteln. Man klemmt zwei Drähte unter die Batteriekontakte und verbindet sie mit einem selbst gebauten Ladegerät.

Das Steckernetzteil sollte mit 9V und einem Strom im Bereich von 300-500mA beschriftet sein. Die Fahrrad-Glühbirne begrenzt den Ladestrom. Sie dient zugleich als Sicherung gegen Verpolung und Kurzschluss. Ist alles richtig angeschlossen, dann leuchtet sie schwach.

Bei ausgeschaltetem Computer, kann man so leere Akkus innerhalb von 5-10 Stunden aufladen. Bei eingeschaltetem Computer reicht der Strom gerade aus, um die Akkus voll zu halten.

Wenn man die Motoren intensiv nutzt, werden die Akkus allmählich entladen, auch wenn gleichzeitig das Ladegerät angeschlossen ist.