まだうまく動いていませんが。
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); //range is from 0 to 511 controlP5.addSlider("Motor",0,511,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 Motor(int theValue){ x = theValue; } void keyPressed(){ //sキーを押したら if(key=='s'){ //通信開始用データ送信 port.write(0); } }
int val = 255;//initialize void setup(){ pinMode(1,OUTPUT); //信号用ピン pinMode(2,OUTPUT); //信号用ピン Serial.begin(9600); } void loop(){ //アナログ入力:0番ピンの値を2で割る //int val=analogRead(0)/2; //0~511の値にする if(Serial.available()>0){ val = Serial.read(); Serial.write(65); //for a signal //静止/正転/逆転の状態に分けてプログラムする if(val>=255 && val<=256){ //静止:255~256 //LOW,LOWでデジタル出力 digitalWrite(1,LOW); digitalWrite(2,LOW); }else if(val>256){ //正転:257~511 //HIGH,LOWでデジタル出力 digitalWrite(1,HIGH); digitalWrite(2,LOW); //valが大きいほど出力値も大きくなる analogWrite(3,val-256); //出力値:1~255 }else{ //逆転:0~254 //LOW,HIGHでデジタル出力 digitalWrite(1,LOW); digitalWrite(2,HIGH); //valが小さいほど出力値は大きくなる analogWrite(3,255-val); //出力値:1~255 } } }