Elektor - Robotic Invention Lego System.pdf

(863 KB) Pobierz
d004014.pdf
HOBBY
& SPIEL
MindStorms: Lego-Mikrocontroller
Robotic Invention
Seit einiger Zeit ist das Lego Robotics Invention System auf dem Markt.
Damit kann man nach Herzenslust entwickeln, bauen und programmie-
ren. Und nicht nur Roboter, denn das Herz des Systems, der RCX-Block,
kann für die verschiedensten Anwendungen eingesetzt werden.
Von Hans Steeman
Nachwuchsingenieure fallen nicht vom
Himmel. Nur wenn man Jugendliche für
Technik begeistert, kann man auch
erwarten, dass sie später einen “techni-
schen” Beruf ergreifen. Gerade im schu-
lischen Bereich müssen neue Formen
gefunden werden, denn althergebrachte
Konzepte Marke Radiobasteln oder Funk-
AG dürften nur noch wenige Schüler hin-
ter der Spielkonsole hervorlocken.
Einen interessanten Ansatz bietet der
dänische Spielzeughersteller Lego, der
sein MindStorms-Programm um das
Robotics Invention System (RIS) erweitert.
Das System ist seit Ende 1998 in den USA
und in der verbesserten Version 1.5 seit
Ende letzten Jahres in Europas Spiel-
zeughandel erhältlich. RIS ist im Grunde
nichts anderes als ein Mikrocontrollersy-
stem samt peripheren Sensoren/Motoren
und einer (PC/Mac-) Entwicklungsumge-
bung, angereichert um etwa 700 Lego-
Bausteine, mit denen sich trefflich ver-
schiedene Robotermodelle nach den Vor-
gaben des Konstruktionsbuches
Constructopädia oder nach eigenem
Gusto zusammenbauen lassen. Darunter
sind auch ein Lichtsensor, Berührungs-
14
Elektor
4/2000
System
274396829.006.png
HOBBY
& SPIEL
sensoren, ein Temperatursensor sowie
zwei kräftige 9-V-Motoren zum Anschluss
an das Herz des ungefähr 450 DM teuren
RIS-Pakets, das Mikrocontroller-System
mit der Bezeichnung RCX1.5. Das Lego-
Konzept wird von der (pädagogischen)
Fachwelt als neue Dimension der PC-
Anwendung gefeiert. Die NASA beför-
derte sogar einen RIS-Roboter zum Besat-
zungsmitglied der Discovery STS-96, um
die Bedeutung der Informationstechnolo-
gie für die Jugend zu untermauern.
Interessierte und MindStorms-Anwender
werden über eine eigene Portalseite
www.mindstorms.com unterstützt.
Der RCX-Mikrocomputer
Der gelbe RCX-Block (Bild 1) ist der zen-
trale Bestandteil des Baupakets. Er sieht
wie ein großer Lego-Baustein aus und
lässt sich auch entsprechend verarbeiten.
Im Inneren steckt ein kompletter Mikro-
computer auf Basis eines 64-poligen Hita-
chi-Mikrocontrollers aus der H8-Familie,
der mit einer Taktfrequenz von 16 MHz
arbeitet. Der Controller verfügt über ein
internes 16-Kbyte-ROM, unterstützt von
einem RAM mit einer Kapazität von 32
KByte. Dieser RAM-Baustein ist teilweise
batteriegepuffert. Das geladene Pro-
gramm verbleibt im Speicher, solange die
sechs Mignon-Zellen angeschlossenen
sind. Bei einem Batteriewechsel bleibt
der Programmkode etwa eine Minute
erhalten, danach ist er aber verloren,
wenn die neuen Batterien nicht ange-
schlossen sind.
Im 16-KByte-ROM stecken Basisroutinen
wie der Bootstrap-Lader, der einen “Kalt-
start” des Systems ermöglicht. Zurzeit
können keine vom Anwender selbst
geschriebene Programme ausgeführt
werden. Die gelieferte Software aktiviert
die angeschlossenen Motoren und unter-
stützt die IR-Schnittstelle.
Die integrierte Software beginnt die
Arbeit, wenn sie durch das vom PC her-
Bild 1. Ein Lego-Baustein voller Elektronik: der RCX-Block.
untergeladene RCX-Steuersystem unter-
stützt wird. Das Steuerungssystem
benötigt 16 KByte RAM, so dass für die
eigentliche Benutzersoftware ebenfalls
rund 16 KByte zur Verfügung stehen. Da
der RXC-Block einen byteorientierten Programm-
kode benutzt (eine Art Maschinensprache mit
ungefähr 70 Befehlen), bleibt Raum genug auch für
umfangreiche Anwendungen. Das RCX-Steuersy-
stem ist “event”-orientiert und kann bis zu sechs
Tasks gleichzeitig ausführen.
Neben dem H8-Controller und den Speicherbau-
steinen umfasst der RXC-Block unter anderem ein
kompaktes grafisches LC-Display, einen kleinen 15-
mm-Lautsprecher, einen LCD-Controller, einen
Spannungsregler, zwei IR-Sendedioden sowie ein
paar passive Bauteile.
Systemvoraussetzungen
Das Robot Invention System erfordert mindestens einen 166-MHz-Pentium mit
dem Betriebssystem Windows 95/98, der über ein CD-ROM-Laufwerk mit acht-
facher Geschwindigkeit, eine SVGA-Grafikkarte (800 × 600 Pixel, 1 MByte Gra-
fikspeicher), die DirectX unterstützt, eine SoundBlaster-kompatible Soundkarte,
eine freie neunpolige serielle Schnittstelle sowie 16 MByte Arbeitsspeicher ver-
fügt. Auf der Festplatte nimmt RIS etwa 70 MByte in Beschlag. Diese Anforderun-
gen dürfte jeder moderne Standard-PC erfüllen. Um RIS optimal anzuwenden, ist
ein Internet-Zugang von Vorteil.
Grafische Oberfläche
Lego hat sich fast zwölf Jahre Zeit genommen, eine
Programmiersprache für den RCX-Controller zu ent-
wickeln, die für Kinder und Jugendliche ab zwölf
Jahren geeignet ist. Das Ergebnis kann man nicht
4/2000
Elektor
15
274396829.007.png
HOBBY
& SPIEL
Bild 2. Systemeinstellungen in der grafischen
MindStorms-Software.
Scout und Micro Scout
Das RCX-Modul ist nicht das einzige Mikrocontroller-System von Lego. Ganz
ohne PC-Unterstützung kommt der MicroScout aus, der sieben eingebaute und
nicht veränderbare Verhaltensmuster zur Verfügung stellt. Der MicroScout ist Teil
des Droid Developer Kit zum Aufbau von Robotern nach StarWars (R2D2 und
Konsorten) und wird lediglich über drei Taster bedient. Ein achter Programm-
punkt ist frei programmierbar, allerdings erst mit der RIS-Softwareversion 2.0, die
ab September erhältlich sein soll.
In den USA gibt es ein erweitertes Scout-System, das auf einem Toshiba-Mikro-
controller mit 32 k ROM und 1 k RAM beruht. Die Firmware des Scout umfasst
einen Assembler mit etwa 70 Befehlen, die denen des RCX ähneln. Der Control-
ler stellt 400 Byte RAM für das Anwendungsprogramm zur Verfügung, gebrauchs-
fertige Routinen können aus dem ROM aufgerufen werden.
Zur Programmierung des Scout-Controllers benötigt man ein Software-Entwick-
lungspaket, das unter www.legomindstorms.com/scout_sdk/ heruntergeladen wer-
den kann. Dieses Scout Software Developers Kit besteht aus einem Lego-Assem-
bler samt Dokumentation sowie einer Reihe von Softwaretools, Programmierbei-
spielen und Makros. Das Entwicklungspaket erfordert das Mindstorms-IR-Link
und ein serielles Kabel. Ob das Scout-System auch in Deutschland erhältlich sein
wird, entscheidet die Lego-Geschäftsleitung erst im Laufe des Jahres.
aber auch eine ausführliche multimediale
Einführung in das Robotics Invention
System. Schon in diesem Stadium wird
der RCX-Block mit Sensoren und Motoren
probeweise programmiert und in Betrieb
genommen. Auch der Anschluss des PC-
Links wird erläutert und überprüft,
ebenso die System- und Hardwareein-
stellung (Bild 2).
Bevor man mit eigenen Entwürfen
beginnen kann, lernt man im RCX-Trai-
ningscenter die symbolbasierte Pro-
grammierung des Mikrocontrollers und
der Sensoren kennen. Die Bilder 3/4 ver-
mitteln einen Eindruck von der Ent-
wicklungsumgebung. Die Befehle des
Programms werden aus den Menüs
gezogen und wie Puzzle-Teile aneinan-
der gesetzt. Ähnlich verfährt man mit
der Programmierung der Sensoren. Die
Programmierung wird durch eine kon-
textsensitive und eine globale Hilfe-
funktion unterstützt, kommentierte Pro-
grammbeispiele sind in der Program-
mopädia zu finden (Bilder 5/6). Ein
Wermutstropfen: Die Software ist
gemischtsprachig: Erläuterungen, Hilfe-
texte, und Kommentare in Deutsch,
Befehle und Sensoreigenschaften in
Englisch.
Die grafische Entwicklungsumgebung
des Robotics Invention System ist zwar
leicht zu erlernen und überaus anschau-
lich, bietet aber dem Programmierexper-
ten zu wenig Flexibilität. Im zweiten Teil
des Artikels werden alternative Entwick-
lungsumgebungen für den RCX-Mikro-
controller vorgestellt, unter anderem die
von National Instruments, der Tufts-Uni-
versität (Massachusetts) und der bei Lego
für edukative Belange zuständigen Firma
Lego-Dacta entwickelte Schulsoftware
Robolab oder aber die (im Internet
kostenlose) Programmiersprache NQC
(Not Quite C).
Bild 3. Die Entwicklungsumgebung erinnert an
ein Puzzle.
IR-Transceiver
Der RCX kommuniziert mit dem PC über
einen Infrarot-Sender/Empfänger, der an
die neunpolige serielle Schnittstelle des
PC angeschlossen wird. Dieser Trans-
ceiver versorgt sich aus einer 9-V-Block-
batterie.
Von der seriellen Schnittstelle des PCs
werden lediglich die Leitungen TxD, RxD
und Masse verwendet, ein Handshaking
findet nicht statt. RTS und CTS sind im
Transceiver kurzgeschlossen. Über zwei
Adern der fünfpoligen Verbindung wird
der Kurzschluss RTS/CTS detektiert. So
erkennt die Software, dass ein Modul
angeschlossen ist. Zurzeit gibt es keine
USB-Version des Transceivers, so dass
Besitzer eines Apple Macintosh noch
nicht mit dem Robotics Invention System
arbeiten können.
Über einen Schalter an der Modulfront
kann ein weiter oder kleiner Sendebe-
reich eingestellt werden, in der Praxis
funktioniert die IR-Verbindung über ein
paar Meter.
Ist die IR-Verbindung zum PC hergestellt,
die auf der mitgelieferten CD-ROM ent-
haltene Software installiert, kann es mit
dem Herunterladen des RXC-Steue-
Bild 4. So werden die Sensoren eingestellt.
zuletzt aufgrund der Zusammenarbeit mit dem
Media Lab des Massachusetts Institute of Techno-
logy (MIT) als äußerst gelungen bezeichnen.
Die auch bei einem älteren Pentium problemlos ver-
laufende Installation der CD-ROM benötigt satte
70 MB Festplattenspeicher in der Grund- und 140
MB in der Vollversion. Dafür erhält der Anwender
16
Elektor
4/2000
274396829.008.png 274396829.009.png 274396829.001.png 274396829.002.png
HOBBY
& SPIEL
Bild 5. In der Programmopädia werden einige Robotermodelle
vorgestellt ...
Bild 6. ... und beispielhaft programmiert.
rungssystems losgehen. Das Verfahren
klingt umständlich, eröffnet aber die
Möglichkeit, die alte Steuerungssoftware
durch zukünftige Updates auf den neu-
sten Stand zu bringen. So unterstützt die
aktuelle Variante 1.5 einen Rotations-,
einen Temperatur- sowie weitere Senso-
ren, die (noch) nicht zum Grundpaket
gehören.
Steckt das Steuersystem erst einmal im
RXC-Block, zeigt er seine Betriebsbereit-
schaft durch eine Ikone im Display: Die
PC-Software kann gestartet werden. Der
Bau einiger elementarer Roboter wird
anhand ausgearbeiteter Beispiele beglei-
tet. Der Anwender wird Schritt für Schritt
in die Softwareprogrammierung ein
geführt. Und erscheint es ihm dennoch zu
schwierig, so kann er auf eine Reihe von
fertigen Softwareroutinen zurückgreifen.
Wie auch immer, nach ein paar Stunden
dürfte sich der erste Roboter (wohl noch
recht unbeholfen) durch die Wohnung
bewegen. Neue Funktionen und Verhal-
tensweisen lassen sich leicht ausprobie-
ren und der Software hinzufügen.
sensor, Temperatursensor oder Schalter)
eingestellt, eine entsprechende Routine
weiß dann, wie der digitalisierte Wert zu
behandeln ist. Die Entwicklungsumge-
bung ist auch für einen Temperatur- und
einen Umdrehungssensor vorbereitet.
Auf den eigentlichen RAW-Wert kann
man in dieser Software nicht zugreifen,
sondern nur in alternativen Program-
miersprachen wie Robolab, VBasic oder
im Lego-Modul spirit.ocx. Damit ist es kein Pro-
blem, beliebige Widerstandssensoren und sogar
Kombinationen an einen RCX-Eingang zu koppeln.
Dies soll aber Thema im nächsten Elektor-Heft
werden.
(000040-1)rg
Sensoren
Der RCX-Block besitzt drei asymmetri-
sche Sensoreingänge mit je einem 10-k -
Pull-up-Widerstand. Der RCX wandelt die
analogen Messgrößen im Bereich 0...5 V
in eine 10 bit breite Variable mit der
Bezeichnung RAW. Dabei spielt es keine
Rolle, ob es sich bei dem Sensor zum Bei-
spiel um einen lichtempfindlichen Wider-
stand oder einen Schalter handelt. In der
“originalen” Lego-Software wird lediglich
einer von zurzeit drei Sensortypen (Licht-
Bild 7. Internetunterstützung erfährt der MindStormer über ein eigenes Portal mit allerlei
Infos, FAQs, einem Download-Bereich und viel Platz zum Chatten.
4/2000
Elektor
17
274396829.003.png 274396829.004.png 274396829.005.png
Zgłoś jeśli naruszono regulamin