スイッチでラズパイ/Jetsonの電源をON/OFF (RPZ-PowerMGR)

RPZ-PowerMGRを使って、スイッチでRaspberry Pi(ラズパイ)/Jetson Nanoの電源ON/OFFする方法の解説です。ケーブルの抜き挿しやログインして操作しなくても電源ON/OFFできるほか、リモートやプログラムからシャットダウンした際に自動で電源OFFすることもできます。不要な時は電源を切ることで省電力化が可能です。

更新日 : 2023年12月14日

Raspberry Pi/Jetson Nano電源の課題

Raspberry Pi/Jetsonは大変便利な小型コンピューターです。しかし、電源まわりには課題もあります。Raspberry Pi/Jetsonを使っていて、次のような悩みを持ったことはありませんか?

  • USBケーブルを抜き差ししないと電源をON、OFFできない
  • ネットワークや遠隔から電源をOFFできない
  • モバイルバッテリーがスリープしてしまい電源をONできない

RPZ-PowerMGRを使えばこれらの問題を解決できます。具体的には次のようなことが可能です。

スイッチから電源ON、OFF

スイッチを押すだけでRaspberry Pi/Jetsonを電源ON、OFFできます。電源OFF時はシャットダウン処理が自動的に実行され、その後安全に電源が切れます。

入力端子に外部スイッチの接続も可能です。ケーブル付きスイッチを利用すればレイアウトの幅が広がります。

スイッチの代わりにICなどから信号を入力することでも電源ON、OFFできます。

シャットダウン後に自動電源OFF

Raspberry Pi/Jetsonのシャットダウンを検知して自動的に電源OFFできます。ネットワークや遠隔からでも電源OFFが可能になるほか、プログラムの最後にシャットダウン命令を記述しておくことで、プログラム実行後に電源OFFさせることができます。

スイッチによるON/OFF以外にも、RPZ-PowerMGRには電源管理、省電力運用に必要な機能が搭載されていて便利です。

電源を制御する仕組み

どのように電源を制御するのか、仕組みを解説します。

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

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

ブロック図

電源ONの流れ

電源ONの流れを説明します。

電源ONの流れ

スイッチが押される(1)とRaspberry Pi/Jetson本体へ電源が供給され(2)、Raspberry Pi/Jetsonの起動が開始します。

同時にRaspberry Pi/Jetsonの電源と連動しているLED2がに点灯します。また、ステータス表示用LED1が(通常起動)か水色(モバイルバッテリーWake up使用時)に点灯します。

モバイルバッテリーWake up

モバイルバッテリーWake upはスリープ状態のモバイルバッテリーを起動させる機能です。

多くのモバイルバッテリーは、消費電流が低くなるとスリープに入り電源が切断されてしまうため、間欠動作させることができません。RPZ-PowerMGRにはモバイルバッテリーWake up機能を搭載しており、スリープ状態のモバイルバッテリーを起動させることができます。

(モデルによって動作が異なる場合があるので、動作確認済モデルをご確認下さい)

スタートアップタイマー

Raspberry Pi/Jetsonが起動するには数十秒かかります。その間に誤って電源OFFしないようにするため、電源ONから30秒間(コンフィグで変更可能)は、スイッチを押したり、別の機能である指定時刻の電源OFFが入らないようになっています。

この機能をスタートアップタイマーと呼んでいます。タイマーが終了するとLED1が消灯し、電源OFFに移行できるようになります。

電源ONタイムチャート



電源OFFの流れ

電源OFFの流れを説明します。シャットダウンを行ってから安全に電源をOFFする仕組みになっています。

電源OFFの流れ

スイッチが押される(1)とRaspberry Pi本体へシャットダウン要求信号が送信され(2)、Raspberry Piのシャットダウンが開始されます。LED1が黄色に点灯します。

Raspberry Pi/Jetsonのシャットダウン処理が終わると、シャットダウン完了信号がRPZ-PowerMGRへ送信され(3)、電源が切断されます(4)。LED1、LED2が消灯します。なお、再起動する場合は電源OFFしないようにするため、(3)の後に一定時間待機し、再起動しないことを確認しています。

一方、Raspberry Pi/Jetsonを操作してシャットダウンした場合は、(1)、(2)はスキップされ、(3) -> (4)の流れとなります。

デフォルトのシャットダウン要求信号はGPIO16、完了信号はGPIO26となっていますが、コンフィグで変更可能でGPIO16, 17, 26, 27、無効から選択できます。

電源OFFタイムチャート (シャットダウン完了信号)
シャットダウンタイマー

