ラズパイ/Jetsonの消費電力測定&モバイルバッテリー稼働時間の計算 (RPZ-PowerMGR)

RPZ-PowerMGRを使って、Raspberry Pi(ラズパイ)/Jetson Nanoの消費電力を測定する方法の解説です。モバイルバッテリーでの運用可能な時間を計算し、実際の運用時間と比較しました。

更新日 : 2023年11月13日

Raspberry Pi/Jetsonの消費電力を知りたい

Raspberry Pi/Jetsonを使っていて、「どれくらい電力を消費しているか知りたい」と思ったことはありませんか?

モバイルバッテリーでRasbperry Piを運用する場合に気になるのは実際にどの程度電力を消費しているかどうかでしょう。Raspberry Pi/Jetsonの消費電力が分かれば、モバイルバッテリーでどれくらいの期間稼働できるか計算できます。

一方で、消費電力はRaspberry Pi/Jetsonの種類や、接続されている周辺機器、動作しているソフトなどによって変わるため、スペックから単純に見積もることができません。

RPZ-PowerMGRはRaspberry Pi/Jetsonの消費電流を測定できるので、どの程度の期間バッテリーで運用できるか試算したり、電力消費を下げる構成を探すことができます。

電流測定以外にも、RPZ-PowerMGRには電源管理、省電力運用に必要な機能が搭載されていて便利です。

電流を測定する仕組み

どのように電流を測定するのか、仕組みを解説します。

RPZ-PowerMGRはRaspberry Pi/Jetsonの40ピンコネクターに装着する拡張基板(HAT)です。

下の図にあるように、外部電源がRPZ-PowerMGRに接続されており、Raspberry PiJetson本体への電源供給、切断をコントロールできる構成になっています。電源は40ピンコネクター経由で供給されるので、Rasbperry Pi/Jetson本体の電源コネクターは使用しません。

同時に、Raspberry Pi/Jetsonへ供給している電流を測定回路により測定結果をRPZ-PowerMGRのメモリーに保存します。この値をRaspberry Pi/Jetson側から読み出すことで消費電流がわかるという仕組みです。

セットアップ

RPZ-PowerMGRのセットアップ手順は製品ページのセットアップを参照してください。本記事では電流値の測定について解説します。




現在の電流値を測定

RPZ-PowerMGRの電流測定結果の表示、保存はコントロールツールから可能です。「me」サブコマンドを指定すると電流関連の操作になります。

まず、最初の例として現在の電流値を測定してみましょう。以下のコマンドを実行します。(代替I2Cアドレス0x22を使っている場合は「-a」オプションの指定が必要です)

$ cgpmgr me
電流値 459[mA]

現在の電流値が表示されました。

RPZ-PowerMGRでは1秒ごとに電流を測定しており、「me」サブコマンドのみを指定すると、最も新しい測定結果が表示されます。

Raspberry Pi/Jetsonが電源ON(起動)してからの電流値を表示

現在の電流値を表示する方法だと、Raspberry Pi/Jetsonが起動した後、操作可能になっていないといけません。一方、Raspberry Pi/Jetsonが起動して操作可能になるまでの間どの程度電流を消費しているか知りたい場合もあると思います。

RPZ-PowerMGRではRaspberry Pi/Jetsonの電源をONしたタイミングから1秒ごとに電流値を測定してメモリーに保存しています。(最大3600秒、1時間分まで)以下のコマンドで、その結果を読み出すことができます。

$ cgpmgr me -L
3600秒分の電流値の記録データがあります.
時間[s], 電流[mA]
0, 185
1, 509
2, 456
3, 502
4, 502
5, 413
6, 585
7, 411
8, 402
9, 422
(以下省略)

1列目が電源ONからの秒数、2列目が電流値[mA]です。

Raspberry Pi/Jetsonの電源がONする際に前回の測定結果はクリアされ、新しいデータが保存されていきます。

csvファイルへ保存

「-f」オプションに続けてファイル名を入力すると、メモリーの測定結果をcsvファイルに保存できます。グラフ化や分析したりするのに便利です。

$ cgpmgr me -L -f meas.csv
3600秒分の電流値の記録データがあります.
ファイル meas.csv へ保存しました.

メモリーをクリアして測定を開始

通常は電源ONから最大1時間分の測定値がメモリーに保存されますが、以下のコマンドを実行するとメモリーをクリアして測定を開始します。コマンドを実行してから最大1時間分のデータがメモリーに記録されます。(RPZ-PowerMGRで電源OFF -> 電源ON状態になると自動的にメモリーがクリアされますので注意してください。)

$ cgpmgr me -s
電流値のログをリセットしました. 現在から毎秒, 最大1時間まで記録します. 

測定結果の表示、保存は電源ONからの結果の読み出しと同様に、以下のコマンドで可能です。

$ cgpmgr me -L
$ cgpmgr me -L -f meas.csv



実際に測定

実際に電源ONから15分間のRaspberry Piの電流値を測定してグラフにしてみました。起動した後は何も操作しない状態で測定しています。

項目条件
OSRaspberry Pi OS 2020-08-20
周辺機器 (マウス、キーボードなど)なし
WiFiON
ソフトウェア、サービスOSインストール後SSH, VNC, I2Cを有効化
測定条件

