22.11.2013 Aufrufe

Programmieren von LegoMindstorms-Robotern mit NQC

Programmieren von LegoMindstorms-Robotern mit NQC

Programmieren von LegoMindstorms-Robotern mit NQC

MEHR ANZEIGEN
WENIGER ANZEIGEN

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.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!