Auf dieser Seite haben wir einen Überblick über die verschiedenen Programmiersprachen zusammengestellt, mit denen ihr euren EV3-Roboter programmieren könnt. Bei der WRO gibt es keine Einschränkungen welche Roboter oder Programmiersprachen ihr verwendet. Ihr könnt euch also für die Sprache entscheiden, die euch am besten gefällt und mit der ihr am besten programmieren könnt.
Die LEGO Classroom Software ist die Programmiersprache, die mit den EV3 (*) und SPIKE Prime Robotern ausgeliefert wird. Was aber, wenn diese nicht ausreichen, andere Funktionen gewünscht sind oder auch einfach mal etwas Neues ausprobiert werden soll? Gibt es noch andere Programmiersprachen? Sowohl visuelle, als auch textuelle? Was haben diese für Vor- und Nachteile, sind alle gleichermaßen für Anfänger geeignet und worauf sollte bei der Auswahl geachtet werden? Diese Übersicht gibt einen Einblick in die Welt der Programmiersprachen für EV3-Roboter und beantwortet häufig gestellte Fragen.
(*) LEGO hat den Verkauf des MINDSTORMS EV3 Roboter im Sommer 2021 eingestellt und den SPIKE Prime als Nachfolger platziert. Bei der WRO wird der EV3 aber weiterhin erlaubt sein.
Grafische Programmiersprachen, zum Beispiel auf Basis von Blöcken (LEGO Classroom, NEPO, Scratch), eignen sich gut für den Einstieg in die Roboterprogrammierung. Sie besitzen eine reduzierte Komplexität, Syntaxfehler sind nicht möglich und durch eine vereinfachte Entwicklungsumgebung ist ein Fokus auf die wichtigen Funktionen möglich. Wer noch gar keine Programmiererfahrung hat, kann mit diesen grafischen Programmiersprachen schnelle Erfolge erzielen. Wer schon erste Erfahrung hat, komplexere Programme umsetzen möchte oder einfach mal etwas Neues ausprobieren will, der sollte den Schritt Richtung textbasierter Programmierung wagen.
Die LEGO Classroom Software ersetzt die bisher meist genutzte Software EV3-G, welche nicht mehr mit Updates vorsorgt wird. Sie ist in zwei unterschiedlichen Varianten für den SPIKE Prime und den EV3 verfügbar. Es handelt sich um eine grafische Programmiersprache, in denen die Befehle in Form von Blöcken von oben nach unten aneinandergereit und chronologisch ausgeführt werden. Optisch ist die Software an die Programmsprache Scratch angelehnt und daher für Kinder und Jugendliche einfach versändlich.
Wichtiger Hinweis: LEGO hat angekündigt, dass die EV3-G Software nicht weiter mit Updates versorgt wird. Auf dem Apple Betriebssystem kann sie seit der Version "Catalina" nicht mehr genutzt werden. Unter Windows ist eine Nutzung vorerst weiterhin möglich, wird von LEGO aber nicht weiter unterstützt. (Stand: 18.01.2021)
EV3-G ist die visuelle Programmiersprache für den LEGO Mindstorms EV3. Der Vorgänger heißt NXT-G und war speziell für den LEGO Mindstorms NXT zugeschnitten. Die Sprache basiert auf Blöcken, die von links nach rechts miteinander verbunden werden, um auf diese Weise Programme zu erstellen. Die Farbgebung und die Symbole machen eine Unterscheidung der verschiedenen Blöcke einfach. Die Entwicklungsumgebung ist ebenfalls einfach zu bedienen, was die Übertragung von Programmen auf den EV3-Roboter sehr einfach gestaltet. Eine direkt angebundene Community gibt es nicht. Beispiel- Programme müssen aus dem Internet heruntergeladen oder über Datenträger getauscht werden. Dennoch gibt es zahlreiche Hilfeseite und Foren, die bei Fragen weiterhelfen.
Mit der Open-Source-Programmiersprache NEPO, welche die Roberta-Initiative des Fraunhofer IAIS mit Unterstützung von Google.org entwickelt hat, entstehen im Handumdrehen einfache sowie anspruchsvolle Programme für unterschiedliche Roboter. Die NEPO-Programmierblöcke lassen sich nach dem Baukastenprinzip im Open Roberta Lab via "drag and drop" zusammensetzen: von den ersten einfachen Schritten bis hin zur Programmierung smarter Roboter mit vielerlei Sensoren und Fähigkeiten – im Lab sind der Kreativität keine Grenzen gesetzt. Eine Source-Code-Ansicht erleichtert das Verständnis textbasierter Programmiersprachen wie JAVA oder Python.
Die Plattform kann auf lab.open-roberta.org jederzeit ohne Installationsaufwand von jedem Gerät mit gängigen Internetbrowser kostenfrei genutzt werden – egal ob auf PC, Mac oder Tablet. So werden die technischen und fachlichen Hürden sowohl für Lehrkräfte als auch für Schülerinnen und Schüler und den Programmier-Nachwuchs weltweit minimiert. Das Lab bietet zudem die Möglichkeit, NEPO-Programme über die Galerie mit der Welt zu teilen.
Das Open Roberta Lab ist in unterschiedlichen Sprachen verfügbar und unterstützt stetig mehr Roboter- und Hardware-Systeme. Den Einstieg ins spielerische Programmieren erleichtert die Roberta-Initiative des Fraunhofer IAIS zudem mit zahlreichen kostenfreien Lernmaterialien sowie unterhaltsamen Video-Tutorials: roberta-home.de
Bei der Teilnahme am Wettbewerb muss das entsprechende Regelwerk beachtet werden.
Mit Scratch 3 ist am 02. Januar 2019 die neuste Version der beliebten grafischen Programmiersprache veröffentlicht worden. Anders als die grafische Sprache EV3-G, wird Scratch von oben nach unten programmiert, wie das aus textbasierten Sprachen bekannt ist. Die Entwicklungsumgebung ist, wie Scratch auch, einfach gehalten und bietet sich für den Einstieg in die Programmierung des LEGO Mindstorms EV3 an. Neu in Version 3 ist, dass Scratch vollständig offline und auf Tablets funktioniert. Scratch 3 ist hervorragend für Einsteiger geeignet, die nicht mit der Sprache EV3-G starten möchten.
LeJOS ist die wohl bekannteste Plattform für Java-Programmierung auf EV3-Robotern. Unter anderem wird der LEGO Mindstorms EV3 unterstützt. Die Sprache basiert auf Java, ist also textbasiert und nutzt das bei textbasierten Programmiersprachen übliche Konzept, Anweisungen von oben nach unten aufzuschreiben. LeJOS ist darauf angewiesen, dass die Firmware des LEGO Mindstorms EV3 ausgetauscht und gegen eine eigene ersetzt wird. Darüber hinaus sind die einsetzbaren Entwicklungsumgebungen komplexer, zum Beispiel beim Einsatz von Eclipse, bieten aber auch deutlich mehr Funktionen an. Programme können aus Eclipse heraus übertragen werden. Zudem ist die Community rund um Java, LeJOS und Eclipse sehr groß. Unterstützung im Internet zu finden sollte kein Problem darstellen. Die Entwicklung mit LeJOS ist sicherlich komplexer, wenngleich auch umso mächtiger im Vergleich zu blockbasierten Sprachen wie EV3-G. Für komplette Einsteiger ist sie daher nicht zu empfehlen.
MonoBrick kann gut mit LeJOS verglichen werden. Anstatt Java als Programmiersprache kommt C# zum Einsatz. Ebenfalls mit einer Unterstützung für den LEGO Mindstorms EV3. C# ist textbasiert und wird, wie üblich, von oben nach unten geschrieben. Wie LeJOS ist MonoBrick ebenfalls darauf angewiesen, dass die Firmware des LEGO Mindstorms EV3 ausgetauscht wird. Zusätzlich gibt es noch eine Bibliothek zur direkten Steuerung eines EV3-Roboters. Hier ist aber Vorsicht zu walten: Diese Art der Steuerung wird in der Regel nicht als autonom eingestuft, so dass die Teilnahme an Wettbewerben damit oftmals nicht möglich ist. Als Entwicklungsumgebung bietet sich Visual Studio in der kostenfreien Community Edition an. Die Komplexität ist mit Eclipse vergleichbar. Die Community rund um C# und Visual Studio ist ebenfalls groß, so dass es nicht schwer ist, Hilfe zu finden. Aktuell gibt es Probleme beim direkten Übertragen von Programmen auf den EV3-Brick. Manuell ist das aber immer noch möglich. C# ist auf der gleichen Komplexitätsstufe wie Java und ebenso mächtig. Wir würden die Sprache und die Umgebung daher für komplette Einsteiger nicht empfehlen.
Die Abkürzung c4ev3 bedeutet, frei übersetzt, „C für den EV3“. C ist eine Programmiersprache, die auch heute noch in der Wirtschaft zum Einsatz kommt. Anders als bei LeJOS oder MonoBrick laufen die durch c4ev3 erzeugten Programme nativ auf dem EV3-Brick. Das bedeutet, dass die Firmware nicht ausgetauscht werden muss. Ein Programm auf den Brick zu übertragen reicht vollkommen aus. Als Entwicklungsumgebung kommt, unter anderem, Eclipse in Frage. Die Community ist relativ groß, Unterstützung sollte aber dennoch nicht weit sein. C gilt nicht gerade als Einsteigersprache, auch wenn es sicherlich möglich ist. Wir bewerten sie ähnlich zu Java und C#. Die Erlernbarkeit der Programmiersprache ist schwer zu verallgemeinern. Für komplette Einsteiger ohne Vorwissen würden wir c4ev3 aber dennoch nicht empfehlen.
EV3 Basic ist eine textbasierte Programmiersprache mit eigener Entwicklungsumgebung. Die Sprache ist eine Abwandlung bzw. Vereinfachung der von Microsoft entwickelten Sprache BASIC. Daraus wurde, als Lernsprache, Small Basic konzipiert. Die Community hat dann eine Erweiterung für Small Basic zur Programmierung eines LEGO Mindstorms EV3 programmiert, woraus EV3 Basic entstanden ist. Die Sprache gilt daher als sehr einsteigerfreundlich und eine gute Möglichkeit, in die textbasierte Programmierung einzutauchen. Die Community ist nicht ganz so groß wie bei anderen Sprachen, die zahlreichen Beispielprogramme auf der Website sollten aber ebenfalls gut weiterhelfen.
ROBOTC ist die einzige kostenpflichtige Umgebung dieser Übersicht. Die Programmiersprache basiert auf C, mit Erweiterungen, um Programme für Roboter wie den LEGO Mindstorms EV3 schreiben zu können. Damit ist sie auf einer ähnlichen Stufe wie zum Beispiel c4ev3 und ev3dev. Der große Unterschied ist die bei ROBOTC speziell angepasste Entwicklungsumgebung, die den Einstieg erleichtern soll. Da die Sprache auf C basiert, würden wir sie nicht als aller ersten Einstieg in die Robotik-Programmierung empfehlen, auch wenn die vereinfachte Umgebung einige Hürden wieder ausgleicht.
Hinter dem Namen ev3dev verbirgt sich eine umfangreiche Plattform, um Programme unter anderem für den LEGO Mindstorms EV3 zu schreiben. Vergleichbar ist ev3dev mit LeJOS und MonoBrick, mit dem großen Unterschied, dass mit ev3dev viele verschiedene Programmiersprachen ausgeführt werden können. Das bedeutet letztendlich, dass ev3dev die Firmware des LEGO Mindstorms EV3 austauscht bzw. stattdessen gestartet werden muss. Anschließend stehen Programmiersprachen wie Python, JavaScript, Java, Go, C++ und C zur Verfügung. Also eine ganze Menge. Daher gibt es auch verschiedene Entwicklungsumgebungen und Schwierigkeitsgrade für eine Einarbeitung. Ohne Vorwissen empfehlen wir ev3dev nicht. Wer schon erste Programmiererfahrung gesammelt hat, dem sei ein Blick auf Python oder JavaScript ans Herz gelegt.
Pybricks ist eine moderne, textbasierte Programmiersprache für den LEGO Mindstorms EV3 und andere LEGO-Hubs. Die Plattform basiert auf MicroPython, einer schlanken Version von Python. Pybricks ist besonders interessant für Programmierer, die bereits Erfahrung mit Python haben, da die Sprache leicht zu erlernen ist und eine große Menge an Dokumentation und Beispielen bietet.
Ein wesentlicher Vorteil von Pybricks ist die Möglichkeit, drahtlos über Bluetooth zu programmieren, was den Workflow erheblich vereinfacht. Die Community rund um Python und Pybricks wächst stetig, sodass es leicht ist, Unterstützung und Ressourcen im Internet zu finden. Für Einsteiger ist Pybricks eine ausgezeichnete Wahl, da es die Vorteile von Python mit einer intuitiven Entwicklungsumgebung kombiniert. Es ist eine leistungsfähige Alternative zu blockbasierten Programmiersprachen und eignet sich sowohl für Anfänger als auch für fortgeschrittene Nutzer.
Weitere Informationen zu den unterschiedlichen Programmiersprachen findet ihr auf dem Blog von brickobotik. Gerne könnt ihr Felix und Fabian (Mitglieder unseres Vereins und Gründer von brickobotik) unter info [at] brickobotik [dot] de direkt ansprechen, wenn ihr noch weitere Fragen habt.
Ab Anfang November können sich Teams wieder für Wettbewerbe der nächsten Saison - WRO 2025 - anmelden.
Erste Informationen zur neuen
Saison gibt es auf unserer zentralen Infoseite mit Zeitplan zur Saison.