Materialien zum Unterricht

Hindernis umfahren

Roberta soll ein Hindernis erkennen, es links umfahren und dann in der Verängerung des ursprünglichen Weges weiterfahren.

Dazu wird der gesamte Weg in 8 Abschnitte eingeteilt:

  1. Fahren, bis der Abstand zum Hindernis kleiner als 20 cm ist.
  2. Nach links drehen und fahren, bis der gemessene Abstand auf der rechen Seite deutlich größer als 20 cm ist.
    Während dieser Fahr muss die Länge des zurückgelegten Weges gemessen werden.
  3. So weit fahren, wie Roberta lang ist.
  4. Nach rechts drehen und fahren, bis der Abstand etwa so groß wie der Weg 3 ist.
  5. Fahren, bis der Abstand wieder deutlich größer ist
  6. So weit fahren, wie Roberta lang ist.
  7. So weit fahren wie Roberta lang ist + der L&aunge, die bei 2. gemessen wurde.
  8. Nach links drehen und weiter fahren.

Die Roboterkonfiguration enthält

  • den Ultraschallsensor zur Abstandsmessung
  • den Kreiselsensor für die Drehungen
  • den mittleren Motor an A zum Bewegen des Ultraschallsensors
  • die beiden großen Motoren an B und C zum Fahren

Vorübung: Das gesamte Programm setzt sich aus mehreren Funktionen zusammen, die bei Bedarf aufgerufen werden. Dazu gehört u.a. das Drehen des Ultraschallsensor. Das Programm lässt Roberta nach links und rechts schauen, Danach sieht sie wieder nach vorn.

Als erstes lässt man Roberta solange fahren, bis der Abstand zum Hindernis kleiner als 20 cm ist. Der Befehl Stoppe wird gleich in einer Funktion umfahre_hindernis aufgerufen.

In der Funktion umfahre_hindernis ruft man als erstes die Funktion drehe_links auf. Der Kreiselsensor wird zurückgesetzt. Damit gibt er zu Beginn den Winkel 0° zurück. Danach wird der rechte Motor solange betrieben, bis der Kreiselsensor einen Winkel größr oder gleich 90° zurückgibt. Wenn das der Fall ist, wird der Motor C gestoppt. Das ist notwendig, damit Roberta nicht noch ein Stück weiter dreht.

Im Hauptprogramm wird nach der Funktion umfahre_hindernis die Schleife abgebrochen. Damit führt Roberta nicht unkontrolliert weiter.

Da beim Weiterfahren die Entfernung zum Hindernis ständig gemessen werden muss, wird der Kopf nach rechts gedreht.

Roberta fährt nun solange vorwärts, bis das Ende des Hindernisses erreicht ist. Um dann wirklich vorbei zu kommen, muss sie noch ein Stück weiter fahren. Wie weit, steht in der Variablen roberta.

Auf dem Weg um das Hindernis ist man jetzt zwischen dem Schritt 3 und dem Schritt 4. Im 4. Schritt muss Roberta so weit fahren, wie der Abstand zum Hindernis ist. Dafür wird zu Beginn des Programms der Abstand zum Hindernis in der Variablen abstand abgelegt.

Roberta fährt jetzt also die Wege 4, 5 und 6 nach vorn.

  • 4: Strecke abstand
  • 5: Solange der Abstand kleiner als die Länge von Roberta ist, roberta
  • 6: Strecke roberta

Danach wird wieder nach rechts gedreht.

Zum Schluss muss Roberta genau so weit fahren, wie die 2 und 3 lang sind. Dazu wird eine weitere Variable strecke benutzt, in der der Abstand des Drehsensors B steht, der während der Strecken 2 und 3 zurückgelegt wird.

Ist alles fertig, umfährt Roberta jedes Hindernis.

Das Problem ist der Drehsensor. Er wurde genau unter dem EV3 angebracht. Trotzdem dreht Roberta immer etwas weiter als 90°.

zurück