LBotics.at

Fahrfunktionen

Verwende bei der Lösung dieser Aufgabenstellungen die Informationen aus dem Abschnitt Fahrfunktionen

Aufgabe F1 - Fahren einer Strecke mit einer vorgegebenen Zeit

Erstelle ein Skript, mit dem ein mBot2 Roboter 4 Sekunden mit einer Drehgeschwindigkeit von 70 RPM vorwärts fährt und danach stoppt.

 

Aufgabe F2 - Vorwärts- und Rückwärtsfahren einer Strecke in einer vorgegebenen Zeit

Erstelle ein Skript, mit dem ein mBot2 Roboter 3 Sekunden mit 120 RPM Motorleistung vorwärts fährt, wieder die gleiche Strecke rückwärts fährt und danach stoppt.

Aufgabe F3 - Bewegungsablauf mit einer Volldrehung um die eigene Achse

Erstelle ein Skript, mit dem ein mBot2 Roboter 2 Sekunden mit beliebiger Motordrehzahl vorwärts fährt, sich dann auf der Stelle einmal um seine eigene Achse dreht, im Anschluss daran nochmals eine Sekunde mit maximaler Drehgeschwindigket in der ursprünglichen Richtung vorwärts fährt und danach stoppt.

Aufgabe F4 - Fahren eines Quadrats

Erstelle ein Skript, mit dem ein mBot2 Roboter ein Quadrat fährt: 2 Sekunden geradeaus, um 90 Grad drehen, wieder 2 Sekunden geradeaus usw. bis er wieder an seinem Startpunkt ankommt und stehen bleibt.

Aufgabe F5 - Vorwärts- und Rückwärtsfahren mit vorgegebenen Wegstrecken

Erstelle ein Skript, mit dem ein mBot2 Roboter genau 1.2 Meter geradeaus fährt, 2.5 Sekunden stehen bleibt und dann 0,7 Meter rückwärts fährt.

Aufgabe F6 - Fahren eines Treppenmusters

Erstelle ein Skript, mit dem ein mBot2 Roboter ein Treppenmuster wie in der Abbildung fährt. Bei den Richtungsänderungen soll er sich immer am Stand drehen.

Motorsteuerung

Verwende bei der Lösung dieser Aufgabenstellungen ausschließlich die Informationen aus dem Abschnitt Motorsteuerung

Aufgabe M1 - Fahren einer Linkskurve mit Zeitangabe

Erstelle ein Skript, mit dem ein mBot2 Roboter für 4 Sekunden eine leichte Kurve nach links fährt und danach stoppt.

Aufgabe M2 - Fahren einer Rechtskurve mit Zeitangabe

Erstelle ein Skript, mit dem ein mBot2 Roboter für 5,5 Sekunden eine starke Kurve nach rechts fährt und danach stoppt.

Aufgabe M3 - Fahren eines Kreises

Erstelle ein Skript, mit dem ein mBot2 Roboter einen Kreis fährt und genau an der Ausgangsposition stoppt. Die Motorleistung kann dabei beliebig gewählt werden.

Aufgabe M4 - Fahren eines Kreises mit vorgegebenem Durchmesser und vorgegebener Fahrzeit

Erstelle ein Skript, mit dem ein mBot2 Roboter einen Kreis mit einem Durchmesser von ca. 30 cm fährt. Dafür soll der Roboter recht genau 8 Sekunden brauchen.

LEDs am CyberPi

Verwende bei der Lösung dieser Aufgabenstellungen Informationen aus dem Abschnitt LEDs des CyberPi

Aufgabe L1 - Anzeigen unterschiedlicher Farbstreifen mit den LEDs

Erstelle ein Skript, mit dem die 5  LEDs gleichzeitig mit den Farben in der Abbildung hintereinander blinken. Die jeweilige Farbe soll für drei Sekunden angezeigt werden, die Zeit dazwischen in der keine LED leuchtet soll eine Sekunde betragen. Am Ende sollen alle LEDs ausgeschaltet sein.

