IG Serial Proxy (Arduino an Flash) |
Tags
Backlinks
» Tags: "IG Serial Proxy (Arduino an Flash)" is tagged as
» Backlinks: These Wikipages link to "IG Serial Proxy (Arduino an Flash)"
|
IG SerialProxy ist dazu da, Daten von der Seriellen Schnittstelle an Flash weiterzuleiten.
Wegen Sicherheitrestriktionen (Sandbox Prinzip) kann Flash nicht wie Processing oder VVVV auf die Serielle Schnittstelle zugreifen. Damit soll verhindert werden, dass ein Flashfilm der in eine Webseite eingebettet ist, für Schadsoftware missbraucht werden kann. Mit Flash hat man daher prinzipiell nur drei Möglichkeiten externe "Daten" zu übermitteln: Keyboard, Maus und Netzwerk.
Mit dem Programm IG SerialProxy kann allerdings Flash um die Fähigkeit erweitert werden mit der Seriellen Schnittstelle zusammenzuarbeiten. Damit kann Flash jetzt auch beispielsweise mit einem Arduino Board benutzt werden.
Zuerst muss dafür gesorgt werden, dass Arduino Werte an die Serielle Schnittstelle sendet. Das Beispiel "example_arduino" sendet z.B. immer zwei Werte von Pin 0 und 1 an den Computer. Das Datenpacket hat dabei die Strukur: Wert potPinA ; Wert potPinB NewLine also z.B. "423;678\n". Zu Wissen mit welchem Zeichen das Datenpacket beendet (terminiert) wird und mit welcher Baudrate (hier 9600), ist später wichtig für die Konfiguration des IG SerialProxys.
// this example assumes that you have to potis connected to pin 0 and 1
// select the input pin for the potentiometer
int potPinA = 0;
int potPinB = 1;
void setup() {
// openserial port to send data to computer
Serial.begin(9600);
}
void loop(){
// send potis values (from 0 to 1023)
Serial.print(analogRead(potPinA));
Serial.print(';');
Serial.println(analogRead(potPinB));
delay(50); // stop for a while
}
Im Idealfall muss jetzt nur noch ig_serialproxy.pde gestartet werden und die entsprechenden Parameter eingestellt werden, in diesem Beispiel: Serial Port (dort wo Arduino angeschlossen ist), Baudrate (9600) und mit welchen Zeichen das Datenpacket (10 new line) terminiert ist. Ist alle richtig eingestellt werden die Linien grün ... im rechten Bild ist beispielsweise nicht der richtige Serial Port gewählt.


Bei Bedarf kann ig_serialproxy.pde auch um neue Terminatoren, Baudrates erweitert werden bzw. der Netzwerk Port verändert werden.
// ig_serialproxy.pde
int networkPort = 5331;
// baud rate to use for serial communication
// this needs to match the speed used by your external device
int[] serialBaudRates = {
9600, 14400, 19200};
// data package terminators
String[] terminatorNames = {
"0 null", "10 new line", "11 tab", "13 carriage return"};
int[] terminatorsASCII = {
0, 10, 11, 13};
...
Jetzt muss nur noch Flash gestartet werden und in Flash die Werte aus (4) in die Beispieldatei eingetragen werden. Befindet sich die Flash Datei auf dem gleichen Rechner an dem auch Arduino angeschlossen ist, empfiehlt sich die IP 127.0.0.1 (local host) zu benutzten ansonsten kann mit der IP-Adresse (ip lan) auch von allen anderen Rechner im Netz auf die Werte zugegriffen werden. Dann aber nicht vergessen die Firewall entsprechend einzustellen.
// accumulates data coming from arduino
var sensorData:String = "";
// connects to arduino board
var arduino:SerialPort = new SerialPort();
arduino.addEventListener(DataEvent.DATA, onArduinoData );
arduino.connect( "127.0.0.1", 5331 );
function onArduinoData( event:DataEvent ):void
{
trace( "onArduinoData", event.data );
mcDebug.debug.text = event.data
}
Dann ig_serialproxy.pde starten und danach die Flash Datei, ist alles richtig eigestellt, kommen die Werte von Arduino auch in Flash an.

Das Flashbeispiel ist original von http://www.tinker.it/en/Projects/TinkerProxy
© 2008 Hochschule für Gestaltung, Schwäbisch Gmünd. Impressum

