Arduino IDE : Erweiterung ArduBlock

Abfragen eines digitalen Wertes
Abfragen eines digitalen Wertes

In der Arduino IDE kann man bequem mit C, C++ programmieren. Wer jedoch diese Sprache nicht oder noch nicht beherrscht aber trotzdem schnell in die Welt der Mikrocontroller eintauchen möchte, kann hier auf die Erweiterung ArduBlock zurück greifen.

Bezug und Installation von ArduBlock

Die Erweiterung kann von der Herstellerseite herruntergeladen werden.
Wenn das JavaArchiv (*.jar) mit dem Browser Google Chrome heruntergeladen wird, dann wird die Endung *.jar als potentiell gefährlich eingestuft und man muss hier den Dialog mit der Schaltfläche „Behalten“ bestätigen.

Meldung aus Google Chrome für die Dateiendung *.jar
Meldung aus Google Chrome für die Dateiendung *.jar

Wenn man die Version von der Herstellerseite verwendet so ist man bei der Wahl der Arduino IDE auf die Version 1.6.12 beschränkt. Möchte man jedoch eine spätere (aktuellere) Version verwenden so kann man hier die Version von Carobot verwenden.

In diesem Tutorial verwende ich die Version 161216 von Carobot.

Wenn man also die Datei heruntergeladen hat, so muss diese in den Ordner „Sketchbook“ der Arduino IDE kopiert werden. Aber nicht blank sondern in ein bestimmtes Unterverzeichnis was unter Umständen erzeugt werden muss.

Verzeichnisstruktur zur Ablage von ArduBlock
Verzeichnisstruktur zur Ablage von ArduBlock

Überblick

Hat man die Arduino IDE gestartet so findet man die Erweiterung unter dem Menüpunkt „Werkzeuge“

Ablageort der Erweiterung ArduBlock unter dem Menüpunkt "Werkzeuge"
Ablageort der Erweiterung ArduBlock unter dem Menüpunkt „Werkzeuge“

Mit einem Klick auf diesen Eintrag wird ein neues Fenster geöffnet.

Erweiterung ArduBlock nach dem ersten starten.
Erweiterung ArduBlock nach dem ersten starten.

Hauptmenü

Das Hauptmenü von ArduBlock enthält die Grundfunktionalitäten um eine Datei

  • zu erzeugen (Neu)
  • zu speichern (Speichern, Speichern als),
  • zu öffnen (Öffnen)
  • auf den Arduino zu speichern (Hochladen auf den Arduino)

Des Weiteren läßt sich der serielle Monitor der Arduino IDE bequem aus der Oberfläche mit der Schaltfläche „Seriellmonitor“ starten.

Menüleiste der Erweiterung ArduBlock
Menüleiste der Erweiterung ArduBlock

Funktionen

Im Linken Bereich der Erweiterung ArduBlock findet man die Leiste mit den Funktionen für den Aufbau eines Sketches.

ArduBlock Funktionen
ArduBlock Funktionen

Erstes Sketch erzeugen per Drag’n Drop

Was ist Drag’n Drop?

Drag’n Drop bezeichnet frei der Übersetzung „ziehen und loslassen“ und in diesem Fall bedeutet es, das wir ein Element aus der Funktionsleiste auf die Hauptfläche ziehen und loslassen.

Aufräumen & Löschen

Wenn man ArduBlock startet so wird bereits ein Element angezeigt, dieses ist aber nicht das korrekte (jedenfalls für die Sketche welche ich schreibe).

ArduBlock "Loop"
ArduBlock „Loop“

Um dieses Element zu entfernen klicken wir also nun darauf und ziehen dieses auf die Funktionsleiste und lassen dort los.

Element von der Hauptfläche per Drag'n Drop entfernen.
Element von der Hauptfläche per Drag’n Drop entfernen.

Die Programmstruktur

Im eigentlichen Sinne schreiben wir ein Programm und genau so heißt auch das Hauptelement welches wir benötigen. Öffnen wir nun zunächst die Steuerungsansicht mit einem klick auf die Schaltfläche „Steuerung“, es öffnet sich nun eine Leiste mit vielen Elementen. Aus dieser Liste wählen wir das Element mit der Bezeichnung „program“ und ziehen dieses auf die Hauptfläche.

Element "program" per Drag'n Drop auf die Hauptfläche ziehen.
Element „program“ per Drag’n Drop auf die Hauptfläche ziehen.

Diesem Element können wir nun weitere Elemente anheften, hier wird jedoch zwischen „setup“ und „loop“ unterschieden.

Bereich – setup

Im Bereich „setup“ werden alle Elemente abgelegt welche nur einmal beim starten / neustarten des Arduinos ausgeführt werden sollen. Das kann zum Beispiel

  • eine Ausgabe auf dem seriellen Monitor,
  • eine Zuweisung eines Wertes zu
    • einer Variable
    • einem Pin

sein.

Bereich – loop

Im Bereich „loop“ werden alle Elemente abgelegt welche in einer Dauerschleife ausgeführt werden sollen.
Zum Beispiel kann hier die Zustandsänderung am Pin 13 (interne LED) von LOW auf HIGH und umgekehrt „programmiert“ werden.

