Question

J'essaie de lire les données d'une résistance de cellule photoélectrique et de mon Arduino Decimila, puis de les représenter graphiquement en temps réel avec Processing.

devrait être terriblement simple; mais sa devient un peu un cauchemar pour moi.

code que je cours 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 de 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
}

J'ai testé les deux morceaux de code séparément et je sais qu'ils fonctionnent. Ce n’est que lorsque j’essaie d’obtenir l’entrée de l’Arduino dans Traitement en cours que les problèmes commencent.

Lorsque je visualise les données dans "Serial Monitor" d'Arduino, je reçois un flux de données constant et agréable qui semble être valide.

Mais lorsque je lis ces mêmes données via Processing, je reçois un motif répétitif de valeurs aléatoires.

Halp?

Était-ce utile?

La solution

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

Ensuite, si vous souhaitez l'intégrer à un site, vous devez 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 y échanger votre propre URL pour le diffuser.

Voici un exemple de son utilisation pour la diffusion de données Arduino

entrer la description de l'image ici

Divulgation complète: je travaille pour Plotly.

Autres conseils

Après avoir examiné de plus près les ressources disponibles, je me suis rendu compte que le problème avait déjà été résolu pour moi par les utilisateurs de http : //arduino.cc

  

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

Oh, combien de temps j'aurais pu gagner si je l'avais vu plus tôt.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top