Tutorium – Mario Kart

Hallo liebe Technikfreunde!

Im folgenden Beitrag wollen wir euch einen kleinen Einblick in das Tutorium „Lego Mindstorms: Mario Kart“ geben, welches im Rahmen der Ausbildung zum Fachinformatiker für die Jahrgänge 2012/13 an den Start ging.

Wer arbeitet daran, welche Technik kommt zum Einsatz und was ist eigentlich das Ziel des Ganzen? Mehr dazu jetzt!

Im Oktober 2014 ist das Projekt “Lego Mindstorms: Mario Kart” gestartet. Die Idee dahinter ist, dass die IT-Azubis von OTTO an jedem Freitag, alle zwei Wochen für ein gemeinsames Projekt zusammenfinden, um Synergien zu nutzen und zudem Inhalte, welche die Berufsschule nicht liefernUnbenannt kann, gezielt zu kompensieren. Unser Team besteht aus insgesamt sieben IT’lern aus dem 2. und 3. Lehrjahr und bildet einen Mix aus Anwendungsentwicklern sowie Systemintegratoren. Betreut wird das Projekt von Christian Finckler.

Die Idee hinter dem Projekt sieht wie folgt aus: Angelehnt an Nintendos erfolgreichen Funracer Mario Kart (http://de.wikipedia.org/wiki/Mario_Kart) soll ein auf die Realität übertragenes Rennspiel konzipiert und entwickelt werden. Mindestens zwei Spieler werden gegeneinander ein Rennen fahren und sich mittels diverser Gadgets gegenseitig beeinflussen können. Gesteuert werden die Roboter über eine App für Android-Smartphones. Die Spiellogik und Kommunikation wird mittels eines NodeJS-Servers verwaltet, der auf einem Raspberry Pi läuft.

Mit der Android App hat der User die Möglichkeit, eines der Fahrzeuge auszuwählen und es dann zUnbenannt1u steuern. Weiter angedacht ist zudem die Integration von Powerups, welche dem Vorbild des virtuellen Originals entsprechen sollen. Diese werden im Interface angezeigt und können auf Knopfdruck abgefeuert werden. Das Interface beinhaltet neben je einen Button für Beschleunigen und Bremsen auch ein „D-Pad“ für die Richtungssteuerung, eine Geschwindigkeitsanzeige sowie die vertrauten, doch in der aktuellen Konsolengeneration abgelösten Buttons „Start“ und „Select“.

Unbenannt2Die mit Lego realisierten Karts verfügen neben einem Motor für die Beschleunigung und Steuerung zusätzlich über Sensoren, um den Untergrund zu scannen und so auf Kurs zu bleiben (Stichwort: Streckenbegrenzungen, Start/Ziellinie sowie Markierungen für PowerUps). Die Programmierung erfolgt mittels Java und Lejos (http://www.lejos.org/). Das Fahrzeug besitzt selbst keine Intelligenz, sondern empfängt lediglich die Steuersignale vom Server und schickt diesem wiederum seine Daten wie Geschwindigkeit, ggf. „Position“ oder PowerUp.

Der auf dem Raspberry Pi laufende NodeJS-Server erhält Unterstützung von einer MongoDB-Datenbank und koordiniert ebenfalls die Kommunikation zwischen Apps und den Fahrzeugen.

Die Kommunikation erfolgt mittels Websockets. Sowohl die Fahrzeuge als auch die Android-Apps melden sich beim Server an und der Server verteilt die Nachrichten entsprechend weiter.

Die Umsetzung dieses Projekts läuft seit Oktober 2014 und wird noch bis Mai 2015 andauern.

Natürlich gab es bis zum jetzigen Stand ein paar Hürden zu nehmen. So war zum Beispiel die Android-Programmierung für fast jeden im Team, ein geschlossenes Buch. Mit Hilfe von Forenbeiträgen und Google Marathons konnte es geöffnet und mit der Unterstützung von Christian Finckler und Lennart Bartelt gelesen und verstanden werden. Eine weitere Herausforderung war, daß jedes Teammitglied auch in jedem Bereich sein Wissen anwenden und ausbauen kann. Mittels regelmäßiger Stand-Ups hielten wir uns gegenseitig auf dem Laufenden und mit wechselnden Pairing Partnern sorgten wir dafür das keine Wissensinseln entstanden.

Über Fragen, Anregungen oder Kommentare würden wir uns freuen!

Sobald wir den nächsten Meilenstein erreicht haben, werden wir sicher wieder von uns hören lassen.