4

フォトセル抵抗器と 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

}

Processingで実行しているコード:

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 の「シリアル モニター」でデータを表示すると、有効に見える一定のデータ フローが得られます。

しかし、Processing を通じて同じデータを読み取ると、ランダムな値の繰り返しパターンが得られます。

ハーフ?

4

2 に答える 2

4

手元にあるリソースを詳しく調べた後、 http: //arduino.ccの人々によって問題がすでに解決されていることに気づきました。

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

ああ、以前にそれを見ていたら、どれだけの時間を節約できたでしょう。

于 2008-11-02T02:03:28.523 に答える
2

Plotly Arduino API を使用してそのデータを送信できます。これは、ドキュメントとセットアップと共に、こちらから入手できます。基本的な考え方: Arduino から継続的にデータをストリーミングしたり、単一のチャンクを送信したりできます。

次に、それをサイトに埋め込みたい場合は、URL を取得して次のスニペットを使用します。

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

そのスニペットで幅/高さの寸法を変更できます。注: ストリームを取得するには、そこに独自の URL を入れ替える必要があります。

Arduinoデータをストリーミングする方法の例を次に示します

ここに画像の説明を入力

完全な開示:私はPlotlyで働いています。

于 2013-11-06T02:56:29.680 に答える