Real-Time and Embedded Systems

Robotic Command Explorer (RCX)

Der RCX (die Abkürzung steht übrigens für Robotic Command Explorer) enthält den Computer, der die Mindstorms-Roboter steuert. Er basiert auf einem Hitachi H8 Microcontroller bei 16 MHz mit 32 KB RAM und 32 KB ROM. An die drei Eingänge 1, 2 und 3 können Sensoren angeschlossen werden, die drei Ausgänge A, B und C sind für Aktoren.

RCX 3                              RCX 4

Die vier Knöpfe, die um das Display herum angeordnet sind, dienen hauptsächlich dazu, den RCX einzuschalten und Programme zu starten. Sie haben die folgenden Funktionen:

  • Der rote On/Off-Knopf schaltet den RCX an und aus. Er wird allerdings nicht komplett ausgeschaltet, sondern in einen Low-Power-Modus versetzt, in dem der Speicher noch mit Energie versorgt wird, so daß die Programme erhalten bleiben.
  • Die schwarze View-Taste kann benutzt werden, um den Systemstatus abzufragen. Das hängt aber von der Software ab, die später geladen wird. Sonst hat die Taste keine Funktion.
  • Mit der grauen Prgm-Taste kann zwischen aus geladenen Programmen eines ausgewählt werden, das gestartet werden soll. Die Firmware stellt 5 Programme bereit, die später von Benutzerprogrammen ersetzt werden. Diese vorgegebenen Programme werden wir noch ausprobieren.
  • Die grüne Run-Taste schließlich startet das ausgewählte Programm und bricht es auch wieder ab, wenn sie nochmals gedrückt wird.

 

Der RCX bezieht seine Energie aus 6 Batterien (Mignon-Zellen, Typ AA) die an seiner Unterseite hinter der grauen Abdeckung eingesetzt werden. Einige RCX haben an ihrer Rückseite auch eine Buchse für ein Netzteil (mit 9-12V Wechselspannung), daß zusätzlich zu den Batterien angeschlossen werden kann.

RCX 5Ein kleiner eingebauter Lautsprecher kann Piepstöne unterschiedlicher Frequenzen erzeugen. Das Display zeigt den aktuellen Status des RCX an. Dazu stehen 5 7-Segment-Anzeigen und etliche Symbole zur Verfügung, die von den Programmen unterschiedlich genutzt werden können.

Die Dreiecke oben zeigen den Status der Sensoreingänge an, die Dreiecke und Pfeile unten den Zustand der Ausgänge. Der Trichter am linken Rand zeigt Infratot-Kommunikation an, und ein laufendes Männchen sieht man, wenn auch gerade ein Programm abläuft. Die Ziffer rechts neben dem Männchen entspricht der gerade ausgewählten Programmnummer. Der Rest des Displays ist frei programmierbar.

Im ROM des RCX ist ein Programm fest gespeichert, das den Computer startet und die Verbindung zu einem PC herstellen kann, um Programme nachzuladen. Es stellt aber bereits ein paar einfache Programme zur Robotersteuerung zur Verfügung:

  1. Motoren A und C drehen vorwärts.
  2. Motoren A und C drehen vorwärts. Wenn Taster 1 gedrückt wird, hält Motor A an, bis der Taster losgelassen wird. Taster 3 macht dasselbe für Motor C.
  3. Dieses Programm erwartet einen Lichtsensor an Eingang 2. Die Motoren A und C drehen vorwärts, bis der Lichtsensor dunkel sieht. Dann halten beide Motoren an. Sieht der Lichtsensor danach einen ausreichend hellen Wert, starten die Motoren wieder.
  4. Die Motoren A und C werden etwa 15 Sekunden lang zufällig angesteuert.
  5. Ausweichmanöver für Taster an Eingang 1: Die Motoren A und C drehen vorwärts. Wird Taster 1 gedrückt, drehen beide Motoren kurz rückwärts, dann wechselt zuerst A die Richtung auf vorwärts und C folgt wenig später.

All diese Funktionen sind fest eingebrannt und können nicht gelöscht werden. Verliert der RCX seine Stromversorgung, wird der Inhalt des RAMs gelöscht, und mit ihm auch alle Benutzerprogramme. Auf diese Weise wird auch ein Reset herbeigeführt, wenn der RCX komplett abgestürzt sein sollte. Das Entfernen der Batterien (und eventuell des Netzteiles) für ein paar Sekunden reicht dafür aus.

RCX 6                              RCX 3

Der letzte, aber vielleicht wichtigste Teil des RCX ist die IR-Einheit. Sie enthält einen Sender und einen Empfänger, so daß Daten zwischen PC und RCX hin- und herübertragen werden und selbstgeschriebene Programme in den RCX geladen werden können. Das funktioniert genauso zwischen mehreren RCX, so daß ein komplettes Infrarot-Netzwerk aufgebaut werden kann.