シリアル通信を利用してProcessingからArduino上のLEDを光らせます。
ProcessingのGUIとしてControlP5を使っています。
こちらを参考にしました。
http://kousaku-kousaku.blogspot.com/2008/06/processing-arduino.html
使われる方はシリアルポートを適当に変更して利用してください。
sを入力すると通信を開始します。
Processing用のプログラム
//シリアルライブラリの取り込み import processing.serial.*; Serial port; import controlP5.*; ControlP5 controlP5; //X座標の変数 int x=0; void setup(){ size(255,100); //シリアルポートの設定 port=new Serial(this,"/dev/tty.usbserial-A60049U2",9600); controlP5 = new ControlP5(this); controlP5.addSlider("LED",0,255,128,10,10,200,30); } void draw(){ background(100); } void serialEvent(Serial p){ //データ数が0個より多いとき if(port.available()>0){ //X座標を送信 port.write(x); //Arduinoからの合図用データを //読み込んでバッファを空にする port.read(); } } public void LED(int theValue){ x = theValue; } void keyPressed(){ //sキーを押したら if(key=='s'){ //通信開始用データ送信 port.write(0); } }
Arduinoのプログラム
//読み取り値の変数 int val=0; void setup(){ //シリアル通信開始 Serial.begin(9600); } void loop(){ //データが0個より多いときの時 if(Serial.available()>0){ //データの読み込み val=Serial.read(); //合図用データ送信(1バイト) Serial.write(65); } //アナログ出力(11番ピン)に読み込み値を入れる analogWrite(11,val); }