Programmieren von LegoMindstorms-Robotern mit NQC
Programmieren von LegoMindstorms-Robotern mit NQC
Programmieren von LegoMindstorms-Robotern mit NQC
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 -