ArduinoIDEのシリアルプロッタってご存じですか?
Arduino 1.6.6 あたりでつかされた機能だそうで、数字をシリアルで流すと、そのグラフを書いてくれる機能です。グラフのスケールもある程度自動的に変更してくれるので、とりあえずセンサーで計測した数字をリアルタイムに見たいって時にとても便利!
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に書き込んで、「ツール」→「シリアルプロッタ」を選択します。
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つのグラフが同時に書けます。
右上にある凡例?は左から順に色が割り振られています。
第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つめの項目が赤色でプロットされています。
Y軸のスケールが一つしかないことに注意が必要ですが(1万付近をウロチョロするデータと、0付近をウロチョロするデータを一緒に書くと直線にしか見えないとか・・・)、簡単にセンサーの値を確認することができたりしますので是非活用してはいかがでしょうか。
最後まで読んでいただき、ありがとうございました。