Mission 6

Mission 6

Gratuliere, du bist hiermit in der sechsten und letzten Mission angekommen! Hast du Lust zum Schluss noch einen eigenen Roboter zu bauen und zu programmieren? Dann los! Aber unser Rover ist kein gewöhnlicher Roboter, denn er kann Hindernissen ausweichen!

Rover

Ziel

Bei Mission 6 wird ein Roboter gebaut, der selbstständig fährt und dabei Hindernissen ausweichen kann. Er ist mit einem Sensor ausgestattet und nimmt gleichzeitig seine Umgebung wahr. Damit findet er mit Leichtigkeit seinen Weg auch durch das schwierigste Labyrinth.

Klicke auf den Pfeil rechts für Materialien!

Materialien

Für diese Mission brauchst du folgende Materialien:

  • BBC micro:bit V2
  • Micro-USB-Kabel
  • Rover-Bauteile: Räder, Platine mit Batterie, Ultraschallsensor und Stützelement
  • Computer mit Internetzugang
  • Kreuzschraubenzieher
  • verschiedene Gegenstände für das Labyrinth, z.B. Schachteln, Mappen oder Holzklötze (siehe Foto)

Wenn du alles vor dir liegen hast, kann es schon los gehen!

Viel Spaß!

Bauanleitung

Schritt 1

Zunächst bereitest du die Reifen für unseren Rover vor. Jeder Rover hat zwei Reifen. Ein Reifen besteht aus einer Felge und ihrem Gummireifen. Ziehe im ersten Schritt den Gummireifen vorsichtig über die Felge.

Schritt 2

Nun müssen die Reifen am Körper unseres Rovers angebracht werden. Siehst du die zwei blauen Bauteile auf der Rückseite deines Rovers? Sie sind mit jeweils drei Kabeln mit der Platine deines Rovers verbunden.

Dabei handelt es sich um zwei Servomotoren, die mit Motoren vergleichbar sind, die für Industrieroboter verwendet werden. Dieses Bauteil wandelt elektrische Energie in Bewegung um. Der Rover nutzt sie, um sich fortzubewegen.

Schritt 3

Befestige nun das Rad am Servomotor.

Pass auf! Das Rad lässt sich nur auf einer Seite mit dem Motor verbinden. Stecke dafür das größere Loch in der Mitte in den weißen Kontakt des Motors.

Fixiere das Rad mit einer Schraube am Motor, damit es sich in Bewegung nicht mehr löst.


Wiederhole diesen Schritt nun für das zweite Rad!

Schritt 4

Damit der Rover nicht gegen die Wand fährt, ist auf seiner Vorderseite ein Ultraschall-Sensor befestigt.

Dieser benutzt ein ähnliches Orientierungssystem wie Fledermäuse im Dunkeln. Anstatt mit den Augen zu sehen, senden sie Geräusche aus. Durch das Echo wissen sie, wie weit Dinge von ihnen entfernt sind.

Schritt 5

Der Rover soll geradeaus sehen können und muss gestützt werden. Dafür befestigst du das schwarze Stützelement auf der Unterseite des Rovers.

Hinter dem Sensor befinden sich zwei Löcher.

Stecke das Stützelement an den Körper des Rovers entlang des Sensors. Am einfachsten geht das, wenn du zuerst einen Stift in das Loch drückst. Die Stifte haben ihre richtige Position erreicht, wenn es Klick macht. Wenn das etwas schwierig ist, frage einen Erwachsenen, der dir hilft.

Schritt 6

Der Rover ist bereit und kann nun programmiert werden.

Programmierung

Jetzt kannst du deinen Rover programmieren. Er soll lernen, geradeaus zu fahren, ohne an Hindernisse zu stoßen.

Schritt 1

Gehe zuerst in die Kategorie „Variablen“ und erstelle eine neue Variable mit dem Namen „Grenze“. Sie steht für die Entfernung zu einem Hindernis, ab der dein Rover ausweicht.

Ziehe dann den Block „setze Grenze auf“ in die Klammer „beim Start“. Gib dann im weißen Feld die Zahl „5“ ein. Das bedeutet, dass sich der Rover einem Hindernis nur solange nähert, bis er 5 cm (Zentimeter) davon entfernt ist.


missimo-Tipp

