我正在尝试从光电电阻器和我的 Arduino Decimila 读取数据,然后使用 Processing 实时绘制它。
应该非常简单;但对我来说,它逐渐变成了一场噩梦。
我在我的 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 的输入进入处理时,问题才会开始。
当我在 Arduino 的“串行监视器”中查看数据时,我得到了一个看起来有效的不错的恒定数据流。
但是当我通过 Processing 读取相同的数据时,我得到了随机值的重复模式。
哈?
最佳答案
关于serial-port - 从 Arduino 发送到 Processing 的奇怪随机数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/256228/