Aufgabe L2 - Anzeigen eines Lauflichts

Erstelle ein Skript, mit dem ein roter Punkt einmal von links nach rechts läuft und wieder zurück. Die einzelnen Schritte sind in der Abbildung dargestellt. Daraus ist ersichtlich, welche LED bei jedem Schritt leuchten soll und welche nicht. Die Dauer für das Anzeigen eines Schritts soll nur eine Sekunde betragen.

Display am CyberPi

Verwende bei der Lösung dieser Aufgabenstellungen Informationen aus dem Abschnitt Text am Display

Aufgabe D1 - Ausgabe von mehrzeiligem Text am Display

Erstelle ein Skript, das auf dem Display den Text wie in der Abbildung ausgibt. Beachte dabei, dass ein vollständiger String zusammengestellt werden muss, der alle Zeilen beinhaltet. Ein Zeilenumbruch wird mit \n im String festgelegt, damit die Textzeichen in der Mitte stehen, müssen die benötigten Leerzeichen abgezählt werden und vor dem Text in einer Zeile stehen.

Aufgabe D2 - Zeitversetzes Anzeigen einzelner Zeilen am Display

Modifiziere das Skript von D1 dahingehend, dass jede Zeile einzeln hintereinander immer für zwei Sekunden angezeigt wird, wie dies in der Abbildung zu sehen ist.

Aufgabe D3 - Fahren eines Musters mit Anzeige am Display

Verwende bei dieser Aufgabe zusätzlich die Informationen aus Abschnitt Fahrfunktionen

Erstelle ein Skript, bei dem der Roboter den Weg in der Abbildung nachfährt. Die entsprechenden Werte für Geschwindigkeiten und Zeiten können dabei frei gewählt werden. Ergänzend dazu soll am Display während eines Bewegungsvorgangs genau der Text angezeigt werden, der in der Abbildung beim jeweiligen Teilabschnitt dabeisteht.

Buttons am CyberPi
Aufgabe B1 - Schalten der LEDs mit den Tastern

Verwende bei der Lösung dieser Aufgabenstellung Informationen aus dem Abschnitt Buttons am CyberPi und LEDs des CyberPi

Erstelle ein Skript in dem eine Endlosschleife läuft. In der Schleife soll auf das Drücken der Taster reagiert werden, welche folgende Funktionen haben sollen:

  • Wird der Joystick nach vorne gedrückt, sollen alle 5 LEDs rot leuchten.
  • Wird der Joystick nach hinten gedrückt, sollen alle 5 LEDs grün leuchten.
  • Wird der Joystick nach links gedrückt, soll nur die linke LED 1 gelb leuchten.
  • Wird der Joystick nach rechts gedrückt, soll nur die rechte LED 5 grün leuchten.
  • Mit der Taste A sollen alle LEDs ausgeschaltet werden.
Aufgabe B2 - Anzeigen gedrückter Tastern am Display

Verwende bei der Lösung dieser Aufgabenstellung Informationen aus dem Abschnitt Buttons am CyberPi und Text am Display

Erstelle ein Skript mit einer Endlosschleife in der laufend überprüft wird, ob ein Taster oder der Joystick in eine Richtung gedrückt wurde. Auf dem Display soll angezeigt werden, welcher Taster gedrückt wurde oder in welche Richtung der Joystick bewegt oder in Mittelstellung gedrückt wurde. Die entsprechenden Textausgaben sollen lauten: Taste A, Taste B, Joystick UP, Joystick DOWN, Joystick LEFT, Joystick RIGHT oder Joystick PRESS

Aufgabe B3 - Motorsteuerung mit Tastern

Verwende bei der Lösung dieser Aufgabenstellung Informationen aus dem Abschnitt Buttons am CyberPi und Fahrfunktionen

