groß

Der RCX-Brick verwendet den Hitachi H8-Mikroprozessor, der mit einer "Standard-Firmware" ausgeliefert wird. Die Firmware muss bei der ersten Inbetriebnahme aufgespielt werden, da sie nur mit eingelegten Batterien im Speicher erhalten bleibt.
Der RCX-Code des Mindstorms-Baukastens, LabVIEW bzw. Robolab und NQC arbeiten mit der Standard-Firmware. Für die Benutzung von pbForth, C oder C++ und Java muss eine andere Firmware auf den Prozessor aufgespielt werden. Die pbForth-Firmware enthält das Übersetzungsprogramm für die pbForth-Anweisung und arbeitet als Interpreter. Für C und C++ wird als "Betriebsystems"-Firmware legOS verwendet und für Java wird eine "verkleinerte" Java Virtuelle Maschine (JVM) als Firmware eingesetzt.


groß

Die verschiedenen Programmiervarianten des RCX lassen sich in die gezeigten Kategorien einordnen. Im unteren Bildteil sind Programmiervarianten gezeigt, die auf Textdateien basieren, im oberen Teil welche, die mit einer graphischen Darstellung der Steuerungsalgorithmen arbeiten. Es wird weiter zwischen prozeduralen Ansätzen zur Ablaufprogrammierung (linke Hälfte) und objekt- bzw. modellorientierten Ansätzen unterschieden (rechte Hälfte).


groß

Die nebenstehende Graphik zeigt zu den oben erläuterten Kategorien der Programmiervarianten jeweils ein Beispiel bzw. einen Beispielsausschnitt. Als prozedurales Textprogramm ist ein Not-Quite-C-Beispiel aufgeführt. Als objektorientierte Textsprache ist C++ herausgegriffen worden.

Hier sollen die verschiedenen Programmiermöglichkeiten für den RCX genauer beschrieben werden. Vorerst sind hier nur einige Links zu einschlägigen Webseiten vorhanden.

RCX-Code

Not-Quite-C: http://news.lugnet.com/robotics/rcx/nqc/

Für die Programmierung der Roboter wird am besten die Programmiersprache "Not-Quite-C" (NQC) verwendet. Diese C-ähnliche Programmiersprache ist einerseits flexibel und an die Möglichkeiten des Roboter-Prozessors gut angepasst und andererseits ist sie einfach zu erlernen und wird durch eine vielseitige und praktische "Entwicklungsumgebung" (Windows-Fensterprogramm BricxCC) gut unterstützt. Diese Entwicklungsumgebung kann, aber muss nicht verwendet werden.

Die Entwicklungsumgebung "BricxCC" liegt einschließlich des Übersetzerprogramms für Not-Quite-C ("NQC-Compiler") den Mindstorms-Baukästen als Diskette zusätzlich bei. Sie kann auch direkt von hier als selbstentpackende ZIP-Datei (1118 kB) heruntergeladen werden (BricxCCDistribution.exe) und muss dann nur noch doppelt geklickt werden. Installationshinweise stehen an dieser Stelle als Webseite, als PDF-Datei (673 kB) oder als Word-Datei (110 kB) zur Verfügung. Diese Hinweise sollten unbedingt beachtet werden, damit der Infrarot-Sender an der USB-Schnittstelle richtig funktioniert.

Weiterhin steht ein deutsches Tutorial für Not-Quite-C als PDF-Datei (916 kB) oder als Word-Datei (1088 kB) zum Herunterladen bereit.


Für erste Gehversuche mit NQC wurde für den Fall, dass kein Roboter zur Verfügung steht, ein Simulationsprogramm für NQC-Programme des RCX erstellt. Das Simulationsprogramm ist in Java geschrieben und nutzt die Ähnlichkeit von Java zu C (NQC) aus. Das Simulationsprogramm erreicht allerdings keine sehr exakte Nachbildung des Verhaltens des realen Roboters.

C/C++ mit legOS: http://news.lugnet.com/robotics/rcx/legos/

Java allgemein: http://news.lugnet.com/robotics/rcx/java/

lejos: http://www.lejos.org

Die Java-Programme, die in der studentischen Vorlesung gezeigt werden, sind als ZIP-Datei erhältlich (JavaRCX.zip). Im obersten Verzeichnis befindet sich eine ReadMe.txt Datei, die Einzelheiten der Benutzung erklärt - insbesondere wie die Organisation in "packages" erfolgte. Im Gegensatz zu den Quelltextausschnitten, die in der Vorlesung gezeigt werden, sind die Klassen der Pakete vollständig durch JavaDoc-Kommentare beschrieben. Die Dokumentation kann nach dem Entpacken durch Öffnen der Datei index.html im Verzeichnis JavaRCXDocs mit einem Browser betrachtet werden. Zur Bearbeitung der Java-Quelltextdateien kann ein beliebiger Editor verwendet werden. (jEdit - ein Java-Editor, der selbst vollkommen in Java geschrieben ist, ist da vielleicht einen Versuch wert: www.jEdit.org ).

Wird der USB-Infrarot-Sender des Mindstormskastens benutzt, so muss die LEGO-Software zuerst installiert und mit ihr der Infrarot-Sender überprüft werden. Beim Einsatz von leJOS wird dann als Umgebungsvariable RCXTTY auf usb und nicht auf COM1 gesetzt:
set RCXTTY=usb
Für einen Online-Betrieb des RCX vom PC aus eignen sich die RCXTools (rcxtools.sourceforge.net).
Hier gibt es eine deutsche Installationsanleitung von dieser Webseite aus, die natürlich nicht ganz so aktuell ist, wie die Originalquellen.

pbFORTH: http://news.lugnet.com/robotics/rcx/pbforth/

Matlab/Simulink

ROBOLAB: http://news.lugnet.com/robotics/rcx/robolab/

Sonstiges

Ansprechpartner: Prof. Dr. Michael Wülker (FHO.Roboter@fh-offenburg.de)                                    © Fachhochschule Offenburg 2004