我試圖從一個光電管電阻和我的Arduino Decimila讀取數據,然後用Processing進行實時圖形化處理。從Arduino發送奇怪的隨機數據到處理
應該是痛苦的簡單;但它對我來說成長爲一場噩夢。
代碼,我在我的Arduino運行:
int photoPin;
void setup(){
photoPin = 0;
Serial.begin(9600);
}
void loop(){
int val = int(map(analogRead(photoPin), 0, 1023, 0, 254));
Serial.println(val); //sending data over Serial
}
代碼我運行在處理:
import processing.serial.*;
Serial photocell;
int[] yvals;
void setup(){
size(300, 150);
photocell = new Serial(this, Serial.list()[0], 9600);
photocell.bufferUntil(10);
yvals = new int[width];
}
void draw(){
background(0);
for(int i = 1; i < width; i++){
yvals[i - 1] = yvals[i];
}
if(photocell.available() > 0){
yvals[width - 1] = photocell.read();
}
for(int i = 1; i < width; i++){
stroke(#ff0000);
line(i, yvals[i], i, height);
}
println(photocell.read()); // for debugging
}
我單獨測試的代碼都位,我知道他們的工作。只有當我嘗試從Arduino輸入Processing時,問題纔會開始。
當我在Arduino的「串行監視器」中查看數據時,我得到一個很好的持續數據流,似乎看起來有效。
但是當我通過處理讀取相同的數據時,我得到了重複的隨機值模式。
Halp?
這實際上很酷。謝謝。 – 2014-10-02 22:44:11