Blog

Graphische Programmierumgebungen (IDE) für Arduino

Der normale Ansatz zur Programmierung ist über die Standard Arduino IDE (Aktuelle Version 1.0.6), die wir alle kennen, (manche von uns auch) lieben und hassen gelernt haben. Die Programmierung erfolgt dabei textuell, als Programmiersprache kommt C bzw. C++ zum Einsatz.

arduino_std

Das Problem dabei ist die textuelle Programmierung, welche trotz der umfangreichen Funktionsbibliothek, die bereits eine Vielzahl von häufig in der Mikrocontroller-Programmierung benötigten Funktionen bereitstellt, dennoch eine Eingangshürde für Personen ohne Programmier-Vorbildung darstellt. Hier könnten Tools zur graphischen Programmierung von Arduino eine gangbare Alternative sein. Daher wollen wir uns nun in diesem Artikel ein paar dieser Tools genauer ansehen:

ArduBlock

Bei Ardublock handelt es sich um eine Erweiterung der Standard Arduino IDE, wobei anstelle des manuellen Programmierens der Programmablauf aus verschiedenen Blöcken zusammengeklickt werden kann. Ardublock kann hier heruntergeladen werden - nach dem Download sind die hier dokumentierten Schritte zur Installation notwendig. Nach der Installation kann ArduBlock über das Menü Tools - Ardublock gestartet werden. Nach dem Start bietet sich folgende Ansicht:

ardublock_1

Links sind in mehreren Kategorien die für die graphische Programmierung möglichen Blöcke dargestellt. Dabei fällt auf, dass es eine Out-Of-The-Box Unterstützung für verschiedene Hersteller wie z.B. TinkerKit, DFRobot, Seedstudio Grove und Linker Kit gibt. Positiv fällt auf, dass die Blöcke bereits in Deutsch beschriftet sind - mit der Einschränkung, dass die Übersetzung manchmal etwas holprig klingt. Die Programmierung erfolgt nun durch Auswahl eines Blocks und ziehen desselbigen auf das rechte, große Teilfenster. Das Entfernen von Blöcken funktioniert durch ein Zurückziehen des Blocks in das linke, kleine Teilfenster. Manche Blöcke können nach der Platzierung noch parametriert werden. In nachfolgender Abbildung ist das Arduino-Blink-Beispielprogramm nach Zusammenklicken in ArduBlock dargestellt.

ardublock_2

Nach Linksklick auf Hochladen wird der entsprechende Arduino-Code generiert, kompiliert und hochgeladen. Der generierte Arduino-Code kann durch Umschalten auf die Arduino IDE eingesehen werden:

ardublock_3

Pro

  • Einfache Installation - Eine Datei muss kopiert werden
  • Quelloffen - kann bei Bedarf selbst erweitert werden
  • Erzeugter Arduino-Code einsehbar

Contra

  • Nach wie vor Kenntnisse der Programmiersprachenelemente notwendig

miniBloq

Bei miniBloq handelt es sich um eine graphische Programmierumgebung für "Arduino, Multiplo, physical computing devices and robots"1 und kann von hier heruntergeladen werden. Nach der Installation und dem Start bietet sich folgende Ansicht:

minibloq_1

Auch hier fällt auf, das die deutsche Sprache unterstützt wird, die Übersetzung funktioniert hier auch etwas besser als bei ArduBlock. Links kann unter Hardware die zu programmierende Hardware sowie die Schnittstelle, unter der die Hardware mit dem PC verbunden ist, ausgewählt werden. Folgende Hardware wird dabei unterstützt: Arduino Leonardo, Arduino Mega/Arduino ADK, Arduino Uno sowie verschiedene weitere Arduino-basierte Roboter. Im mittleren Teilfenster kann das Programm zusammengeklickt werden, wobei hierfür konfigurierbare Blöcke aus dem Menü "Aktionen" auf die Zeichenfläche gezogen werden. Im rechten Teilfenster wird dabei der erzeugte Arduino-Code angezeigt, was ein überaus nettes Feature ist. In nachfolgender Abbildung ist das Arduino-Blink-Beispielprogramm nach Zusammenklicken in MiniBloq dargestellt.

minibloq_2

Die Blöcke bieten erheblich mehr Konfigurationsmöglichkeiten als die ArduBlock-Blöcke, verlangen aber auch eine erheblich steilere Lernkurve.

minibloq_3

Dafür ist man nicht mehr unmittelbar die die typischen Programmierausdrücke gebunden, muss sich aber in die Bedeutung aller Symbole einlernen. Wenn man bereits Programmieren kann, so ergeben sich bei der Arbeit mit MiniBloq so manche Momente der Frustration. Zum Beispiel ist es mir bis dato nicht gelungen, ein Programm so zusammenzustellen, dass der Code auch im Loop-Teil des Arduino-Codes ausgeführt werden würde. Die Kompilierung wird wie bei der Arduino IDE über die Tastenkombination Strg+R (oder über das Menü Komponente - Erstellen) gestartet, das Kompilieren mit anschließendem Download wird über Strg+U (oder über das Menü Komponente - Ausführen) ausgelöst.

