Seit zwei Jahren setzen wir bei unserem Schulaktionstag „Reise durch die Mediengalaxie“  verschiedene kleine Roboter ein, die auf dem Tablet mit Blockly, einer blockbasierten Programmiersprache, programmiert werden können. Über unsere Erfahrungen mit verschiedenen Apps und Robotern habe ich im Artikel „Mit Robotern programmieren lernen“ berichtet.

Für unseren Projekttag „Flucht nach Utopia“ im Rahmen des Codeweek Award wurde es nun erforderlich, Roboter zu finden, die mehr Möglichkeiten der Programmierung bieten. Zentraler Bestandteil des Projekts ist ein Alternate Reality Game, bei dem Schüler_innen mittels Umprogrammierung von Robotern einen Code finden müssen, der sie zum Ziel führt. Da der Projekttag mit 5. und 6. Klassen durchgeführt wird, kam eine komplexe Sprache wie Arduino, auf der sehr viel Hardware im Roboterbereich beruht, nicht in Frage. Vielmehr wollten wir hier die ebenfalls blockbasierte Programmiersprache Scratch einsetzen, bei der der Einsteig sehr niedrigschwellig ist, die aber auch Fortgeschrittenen komplexe Möglichkeiten bietet.

Wir entschieden uns für den mBot von Makeblock, der beide dieser Bedingungen erfüllt: er ist modular aufgebaut und kann um zahlreiche Motoren, LED-Anzeigen und Sensoren erweitert werden. Programmiert wird er am Desktoprechner mit mBlock, einer Software, die auf Scratch basiert, zusätzlich aber noch die Blöcke enthält, mit denen der mBot gesteuert wird. Die Verbindung mit dem PC läuft entweder über Bluetooth oder über Wifi. Die Wifi-Verbindung wird dabei über ein mit dem Modul mitgelieferten USB-Dongle aufgebaut, so dass kein vorhandes WLAN genutzt werden muss. Die Verbindung per Wifi hat sich als sehr viel stabiler erwiesen als per Bluetooth. Wer allerdings den mBot auch mit einer Tablet-App steuern will, ist zwingend auf das Bluetoothmodul angewiesen.

Der mBot kostet ca. 80 Euro und wird als Bausatz geliefert, der in weniger als einer Stunde zusammengebaut ist. Gelötet werden muss dabei nicht. Er verfügt über zwei Motoren, die die Räder antreiben, einen Ultraschall-Annäherungssensor, einen Linefollower-Sensor, einen Lichtsensor, einen Infrarotsender und -empfänger und verschiedene LEDs. Schon damit lassen sich relativ komplexe Steuerungen programmieren. Für den mBot lassen sich dann eine Reihe Zusatzmodule erwerben. Unsere mBots haben wir zusätzlich noch mit Servomotoren, die z.B. einen Roboterarm bewegen können, einer LED Matrix, auf der einfache Zeichnungen, Symbole und Laufschrift eingeblendet werden können und zusätzlichen Ultraschallsensoren, die dem MBot die Orientierung im Raum erleichtern, ausgerüstet. Die Module und Motoren kosten zwischen 5 und 20 Euro. Nachteilig ist, dass für zusätzliche Module lediglich vier Ports am mBots bereitstehen, damit ist die Funktionalität etwas eingeschränkt. Im Nachfolgemodell mBot Ranger, der allerdings auch 140 Euro kostet, können bis zu zehn Ports frei belegt werden.

Die auf Scratch basierende Software mBlock wird von Makeblock kostenlos zum Download für Windows und Mac OS angeboten. Die Programmierung mit mBlock ist schnell erlernbar. Per Drag und Drop werden Blöcke mit verschiedenen Programmbefehlen aneinandergereiht. In einem ersten Schritt könnten damit beispielsweise Tasten mit verschiedenen Roboterfunktionen belegt werden: Vorwärtsfahren, Links-Rechtsdrehen, Rückwärtsfahren, Servomotoren/Roboterarme bewegen und LEDs an- und ausschalten. Sehr schnell lässt sich so eine eigene Fernbedienung für den mBot programmieren.

mBlock mit den Blöcken, die für die Programmierung des mBot zur Verfügung stehen

Komplexere Programme entstehen, wenn die Sensoren des mBot mit einbezogen werden. Beim Über- oder Unterschreiten eines Sensorwerts werden dann automatisch verschiedene Programmabläufe gestartet. Beispielsweise wird der Annäherungssensor so programmiert, dass er verhindert, dass der mBot gegen Hindernisse fährt. Sobald der Abstandswert eine bestimmte Größe unterschreitet, stoppt der Roboter, dreht sich vom Hindernis weg und fährt erst dann weiter. So kann er sich autonom durch ein Labyrinth bewegen. Die Linefollower-Sensoren reagieren auf die Helligkeit des Untergrunds, damit kann der mBot entweder vorgegebene Linien abfahren oder z.b. bei Überschreiten einer Markierung umdrehen und zurückfahren. Mittels Lichtsensor kann ein Lasertag-Game programmiert werden: trifft den mBot ein Lichtstrahl, den ein anderer mBot aussendet, wird dies als Treffer registriert und auf der LED-Matrix angezeigt. Über den integrierten Infrarot-Empfänger und den Sender lassen sich auch Signale zwischen den mBots senden, die dann vorher programmierte Befehle auslösen. Zahlreiche weitere Sensoren wie ein Kompass, ein Soundsensor, ein Gyroskop und sogar ein Flammensensor vervielfachen die Kombinationsmöglichkeiten.

Beispielcode: Nähert sich der mBot einem Hindernis auf 10 cm Entfernung wird der Roboterarm über den Servomotor bewegt.

Das mBlock-Board basiert auf Arduino. Das gestattet es, den mBot auch mit Arduino zu programmieren, im mBlock-Programm kann wahlweise zwischen Scratch und Arduinocode umgeschaltet werden.

Die vielfältigen Verwendungsmöglichkeiten und vor allem die Eignung für unterschiedliche Zielgruppen machen den mBot ideal für medienpädagogische Projekte. Von der Nutzung einer Remote-App über die blockbasierte Programmierung am Tablet mit mBlockly, bzw. der Programmierung mit Scratch am PC bis hin zum Coden in Arduino finden sich Einsatzmöglichkeiten wie auch für Teilnehmer_innen mit vorhanden Programmierkenntnissen. Zudem lässt sich der mBot durch zahlreiche Module erweitern und ist im Vergleich mit anderen Robotern wie den oft eingesetzten Lego Mindstorms auch noch sehr günstig. Die Motivation, sich mit komplexen und teilweise sehr abstrakten Programmbefehlen auseinanderzusetzen, ist ungleich größer, wenn nicht nur für den „Bildschirm“ programmiert wird, sondern die Auswirkungen direkt in der physischen Welt sichtbar werden.