シャットダウンタイマーはRaspberry Pi/Jetsonがフリーズした場合など、不測の事態でも確実に電源を落とす仕組みです。

スイッチが押されて(1)から150秒(コンフィグで変更可能)経過してもシャットダウン完了が検出されない(もしくは無効)場合は、強制的に電源OFFとなります。

Raspberry Pi/Jetsonのシャットダウンにかかる時間は、稼働中のソフトウェアや状況によってばらつき、数秒で終わることもあれば1分以上かかる場合もあります。余裕を持った値にすることをおすすめします。

電源OFFタイムチャート (シャットダウンタイマー)

Raspberry Pi/Jetson Nanoの設定

RPZ-PowerMGRを利用するには、Raspberry Pi/Jetson Nanoを適切に設定しておく必要があります。製品ページのセットアップを参照してセットアップを完了してください。

コンフィグ

ここから、コントロールツール「cgpmgr」を使ってRPZ-PowerMGRの設定(コンフィグ)を変更する手順について解説します。

RPZ-PowerMGRのコンフィグ(設定)情報の表示、変更はコントロールツールから可能です。以下のように「cf」サブコマンドを指定するとファームウェアバージョン、および現在のコンフィグ情報が表示されます。

$ cgpmgr cf
コンフィグ情報
  ファームウェアバージョン: 1.00
  スタートアップタイマー: 30秒
  シャットダウンタイマー: 150秒
  シャットダウン要求信号: GPIO16
  シャットダウン完了信号: GPIO26
  タイムゾーン設定: 540

代替I2Cアドレス0x22を使っている場合(セットアップ時にDSW1-6をONにしている場合)は「-a」オプションの指定が必要です。

$ cgpmgr cf -a
コンフィグ情報
  ファームウェアバージョン: 1.00
  スタートアップタイマー: 30秒
  シャットダウンタイマー: 150秒
  シャットダウン要求信号: GPIO16
  シャットダウン完了信号: GPIO26
  タイムゾーン設定: 540

スタートアップタイマーの時間を変更するには「-u」オプション + 秒数(1-255)を指定します。

$ cgpmgr cf -u 45

シャットダウンタイマーの時間を変更するには「-u」オプション + 秒数(1-255)を指定します。0を指定すると無効になります。

$ cgpmgr cf -d 200

シャットダウン要求信号のGPIO番号を変更するには「-r」オプション + GPIO番号(16, 17, 26, 27)を指定します。0を指定すると無効になります。

変更する場合、Raspberry Pi側のconfig.txtの設定も合わせて変更してください。Jetsonは16固定となります。

$ cgpmgr cf -r 16

シャットダウン完了信号のGPIO番号を変更するには「-c」オプション + GPIO番号(16, 17, 26, 27)を指定します。0を指定すると無効になります。

変更する場合、Raspberry Pi側のconfig.txtの設定も合わせて変更してください。Jetsonは16固定となります。

$ cgpmgr cf -c 26

まとめ

RPZ-PowerMGRを使って、スイッチでRaspberry Pi(ラズパイ)/Jetsonの電源ON/OFFする方法の解説は以上です。これ以外にも、RPZ-PowerMGRには電源管理に便利な様々な機能が搭載されています。そちらの記事も参考にしてみて下さい。

BME280センサーとラズパイで気温、湿度、気圧を測定する

Indoor Corgiのセンサー制御ソフトウェア「cgsensor」を利用して、BME280センサーで気温、湿度、気圧を測定する方法を解説します。コマンドラインツールを使って1行もコードを書かずに測定や記録ができるほか、Pythonパッケージを使えばご自身のプログラムから簡単にセンサーを制御できます。

ラズパイと赤外線でエアコンの自動ON、消し忘れ機能を実現

普段、エアコンを消し忘れてしまい夜間つけっぱなしにしてしまったり、冬場に朝エアコンを入れても暖かくなるのに時間がかかったことは無いでしょうか?本記事では、Raspberry Piと拡張基板を利用して、毎晩のエアコン消し忘れ機能、および朝に温度が低い場合に自動で暖房を入れる機能を実現します。

RPZ-PowerMGR (Raspberry Pi/Jetson Nano用 電源管理/制御/RTC拡張基板)

スイッチで電源ON/OFF、指定時刻に電源ON/OFF、シャットダウン後自動電源OFFを可能にする拡張基板です。Raspberry Pi(ラズパイ)やJetson Nanoの電源の課題を解決し、省電力運用を可能にします。RTCで電源OFF時も時刻を保持します。USB Type-C端子を搭載し、モバイルバッテリーでも利用できます。