Arduino

Werbung
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
Herunterladen