最も消費電流が大きかったのがRaspberry Pi4で、3 ModelB+、3 ModelB、 Zero W/WHと続きます。

時間で見ると電源ON直後から30秒程度は起動後の処理で電流が多くなっていますが、それ以降はほぼ一定になっています。Zero W/WHは処理能力が低いので起動後の処理に90秒程度かかっています。

起動後に安定してから(2〜10分のデータを使用)の電流値の平均をグラフ化したものが以下のとおりです。

モバイルバッテリーでの稼働時間

一般的なバッテリーでの稼働時間は以下の式で計算できます。バッテリーとRaspberry Pi/Jetsonの電圧が異なるので、mW、mWh単位に直して計算します。

消費電力 [mW] = (Raspberry Pi /Jetson消費電流 [mA] + その他消費電流 [mA]) × 5 [V]

バッテリー容量 [mWh] = バッテリー容量 [mAh] × バッテリー電圧 [V]

稼働時間 [h] = バッテリー容量[mWh] ÷ 消費電力 [mW]

Raspberry Pi/Jetson消費電流は測定した値の平均を入れます。その他消費電流は、RPZ-PowerMGRが電源ON時10mA消費します。他にもバッテリー側の回路などで損失が出るので、今回の計算例では合計30mAを使います。(厳密な式ではありませんが、おおよその時間を見積もることが可能です)

市販のモバイルバッテリーのほとんどはリチウムイオン型のもので、バッテリー電圧は3.7Vです。そのため簡単に計算できるようにしたものが以下の式です。

稼働時間 [h] = 0.74 × モバイルバッテリー容量[mAh] ÷ (Raspberry Pi /Jetson消費電流 [mA] + その他消費電流 [mA])

先ほどの平均値をもとに、10000mAのモバイルバッテリーでの連続稼働時間を計算した結果が以下のグラフです。

実際に10000mAhのバッテリーでRaspberry Pi4 ModelBとZero W/WHを稼働させて、どれくらい持つか試してみました。使用したバッテリーは以下の2つです。

AUKEY PB-Y36
Anker PowerCoreSlim 10000PD

先ほどの計算値に、PowerCoreSlim 10000PD実測値PB-Y36実測値を並べてグラフにしました。計算値に近い値になっています。

稼働時間を伸ばすには

今回はRaspberry Pi/Jetsonを連続運転した状態での稼働時間を検証しました。RPZ-PowerMGRには指定時刻に電源ON/OFFする機能があり、必要なときだけ電源ONすることでさらに稼働時間を伸ばすことが可能です。

決まった時間に電源ONして写真を撮影し、電源OFFすることで、モバイルバッテリーで長期運用するシステムの例を以下の記事で解説していますので、参考にして下さい。

定期撮影ラズパイカメラをモバイルバッテリーで長期運用 (RPZ-PowerMGR)

Raspberry Pi(ラズパイ)と純正カメラを使用して、定期的に撮影するタイムラプス機能を実装する方法を解説します。RPZ-PowerMGR拡張基板を使うことで、指定時刻に起動し、撮影後は自動的にシャットダウン&電源OFFします。待機時の消費電力をカットすることで、モバイルバッテリーで長期運用が可能になります。

まとめ

RPZ-PowerMGRを使って、Raspberry Pi(ラズパイ)の消費電力を測定する方法の解説は以上です。モバイルバッテリーでの運用可能な時間を計算し、実際の運用時間と比較しました。

これ以外にも、RPZ-PowerMGRには電源管理に便利な様々な機能が搭載されています。そちらの記事も参考にしてみて下さい。

ESP-PowerMonitor (ESP-WROOM-02/WiFi搭載 IoT電圧/電流/電力測定基板)

Arduino IDEで動作を自由にプログラミング可能なIoT電力測定基板です。WiFi内蔵マイコンであるESP-WROOM-02を採用しました。流、電力センサーとディスプレイ搭載。Raspberry Piなどの消費電力の記録、スマホなどの充電電流のモニタリング、サーバーへのデータ転送、といった使い方が可能です。

SCD41 CO2センサーとラズパイで二酸化炭素濃度を測定する

Indoor Corgiのセンサー制御ソフトウェア「cgsensor」を利用して、SCD41 CO2センサーで二酸化炭素濃度を測定したり、センサーの校正や設定を変更する方法を解説します。コマンドラインツールを使って1行もコードを書かずに測定や記録ができるほか、Pythonパッケージを使えばご自身のプログラムから簡単にセンサーを制御できます。

ステッピングモーターを指定速度/回転数で回転させる (Raspberry Pi + RPZ-Stepper)

RPZ-Stepperは、速度指定モードに設定することで、指定した速度でステッピングモーターを回転させ続けることができます。途中で速度を変更も可能で、指定したパラメーターに応じて自動で加減速します。速度を細かく制御しながら回転し続けるようなアプリケーションに最適です。

RPZ-Stepper (Raspberry Pi用 高機能ステッピングモータードライバー)

ステッピングモーターを制御できるRaspberry Pi(ラズパイ)用拡張基板です。位置や角度、回転数などを指示すれば、自動で目標までモーターを動かしてくれます。加減速、静音モード、省電力モード、電流測定などの機能を搭載しています。ものを動かしたり回転させるシステムが実現できます。