Skip to content

Posts tagged ‘programmierung’

mBots – Roboter mit Scratch programmieren

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.

Mit Robotern Programmieren lernen

Seit einigen Monaten sammeln wir (mein Verein Metaversa e.V.) nun Erfahrungen mit unseren beiden kleinen Robotern Sphero und Dash. Zum Einsatz kamen sie bisher vor allem bei unserem Schulprojekttag Reise durch die Mediengalaxie, bei dem 10-12jährige Schüler_innen einen Spielparcours mit kleinen Medienaktionen gestalten, aufbauen und dann für Eltern-Kind-Teams durchführen. Die Aktionsbasis „Roboter programmieren“, die sich immer großer Beliebtheit erfreut, hat das Ziel, einen kleinen Einblick in die Computerprogrammierung zu geben. Die Spielteams erhalten dabei die Aufgabe in 3-5 Minuten am Tablet einen der beiden Roboter so zu programmieren, dass er einen kleinen Parcours abfährt. Es spricht für die verwendeten Apps, dass dies selbst in dieser kurzen Zeit gut machbar ist.

sphero_mediengalaxie

Sphero im Einsatz bei der Reise durch die Mediengalaxie

Der Dash von Makewonder

Der Dash von Makewonder

Auch wenn die Diskussion, ob alle Schüler_innen programmieren lernen müssen, gerade sehr kontrovers geführt wird, finde ich es aus medienpädagogischer Perspektive wichtig und nötig, zumindest das Grundkonzept von Software und Algorithmen zu kennen auch ohne Programmcode beherrschen zu müssen. Das Einbeziehen von physischen programmierbaren Objekten wie z.B. dem Sphero oder dem Dash bietet dabei eine gute Chance, auch wenig lese- und schreibfreudige Kinder zu motivieren, sich mit ersten Codezeilen auseinanderzusetzen und im besten Fall noch ihr Englisch zu erweitern.

Der Sphero ist eine weiße Plastikkugel, die im Inneren über einen steuerbaren Motor und verschiedene Lampen verfügt. Damit kann er in beliebige Richtungen rollen. Einzige eingebaute Sensoren sind ein Gyroskop und ein Beschleunigungssensor (Accelerometer), die registrieren, wie der Sphero bewegt wird und ob er beispielsweise auf ein Hindernis getroffen ist. Der Dash sieht nach den Vorstellungen der Schüler_innen schon sehr viel mehr nach einem richtigen Roboter aus. Außer sich bewegen, kann er den „Kopf“ drehen, mehrere farbige Lampen aktivieren und Geräusche machen. Er verfügt über ein Mikrophon, Annäherungsensoren vorne und hinten und ebenfalls einen Beschleunigungssensor. Bis zu vier Buttons am Kopf können mit verschiedenen Funktionen belegt werden.

Für beide Roboter gibt es Apps für iOS und Android, mit denen sie remote gesteuert werden können. Die Verbindung funktioniert über Bluetooth. Für unsere Zwecke nutzen wir aber Apps, die eine einfache visuelle Programmiersprache ähnlich wie „Scratch“ verwenden, um dem Roboter verschiedene Handlungsabläufe beizubringen. Der Programmcode wird in der App per Drag und Drop kleiner Blöcke zusammengestellt. Der Dash verwendet dazu „Blockly„, eine von Google entwickelte visuelle Programmiersprache. Beim Sphero hat der Hersteller dafür eine eigene, aber sehr ähnliche Lösung gefunden und in der App „SPRK“ implementiert. Für Scratch gibt es Erweiterungen mit denen der Sphero aus Scratch heraus ansteuerbar ist. Getestet habe ich das mit der Scratch Helper App S2Bot. Leider hat Scratch die Befehle nicht richtig umgesetzt.

App "Blockly" zur Programmierung des Dash

App „Blockly“ zur Programmierung des Dash

App "SPRK" zur Programmierung des Sphero

App „SPRK“ zur Programmierung des Sphero

Für beide Roboter gibt es noch die aus einem Kickstarter Projekt hervorgegangene App Tickle (leider nur für iOS). Die App ist kompatibel mit verschiedenen Geräten u.a. auch Arduino Beans und bietet die Möglichkeit auch ohne physische Devices kleine Programme wie beispielsweise Animationen zu erstellen. Verwendet wird bei Tickle eine eigene Programmiersprache angelehnt an Blockly und Scratch.

App "Tickle" (nur für iOS)

App „Tickle“ (nur für iOS)

Das schöne allen drei Apps ist, dass sie sehr gut skalierbar sind. Einsteiger programmieren erst einmal einfache Bewegungsabläufe oder verschiedene Lichteffekte. Fortgeschrittene können mit Hilfe der Sensoren verschiedene Reaktionen auf bestimmte Ereignisse hinzufügen und Schleifen einfügen und werden so mit den Grundprinzipien des Programmierens vertraut gemacht.