Du kannst mit der Entfernung experimentieren. Ändere sie und beobachte, was geschieht!

Schritt 2

Du brauchst noch eine zweite Variable. Nenne diese Variable „Entfernung“. Das ist der Wert, den der Sensor des Rovers misst. Dieser Wert sagt dir, wie weit das nächste Hindernis entfernt ist. Dieser Wert ändert sich beim Fahren ständig. Ziehe die Variable „Entfernung“ deswegen in die Schleife „dauerhaft“.

Schritt 3

Nun steuerst du zum ersten Mal die Servomotoren des Rovers. Damit sie später richtig funktionieren, musst du sie zuerst in Startposition bringen. Gehe dafür in die Kategorie „Rover“ und hole dir zweimal den Block „Stoppe Servo links“. Ziehe die beiden Blöcke wieder in die Klammer „beim Start“.

Die beiden Servomotoren deines Rovers müssen einzeln gesteuert werden. Ändere dazu den unteren Block auf „rechts“.

Schritt 4

Der Rover weiß nun, was er beim Start machen soll. Als nächstes bringst du ihm bei, dass er immer geradeaus fahren soll, außer wenn er ein Hindernis erkennt. Da der Rover in Bewegung ist, benutzt er seinen Sensor ständig. Deswegen brauchst du jetzt die Klammer „dauerhaft“ aus der Kategorie „Grundlagen“.

Nun fragst du den Rover nach der Entfernung zum nächsten Hindernis, die er mit seinem Sensor misst. Dieser Wert bekommt die Variable „Entfernung“. Hole dazu aus der Kategorie „Variablen“ den Block „setze Entfernung auf 0“ und ziehe ihn in die Klammer „dauerhaft“.

Derzeit ist der Wert der Variable „0“. Um die Entfernung zum nächsten Hindernis in Zentimeter (cm) zu messen, brauchst du den Block „messe Entfernung in cm“ aus der Kategorie „Rover“. Ziehe den Block in das weiße Feld mit der „0“.

Schritt 5

Dein Rover soll nun wissen, ob er geradeaus fahren oder einem Hindernis ausweichen muss. Dazu brauchst du eine Bedingung aus der Kategorie „Logik“. Ziehe die Klammer „wenn wahr dann“ unter den letzten Block.

Schritt 6

Der Rover soll die beiden Variablen „Entfernung“ und „Grenze“ vergleichen. Der Rover soll so lange geradeaus fahren, bis die Entfernung zum Hindernis größer ist als 5 cm. Ziehe dafür einen eckigen Vergleich aus der Kategorie „Logik“ in das richtige Feld der Bedingung.

Als nächstes kommt die Variable „Entfernung“ in das erste weiße Feld des Vergleichs. Die Variable „Grenze“ kommt in das zweite weiße Feld. Ändere das Zeichen in der Mitte von „=“ zu „>“.

Wenn alles fertig ist, weiß der Rover, dass die Bedingung wahr ist, sobald die Entfernung zum Hindernis größer ist, als die Grenze.

Schritt 7

Drehung der Räder

Nun programmierst du die Bewegung der Räder. Dazu brauchst du wieder zweimal den Block „Servo links läuft mit 0 Prozent“ aus der Kategorie „Rover“. Ziehe sie in die erste Klammer der Bedingung. Danach änderst du noch den zweiten Block auf die Einstellung „rechts“, weil der Rover zwei Reifen hat. Dein Code sollte nun so aussehen:

Schritt 8

Geradeaus:

Rad 1 = links = positive Zahl
Rad 2 = rechts = negative Zahl

Beachte: Die Motoren sind spiegelverkehrt am Rover montiert. Soll der Rover geradeaus fahren, müssen sich beide Räder in die selbe Richtung drehen. Wie du auf dem Bild erkennen kannst, musst du dazu den rechten Motor auf einen negativen Wert einstellen.

Im nächsten Schritt lernst du, wie man die Geschwindigkeit von 0 % auf 40 % erhöht.

Schritt 9

Wie kannst du nun die Geschwindigkeit der Servomotoren bestimmen? Die schnellste Geschwindigkeit wäre 100 oder -100 Prozent. Stelle die Werte auf -40 und 40 Prozent. Das bedeutet, dass beide Servos mit 40 Prozent der schnellsten Geschwindigkeit fahren.

