概要
シリアルプロッタはデータの変化をグラフで確認できて便利そうだ、ということは以前から知ってましたが最近になって(Arduino IDEを2.3にアップデート以降に)初めて使用しました。使い方を検索する中で Arduino IDE 2.x からシリアルプロッタの機能がバージョンアップされていることが分かりました。
Arduino IDE 2.x のシリアルプロッタのチュートリアル(英語)が下記にありますが、ここに書かれていることやサンプルプログラム(スケッチ)を引用しながらシリアルプロッタの追加された機能を紹介します。
■ シリアルモニタと、シリアルプロッタの同時表示
これはできません、という記事をネットで散見します。 Arduino IDE 1.8 の頃はそうだったようです。 しかし IDE 2.x では両方同時に表示できます!!
シリアルモニタと、シリアルプロッタのアイコンをクリックして、それらをスケッチで記述したのと同じボーレートに設定すればOKです。
■ 複数のデータのグラフを表示するには
以下のように Serial.print() で「1つ目の変数」「カンマ」「2つ目の変数」「最後はlnで改行」をシリアル出力します。
Serial.print(random_variable);
Serial.print(",");
Serial.println(static_variable);
■ グラフの凡例の表示
凡例の設定をしないとデフォルトでは下図のように 「value1」「value2」 と表示されます。
これを任意の文字列にするには Serial.print() で 「1つ目の凡例:」「1つ目の変数」「カンマ」「2つ目の凡例:」「2つ目の変数」「最後はlnで改行」 の順にシリアル出力します。下記は、チュートリアルの乱数(0〜1023)を表示するサンプルプログラムです。
int random_variable;
int static_variable = 500;
void setup() {
Serial.begin(9600);
}
void loop() {
random_variable = random(0, 1000);
Serial.print("Variable_1:");
Serial.print(random_variable);
Serial.print(",");
Serial.print("Variable_2:");
Serial.println(static_variable);
}
これを実行すると以下のように表示されます。デフォルトの「value1」「value2」から「Variable_1」「Variable_2」に変わってます。
【要注意1】 Serial.print("Variable_1:"); の Variable_1: の「:」はとっ~ても重要、べりーいんぽーたんとです。これが無いとグラフは表示されません!!!
凡例が、ではなくグラフそのものが表示されなくなります。Variable_2: の「:」も同じです。 面白いので是非試してください。昔C言語の入門書で読んだ、カンマ1つでロケットが落ちた、という話を思い出しました。
【要注意2】スペースに注意!
例えば Serial.print("Variable 1:"); のようにスペースがあるとスペース以降の文字列のみ、この場合は"1"のみが凡例として表示されます。
■ グラフの凡例のボタンをクリックするとグラフ表示をON/OFFできます。
これもArduino IDE 2.x 以降に追加された機能です。
■ 補間
interpolate ボタンをクリックすると、データの移り変わりが尖った直線から、なめらかな曲線になるように補間した表示になります。
■ グラフの「STOP/RUN」と「表示クリア」ボタン
・この3つのボタンも IDE 2.X で追加されました。
・グラフは次から次へと新しいデータが流れるように表示しますが「あれっ?この変化は何?」と思って表示を停止してじっくり観察したい時などにSTOPボタンを押します。もう一度押すと表示を再開します。
・クリアボタンを押すとグラフは消去されます。このアイコンがグラフを消すことを意味している、というのはちょっと分かり難い、ピンとこないですね。
■ グラフ縦軸が暴れるのを抑える
下図はチュートリアルのポテンショメータ(可変抵抗器、ボリューム)のサンプルスケッチのシリアルプロッタ出力画面です。
縦軸(y軸)が上下に変動するのが非常に気になります。これを固定するためのアイデアが下記サイトで紹介されています。
【他の投稿記事:Arduino】
【他の投稿記事:Raspberry Pi Pico】
【他の投稿記事:ESP32】