棒グラフをアニメーション表示する
変化するセンサー値を動く棒で可視化します。
「棒グラフをアニメーション表示する」はCoddyKit上の無料Arduino & IoT Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはArduino & IoT Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Arduino & IoT Academyコースには全4レッスンが含まれています。
棒グラフを使う理由
数値は正確ですが、barなら状況を瞬時に伝えられます。伸びていくバーは、数字を読むよりもはるかに速く、センサー値の上昇を示します。📊
測定値から始める
アニメーションは新しいデータから始まります。ループのたびに新しいsensor値を取得します。たとえば、analogReadなら0から1023の範囲の値が得られます。
int value = analogRead(A0);バーの幅に変換する
生の値の範囲は、画面の幅と一致しないことがほとんどです。mapを使って0-1023を0-128ピクセルに変換し、画面の幅に収めます。
int barWidth = map(value, 0, 1023, 0, 128);結果を範囲内に収める
ノイズの影響で測定値が範囲を超えることがあります。constrainで値を制限すれば、バーが画面の端を越えて描画され、レイアウトが崩れるのを防げます。
barWidth = constrain(barWidth, 0, 128);フレームごとに消去する
アニメーションとは、すばやく描画し直すことです。各フレームの最初にclearDisplayを呼び出し、古いバーを消してから新しい長さを描画します。
display.clearDisplay();バーを描画する
変換した幅を使い、fillRectでバーを描画します。x、y、高さを固定しておけば、データに応じて幅だけが変化します。
display.fillRect(0, 28, barWidth, 8, WHITE);枠を追加する
drawRectでトラック全体の輪郭を描き、最大値を示します。塗りつぶし部分がこの枠の内側で伸びるため、バーの意味が明確になります。
display.drawRect(0, 28, 128, 8, WHITE);値にラベルを付ける
バーに正確な数値を組み合わせます。バーの上にカーソルを設定し、printで測定値を表示すると、形状と正確な数値の両方を確認できます。
display.setCursor(0, 0);
display.print(value);フレームを表示する
完成したフレームをdisplay.display()で送信します。バッファ全体が一度に更新されるため、途中までしか描画されないちらつきなく、バーが滑らかに動きます。
display.display();アニメーションの速度を調整する
可能な限り速く再描画すると、動きが不安定に見えます。50ミリ秒の短いdelayを入れると、動きが滑らかになり、センサー値の細かな揺れも落ち着きます。
delay(50);完全なループ
すべてをつなげると、読み取り、変換、消去、描画、表示、一時停止という流れになります。loop()内のこのサイクルが、作成するすべてのライブOLEDアニメーションの原動力です。
確認問題
バーに、前のフレームの残像が表示されています。
まとめ
測定値をリアルタイムのbar graphに変換しました。読み取り、変換、範囲制限、消去、塗りつぶし、枠付け、ラベル付け、表示を一定の間隔で繰り返します。これがリアルタイム可視化です。
AI チューターと学ぶ C++ — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 30
- レッスン
- 120
よくある質問
「棒グラフをアニメーション表示する」レッスンは無料ですか?
はい。「棒グラフをアニメーション表示する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Arduino & IoT Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Arduino & IoT Academyコースには全4レッスンが含まれています。
「棒グラフをアニメーション表示する」で何を学びますか?
変化するセンサー値を動く棒で可視化します。 ブラウザで直接実行するハンズオンコードでArduino & IoT Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Arduino & IoT Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのArduino & IoT Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「棒グラフをアニメーション表示する」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このArduino & IoT Academyレッスンでコードを書いて実行できますか?
はい。すべてのArduino & IoT Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- SSD1306 OLEDを配線・初期化する
- 複数のサイズでテキストを描く
- 線、長方形、円
- 棒グラフをアニメーション表示する