2008-11-01 11 views
4

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.

Code

Je 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?

Répondre

2

Vous pouvez transmettre ces données avec l'API Plotly Arduino, qui, avec la documentation et la configuration, est disponible here. Idée de base: vous pouvez diffuser en continu des données depuis votre Arduino, ou transmettre un seul morceau.

Ensuite, si vous voulez l'intégrer dans un site, vous aurez envie de saisir l'URL et utiliser cet extrait:

<iframe id="igraph" src="https://plot.ly/~abhishek.mitra.963/1/400/250/" width="400" height="250" seamless="seamless" scrolling="no"></iframe> 

Vous pouvez modifier les dimensions largeur/hauteur dans cet extrait. Remarque: vous devez permuter votre propre URL pour la faire défiler.

Here's an example of how it looks to stream Arduino data

enter image description here

divulgation complète: Je travaille pour Plotly.

+0

C'est vraiment cool. Merci. –

4

Après un examen plus approfondi des ressources à portée de main, je compris que le problème avait déjà été résolu pour moi par les gars de http://arduino.cc

http://arduino.cc/en/Tutorial/Graph

Oh combien de temps je pouvais J'ai sauvé si j'avais vu ça plus tôt.

Questions connexes