Arduino IDE 2.x のシリアルプロッタは、シリアルモニタと同時表示できる、他

# 概要
シリアルプロッタはデータの変化をグラフで確認できて便利そうだ、ということは以前から知ってましたが最近になって（Arduino IDEを2.3にアップデート以降に）初めて使用しました。使い方を検索する中で Arduino IDE 2.x からシリアルプロッタの機能がバージョンアップされていることが分かりました。

Arduino IDE 2.x のシリアルプロッタのチュートリアル（英語）が下記にありますが、ここに書かれていることやサンプルプログラム（スケッチ）を引用しながらシリアルプロッタの追加された機能を紹介します。

https://docs.arduino.cc/software/ide-v2/tutorials/ide-v2-serial-plotter/

# ■ シリアルモニタと、シリアルプロッタの同時表示
これはできません、という記事をネットで散見します。 Arduino IDE 1.8 の頃はそうだったようです。　しかし IDE 2.x では両方同時に表示できます！！

![シリアルモニタ＋プロッタ.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834831/c002504b-e148-7dd2-4fbc-ab745f3f9075.jpeg)

シリアルモニタと、シリアルプロッタのアイコンをクリックして、それらをスケッチで記述したのと同じボーレートに設定すればOKです。

![起動アイコン、ボーレート設定.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834831/e7445ac6-b8e3-50c6-4fa4-a4b68377c625.jpeg)

# ■ 複数のデータのグラフを表示するには

以下のように Serial.print() で「1つ目の変数」「カンマ」「2つ目の変数」「最後はlnで改行」をシリアル出力します。

~~~C++
  Serial.print(random_variable);
  Serial.print(",");
  Serial.println(static_variable);
~~~

# ■ グラフの凡例の表示
凡例の設定をしないとデフォルトでは下図のように **「value1」「value2」** と表示されます。
![シリアルプロッタ、デフォルトの凡例.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834831/fcdb50f4-958c-7c80-cec5-fd6a2e6a2d00.jpeg)

これを任意の文字列にするには Serial.print() で **「1つ目の凡例:」「1つ目の変数」「カンマ」「2つ目の凡例:」「2つ目の変数」「最後はlnで改行」** の順にシリアル出力します。下記は、チュートリアルの乱数（0〜1023）を表示するサンプルプログラムです。

~~~C++
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」に変わってます。
![random_plotter.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834831/21a0cb70-d172-01b3-60ff-62556e7dcfef.gif)

**【要注意１】　Serial.print("Variable_1:");　の Variable_1: の「:」はとっ～ても重要、べりーいんぽーたんとです。これが無いとグラフは表示されません！！！**

凡例が、ではなくグラフそのものが表示されなくなります。Variable_2: の「:」も同じです。 面白いので是非試してください。昔C言語の入門書で読んだ、カンマ１つでロケットが落ちた、という話を思い出しました。

**【要注意２】スペースに注意！**
例えば Serial.print("Variable 1:");　のようにスペースがあるとスペース以降の文字列のみ、この場合は"1"のみが凡例として表示されます。

 # ■ グラフの凡例のボタンをクリックするとグラフ表示をON/OFFできます。
これもArduino IDE 2.x 以降に追加された機能です。

![enabledisable_plotter.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834831/5f4b19d0-b922-0bf8-4722-07effa8cf3e5.gif)

# ■ 補間
interpolate ボタンをクリックすると、データの移り変わりが尖った直線から、なめらかな曲線になるように補間した表示になります。

![シリアルプロッタ補間の有無.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834831/26f61356-c429-e4f8-a541-42587688721e.jpeg)

# ■ グラフの「STOP/RUN」と「表示クリア」ボタン

![シリアルプロッタのボタン3個.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834831/1e7367f1-fe9e-e1a7-64c9-c141e63741a5.jpeg)
・この３つのボタンも IDE 2.X で追加されました。
・グラフは次から次へと新しいデータが流れるように表示しますが「あれっ？この変化は何？」と思って表示を停止してじっくり観察したい時などにSTOPボタンを押します。もう一度押すと表示を再開します。
・クリアボタンを押すとグラフは消去されます。このアイコンがグラフを消すことを意味している、というのはちょっと分かり難い、ピンとこないですね。

# ■ グラフ縦軸が暴れるのを抑える
下図はチュートリアルのポテンショメータ（可変抵抗器、ボリューム）のサンプルスケッチのシリアルプロッタ出力画面です。

![potentiometer_plotter.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1834831/89094d8b-1d9a-5728-0216-6470f51681e9.gif)


縦軸（y軸）が上下に変動するのが非常に気になります。これを固定するためのアイデアが下記サイトで紹介されています。

https://qiita.com/MasakiOhno/items/438bcd0285227dc3024c

# 【他の投稿記事：Arduino】

https://qiita.com/totuto/items/70417620cf5bce6ec264

https://qiita.com/totuto/items/0268e0e73caeb0d545d3

# 【他の投稿記事：Raspberry Pi Pico】

https://qiita.com/totuto/items/4c9a43b1510eab2fde3d

https://qiita.com/totuto/items/38349e66865d518c45d8

https://qiita.com/totuto/items/3e4bf52189515015cb90

https://qiita.com/totuto/items/6a3ab3c5f888d49739b1

https://qiita.com/totuto/items/2a8db63abd1d3c82880f

https://qiita.com/totuto/items/81944426dc81ab4b7e57

https://qiita.com/totuto/items/d3bc435d3d2f545c1c02

# 【他の投稿記事：ESP32】

https://qiita.com/totuto/items/27b8b25eba047560ce0f

https://qiita.com/totuto/items/42ce1b47e439ed719e08

https://qiita.com/totuto/items/2f58c0ce6e950bbc2eae

https://qiita.com/totuto/items/bb24760538af63b56039

https://qiita.com/totuto/items/885ee3939d0a06c5edc4