2009年3月25日 星期三

Mr. Arduino & Mrs. Processing - 03

這篇來說一下兩者之間溝通必要的程式碼


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讀



沒有留言:

張貼留言