我试图从一个光电管电阻和我的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