| |
Processing : Graphik-Programmierung auf Basis von Java
|
Eignet sich besonders zum Einsatz im
Ausbildungs- Bereich. Bietet besondere Möglichkeiten im Bereich der
Graphik-Programmierung. Die Verbindung mit dem Robo Interface in
Verbindung mit der graphischen Darstellung hat einen besonderen Reiz. Download
processing.org
Erforderlich javaFish40.DLL, umFish40.DLL und die ftcomputing.robo.jar.
Die DLLs werden am einfachsten in \Windows\System32 installiert. Das
Verzeichnis der jar muß im Verzeichnis von Processing\library installiert
werden.
Anwendungen benötigen dementsprechend ein import ftcomputing.robo.*; (
über Menü Sketch | Import Library=
Downloads : processing.zip
FishFace Java-Dokumentation : ftcomputing.robo.Doku Buch zu Processing : Erik Bartmann : Processing
O'Reilly Verlag, ISBN 978-3-89721-997-7 |
Beispiel zur Nutzung der ftcomputing.robo.jar
Versuchsaufbau
Ist diesmal sehr schlicht : Ultraschallsensor an D1
Anzeige
Source
import ftcomputing.robo.*;
FishFace ft = new FishFace();
int dist = 1023;
color rot = color(255, 0, 0);
color gruen = color(0, 255, 0);
void setup() {
size(300, 100);
ft.openInterface(0,0);
println("Robo Interface gestartet");
frameRate(12);
noStroke();
}
void draw() {
dist = ft.getDistance(1);
println("Distance : " + dist);
background(255);
if(dist < 20) fill(rot);
else fill(gruen);
rect(dist, 0, 12, height - 3);
}
In der Methode draw (von Processing vorgegebener Name) wird in regelmäßigen
Abständen (frameRate(12);
12 mal in der Sekunde) der Ultraschallsensor an D1 abgefragt und der gemessene
Wert in der Form Distanz angezeigt. Dabei entspricht die Position des Balkens
(im Bild grün) der festgestellten Entfernung. Bei Entfernungen unter 20 cm wird
der Balken rot.
Stellt man z.B. den Sensor (samt Interface) auf den Schreibtisch und dreht
den Bürostuhl davor mit einiger Geschwindigkeit, kommt der Balken ganz schön
ins Zucken.
Das Programm selber ist erstaunlich einfach :
- verwendet wird das normale Package ftcomputing.robo.jar
- Instanzierung wie üblich.
- Zuweisung von Farbnamen
- Methode setup() Standard-Routine für Initialisierungsarbeiten, wird
einmal ausgeführt, hier:
- size : Größe des Ausgabefensters in pixel
- noStroke() keine Umrandung des Balkens
- Methode draw() Standard-Routine für die "Nutzarbeiten", wird
endlos aufgerufen, die Bildschirmanzeige erfolgt erst am Ende der Routine.
- background : Löschen Hintergrund auf weiß
- fill(rot) : Füllen (des Balkens) mit rot
- rect : Zeichnen eines Rechtecks. Koordinatensystem 0,0 linke obere Ecke,
Pixel, Lage Rechteck hier bestimmt durch linke obere Ecke (rectMode(CORNER)
- default).
Source 2 : Viel graphischer
|
Ein Programm von Simon Greenwold. Ursprünglich
durch die aktuelle Mausposition gesteuert, jetzt natürlich über den
Ultraschall Sensor.
Was tut der Ball : Er strahlt, wenn man ihm nahe kommt. |
import ftcomputing.robo.*;
FishFace ft = new FishFace();
void setup() {
size(360, 360, P3D);
ft.openInterface(0, 0);
noStroke();
colorMode(RGB, 1, 3, 2);
fill(0.4);
frameRate(12);
}
void draw() {
background(0);
translate(width / 2, height / 2);
lightSpecular(1, 1, 1);
directionalLight(0.8, 0.8, 0.8, 0, 0, -1);
float s = float(255 - ft.getDistance(1)) / float(width);
specular(s, s, s);
sphere(120);
}
Beispiel für den Robo TX Controller
Stand : 06.10.2010
|