Processing Grafische Auswertung von Messwerten - mit Processing Arduino steuern 0. Hinweis Die folgende Beschreibung wurde mit der Processing Version 1.2. getestet. Es gibt Hinweise, dass es Probleme gibt, wenn die Processing Version 1.5. verwendet wird. 1. Das Zusammenspiel Mit Processing lassen sich z.B. Messwerte grafisch auswerten, die mit dem Arduino-Mikrocontroller erfasst werden. Das Diagramm soll die Zusammenhänge verdeutlichen: Arduino Processing Programm StandardFirmata laden Mikrokontroller Arduino Eingabe Bibliothek einbinden liefert nach Aufforderung Werte fordert Werte an Processing Programm starten grafische Ausgabe Ausgabe Im folgenden soll beschrieben werden, wie auf der Arduino-Seite und wie auf der Processing-Seite vorgegangen werden muss, um mit Processing den Mikrocontroller zu steuern. 2. Die Arduino-Seite 2.1. Software Nach dem Starten der Arduino-Programmierumgebung muss unter Files | Examples | Firmata das Programm StandardFirmata aufgerufen und zum Arduino gesendet werden. Alle notwendigen Konfigurationen werden von diesem Programm vorgenommen. 2.2. Hardware Es soll eine mit einem Potenziometer veränderbare Spannung vom Arduino erfasst werden. Die Schaltung ist sehr einfach aufgebaut. Es wird an dem analogen Eingang „A0“ eine durch das Potenziometer einstellbare Spannung zwischen 0 V und 5 V gelegt. Dem entsprechen digitale Werte zwischen 0 und 1024. Der Wert des Potenziometer-Widerstandes spielt dabei keine Rolle. Weihs 1 Processing 3. Die Processing-Seite 3.1. Vorbereitungen Zunächst muss von der offiziellen Arduino Web-Seite http://arduino.cc/playground/Interfacing/Processing die ProcessingBibliothek processing-arduino-0017.zip geladen werden und in den Ordner libraries der Processing-Programmstruktur auf der Festplatte entpackt werden. Es wird dabei automatisch ein neuer Ordner mit dem Namen arduino erstellt, der wiederum drei Ordner beinhaltet: examples, library und src. Damit ist die Bibliothek einsatzbereit. Hinweis: Die Programme, die im Ordner examples liegen, können in den schon vorhandenen Processing-Ordner examples in einen neu zu erstellenden Ordner arduino verschoben werden. Dann stehen die Beispiele unter File | Examples | arduino zur Verfügung. 3.2. Testprogramm Für das spätere Programm ist es notwendig, dass zunächst festgestellt werden muss, an welcher Stelle der seriellen Verbindungen des PC sich das Arduino-Board befindet. Dazu wird folgendes Programm verwendet: import processing.serial.*; import cc.arduino.*; Arduino arduino; println(Arduino.list()); Nach dem Start des Programms zeigt sich z.B. folgende Bildschirmausgabe: Da das Arduino Board an COM4 angeklemmt ist, befindet es sich an Stelle 1. Nun kann das Testprogramm erstellt werden: import processing.serial.*; import cc.arduino.*; Arduino arduino; Achtung! int potiPin=0; int potiVal=0; void setup() { size(104, 104); smooth(); arduino = new Arduino(this, Arduino.list()[1]);} // hier muss die richtige Stelle eingetragen // werden void draw() { potiVal = arduino.analogRead(potiPin); println(potiVal); background(204) ; fill(255,0,0); ellipse(52,52, floor(potiVal/10),floor(potiVal/10));} // floor()Berechnet den nächsten int-Wert, der kleiner als oder gleich dem Wert des Parameters ist. Nach dem Starten des Programms veränder sich die Größe des Kreis in Abhängigkeit von der Spannung am analogen Eingang „A0“. Man kann gut erkennen, dass Arduino erst Daten sendet, wenn das Processing-Programm gestartet wurde. Man erkennt das am sehr schnellen Blinken der Sende-LED „TX“ auf dem Arduino-Board. Hinweis: Das Programm funktioniert nur, wenn das Arduino-Board angeschlossen ist und das Arduino-Programm StandardFirmata auf das Board übertragen wurde. Erst muss Arduino laufen, dann kann Processing gestartet werden. Weihs 2