Erstelle ein Skript, bei dem man mit den Tastern A und B die Motoren steuert. In diesem Skript soll in einer Endlosschleife laufend überprüft wird, ob ein Taster gedrückt wurde. Wurde der Taster A gedrückt, dann soll sich der Roboter langsam um seine eigene Achse nach rechts drehen. Drückt man den Taster B, so soll der Roboter wieder stehenbleiben.

Orientierung im Raum
Aufgabe Y1 - Anzeigen der yaw-Werte bei einer Kreisfahrt

Verwende bei der Lösung dieser Aufgabenstellung Informationen aus dem Abschnitt Räumliche Orientierung und Motorsteuerung

Erstelle ein Skript, mit dem ein Roboter langsam einen Kreis fährt. Zunächst soll der aktuelle yaw-Wert auf 0 gesetzt werden, der dann die Ausrichtung des Roboters beim Start des Skripts beschreibt. Im Anschluss daran soll in einer Endlosschleife laufend der aktuelle yaw-Wert ermittelt und am Display in der Form yaw-Wert: 23 angezeigt werden.

Nun sollen die angezeigten Werte während der Fahrt des Roboters genau beobachtet werden, um nachzuvollziehen, wie sich die Winkelangaben des yaw-Werts in Bezug auf den mit 0 festgelegten Wert der Startrichtung ändern.

Die Ausführung dieses Skripts wird einfach durch Drücken der Home-Taste beendet.

Ultra Sonic Sensor 2

Verwende bei der Lösung dieser Aufgabenstellung Informationen aus dem Abschnitt Ultra Sonic Sensor 2, Fahrfunktionen und Motorsteuerung

Überlege dabei, wann eine der Fahrfunktionen mbot2.forward(speed, port), mbot2.turn_left(speed, port), mbot2.backward(speed, port), mbot2.turn_right(speed, port) und mbot2.straight(speed, port) verwendet werden soll, oder wann das Drehen der Motoren direkt mit der Funktion EM_set_speed(speed, port) oder mbot2.EM_stop() gesteuert werden muss.

Aufgabe U1 - Stehenbleiben und Zurückfahren bei einem Hindernis

Erstelle ein Skript, mit dem sich ein Roboter auf ein Hindernis, das sich üngefähr einen Meter vor ihm befindet, zufährt. Kurz bevor der Roboter das Hindernis beührt (z. B. bei einem Abstand von 5 cm) soll der Roboter genau 10 cm rückwärts fahren und dann stehenbleiben. Der aktuell gemessene Abstandswert des Ultraschallsensors soll am Display angezeigt werden. In dem Moment, wo der Roboter dem Hindernis zu nahe kommt und dann beginnt rückwärts zu fahren, soll am Display zusätzlich das Wort HINDERNIS angezeigt werden.

Aufgabe U2 - Umfahren eines Hindernisses auf der rechten Seite

Erstelle ein Skript, mit dem ein Roboter ein Hindernis autonom umfahren kann. Wenn das Skript gestartet wird, sollen sich beide Motoren so drehen, dass der Roboter gerade auf ein Hindernis (Dose, Ziegelstein, Blumentopf, ...) zufährt. Nun soll in einer Endlosschleife der Abstand zum Hindernis laufend gemessen und am Display angezeigt werden. Erst kurz bevor der Roboter das Hindernis berührt, soll dieser ein kleines Stück zurückfahren, sodass er sich um 90 Grad nach rechts drehen kann, ohne das Hindernis zu berühren.

Nach dieser Drehung soll der Roboter das Hindernis in der Weise umfahren, wie es in der Abbildung zu sehen ist. Dazu sollen optimale Werte ermittelt werden, damit der Roboter einerseits so nahe wie möglich am Hindernis vorbeifährt, andererseits aber in einem sicheren Abstand, dass der Roboter dabei das Hindernis nicht berührt, bevor er nach dem Ausweichmanöver seine Fahrt gerade fortsetzt. Wurde das Hindernis erfolgreich um fahren, wird das Skript durch Drücken des Home-Buttons angehalten.

