Processing:
import processing.serial.*; //要import serial的library
Serial port; //宣告一個叫做port的Serial
int i = 0;
float var;
void setup() {
size(255, 255);
frameRate(25);
port = new Serial(this, Serial.list()[1], 9600); //建立port這個元件,指定連接阜和連線速度
println(Serial.list()); //將連接阜的列表列出來
noStroke();
smooth();
}
void draw() {
background(8);
i++;
var = constrain(sin(radians(i)),0,1);
int light = (int)(1+254*var*var);
if (i==360) i=0;
fill(light);
ellipse(width/2, height/2, 50, 50);
port.write(light); //把light寫入port裡
}
Arduino:
int val;
int ledPin = 9;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600); //開始進行serial通訊,速度為9600
}
void loop() {
if (Serial.available()) val = Serial.read(); //如果serial裡有資料的話,就讀取給var
analogWrite(ledPin, val);
delay(40);
}
執行出來的效果就是像呼吸一樣的led
畫面上的圓圈也是一樣
有標記顏色的地方就是必要放的程式碼
Processing寫,Arduino讀
沒有留言:
張貼留言