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

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Hier ist ein Beispiel:<br />

<strong>Programmieren</strong> <strong>von</strong> LEGO-MindStorms- <strong>Robotern</strong> <strong>mit</strong> <strong>NQC</strong><br />

task main()<br />

{<br />

PlayTone(262,40); Wait(50); // der Wait()-Befehl ist 10/100 Sekunden<br />

PlayTone(294,40); Wait(50); //länger als die Tondauer. Dies sorgt<br />

PlayTone(330,40); Wait(50); //dafür, dass die Töne sauber<br />

<strong>von</strong>einander<br />

PlayTone(294,40); Wait(50); //getrennt abgespielt werden.<br />

PlayTone(262,160); Wait(200);<br />

}<br />

Wenn du möchtest, dass der RCX Musik spielt während er herumfährt, dann programmiere die Musik in einer eigenen<br />

Task. Diese ist dann ausschließlich für die Musik zuständig und läuft unabhängig vom übrigen Programm.<br />

Hier haben wir ein Beispiel eines ziemlich albernen Programms, <strong>mit</strong> dem der RCX hin und her fährt und andauernd eine<br />

Melodie spielt.<br />

task music()<br />

//ausschließlich für die Musik zuständig<br />

{<br />

while (true)<br />

{<br />

PlayTone(262,40); Wait(50);<br />

PlayTone(294,40); Wait(50);<br />

PlayTone(330,40); Wait(50);<br />

PlayTone(294,40); Wait(50);<br />

}<br />

}<br />

task main()<br />

{<br />

start music;<br />

while(true)<br />

}<br />

{<br />

}<br />

OnFwd(OUT_A+OUT_C); Wait(300);<br />

OnRev(OUT_A+OUT_C); Wait(300);<br />

//startet die Musik<br />

//läßt Roboter dauernd hin- und her fahren<br />

Du kannst die Musik auch <strong>mit</strong> dem “Klavier” spielen, das ein Teil des RCX-Command Center ist. (Tools, RCX- Piano)<br />

Spiele doch einfach ein Musikstückchen <strong>mit</strong> dem RCX- Piano. Achte dabei auf die Tondauer. Du kannst dein Musikstück<br />

über Save (engl. = speichern) abspeichern und anschließend im RCX-Command Center laden und bearbeiten, also<br />

beispielsweise die Tonlänge anpassen. Hier ist ein Beispiel, das ich so erstellt habe:<br />

erkennst du die Melodie?<br />

// Music file created by RCX Command Center.<br />

#define __NOTETIME 10<br />

#define __WAITTIME 12<br />

task main()<br />

{<br />

PlayTone(523,4*__NOTETIME); Wait(4*__WAITTIME); //Tonlänge und Dauer<br />

PlayTone(659,2*__NOTETIME); Wait(2*__WAITTIME); //der Programmunter-<br />

PlayTone(523,2*__NOTETIME); Wait(2*__WAITTIME); //brechung sind ein-<br />

PlayTone(392,4*__NOTETIME); Wait(4*__WAITTIME); //ander angepasst!<br />

PlayTone(392,4*__NOTETIME); Wait(4*__WAITTIME);<br />

PlayTone(392,2*__NOTETIME); Wait(2*__WAITTIME);<br />

PlayTone(523,2*__NOTETIME); Wait(2*__WAITTIME);<br />

PlayTone(392,2*__NOTETIME); Wait(2*__WAITTIME);<br />

PlayTone(330,2*__NOTETIME); Wait(2*__WAITTIME);<br />

PlayTone(262,4*__NOTETIME); Wait(4*__WAITTIME);<br />

}<br />

8.3. Zusammenfassung<br />

In diesem Kapitel hast du gelernt, wie du deinem RCX Töne und Melodien beibringen kannst.<br />

Du hast auch gelernt, dass es meist günstiger ist, wenn du die Melodie in einer eigenen Task programmierst.<br />

- 23 -

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!