Aufgabe U3 - Umfahren eines Hindernisses auf der linken Seite

Modifziere die Lösung der Aufgabenstellung U2 dahingehend, dass der Roboter das Hindernis auf der linken Seite umfährt.

Aufgabe U4 - Hin- und herfahren zuwischen zwei Wänden

Erstelle ein Skript, mit dem ein Roboter zwischen zwei Wänden hin- und herfährt, ohne diese zu berühren. Mit Materialien beliebiger Art werden zwei Wände in einem Abstand von ca. 1 m aufgestellt. Zu Beginn soll der Roboter gerade aus fahren und beim Starten des Skripts so aufgestellt werden, dass dieser gerade auf eine der beiden Wände zufährt. In einer Endlosschleife soll der aktuelle Abstandswert des Ultraschallsensor ausgelesen und um Display angezeigt werden.

Nähert sich der Roboter einer Wand, so soll sich dieser in einem sicheren Abstand (der selbst experimentell ermittelt werden soll) von der Wand um 180 Grad drehen, ohne die Wand zu berühren. Nach dieser Drehung soll die Fahrt in Richtung der anderen Wand fortgesetzt werden und der Roboter wiederum bei Erreichen der anderen Wand umdrehen und zurückfahren. Dieser Vorgang soll sich so lange wiederholen, bis die Ausführung des Skripts durch Drücken der Home-Taste beendet wird.

Aufgabe U5 - Autonome Navigation in einem Raum

Erstelle ein Skript, mit dem ein mBot2 Roboter autonom in einem Raum navigieren kann, ohne dabei irgendetwas zu berühren. Der Roboter soll zunächst in einer beliebigen Richtung starten und geradeaus fahren. Nähert sich der Roboter einer Wand oder einem Hindernis, so soll sich dieser in einer gewissen sicheren Entfernung um 120 ° nach rechts drehen. Danach soll der Roboter geradeaus weiterfahren, bis er sich dem nächsten Hindernis nähert und wiederum mit demselben Ausweichmanöver seine Fahrt fortsetzen. So wird der Roboter im Lauf der Zeit die gesamte Fläche in einem begrenzten Raum abfahren.

Beim Start des Skripts beginnt der Roboter ohne Zeit- und Streckenangabe geradeaus zu fahren. In einer Endlosschleife soll dann laufend der aktuelle Abstandswert des Ultraschallsensors überprüft werden. Ist dieser kleiner als ein vorgegebener Wert, so soll die Drehung des Roboters eingeleitet werden. Begleitend dazu soll auf dem Display laufend der aktuelle Abstandswert des Ultraschallsensors angezeigt und darunter auch die gerade stattfindende Bewegung des Roboters mit den Wörtern FAHREN und DREHEN angezeigt werden.

Beendet wird die Fahrt des Roboters durch Drücken der Home-Taste, wodurch das Skript angehalten wird.

Quad RGB Sensor

Verwende bei der Lösung dieser Aufgabenstellungen Informationen aus dem Abschnitt Quad RGB Sensor, Fahrfunktionen und Motorsteuerung

Aufgabe Q1 - Stoppen bei einer schwarzen Line

Erstelle ein Skript, mit dem ein Roboter auf eine schwarze Linie zufährt und stehen bleibt, sobald der Quad RGB Sensor diese Linie erkennt. Zu Beginn des Skripts soll der Roboter geradeaus fahren. Dann soll innerhalb einer Endlosschleife laufend überprüft werden, ob sich einer der beiden mittleren Einzelsensoren (2 oder 3) über einer schwarzen Fläche befindet, oder nicht.

Am Display soll laufend aktualisiert der Bewegungsvorgang des Roboters mit den Worten FAHREN oder STOPP angezeigt werden. Begleitend dazu soll die ermittelte Sensorinformation laufend mit WHITE oder BLACK am Display ausgegeben werden.

