M5StackのLCDの操作を調べていく過程でCPUメーターを作りました
arduinoもCで作るのも初めてでしたが、画面描画ライブラリLovyanGFXのおかげであっさり作れました。
動作イメージ
内部動作
LovyanGFXが高速で高機能だったのでサンプルで動作確認していたところ期待した動作のものがありましたのでこちらをベースに作成
ベースはLovyanGFXのRadgialGaugeサンプルです。
最初はMeterSampleをベースに作ろうとしてましたが、メーターが4つだとスプライト4枚に増やすなど手間がかかりすぎでした。
RadgialGaugeならスプライトも1つで幅3ドットだけなので、コード全体が見通しよく実装できました。
経緯
@nori-dev-akgさんの記事で、CPUメーターがかっこよかったのですが
USB直結デバイスの電子工作の敷居が高そうだったので、手持ちのM5Stackでまずは試してみようというのがきっかけで作り始めました
M5Stackが画面が大きいので、数字だけでなくゲージも表示できそうなので追加しました
コード
M5Stackプログラム ソースコード
PC用プログラム(Windows)
プログラム補足説明
PCで収集したパフォーマンスカウンターのデータを
M5StackにUSBのシリアル通信でデータを送って表示します。
(ArduinoIDEと一緒にインストールされるUSBドライバが必要)
データ形式は以下
「001002003K004;」
DATA | TITLE | RANGE |
---|---|---|
001 | cpu usage | 0-100 |
002 | memory usage | 0-100 |
003 | network total bytes | 0-999 |
K | bytes unit | K,M,G |
004 | hdd usage(%) | 0-100 |
PC用プログラムは.NET Framework4.8 C#です。
起動時引数でCOMボート番号とレートを指定します。
※パフォーマンスカウンターが.net6待ちなのでWindows専用です。