Adruinoシリアルプロッター

Arduinoのシリアルプロッター機能がArduino IDEに追加され、Arduinoからコンピューターにシリアルデータをリアルタイムでネイティブにグラフ化できます。 Arduinoのアナログセンサー入力データがThe Matrixのように画面に表示されるのにうんざりしている場合、これは何が起こっているかを視覚化するためのきれいな方法のように見えます。 シリアルプロッターは、ProcessingやPlotlyなどのサードパーティサービスを使用せずに、データの視覚化とコードのオフライントラブルシューティングを可能にするオフラインツールです。 ArduinoのWebサイトにはSerial Plotterの使用と機能に関する公式文書がないため、その使用と機能を文書化することにしました。

特徴

  • 複数グラフのプロット
  • オフライン
  • グラフの自動サイズ変更
  • 負の値のグラフをサポート
  • X軸に沿った自動スクロール
  • 変数ごとに異なる色

用途

  • オフラインデータの可視化
  • コードのトラブルシューティング
  • 波形解析

必要な部品

Arduino-AliExpressまたは

Arduinoスターターキット-AliExpress

ステップ1:グラフのプロット

Arduino IDEの最新バージョン(1.6.7以降)をインストールしたので、Serial Plotterが実際にどのように機能するかを理解します。 Arduino Serial Plotterは、USB接続を介して受信シリアルデータ値を取得し、シリアルモニターに数字が表示されるだけでなく、X / Y軸に沿ってデータをグラフ化できます。 出力の値が増減すると、垂直Y軸は自動的に調整され、X軸は500ポイントの固定軸であり、軸の各目盛りは実行されたSerial.println()コマンドに等しくなります。 つまり、プロットは、Serial.println()が新しい値で更新されるたびにX軸に沿って更新されます。

シリアルプロッターのボーレートは、コードのボーレートと一致するように設定してください。

複数のプロット

複数の波形を表示する場合、個々の変数/値/パラメーターは、以下に示すような異なる色を使用して表示されます。

複数の変数または波形を同時にプロットするために、2つの印刷ステートメントの間に「スペース」が印刷されます。

 Serial.print(temperature); Serial.print( ""); Serial.println(湿度); 

または

 Serial.print(temperature); Serial.print( "\ t" /); Serial.println(湿度); 

この場合、変数「温度と湿度」の値には、同じグラフに同時にプロットされた別々の波形があります。

ステップ2:オフラインデータの可視化

自動プラント給水システムでArduinoシリアルモニターを使用して、水分センサーデータを視覚化およびプロットしました。

シリアルプロッターを使用する主な目的は、センサーまたはプロジェクトからのデータを視覚化するためにインターネットに接続する必要がないことです。 したがって、データの視覚化の目的で、シリアルプロッターはその仕事に優れています。

Serial Plotterは、その特異な波であろうと複数のプロットグラフであろうと、自動的にサイズを変更し、各波を色分けします。 データ視覚化機能をテストするには、次の手順に従います。

  1. いくつかのセンサーをArduinoに接続します
  2. センサーの値を印刷し、コードをアップロードします。

  3. シリアルプロッターを開きます。

Tweeting Weather StationでSerial Plotterを使用して、Weather Stationのさまざまなセンサーの読み取り値を視覚化しました。 上記の波形は、SL-HS-220センサーの温度(26°C)と湿度(65%RH)の読み取り値のプロットを示しています。

ステップ3:トラブルシューティング

シリアルプロッターの最適な使用法の1つは、コードと回路のトラブルシューティングです。 接続の誤りや誤ったコーディングロジックが、望ましくない出力を返すことがあります。 シリアルプロッターをデバッグするには、コードの行が多すぎたり、配線が多すぎたりするような場合、正確なエラーポイントを表示できます。

シリアルプロッターの助けを借りて、センサーの読み取り値が正しくないかどうか、またはセンサーがArduinoに正しく接続されていない場合でも確認できます。 シリアルプロッターは、さまざまな条件ステートメントや変数の値、またはArduinoのピンの状態を表示することで、コードのデバッグにも役立ちます。

良い例は、障害物回避ロボットのトラブルシューティングです。 この例では、青の波形は超音波センサーを表し、黄色と赤の波形は左右のモーターを表します。 障害物とロボットの間の距離が短くなると、青い波形が小さくなります。 しきい値(最小距離)が10の場合、ロボットは右に曲がるため、2つのモーターの値は異なります; Right = 50、Left = 100。 赤色の波形が減少し、黄色の波形が一定の速度を維持していることがわかります。

ワイヤが正しく接続されていないか、コンポーネントが誤動作しているか、コーディングロジックが正しくないかどうかのトラブルシューティングには、多くの時間がかかります。 しかし、シリアルプロッターを使用すると、波形を分析することで問題のトラブルシューティングにかかる​​時間を大幅に短縮できます。

ステップ4:関数の生成と分析

基本的なプログラミング感覚と数行のコードで、Arduinoは関数ジェネレーターとして機能できます。 Arduinoは、方形波、三角波、サイン波、のこぎり波を生成できます。 Arduino IDEの以前のバージョンでは、視覚化することなく、シリアルモニターで生成される波形のタイプの値のみを観察できました。 数値のみに基づいて出力を分析するには時間がかかります。 これはシリアルプロッターが便利な場所です。 生成される波形を視覚化する。

Function Generator.ino

ステップ5:将来の改善と追加

Arduino IDEには、Serial Plotterの追加が長い間必要でした。 Arduino IDEの機能は向上していますが、まだいくつかの機能が欠けています。

  • 自動スクロール切り替え
  • シリアルプロッターとシリアルモニターの同時使用。
  • X軸スケール/時間スケールが必要です。

これらの機能がArduino IDEに追加されると、引き続きこのInstructableに変更を加え、新しい手順を追加します。

関連記事