Pro

  • Einfache Installation über Windows-Installer
  • Erzeugter Arduino-Code einsehbar
  • Nicht an Programmierausdrücke gebunden

Contra

  • Lernphase benötigt
  • Momente der Frustration, wenn man bereits Programmieren kann

S4A

S4A steht für Scratch for Arduino und ist eine für die Programmierung von Arduino modifizierte Version von Scratch. Was ist Scratch? Scratch ist eine erziehungsorientierte visuelle Programmiersprache für Kinder und Jugendliche2. S4A unterstützt die Boards Arduino Diecimila, Duemilanove und Uno. Nach dem Herunterladen und der Installation bietet sich einem folgende Ansicht:

s4a_1

Auch hier fällt auf, dass eine teilweise Übersetzung in die deutsche Sprache vorhanden ist. Alles in Allem erweckt die Software jedoch einen unausgereiften Eindruck. Viele der auswählbaren Steuerelemente basieren auf der originalen Scratch-Sprache, welche eher für Multimedia-Anwendungen als für das Arduino gedacht sind. So konnte ich trotz intensiver Suche keine delay-Funktion finden und damit nicht einmal die Grundanforderung eines Blink-Beispielprogramms erfüllen. Der Versuch meines Blink-Programms ist in nachfolgender Abbildung dargestellt:

s4a_2

Ein Schritt in die richtige Richtung, aber keinesfalls mit ArduBlock und MiniBloq vergleichbar.

Pro

  •  Einfache Installation über Windows-Installer nach Entpacken des heruntergeladenen Archivs

Contra

  • Adaption für Arduino nicht abgeschlossen
  • Erzeugter Source Code nicht einsehbar
  • Software erweckt unausgereiften Eindruck

Modkit Micro

Nach dem Herunterladen und der Installation von Modkit Micro kann man zunächst einmal über einen Assistenten sein Board auswählen. Von der Arduino-Familie stehen dafür das Arduino Diecimila, Duemilanove, Mega und Uno zur Auswahl:

modkit_1

Nach dem Abschluss des Konfigurationsassistenten bietet sich folgende Darstellung des Programms:

modkit_2

Auffallend ist, dass keine Übersetzung in die deutsche Sprache vorhanden ist, wobei ich nicht als Negativpunkt bewerten würde. In dem Programm kann über die drei Buttons Hardware, Blocks und Source zwischen drei verschiedenen Ansichten umgeschalten werden. In der Block Ansicht können verschiedene I/O-Module an das Arduino angeschlossen werden. Interessanter ist jedoch für uns der Menüpunkt Blocks, wo sich aus verschiedenen Einzelblöcken ähnlich wie bei ArduBlock Programmkonstrukte erstellen lassen. In nachfolgender Abbildung ist das Arduino-Blink-Beispielprogramm nach Zusammenklicken in Modkit Micro dargestellt.

modkit_3

Wird der Menüpunkt Source angewählt, so kann man den erzeugten Programmcode betrachten und gegebenenfalls abändern und adaptieren:

modkit_4

Insgesamt macht die Software einen sehr ausgereiften und brauchbaren Eindruck. Leider ist der Quellcode des Programms nicht verfügbar und auch die immerwährende Bereitstellung als freie Version nicht garantiert. Ansonsten bietet sie aber eine sehr gute Möglichkeit für den Einstieg in die graphische Programmierung von Arduino.

Pro

  • Einfache Installation durch Windows-Installer
  • Software erweckt durchdachten und ausgereiften Eindruck
  • Gutes Bedienkonzept

Contra

  • Kein Open-Source - nicht erweiterbar
  • Nur wenig bis gar keine Dokumentation vorhanden

Verschiedenes

Als weitere mögliche Optionen sind dann noch Quantum Leaps und BlocklyDuino zu nennen, wobei Quantum Leaps sich nicht mehr an Programmiereinsteiger richtet. BlocklyDuino ist dafür eine ganz nette Alternative, da es das Zusammenstellen von Programmen im Webbrowser ermöglicht.

Fazit

Die graphische Programmierung von Arduinos ist möglich. Manche der vorgestellten Programme sind für Einsteiger sicher interessant, sobald man jedoch auch nur eine kleine Ahnung im Bereich der Programmierung hat, bietet die "normale" textuelle Programmierung erheblich mehr Vorteile. Den besten Workflow ermöglicht definitiv Modkit Micro - leider ist dies auch die einzige Nicht-Open-Source Variante der graphischen Programmierung. ArduBlock und MiniBloq können aber durchaus empfohlen werden, wobei MiniBloq eine gewisse Einarbeitungszeit benötigt, dafür aber weniger nah an den Progammierausdrücken angelehnt ist als ArduBlock.


1http://blog.minibloq.org/p/documentation.html
2http://de.wikipedia.org/wiki/Scratch_(Programmiersprache)

0
  Related Posts