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の電流値を測定してグラフにしてみました。起動した後は何も操作しない状態で測定しています。
項目 | 条件 |
---|---|
OS | Raspberry Pi OS 2020-08-20 |
周辺機器 (マウス、キーボードなど) | なし |
WiFi | ON |
ソフトウェア、サービス | 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つです。
先ほどの計算値に、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には電源管理に便利な様々な機能が搭載されています。そちらの記事も参考にしてみて下さい。
- RPZ-PowerMGR購入先
- スイッチでRaspberry Pi/Jetson Nanoの電源をON/OFF
- 指定時刻にRaspberry Pi/Jetson Nanoの電源をON/OFF
- Raspberry PiでRTCを使って時刻管理
- 電源自動リカバリーで停電やバッテリー切れから復帰
- USB Type-A Wake Up無効化
- Raspberry Pi技術情報一覧
ESP-PowerMonitor (ESP-WROOM-02/WiFi搭載 IoT電圧/電流/電力測定基板)
Arduino IDEで動作を自由にプログラミング可能なIoT電力測定基板です。WiFi内蔵マイコンであるESP-WROOM-02を採用しました。流、電力センサーとディスプレイ搭載。Raspberry Piなどの消費電力の記録、スマホなどの充電電流のモニタリング、サーバーへのデータ転送、といった使い方が可能です。
サーボモーターを指定した角度に動かす (Raspberry Pi + RPZ-RC-Servo)
RPZ-RC-ServoとRaspberry Pi(ラズパイ)を使ってサーボモーターを指定した角度へ回転させる手順を解説しています。Pythonで動作する制御ソフトウェアcgservoを使うことで簡単かつ直感的にモーターを制御することができます。
ラズパイで赤外線制御 (家電、エアコン、照明、テレビなどを制御するホームIoT)
Pythonとpigpioを使ってRaspberry Piで赤外線の送受信を行う方法について解説しています。サンプルプログラムを用意しているので、簡単に受信、登録、送信動作をさせることができるほか、データ解析も可能です。赤外線を使ってエアコン、照明、テレビなどの家電を制御することが可能になります。
RPi TPH Monitor Rev2 (Raspberry Pi用 温度/湿度/気圧/赤外線 ホームIoT拡張ボード)
動作をプログラミング可能な、Raspberry Pi(ラズパイ)用ホームIoT拡張ボードです。温度、湿度、気圧センサー、赤外線送信、受信機能を搭載。温度が上がったらエアコンをオンにする、外出先から家電の操作をする、気温や湿度を記録する、といった使い方が可能です。ディスプレイやLEDに情報表示、スイッチを押したら特定の処理をすることもできます。