search
LoginSignup
23

More than 5 years have passed since last update.

フューチャーアーキテクト Advent Calendar 2016 Day 2

posted at

updated at

ArduinoIDEのシリアルプロッタで2個以上のデータを表示させる

ArduinoIDEのシリアルプロッタってご存じですか?

Arduino 1.6.6 あたりでつかされた機能だそうで、数字をシリアルで流すと、そのグラフを書いてくれる機能です。グラフのスケールもある程度自動的に変更してくれるので、とりあえずセンサーで計測した数字をリアルタイムに見たいって時にとても便利!

こんな感じにグラフが表示されます。
シリアルプロット1つ.png

1個のデータのグラフを書く方法

簡単でシリアル通信で「数字(改行)」を送るだけです。たとえばこんなスケッチです。
このスケッチで、先のグラフを描いています。

serial-plot1.ino
double angle = 0;

void setup() {
  Serial.begin(250000);
}

void loop() {
  angle++;
  Serial.print(sin(angle / 180 * PI));
  Serial.println("");
  delay(50);
}

Arduino UNOに書き込んで、「ツール」→「シリアルプロッタ」を選択します。
serialプロッタ.png

シリアルプロット1つ.png

2個のデータのグラフを書く方法

serial-plot2.ino
double angle = 0;

void setup() {
  Serial.begin(250000);
}

void loop() {
  angle++;
  Serial.print(sin(angle / 180 * PI));
  Serial.print(",");
  Serial.print(sin(angle + 30 / 180 * PI));
  Serial.println("");
  delay(50);
}

こんな感じで、カンマ区切りでデータを送信すると・・・
シリアルプロット2つ.png

2つのグラフが同時に書けます。
右上にある凡例?は左から順に色が割り振られています。
第1項目:青
第2項目:オレンジ

もうおわかりでしょうが、3個のデータのグラフを書く方法

serial-plot3.ino
double angle = 0;

void setup() {
  Serial.begin(250000);
}

void loop() {
  angle++;
  Serial.print(sin(angle / 180 * PI));
  Serial.print(",");
  Serial.print(sin(angle + 30 / 180 * PI));
  Serial.print(",");
  Serial.print(2 * cos(angle  / 180 * PI));
  Serial.println("");
  delay(50);
}

シリアルプロット3つ.png

こんな感じで、3つめの項目が赤色でプロットされています。

Y軸のスケールが一つしかないことに注意が必要ですが(1万付近をウロチョロするデータと、0付近をウロチョロするデータを一緒に書くと直線にしか見えないとか・・・)、簡単にセンサーの値を確認することができたりしますので是非活用してはいかがでしょうか。

最後まで読んでいただき、ありがとうございました。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
23