Beachte: Es kann manchmal vorkommen, dass ein Servomotor sich langsamer bewegt als der andere. Das führt dazu, dass der Rover nicht geradeaus fährt. Wenn das so ist, kannst du die Werte so anpassen, dass sich die Räder gleichmäßig drehen.


missimo-Tipp

Du kannst mit der Geschwindigkeit experimentieren. Ist die Zahl größer, fährt dein Rover schneller!

Schritt 10

Nun muss der Rover noch wissen, wie lang er die Servomotoren einschalten soll. Hole dir dafür den Block „pausiere (ms) 100“ aus der Kategorie „Grundlagen“ und stelle die Pause auf 200 ms (Millisekunden).

Der erste Teil der Bedingung ist nun fertig. Der Rover fährt weiter geradeaus, wenn die Entfernung zum nächsten Hindernis größer ist als 5 cm.

Schritt 11

Jetzt musst du dem Rover nur noch beibringen, Hindernisse zu umfahren. Er soll also wissen, was er machen soll, wenn die Variable „Entfernung“ kleiner als die Variable „Grenze“ ist. Dafür baust du jetzt den zweiten Teil der Bedingung.

Für ein Ausweichmanöver benötigst du wieder zweimal den Block „Servo links läuft mit 0 Prozent“. Ziehe sie in den zweiten Teil der Klammer. Stelle den unteren Block wieder auf „rechts“. Hänge auch hier wieder eine Pause von 200 ms an.

Schritt 12

Zur Wiederholung: Wenn der Rover nach vorne fahren soll, dann drehen sich beide Räder in die gleiche Richtung, also nach vorne. Die Prozentzahlen sind aber unterschiedlich, also einmal negativ und einmal positiv.

Damit der Rover sich dreht, müssen sich die zwei Räder in unterschiedliche Richtungen bewegen. Das bedeutet, ein Rad dreht sich nach vorne und das andere rückwärts. Die Prozentzahl ist aber gleich, beide sind positiv.

Drehung:

Rad = links: positive Zahl
Rad = rechts: positive Zahl

Schritt 13

Stelle für eine Drehung im unteren Teil der Bedingung beide Werte auf 40 Prozent.Dein Code sollte nun so aussehen:

Schritt 14

Zum Schluss soll der Rover noch einen kurzen Moment stehen bleiben, bevor er den Code von vorne durchgeht. So kann er die Entfernung genau messen und hat genug Zeit zum Nachdenken.

Dafür holst du dir wieder zweimal den Block „Stoppe Servo links“ aus der Kategorie „Rover“. Ziehe die beiden direkt unter die Bedingung. Stelle einen der beiden Blöcke auf „rechts“ ein. Hole dir jetzt noch den Block „pausiere (ms) 100“ aus der Kategorie „Grundlagen“. Damit weiß der Rover, wie lange er stehen bleiben soll. Platziere ihn am Ende deines Codes. Diesmal musst du den Wert „100“ nicht verändern.

Schritt 15

Herzlichen Glückwunsch! Dein Rover ist fertig programmiert. Dein Code soll nun so aussehen. Kontrolliere am Besten nochmal, ob alles passt!

Schritt 16

Zur Erklärung nochmal alles, was du für deinen Rover programmiert hast:

Gratuliere, du hast deinen Rover nun fertig gebaut und programmiert!
Lade dein Programm gleich auf den micro:bit und probiere es aus!

Schritt 17

Hast du deinen Code auf den micro:bit geladen, dann stecke ihn oben am Rover in den dafür vorgesehenen Anschluss.

Du kannst den Rover nun testen! Schalte dazu einfach den Einschaltknopf ein.

Gratuliere zum Bau des Rovers! Auf die Plätze, fertig, los!
Du hast jetzt alle Missionen von missimo: Deine Mission Morgen geschafft!


missimo-Tipp

Baue ein Labyrinth für den Rover!

Lernvideo

Das Lernvideo zu dieser Mission wird in Kürze online gestellt!

Hier die Auflösung als Editor-Projekt

Du kommst nicht voran?

Versuch es mal mit dem missimo-Glossar!

Du hast noch nicht genug?

Lehrkräfte finden hier weiterführendes Material und Zusatzaufgaben für den Unterricht.