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ückgreifen.
Bezug und Installation von ArduBlock
Die Erweiterung kann von der Herstellerseite heruntergeladen 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.
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.
Überblick
Hat man die Arduino IDE gestartet, so findet man die Erweiterung unter dem Menüpunkt “Werkzeuge”
Mit einem Klick auf diesen Eintrag wird ein neues Fenster geöffnet.
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ässt sich der serielle Monitor der Arduino IDE bequem aus der Oberfläche mit der Schaltfläche “Seriellmonitor” starten.
Funktionen
Im linken Bereich der Erweiterung ArduBlock findet man die Leiste mit den Funktionen für den Aufbau eines Sketches.
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, dass 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).
Um dieses Element zu entfernen, klicken wir also nun darauf und ziehen dieses auf die Funktionsleiste und lassen dort los.
Die Programmstruktur
Im eigentlichen Sinne schreiben wir ein Programm und genau so heißt auch das Hauptelement, welches wir benötigen. Öffnen wir 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.
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 / neu Starten 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.
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”.
Nun schreiben wir unser “Blink Sketch” so um, dass, wenn je nachdem die LED AN/AUS ist, eine Meldung auf dem seriellen Monitor erscheint.
Aufbau
Im Bereich “setup” habe ich eine einfache serielle Ausgabe eingebaut, damit man erkennen kann, dass diese wirklich nur beim Starten / neu starten 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 dass ich überall einen anderen Pin auszuwählen (und ggf. eine Stelle zu vergessen).
Zum Testen von Zuständen / Werten gibt es zwei Elemente.
Im Bereich “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.
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:
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 doch die Funktion schon erkennbar.
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).
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ässt sich schnell und sicher einfache bis komplexe Sketche erzeugen, durch die zusätzlichen Elemente für Bluetooth und Servos hat man hier ohne viel Programmierkenntnisse 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.
Habe mit arublock ein problem mit steppermotor nema17 er bewegt sich nicht
Arduino UNO
CNC Shield
Nema 17 Steppermotor
Trafo 24 V
Warum läuft Motor nicht bei ardublock Progammierung
programmiert: fortlaufend(steuerung) mit steppermotor step und stepper motor set Speed (DuinoEDU Grove add
grbl hex 0.9 mit 115200 baud
motor funktioniert aber mit Grbl Controller wäre für hilfe sehr dankbar (bin anfänger)
Hi,
sende mir dochmal den Quellcode und die ArduBlock Datei. Dann kann ich mir das mal gerne anschauen. Des Weiteren ein Foto auf welchem man erkennt wie die Bauelemente verdrahtet sind wäre zusätzlich nicht schlecht.
Gruß,
Stefan Draeger
Hallo,
ich kämpfe mit ganz banalen Dingen.
Das ArduBlock erscheint einfach nicht unter Werkzeuge/ bei mir Tools. Ich habe mehrere Versionen probiert jetzt die Arduino 1.8.9 mit der ardublock-all-2019-08-13.jar und das mit Win10 aktuelle Version. Pfad/Groß-Kleinschreibung usw. hab ich mehrmals kontrolliert-sollte passen. Gibt es da irgendeine grundlegende Einstellung die ich brauche? Java hab ich auch laufen..
Für Tips wäre ich echt dankbar!
lg
Hi,
ich habe Ardublock nur auf der einen Version zum laufen gebracht bekommen. Jedoch müsste ich mal prüfen wie sich das mit der neuen Version verhält.
Die “originale” Version von Ardublock war nur kompatibel bis zur Version 1.6.x ich schaue wie gesagt mir das nochmal an und passe dann das Tutorial ggf. mit den neuen Informationen an.
Gruß,
Stefan Draeger
Hi,
ich habe mal geschaut und auf die schnelle konnte ich zwar das Problem erkennen aber kann dir keine Lösung anbieten.
Jedoch habe ich eine Zip Datei gefunden welche ein ArduBlock enthält, jedoch stark minimiert, vieleicht hilft dir dieses ja weiter.
http://duinoedu.com/dl/logiciels/arduino/arduino_augmente/version_duinoedu/DERNIERE_VERSION/1_STANDARD_VERSION/
Da dieses eine externe Quelle ist, übernehme ich keine Haftung für Viren oder ähnliche Schadsoftware.
Gruß,
Stefan Draeger
Bei mir läuft ArduBlock mit Arduino 1.8.10
Hi, stimmt ich habe gerade ArduBlock auf der neuen Version 1.8.12 eingerichtet bekommen.
Der Pfad ist “Arduino\tools\ArduBlockTool\tool\ardublock-all-20130712.jar”
Dann findet man auch in der neuen Version wie gewohnt ArduBlock unter dem Menüpunkt Werkzeuge.
Gruß und Danke,
Stefan
habe alles in den Pfad ist „Arduino\tools\ArduBlockTool\tool\ardublock-all-20130712.jar so wie beschrieben kopiert. Nuutzte die neuste Arduino Version aber bei dem ArduBlocktool fehlen einige Elemente in der Funktionsleiste, wie kann das sein ? greetz
Guten Tag.
Worum geht es?
Arduino (IoT-Werkstatt)-> ArduBlock-> Erweiterung der Blöcke mit zusätzlichen Sensoren.
Erst einmal meinen Dank, dass sie diese Nachricht lesen.
Was möchte ich?
Mit einem Sensor (DHT22/Feuchtigkeit-Temp) die Daten über einen ESP8266 erfassen. Auf dem 8266 die Daten mittels einiger Programmierter Zeilen (Arduino/ArduBlock) verarbeiten.
Diese Daten über MQTT (deshalb IoT-Werkstatt, weil ich MQTT/Ardublock nur hier gefunden habe) über WiFi ins Heimnetzt stellen.
Problem: Es sind nicht die Sensoren (z.B. DHT22) auf dem ArduBlock vorhanden.
Wie kann ich Das Tool ArduBlock mit dem Block “Sensor DHT22“ erweitern?
Danke für ihre Antwort.
Herzliche Grüße
Hallo Uwe,
Bausteine für ArduBlock habe ich bisher nicht geschrieben.
Ich denke, das ist auch nicht so einfach.
Aber ein kleines Programm kann man schon schreiben, um den DHT22 Sensor auszulesen und die Daten per MQTT zu senden.
Gruß, Stefan
Hallo Herr Draeger,
habe selbst bei der erweiterten Version von ArduBlock nicht so viele Blöcke wie bei Ihren Beispielen gezeigt.
Zum Beispiel Fehlt ein Bloch zur Programmierung eine LCD-Displays – I2C.
Wie bekomme ich neue Blöcke in mein ArduBlock-Program.
Die Bibliatheken für die Bauelemente sind in Arduino vorhanden.
Würde mich freuen, wenn Sie mir helfen könnten – es würde die Programmiermöglichkeiten von ArduBlock stark erweitern.
Vielen Dank für Ihre Mühe!
Es grüßt freundlich
Dieter Eisenbart