NEPO Missions – Worum geht es?
Angelehnt an die ExoMars Mission 2022 der ESA geht es im Lernspiel NEPO Missions darum, Lebenszeichen bzw. Signaturen von Leben (Signatures of Life) auf dem Mars zu finden. Um den simulierten Mars-Rover ans Ziel zu bringen, werden Spieler*innen Stück für Stück an die Programmierung herangeführt. Dazu steht uns ein Mars-Rover zur Verfügung. Diesen nennt die ESA Rosalind Franklin – in NEPO Missions wird er kurz Rosa genannt. Dieser Rover hat verschiedene Sensoren zur Verfügung. Die Programmierung des Rovers erfolgt mit dem Roberta-Code-Editor.
NEPO Missions setzt auf das Konzept des visuellen Programmierens, das im Open Roberta Lab seit 2014 Kindern ab dem lesefähigen Alter den spielerischen Einstieg ins Programmieren ermöglicht. Per »drag and drop« werden die Blöcke der grafischen Fraunhofer-Programmiersprache »NEPO« zusammengesteckt und schließlich von realen oder simulierten Robotern und Mikrocontrollern ausgeführt.
Spiel des Monats bei Games Bavaria Digitales Spiel mit pädagogischem Potenzial SZ-Artikel
Eindrücke zur Mars-Mission
Du möchtest mehr über die geplante Mission und Rosas Namensgeberin erfahren?
Dann lohnt sich ein Besuch bei ESA Kids. Dort kannst du spannende Informationen finden und in einem Video wird dir gezeigt, wie aus der ersten Idee ein Rover wurde, der bereit für den Mars ist.
Lösungen zu den Aufgaben
Tipp: Klick auf die Bilder um die Musterlösungen zu vergrößern
- Du kannst den Roberta-Code-Editor mit dem Pfeil oben links ausklappen.
- Den Block »Solarpanele ausklappen« findest du, wenn du links auf die Kategorie »Aktion« tippst.
- Du kannst den Block mit dem Finger in die Programmierfläche ziehen. Versuche, ihn knapp unter den Startblock zu schieben, um ihn daran anzuhängen.
- Wenn der Block durchsichtig ist, ist er nicht mit dem Startblock verbunden. Versuche, ihn knapp unter den Startblock zu schieben, um ihn daran anzuhängen.
- Wenn du mehrere Blöcke in dein Programm einfügst, kannst du diese untereinander ziehen und genauso wie beim Startblock miteinander verbinden. Damit sie ausgeführt werden, muss der oberste Block mit dem roten Startblock verbunden sein.
- Den Block, um das Panoramabild aufzunehmen, findest du in der Kategorie »Sensor«.
- Du kannst dir die Aufgabenstellung noch einmal anschauen, wenn du rechts auf das Listensymbol unter dem Fragezeichen tippst. Dafür musst du die Hilfe erst schließen.
- Um am »Fahre«-Block einzustellen, wie weit Rosa fahren soll, kannst du entweder auf die Zahl im blauen »Zahlen«-Block tippen und die Zahl ändern, oder einen anderen blauen »Zahlen«-Block mit dem »Fahre«-Block verbinden.
- Du kannst dir die Aufgabenstellung noch einmal anschauen, wenn du rechts auf das Listensymbol unter dem Fragezeichen tippst. Dafür musst du die Hilfe erst schließen.
- Der »Drehe«-Block arbeitet mit Grad (°). Zum Beispiel ist 360° eine ganze Umdrehung des Rovers. 180° ist eine halbe Umdrehung. 90° ist eine Drehung zur Seite.
- Rosa rutscht auf dem sandigen Boden etwas und dreht sich deshalb nicht ganz exakt.
- In welche Richtung sich Rosa drehen soll kannst du ändern, wenn du auf die »Rechts«-Fläche im »Drehe«-Block tippst.
- Um zwischen den Steinen hindurch zu fahren kannst du erst 300 cm vorfahren und dich dann um 90° nach rechts drehen.
- Wenn du meinen letzten Tipp beachtet hast, kannst du anschließend 450 cm vorfahren und dich dann um 90° nach links drehen. Danach musst du nur noch 300 cm vorfahren.
- Blöcke, die leicht durchsichtig sind, sind nicht mit deinem Programm verbunden. Wenn sie zu deinem Programm gehören sollen, musst du sie erst richtig verbinden. Wenn du es doch vergisst, erscheint der Fehler »Fehlender Wert«.
- Um am »Fahre«-Block einzustellen, wie weit Rosa fahren soll, kannst du entweder auf die Zahl im blauen »Zahl«-Block tippen und die Zahl ändern, oder einen anderen blauen Block mit dem »Fahre«-Block verbinden, zum Beispiel eine Rechnung.
- In einer Rechnung sind zwei Lücken. In diese Lücken kannst du andere blaue Blöcke einfügen wie zum Beispiel einen »Zahl«-Block oder den Block »Pi«.
- Eine Rechnung addiert normalerweise zwei Zahlen aufeinander (Plus rechnen). Du kannst aber auch auf das »+« (Plus) tippen und eine andere Rechnung auswählen, wie zum Beispiel »-« (Minus) oder »*« (Mal).
- Beachte, dass wir im Mathe-Block nur Punkte und keine Kommas verwenden.
- Vergiss nicht die Räder auszuklappen, beide Bilder aufzunehmen und sie am Ende auch an den Orbiter zu schicken.
- Rosa fährt genau eine Umdrehung nach vorne, wenn du sie »3.14 * 28.5 cm« nach vorne fahren lässt. Dies kannst du mit einem »Rechnung«-Block in der Kategorie »Mathematik« programmieren.
- Du kannst die »Rechnung«-Blöcke auch ineinander verschachteln. Dafür kannst du statt einer Zahl einfach eine Rechnung in eine der Lücken einer anderen Rechnung ziehen. Damit kannst du die Rechnung Pi * 28.5 auch direkt mal 5 nehmen.
- Wenn dein Programm so groß ist, dass du es nicht mehr ganz sehen kannst, kannst du die dunkle Programmierfläche mit dem Finger und damit auch dein Programm verschieben. Pass aber auf, dass du dein Programm auch wiederfindest!
- Du kannst dir die Aufgabenstellung noch einmal anschauen, wenn du rechts auf das Listensymbol unter dem Fragezeichen tippst. Dafür musst du die Hilfe erst schließen.
- Rosa fährt genau eine Umdrehung nach vorne, wenn du sie »3,14 * 28,5 cm« nach vorne fahren lässt. Dies kannst du mit einem »Rechnung«-Block in der Kategorie »Mathematik« programmieren.
- Du kannst Schleifen in der Kategorie »Kontrolle« finden. Dort gibt es aktuell die »Wiederhole x mal«-Schleife.
- Schleifen sind besondere Blöcke, da man andere Befehls-Blöcke (z. B. Aktionen) im Inneren platzieren kann. Ziehe einen beliebigen Block dafür an die Verbindungsstelle neben dem »mache«-Text. Nur die Blöcke, die unter dieser Stelle angehängt wurden, werden wiederholt. Wenn die Wiederholungen fertig sind, geht es unterhalb der Schleife weiter.
- Vergiss nicht die Anzahl der Wiederholungen im »Wiederhole x mal«-Block anzupassen, indem du die blaue Zahl neben dem »Wiederhole«-Text anpasst oder den »Zahl«-Block ersetzt.
- Du kannst Schleifen in der Kategorie »Kontrolle« finden. Dort gibt es aktuell die »Wiederhole x mal«-Schleife.
- Sensor-Messungen sind keine Befehle, sondern Werte. Du kannst sie daher nicht einfach an dein Programm hängen, sondern musst sie mit einem Befehl verbinden. Dafür eignet sich zum Beispiel der »Speichere«-Block.
- Wenn du auf einer Strecke von 10 Metern alle 100 cm (1 Meter) misst, führst du 10 Messungen durch. Dies eignet sich gut für eine »Wiederhole x mal«-Schleife.
- Vergiss nicht, die Daten am Ende auch an den Orbiter zu senden.
- Um in das erste Feld zu fahren, solltest du 300 cm vorfahren. Drehe Rosa dann um 90 Grad nach rechts, um sie auf das zweite Feld auszurichten. Fahre dann 400 cm vor, um auf dem zweiten Feld zu landen.
- Die nächsten 6 Felder kannst du mit einer Schleife erreichen, indem du dich bei jedem Feld erst um 30° nach links drehst und dann 400 cm nach vorne fährst.
- Drehe dich nach der Schleife um 90° nach rechts und fahre dann 200 cm vor. Nun bist du im Zielbereich.
- Eine »Wiederhole bis«-Schleife hat keine Zahl, mit der man angeben kann, wie oft sie sich wiederholen soll. Stattdessen muss man mit ihr aus der Kategorie »Logik« einen »Vergleich«-Block verknüpfen.
- Ein »Vergleich«-Block steht für einen Vergleich von zwei Zahlen, der entweder wahr oder falsch sein kann. »2 ist größer als 4« ist zum Beispiel ein Vergleich, der falsch ist. »3 ist kleiner als 5« ist hingegen ein Vergleich, der wahr ist. Die »Wiederhole bis«-Schleife wird so lange wiederholt, bis der mit ihr verknüpfte Vergleich wahr wird. Dafür wird er vor jeder Wiederholung neu überprüft.
- Ein »Vergleich«-Block hat zwei Lücken, in die jeweils eine Zahl oder eine Sensormessung eingefügt werden kann. Dazwischen ist der sogenannte Vergleichsoperator. Die folgenden Vergleichsoperatoren gibt es: »=« (gleich), »!=« (ungleich), »>« (größer), »>=« (größer gleich), »<« (kleiner) und »<=« (kleiner gleich)
- Die »Wiederhole bis«-Schleife bietet sich dazu an, Rosa so lange vorfahren zu lassen, bis der Abstand zum nächsten Hindernis kleiner gleich 20 ist.
- In jeder Wiederholung sollte Rosa weniger als 20 cm vorfahren, damit sie auf keinen Fall den Stein rammt. Zum Beispiel ist 10 cm eine gute Schrittweite.
- Du kannst dir die Aufgabenstellung noch einmal anschauen, wenn du rechts auf das Listensymbol unter dem Fragezeichen tippst. Dafür musst du die Hilfe erst schließen.
- Fahre wie gewohnt in den markierten Kreis. Nutze dort das Neutron-Spektrometer. Der Block »gib Neutron-Spektrometer Skala-Wert« gibt einen Wert zwischen 0 und 10 zurück. Diesen kannst du mit einem Wert aus dem bekannten Mathe-Block vergleichen.
- Nach den Fahre- und Drehe-Blöcken sollte die bedingte Anweisung, also der »wenn-mache«-Block genutzt werden.
- Die bedingte Anweisung könnte wie folgt lauten: Wenn »gib Neutron-Spektrometer Skala Wert >= 5«, anschließend soll im »mache-Teil« der Bedingung der Wert des Neutron-Spektrometers gespeichert werden.
- Vergiss nicht, den Wert an den Orbiter zu schicken.
- Bei dieser Aufgabe muss sich Rosa nicht bewegen.
- Mit dem Block »gib ISEM Skala-Wert von Stelle« kannst du den Mastkopf und damit auch den Sensor an die gewünschte Stelle drehen.
- Zum Beispiel kannst du mit -300 im Parameterfeld »und cm rechts« den Mastkopf um 300 cm nach links drehen. Nutze den »gib ISEM Skala-Wert von Stelle« Block zusammen mit dem Logik-Block.
- Zusätzlich zur Drehung muss auch die Entfernung von Rosa bis zur Markierung angeben werden. Dies kann im Parameterfeld »cm vorne« eingetragen werden.
- Tipp: Die am weitesten entfernte Markierung ist 350 cm entfernt und die Abfrage im Logik-Block sollte >= beinhalten.
- Nicht vergessen, die Daten der PanCam nach jeder Messung an den Orbiter zu senden.
- Unter Initialisierung wird verstanden, dass der Sensor am Anfang des Programms auf Null gestellt wird.
- Um diese Aufgabe zu lösen, musst du den Logik-Block zusammen mit dem Sensor-Block »gib Drehung in Grad von NavCam« verwenden.
- Rosa kann sich weiter, oder zu kürzer als 90° drehen. In beiden Fällen kannst du den gemessenen Wert der NavCam von 90 abziehen. Da ein negativer Wert, z. B. -2, also wenn Rosa sich zu weit gedreht hat, den Rover nach links drehen lässt.
- Anschließend musst du noch nach vorne fahren.
- Um diese etwas komplexere Aufgabe zu lösen, nutzen wir zuerst das ISEM als Teil des Blocks »Wenn-Mache-Sonst«.
- Misst das ISEM einen Wert der größter als 5 ist (Wenn >=5), speichern wir diesen im mache-Teil des Blocks ab.
- Dann fahren wir 100 cm nach vorne und führen dort die Messungen mit dem Neutron-Spektrometer und dem Boden-Radar durch und speichern ebenfalls direkt die Werte.
- Tipp: Das Speichern der Werte nicht vergessen. Wenn das ISEM einen Wert < als 5 misst fahren wir einfach 100 cm weiter nach vorne. Diese Prozedur führen wir insgesamt 10 mal durch (10*100 = 10 Meter) Zum Schluss nicht vergessen, die Daten an den Orbiter zu senden.
- Nutze das Programm aus der letzten Aufgabe.
- Dieses Mal ist es wichtig darauf zu achten, dass die Werte erst dann gespeichert werden, wenn nach der Abfrage des ISEM-Sensors auch die beiden anderen Sensoren auf die gleiche Weise abgefragt werden und einen Wert >= 5 messen.
- Dies kann durch zwei verschachtelte wenn-mache-Blöcke erfolgen (verschachtelt bedeutet, ein wenn-mache-Block befindet sich in einem anderen wenn-mache-Block). Die zweite Variante ist, einen wenn-mache-Block zu nutzen und dort mit einem UND-Block zwei Mal abzufragen, ob die Sensor-Werte jeweils >= 5 sind.
- Also: Wenn »gib Boden-Radar Skala-Wert« >= 5 UND »gib Neutron-Spektrometer Skala-Wert« >= 5.
- Achte darauf, dass du nach gespeicherten Werten des Boden-Radars und des Neutron-Spektrometers die 100 cm zurück fährst, um den Wert des ISEM zu speichern.
- Lege dir drei Variablen an und benenne diese so, dass du direkt weißt, was sich hinter den Namen verbirgt. Zum Beispiel »radarWert«, »neutronWert«, »isemWert«. Variablen beginnen in der Programmiersprache NEPO nicht mit einem Großbuchstaben oder einem Sonderzeichen.
- Jetzt kannst du die angelegten Variablen einem Sensorwert zuweisen. Zum Beispiel Schreibe isem »gib ISEM Skala-Wert von Stelle«.
- Anschließend kannst du die Variable isem nutzten, um in der wenn-mache-Anweisung abzufragen, ob die Variable isem >= 5 ist.
- So gehst du auch bei den beiden anderen Sensoren bzw. Variablen vor.
- Durch die Nutzung von Variablen sparst du dir das Zurück- und anschließende wieder Vorfahren.
- Vergiss nicht die Variablen zu speichern und zum Schluss des Programms an den Orbiter zu senden.
- Lege dir wieder drei Variablen an, dieses Mal allerdings nicht für die Werte der jeweiligen Sensoren, sondern für den Vergleich des aktuellen Werts mit dem Maximalwert.
- Speichere alle drei Messwerte in der Variablen z.B. »aktuellerWert«. Anschließend erfolgt ein Vergleich, ob die Variable »aktuellerWert« größer als der Maximalwert ist. Ist dies der Fall, wird die Variable mit dem Maximalwert mit dem Wert aus der Variablen »aktuellerWert« überschrieben.
- Merke dir zudem, an welcher Stelle du den Maximalwert gemessen hast. Diese kannst du einfach dadurch speichern, in dem du den Wert der NavCam speicherst.
- Nachdem du alle 15 Werte gemessen hast, fahre zurück bis zu der Stelle, an der du den Maximalwert gemessen hast. Dies kannst du leicht durch folgende Rechnung vornehmen: 1600-gespeicherte Stelle der NavCam.
- Jetzt muss nur noch der Bohrer aufgerichtet werden. Danach kannst du den Befehl zum Bohren geben und die Bodenprobe untersuchen lassen. Das Ergebnis muss anschließend an den Orbiter geschickt werden.
Möglichmacher
Herausgeber
Motivierend, nachhaltig und praxisnah: Die Roberta-Initiative nimmt den Nachwuchs mit in die digitale Welt. Seit 2002 schult das Bildungsprogramm des Fraunhoer IAIS Lehrkräfte mit dem gendergerechten Roberta-Kurskonzept und hat damit bisher über 550 000 Schüler*innen in Deutschland erreicht. Ein deutschlandweites Netzwerk aus Partner-Institutionen, sowie die technologische Weiterentwicklung »Open Roberta« runden das Angebot ab.
Förderer
Google.org unterstützt innovative Nonprofit-Organisationen mit Fördermitteln, Technologien und Manpower, um komplexe gesellschaftliche Herausforderungen zu lösen und allen Menschen Zugang zur Digitalwirtschaft zu ermöglichen. Wir unterstützen dieses Projekt durch die Google.org Impact Challenge, die lokalgemeinnützige Innovatoren und soziale Unternehmen dabei unterstützt, ihre Gemeinschaft – und ihre Umgebung darüber hinaus – zu einem noch besseren Ort zu machen. Für dieses Projekt stellt Google.org 250.000€ an Fördermitteln zu Verfügung.
Mitwirkende
Mit rund 15 Jahren Erfahrung und über 12 veröffentlichten Spielen entwickelt und designt Gentle Troll Serious Games für Mobilgeräte, Web und PC und nutzt ihr Potenzial zur Vermittlung von Wissen und Informationen. Mit viel Lernspaß, aber ohne erhobenen Zeigefinger können Spiele komplexe Zusammenhänge vermitteln, zum Experimentieren einladen und selbst Fehlschläge erlauben.
Gentle Troll entwickelt Spiele mit fesselndem Gameplay und mitreißenden Geschichten, die aus dem Alltag entführen, neue Perspektiven aufzeigen und auch gerne zum Nachdenken anregen.