Programmieren von LegoMindstorms-Robotern mit NQC
Programmieren von LegoMindstorms-Robotern mit NQC
Programmieren von LegoMindstorms-Robotern mit NQC
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Das RCX-Command Center sieht wie ein<br />
Standard- Texteditor (beispielsweise Wordpad)<br />
<strong>mit</strong> dem üblichen Menü aus. Es hat<br />
Tasten zum Öffnen Drucken und Bearbeiten<br />
<strong>von</strong> Dateien. Aber es gibt auch einige<br />
spezielle Menüs für das Compilieren<br />
(= Übersetzen unseres Programmes in eine<br />
für den RCX verständliche Computersprache)<br />
und das Downloading (= Übertragen<br />
unseres Programms in den Speicher<br />
des RCX) <strong>von</strong> Programmen zum Roboter<br />
und für das Übertragen <strong>von</strong> Informationen<br />
vom Roboter. Diese benötigen wir erst<br />
später. Daher brauchst du sie im Moment<br />
nicht zu beachten.<br />
Wir werden ein neues Programm schreiben.<br />
Betätige die NewFile- Taste, (neues<br />
Programm) um ein neues, Programmblatt<br />
zu erhalten.<br />
2.2. Wir schreiben unser erstes Programm<br />
Schreibe jetzt das folgende Programm. Achte dabei besonders auf die Groß- und Kleinschreibung.<br />
task main()<br />
{<br />
OnFwd(OUT_A);<br />
OnFwd(OUT_C);<br />
Wait(400);<br />
OnRev(OUT_A+OUT_C);<br />
Wait(400);<br />
Off(OUT_A+OUT_C);<br />
}<br />
Es erscheint dir am Anfang vielleicht ein wenig kompliziert. Schauen wir uns das Programm daher etwas genauer an:<br />
Programme in <strong>NQC</strong> bestehen aus Tasks (engl. = Aufgaben).<br />
Unser Programm hat eine Task, die main (engl. = Hauptaufgabe) heißt. Jedes Programm muß eine Task main haben.<br />
Es ist die Task, die durch den Roboter aufgerufen wird, wenn du die Run- Taste am RCX betätigst.<br />
Du lernst mehr über Tasks in Kapitel 6<br />
Eine Task besteht aus einer Anzahl <strong>von</strong> Befehlen, auch Anweisungen genannt. Die Befehle einer Task müssen innerhalb der<br />
geschweiften Klammern {} stehen. Da<strong>mit</strong> ist klar, daß sie zu dieser Task gehören.<br />
Jede Anweisung endet <strong>mit</strong> einem Semikolon “ ; “. Auf diese Art ist klar, wo eine Anweisung endet und wo die folgende<br />
Anweisung anfängt. Eine Task schaut im allgemeinen wie folgt aus:<br />
task main()<br />
{<br />
Anweisung 1;<br />
Anweisung 2;<br />
…<br />
}<br />
Unser Programm hat sechs Anweisungen. Wir wollen diese einmal etwas genauer betrachten:<br />
OnFwd(OUT_A);<br />
Diese Anweisung erklärt dem Roboter: „schalte Motor A in Richtung vorwärts und schalte ihn ein“. Da<strong>mit</strong> wird der Motor,<br />
der <strong>mit</strong> dem Ausgang A des RCX verbunden ist, angesprochen. Er bewegt sich <strong>mit</strong> maximaler Geschwindigkeit, es sei denn,<br />
dass du zuvor die Geschwindigkeit verändert hast. Wir sehen später, wie du dies tun kannst.<br />
OnFwd(OUT_C);<br />
Es ist die gleiche Anweisung, aber jetzt für Motor C. Nach diesen beiden Anweisungen laufen beide Motoren, und der<br />
Roboter bewegt sich vorwärts.<br />
Wait(400);<br />
Nun ist es Zeit für eine Weile zu warten(wait = engl. warten). Diese Anweisung sagt dem Programm es soll für 4 Sekunden<br />
warten.<br />
Der RCX unterbricht den Programmablauf für 4 Sekunden. Die Motoren laufen während dieser Zeit dennoch weiter.<br />
Das Argument, d.h. die Zahl zwischen den Klammern, gibt die Zahl der Zeiteinheiten an. Jede Zeiteinheit beträgt 1/100<br />
einer Sekunde. So kannst du sehr genau steuern, wie lange ein Programm warten soll.<br />
Unser Programm tut also für 4 Sekunden nichts, und der Roboter fährt immer geradeaus weiter.