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.
<strong>Programmieren</strong> <strong>von</strong> LEGO-MindStorms- <strong>Robotern</strong> <strong>mit</strong> <strong>NQC</strong><br />
OnRev(OUT_A+OUT_C);<br />
Der Roboter hat sich jetzt weit genug bewegt, also erklären wir ihm er soll den Rückwärtsgang einlegen, d.h. rückwärts zu<br />
fahren. Beachte bitte, dass wir beide Motoren auf einmal einstellen können, indem wir OUT_A+OUT_C als Argument<br />
verwenden. Wir hätten die ersten beiden Anweisungen auch auf diese Weise kombinieren können.<br />
Wait(400);<br />
Wir warten wieder 4 Sekunden.<br />
Off(OUT_A+OUT_C);<br />
Und schließlich schalten wir beide Motoren aus. Das ist das vollständige Programm.<br />
Es schaltet beide Motoren für 4 Sekunden in Richtung vorwärts, dann für 4 Sekunden rückwärts und schaltet sie schließlich<br />
aus.<br />
Dir fielen vermutlich die Farben auf, als du das Programm geschrieben hast. Sie erscheinen automatisch, wenn das RCX<br />
Command Center die Worte erkennt. Alles in blau ist ein Befehl für den Roboter, eine Anweisung für einen Motor oder<br />
ein anderer Befehl für den RCX.<br />
Das Wort task ist in fetter Schrift, weil es ein wichtiges (reserviertes) Wort in <strong>NQC</strong> ist. Andere wichtige Worte, die in<br />
fetter Schrift erscheinen, werden wir später kennen lernen.<br />
Die Farben sind sehr nützlich. Daran kannst du erkennen, dass du keine Fehler beim Schreiben gemacht hast.<br />
2.3. Wir lassen das Programm ablaufen<br />
Sobald du ein Programm geschrieben hast, muß es zunächst compiliert werden (das heißt, es muß in den Code, den der<br />
Roboter verstehen und durchführen kann, übersetzt werden). Danach wird es zum Roboter über die Infrarot- Schnittstelle<br />
übertragen. (Der Fachmann spricht vom „Downloading“ des Programms). Es gibt eine Taste, die beides automatisch tut<br />
(siehe die Abbildung oben). Betätigst du diese Taste, dann wird das Programm nacheinander kompiliert und auf den RCX<br />
übertragen. Wenn es Fehler in deinem Programm gibt, werden Sie dir angezeigt (siehe unten.).<br />
Jetzt kannst du dein Programm laufen lassen. Betätige dazu die grüne Run- Taste auf deinem RCX.<br />
Tut der Roboter, was du erwartest? Wenn nicht, sind vermutlich die Leitungen falsch angeschlossen.<br />
2.4. Fehler im Programm ??<br />
Beim Schreiben des Programms ist es wahrscheinlich, dass du einige Fehler machst. Der Compiler bemerkt diese Fehler<br />
und teilt sie dir am unteren Rand des Fensters <strong>mit</strong>, wie in der folgenden Abbildung:<br />
Er wählt automatisch den ersten Fehler aus (hier der<br />
falsche Name des Motors).<br />
Erklärungen zu den Fehlermeldungen findest du im<br />
Anhang.<br />
Wenn es mehrere Fehler gibt, kannst du die Fehlermeldungen<br />
anklicken, um zu ihnen zu gelangen.<br />
Beachte bitte, dass häufig Fehler am Anfang des<br />
Programms andere Fehler an anderen Plätzen<br />
verursachen. Behebe also zunächst die ersten Fehler<br />
und compiliere dann das Programm erneut.<br />
Beachte auch, dass dir die Farb- Kodierung viel hilft,<br />
um Fehler zu erkennen. Beispielsweise in der letzten<br />
Zeile schrieben wir “Of” anstatt “Off”. Weil dieses<br />
ein unbekannter Befehl ist, wird er nicht blau gefärbt.<br />
! !<br />
Die häufigsten Fehler sind falsch gesetzte Klammern und vergessene Strickpunkte am Ende der Befehlszeile.<br />
Wenn beispielsweise die Meldung line 6 : Error: parse error erscheint, so schau doch zuerst in die Zeile<br />
zuvor, ob dort nicht der Strich-Punkt fehlt!<br />
Es gibt auch Fehler, die nicht vom Compiler gefunden werden. Wenn wir OUT_B geschrieben hätten, wäre der Fehler<br />
unbemerkt geblieben, weil dieser Motor existiert, obwohl wir ihn nicht im Roboter benutzen.<br />
Wenn dein Roboter sich also anders verhält, als du erwartet hast, so ist ein Fehler in deinem Programm die wahrscheinlichste<br />
Ursache.<br />
- 7 -