Im direkten Vergleich gewinnt sowohl bei den Schüler_innen als auch bei uns der Dash gegen den Sphero. Bei den Schüler_innen vor allem wegen des roboterartigen Aussehens und den Geräuschen. Auch die Orientierung ist besser, da der Sphero aufgrund seiner Form zunächst kein sichtbares Vorne und Hinten hat und immer wieder neu vor jeder Fahrt per App ausgerichtet werden muß. Für uns war der Dass bisher einfach zuverlässiger. Der Sphero verlor öfter seine Bluetoothverbindung, die manchmal erst nach Neustart des Tablets wieder funktionierte.

Ein paar Vorteile hat aber auch der Sphero. Die Programmierung kann sehr viel komplexer erfolgen. Wer bereits Scratch behrerrscht, kann hier direkt den Sphero per Scratch nutzen. Mit Hilfe seiner Sensoren kann er auch als Controller für verschiedene Spiel-Apps verwendet werden. Beim Sphero gibt es außerdem noch kleine Spiel-Apps, die aus dem Sphero per Augmented Reality im Kamerabild einen Biber oder auch Zombie-Shooter machen. Kleine Spielereien, die aber zeigen, was noch möglich ist. Und auch der etwas geringere Preis von 120 Euro gegenüber 180 Euro beim Dash spielen  eine Rolle.

App "Sharks" für den Sphäre. Aus der weißen Kugel wird per Augmented Reality ein Biber

App „Sharks“ für den Sphäre. Aus der weißen Kugel wird per Augmented Reality ein Biber

Noch nicht zum Einsatz gekommen ist unser dritter Roboter, ein mBot von Makeblock. Grund war vor allem, dass es derzeit noch einen Desktoprechner braucht, an dem der mBot programmiert werden muss und die mBlock-Software (basierend auf Scratch) hier noch nicht so userfreundlich wie die Apps des Sphero oder Dash sind. (Update: Für iOS gibt es mittlerweile eine Programmierapp für den mBot: mBlockly) Dafür ist sie allerdings kompatibel mit Arduino und bietet einen Einstieg ins Arduinouniversum. Der mBot ist außerdem modular aufgebaut und kann durch diverse elektronische Bauteile, Displays, Motoren und Sensoren erweitert werden.

Eine Erweiterung unser Roboterflotte streben wir an. Es gibt einige heiße Favoriten auf der Wunschliste:

  • die Parrot Minidrone Rolling Spider ist bereits auf dem Markt und ebenfalls über die App Tickle ansteurbar. Mit dem üblichen Nachteil, dass der Drohnenakku kaum 8 Minuten durchhält und dann eine Stunde aufgeladen werden muss.
  • die Tinkerbot Baukästen sind bereits demnächst erhältlich, allerdings verhältnismäßig teuer
  • Ozobot, klein aber fein

Als sehr spannende Kickstarter Projekte laufen außerdem gerade:

  • Robo Wunderkind, die ähnlich programmierbare Bausteine anbieten wie Tinkerbot
  • der Dobot, ein programmierbarer Roboterarm, der stark an die Fertigungsstraßen in Autofabriken erinnert, der aber auch schreiben und malen kann
  • die Cannybots, programmierbare Spielzeugautos, die Rennen gegeneinander austragen können

Fazit: Sowohl die Teilnehmer_innen (Kinder wie auch Erwachsene) als auch wir hatten bisher viel Spaß mit den Robotern. Zuverlässigkeit und geringe Einstiegshürden trugen dabei wesentlich zum erfolgreichen Einsatz auch in Projekten mit jüngeren Schüler_innen bei. Vorkenntnisse sind dabei nicht erforderlich, um bereits in wenigen Minuten zu sichtbaren Lernerfolgen und Erfolgserlebnissen zu kommen.

Ich freue mich über weitere Vorschläge für Roboter und Erfahrungsberichte in den Kommentaren.

Scratch – Programmieren mit Kindern

Eine große Empfehlung aus zahlreichen Gründen erhält von mir das Programm „Scratch“ des MIT Media Lab.

Zitat von der Webseite: „Scratch ist eine neue Programmiersprache, die es dir ermöglicht, deine eigenen interaktiven Geschichten, Animationen, Spiele, Musikstücke und Kunstwerke zu erstellen und sie im Internet zu veröffentlichen.

Scratch wurde entwickelt um jungen Leuten (ab 8 Jahren) zu helfen, Fähigkeiten aus dem 21. Jahrhundert zu entwickeln. Beim Erarbeiten von Scratch-Projekten lernen diese jungen Leute wichtige mathematische Prinzipien kennen, während sie gleichzeitig ein tieferes Verständnis für den Designprozess entwickeln. “

Ich habe es gerade getestet …und sofort verstanden;-)) Kinderleicht sozusagen! Und hier die die weiteren absoluten Pluspunkte:
– in verschiedenen Sprachen erhältlich
– für Windows UND MAC
– kostenlos