2010年7月9日金曜日

Procseccingでシリアル通信

Processingにはシリアル通信のライブラリがあって、これを利用すると簡単にシリアル通信ができます。

サンプルプログラムを動かせばだいたいの挙動がわかると思います。
僕はシリアルデータの受信だけ出来ればよかったので送信側はよくわかりませんが・・・

サンプルはこんな感じになっていると思います。
////////////////////

Seial myPort;

void setup(){
String portName = Serial.list(){0];
int = val;
myPort = new Serial(this, portName, 9600);
}

void draw(){
if(myPort.available() > 0){
val = myPort.read();
}
}

////////////////////

上記のコードを実行するとループのたびに送られてきたデータがvalに格納されるので、あとは煮るなり焼くなりすればOKです。

なお、複数の機器が接続されていたり指定したポートで受信したりしたい時があると思います。
そんなときはsetupあたりに(どこでもいいけど)

////////////////////

void setup(){
...
...
...
for(int i=0; i println(Serial.list()[i]);
}
}

////////////////////

てなコードを追加してやると接続されている機器のリストが表示されます。
Serial.list()は接続されている機器の配列を返してくるので、それのlengthだけfor文を回してリストを表示
してやれば接続されている機器が全部表示されるってわけです。
あとはその中から使用したい機器を指定してオブジェクトを生成してやれば通信できます。

0 件のコメント:

コメントを投稿