Grafik zum Ausdrucken als PDF

Aufgabe Q2 - Fahren zwischen zwei Linien

Erstelle ein Skript, mit dem ein Roboter zwischen zwei bunten Linien hin- und herfährt. Wir das Skript gestartet, so beginnt der Roboter geradeaus zu fahren. Nun soll in einer Endlosschleife der aktuelle Farbwert eines der beiden mittleren Sensoren (2 oder 3) bestimmt und am Display angezeigt werden. Erkennt der Sensor die rote oder grüne Linie, so soll er sich am Stand um 180° drehen und wiederum geradeaus auf die andere Linie zufahren. Dabei soll sich der Roboter je nach Farbe immer entgegengesetzt drehen, z. B. bei rot nach links und bei grün nach rechts.

Begleitend dazu soll der aktuelle Bewegungszustand des Roboters mit den Worten FAHREN und DREHEN am Display angezeigt werden. Beendet wird die Fahrt durch Drücken der Home-Taste am CyberPi.

Grafik zum Ausdrucken als PDF

Aufgabe Q3 - Zählen von schwarzen Linien

Erstelle ein Skript, das die Anzahl von schwarzen Linie ermittelt, die ein Roboter überfährt. Zu Beginn des Skripts beginnt der Roboter geradeaus zu fahren. Innerhalb einer Endlosschleife sollen laufend Werte eines beliebig gewählten Sensors eingelesen werden. Der Wert einer Variable vom Typ int, die vor der Endlosschleife mit dem Startwert 0 festgelegt wurde, soll immer dann um eins erhöht werden, wenn der Roboter eine schwarze Linie passiert hat.

Der aktuelle Wert der Variable soll am Display in der Form LINIEN: 3 angezeigt werden. Die Ausführung des Skripts wird durch Drücken der Home-Taste beendet.

Grafik zum Ausdrucken als PDF

Aufgabe Q4 - Zählen von schwarzen und roten Linien

Erstelle ein Skript, das beim Überfahren Linien unterschiedlicher Farbe zählt. Wir das Skript gestartet, so soll der Roboter zunächst geradeaus fahren. In einer Endlosschleife sollen laufend die Farbwerte eines der einzelnen Sensoren im Quad RGB Sensor ausgelesen werden. In zwei Variablen, denen vor Beginn der Schleife der Wert 0 zugewiesen wurde, soll dann die Anzahl der Linien mitprotokolliert werden, die der Roboter bereits überfahren hat. Die aktuellen Werte der beiden Variablen sollen genau in der Form RED: 2 Linien und darunter BLACK: 2 Linien am Display angezeigt werden. Die Ausführung des Skripts wird durch Drücken der Home-Taste am CyberPi beendet.

Grafik zum Ausdrucken als PDF

Aufgabe Q5 - Fahren innerhalb eines Quadrats mit schwarzen Linien

Erstelle ein Skript, mit dem ein Roboter innerhalb eines Quadrats autonom navigieren kann, ohne aus diesem hinauszufahren. Auf einem weißen Papier wird mit einem Klebeband ein schwarzes Quadrat mit einer Seitenlänge von ca. 1m aufgeklebt oder auch aufgemalt. Der Roboter wird in einer beliebigen Richtung innerhalb des Quadrats poisitioniert und soll zunächst geradeaus fahren. In einer Endlosschleife werden die Werte des Quad RGB Sensors laufend ausgelesen und dazu verwendet, um zu bestimmen, ob dieser bereits über einer schwarzen Linie ist. Sobald dies der Fall ist, soll sich der Roboter am Stand um 110° nach rechts drehen und dann seine Fahrt fortsetzen.

Am Display soll begleitend FAHREN oder DREHEN angezeigt werden, je nachdem, welche Bewegung der Roboter gerade ausführt. Beendet soll das Skript durch Drücken des Home-Buttons am CyberPi werden.