Juni 2010
Flash an Arduino, bitte melden!
Fortsetzung, Teil 2
Arbeiten mit Flash und alternativen Eingabegeräten
Der nächste Schritt in Richtung Flash
Um jetzt Flash mit dem Arduino Board kommunizieren zu lassen, benötigen wir noch eine Software, die es Flash-Anwendungen erlaubt, sich mit seriellen Ports auf dem Computer zu verbinden. Normalerweise kann Flash das wegen seiner Sicherheitsbeschränkungen nicht. Hierfür gibt es aber kleine Helferchen. In meinem Fall habe ich mich hier für TinkerProxy entschieden.
Diese Software verbindet sich auf der einen Seite mit seriellen Ports und agiert auf der anderen Seite als TCP/IP-Server. Da es Flash-Anwendungen nicht erlaubt ist, sich direkt mit seriellen Ports zu verbinden, wohl aber Netzwerkverbindungen aufzubauen, können wir uns hierüber mit TinkerProxy verbinden. Nun haben wir auch Zugriff auf serielle Ports. Das wiederum ist essenziell wichtig, um die Signale des Arduino Boards abzufragen, die am seriellen Port ankommen.
Arduino sagt Hallo
Reden wir jetzt aber nicht länger um den heißen Brei herum, sondern schreiben eine erste kleine Anwendung. Dazu schreiben wir uns innerhalb von Flash ein kleines Skript, um damit eine Socket Connection aufzubauen, die über den TinkerProxy den Output des Arduino Boards aufsammelt.
package {///////////////////////////////////// import used classes///////////////////////////////////import flash.net.Socket;import flash.events.Event;import flash.events.ProgressEvent;import flash.events.IOErrorEvent;///////////////////////////////////// class///////////////////////////////////public class CoreCanvas {private var socket:Socket;///////////////////////////////// class constructor///////////////////////////////public function CoreCanvas():void { openSocket(); }///////////////////////////////////// launch///////////////////////////////////public function openSocket():void {socket = new Socket( "localhost", 5333 );socket.addEventListener( Event.CLOSE, socketClose );socket.addEventListener( Event.CONNECT, socketConnect );socket.addEventListener( IOErrorEvent.IO_ERROR, socketError );socket.addEventListener( ProgressEvent.SOCKET_DATA, socketInput );}public function socketClose( event:Event ):void {trace( ("socket geschlossen" ) );}public function socketConnect( event:Event ):void {trace( ("socket verbunden" ) );}public function socketError( event:IOErrorEvent ):void {trace( ("socket error" ) );}public function socketInput( event:ProgressEvent ):void {trace(socket.readUTFBytes( socket.bytesAvailable ) );}}}
Jetzt noch schnell ein kleines Skript für das Board aufsetzen:
///////////////////////////////////// setup serial conversation// at 9600 bauds///////////////////////////////////void setup() {beginSerial(9600);}void loop () {Serial.print("hallo welt");delay(400);}
Dieses kleine Skript laden wir jetzt auf das Arduino Board, schalten den TinkerProxy ein und verbinden uns via Flash mit dem Proxy – e voilà, "hallo welt" sollte nun getraced werden.
Es gibt einfach zuviele Möglichkeiten, was man mit dem Teil machen kann ;-) #zitieren
wenn ich den beispielcode in flash einfüge und dann das projekt veröffentliche erhalte ich jede menge fehlermeldungen. ich arbeite in flash cs5 und vermute hier das problem. wäre toll, wenn mir hier geholfen werden könnte. #zitieren
































