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.
6.2. Reagieren auf einen Berührungssensor<br />
Wir wollen nun, dass unser Roboter Hindernissen ausweicht. Wann immer der Roboter an ein Hindernis stößt, soll er etwas<br />
zurückfahren, dann eine Wendung machen und danach geradeaus weiterfahren. Ist hier das Programm:<br />
task main()<br />
{<br />
SetSensor(SENSOR_1,SENSOR_TOUCH); //definiert den Eingang<br />
OnFwd(OUT_A+OUT_C);<br />
//schaltet die Motoren ein<br />
while (true)<br />
//bildet eine Endlosschleife<br />
{<br />
if (SENSOR_1 == 1)<br />
//fragt ab, ob Taster gedrückt wurde<br />
{ //wenn ja, kommen hier { } die<br />
OnRev(OUT_A+OUT_C); Wait(60); //Befehle für das Ausweichmanöver.<br />
OnFwd(OUT_A); Wait(60); //Danach kommt der nächste Durch-<br />
OnFwd(OUT_A+OUT_C);<br />
//lauf der Schleife.<br />
}<br />
}<br />
}<br />
Wie im vorhergehenden Beispiel, sagen wir dem RCX als erstes, welcher Sensor angeschlossen wurde. Dann werden beide<br />
Motoren in Richtung vorwärts gestartet (OnFwd) und der Roboter fährt geradeaus los. Dann kommt eine Endlos- Schleife<br />
(while (true) ). Dadurch wird erreicht, dass der Sensor ständig abgefragt wird.<br />
Wird die if – Bedingung SENSOR_1 == 1 erfüllt, das heißt der Taster wurde gedrückt, weil der Roboter gegen ein<br />
Hindernis gefahren ist, so fährt er 0,6 Sekunde rückwärts, dann macht er für 0,6 Sekunde eine Rechtsdrehung und fährt<br />
anschließend wieder geradeaus weiter.<br />
Beachte bitte auch wie hier die Rechtsdrehung programmiert wurde. Während sich der rechte Motor noch vom Zurückfahren<br />
rückwärts dreht, wird der linke Motor vorwärts geschaltet. Dadurch dreht sich der Roboter auf der Stelle.<br />
6.3. Lichtsensoren<br />
Mit dem Lego MindStorms- System hast du neben zwei Tastern auch einen Lichtsensor erhalten.<br />
Der Lichtsensor erfaßt die Lichtmenge, die an seiner Vorderseite neben der roten Leuchtdiode (LED) einfällt. Daneben<br />
strahlt er über die LED selbst Licht ab. Da<strong>mit</strong> kann der Lichtsensor Fremdlicht, also <strong>von</strong> der Zimmerbeleuchtung oder das<br />
<strong>von</strong> einem nahen Gegenstand zurückgeworfene (reflektierte) Licht der LED erfassen. Du kannst da<strong>mit</strong> deinen Roboter einer<br />
dunklen Markierung auf dem Fußboden, etwa der Bahn auf dem <strong>mit</strong>gelieferten Poster, folgen lassen.<br />
Das wollen wir nun auch in unserem Beispiel tun. Dazu müssen wir zunächst den Lichtsensor an unseren Roboter anbringen<br />
(siehe CONSTRUCTOPEDIA Seite 34 und 35). Dann schließen wir den Sensor an Eingang 2 an:<br />
Nun benötigen wir nur noch unsere Bahn aus dem Lego-MindStorms- Kasten und natürlich das Programm.<br />
Das basiert auf folgenden Gedanken: sobald der Roboter die Bahn verläßt, wird vom nun hellen Untergrund mehr Licht<br />
zurückgeworfen und der Roboter muß seine Bahn korrigieren. Es funktioniert aber nur, wenn der Roboter im Uhrzeigersinn,<br />
also rechts herum fährt.