Übersicht Programmiersprachen für LEGO-Roboter

Auf dieser Seite haben wir einen Überblick über die verschiedenen Programmiersprachen zusammengestellt, mit denen ihr euren LEGO-Roboter programmieren könnt. Bei der WRO gibt es keine Einschränkungen welche 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.

Programmiersprachen wie NXT-G und EV3-G sind in der LEGO-Robotik-Welt sehr bekannt. Das sind die Sprachen, mit denen die bekanntesten Robotik-Sets LEGO Mindstorms NXT und EV3 ausgeliefert werden. 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 LEGO-Roboter und beantwortet häufig gestellte Fragen.

Allgemeine Empfehlung

Aktuell wird angenommen, dass grafische Programmiersprachen, zum Beispiel auf Basis von Blöcken (EV3-G, NEPO, Scratch), für den Einstieg besser geeignet sind. 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 somit durchaus schnellere Erfolge erzielen, wenn die erste Sprache zur Ansteuerung eines Roboters grafisch ist. 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.

Grafikbasierte Programmiersprachen

Wichtiger Hinweis: LEGO hat angekündigt, dass die LEGO Mindstorms EV3 Software im Frühjahr 2020 durch eine neue Software (LEGO MINDSTORMS Education EV3 Classroom) auf Basis von Scratch abgelöst werden soll. Mit der neuen Apple Betriebssystemversion "Catalina" ist die Nutzung der bestehenenden Software schon jetzt nicht mehr möglich. Wie es mit der weiteren Unterstützung für Windows aussieht, ist zum aktuellen Zeitpunkt unklar (Stand: 08.10.2019)

Ein offizieller Hinweis von LEGO findet sich auf der Download-Seite der EV3 Software: https://education.lego.com/de-de/downloads/mindstorms-ev3/software

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 LEGO-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.

Tutorial auf brickobotik

Grafische Programmiersprache NEPO – ideal für Einstieg und Vertiefung

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.

Technische und fachliche Hürden minimieren

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.

Website
Tutorial

Textbasierte Programmiersprachen

LeJOS ist die wohl bekannteste Plattform für Java-Programmierung auf LEGO-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.

Website
Tutorial auf brickobotik

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.

Website
Tutorial from Zero to Hero

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.

Website
Tutorial auf brickobotik

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.

Website
Tutorial

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.

Website
Tutorial

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.

Website
Tutorial

Weitere Informationen

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.

Schreibe deine Robotergeschichte

Informiere dich über die Eckdaten der neuen Saison und merke dir den Anmeldestart am 4. November 2019.

Zeitplan WRO 2020
Premium Partner
Gold Partner
Silber Partner
TB e.V. - Netzwerk