J'essaie de lire les données d'une résistance de photocellule et de mon Arduino Decimila, puis de les représenter graphiquement en temps réel avec Processing.Des données aléatoires bizarres envoyées d'Arduino à Processing
Doit être douloureusement simple; mais ça devient un peu un cauchemar pour moi.
CodeJe suis en cours d'exécution sur mon 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
}
code que je suis en cours d'exécution dans le traitement:
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
}
Je l'ai testé séparément les deux bits de code et je sais qu'ils travaillent . C'est seulement quand j'essaie d'avoir l'entrée de l'Arduino en traitement que les problèmes commencent. Lorsque je vois les données dans le "Serial Monitor" d'Arduino, j'obtiens un flux constant de données qui semble valide. Mais quand je lis ces mêmes données par Processing, j'obtiens un motif répétitif de valeurs aléatoires.
Halp?
C'est vraiment cool. Merci. –