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.

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.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!