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の流れを説明します。
スイッチが押される(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する仕組みになっています。
スイッチが押される(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には電源管理に便利な様々な機能が搭載されています。そちらの記事も参考にしてみて下さい。
- RPZ-PowerMGR購入先
- 指定時刻にRaspberry Pi/Jetson Nanoの電源をON/OFF
- Raspberry Pi/Jetson Nanoの消費電力測定&モバイルバッテリー稼働時間の計算
- Raspberry PiでRTCを使って時刻管理
- 電源自動リカバリーで停電やバッテリー切れから復帰
- USB Type-A Wake Up無効化
- Raspberry Pi技術情報一覧
人感センサーとラズパイで人や動物が通ったら撮影する (RPZ-PIRS)
人感センサー(PIR/焦電赤外線センサー)は、人や動物の動きを検知できます。そこで、Raspberry Pi(ラズパイ)、カメラと組み合わせて、人や動物が通ったら写真や動画を撮影する方法を解説します。実際に動作するプログラムも用意しています。人感センサー搭載のRPZ-PIRS拡張基板を利用します。
加速、減速を細かく指定してステッピングモーターを回転させる (Raspberry Pi + RPZ-Stepper)
RPZ-Stepperでは、速度域を3つに分けて、それぞれについてモーターの加速、減速の速さを指定することが可能です。例えば、負荷が重いので動き出しをゆっくり加速したい場合が考えられます。また、ステッピングモーターは回転数が上がるほどトルクが下がる特徴があります。そのため、早い速度域では加速を遅くして脱調を回避できます。
RPZ-IR-Sensor (Raspberry Pi用 温度/湿度/気圧/明るさ/赤外線 ホームIoT拡張ボード)
動作をプログラミング可能な、Raspberry Pi/Zero(ラズパイ)用ホームIoT拡張ボードです。温度、湿度、気圧、明るさセンサー、赤外線送受信機能を搭載。温度が上がったらエアコンをオンにする、暗くなったら照明を点灯する、外出先から家電の操作をする、気温や日照時間を記録する、といった使い方が可能です。LEDにステータスを表示したり、スイッチを押したら特定の処理をすることもできます。