Blink Sketch

Fangen wir mit einem kleinen Sketch an, welches „nur“ die interne LED steuern soll.
Hier wollen wir diese in einem Intervall von 1sek. blinken lassen.

Dazu benötigen wir neben dem Element „program“ noch weitere Elemente welche wir wieder aus der Funktionsleiste per Drag’n Drop auf die Hauptfläche ziehen.

ArduBlock - erzeugen eines einfachen Sketches

Abfragen von Werten

Im  oben genannten Beispiel haben wir nur eine LED blinken lassen das ist für den einstieg ein einfaches Beispiel. Aber wie sieht es aus wenn wir auf einen bestimmten Status / Wert reagieren möchten?

Die Elemente dafür finden wir unter dem Menüpunkt „Test“.

Funktionen zum Testen eines Status / Wertes
Funktionen zum Testen eines Status / Wertes

Nun schreiben wir unser „Blink Sketch“ so um, das wenn je nachdem die LED AN/AUS ist, eine Meldung auf dem seriellen Monitor erscheint.

Abfragen eines digitalen Wertes
Abfragen eines digitalen Wertes

 

Ausgabe auf dem seriellen Monitor
Ausgabe auf dem seriellen Monitor

Aufbau

Im Bereich „setup“ habe ich eine einfache serielle Ausgabe eingebaut damit man erkennen kann das diese wirklich nur beim starten / neustarten des Arduinos auf dem seriellen Monitor erscheint.

Im Bereich „loop“ habe ich zusätzlich den Zustand des digitalen Pin D13 in einer Variable mit der Bezeichnung „ledPin“ gespeichert. Dieses ermöglicht es mir später auf einen anderen Pin zu wechseln ohne das ich überall einen anderen Pin auszuwählen (und ggf. eine Stelle zu vergessen).

Zum Testen von Zuständen / Werten gibt es zwei Elemente.

Element zum Testen eines Wertes
Element zum Testen eines Wertes

Im Bereicht „teste“ wird eine Abfrage des Wertes eingebaut und wenn diese WAHR ist dann wird der Bereich „dann“ ausgeführt.

Beispiel

In dem folgenden Beispiel teste ich ob 5 größer als 2 ist. Wenn diese Bedingung WAHR ist dann wird die Meldung „5 ist Groesser als 2.“ auf dem seriellen Monitor ausgegeben.

Einfache Abfrage zweier Werte
Einfache Abfrage zweier Werte

Das zweite Element enthält nun noch einen „sonst Zweig“ dieser wird ausgeführt wenn die Bedingung FALSCH ist.

In unserem Beispiel würde dieses dann wie folgt aussehen:

Abfrage einer Bedingung
Abfrage einer Bedingung

Da 5 immer größer als 2 sein wird, wird der „sonst Zweig“ nie ausgeführt.

Eine Ampelschaltung mit ArduBlock

Ich möchte jetzt nicht auf jedes Element von ArduBlock eingehen, denn das würde den Rahmen sprengen.

Ziel dieses Projektes soll es sein eine Ampelschaltung mit dem Arduino UNO zu implementieren.

Von der Firma Cytron aus Malaysia habe ich einen Maker UNO zu einem Review erhalten, dieser Mikrocontroller hat den Vorteil das auf jedem digitalen Ausgang eine SMD LED geschaltet ist und ich meinen Sketch entwickeln kann und gleich testen kann. Auch wenn hier nur die Farbe blau ist ist doch die Funktion schon erkennbar.

 

Wechsellichtzeichen nach §37 Abs.2 StVO
Wechsellichtzeichen nach §37 Abs.2 StVO

Somit ergeben sich 4 Schritte.

Im ersten Schritt wird nur die grüne LED angeschaltet (gelb und rot sind aus).
Im zweiten Schritt wird die gelbe LED angeschaltet (grün und rot sind aus).
Im dritten Schritt ist nur die rote LED angeschaltet (grün und gelb sind aus).
Im vierten Schritt sind die gelbe und die rote LED angeschaltet (grün ist aus).

Ampelschaltung mit ArduBlock und dem MakerUNO

Der Aufbau kann natürlich noch optimiert werden denn es gibt hier ja „nur“ 3 LEDs. Wenn man also nun eine Funktion erzeugt welcher die Zustände für die 3 LEDs übergeben werden dann wird der Sketch um einiges kürzer.

 

Fazit

Mit der Erweiterung ArduBlock läßt sich schnell und sicher einfache bis komplexe Sketche erzeugen durch die zusätzlichen Elemente für Bluetooth und Servos hat man hier ohne viel programmier Kenntnisse ein Ergebnis.

Den fertigen Sketch kann man sich in der Arduino IDE anschauen, wobei es sich hier um generierten Code handelt und dieser alles andere als lesbar ist.

 

 

 

Verwandte Beiträge

Ersten Kommentar schreiben

Antworten

Deine E-Mail-Adresse wird nicht veröffentlicht.


*