スイッチで電源ON/OFF、指定時刻に電源ON/OFF、シャットダウン後自動電源OFFを可能にする拡張基板です。Raspberry Pi(ラズパイ)やJetson Nanoの電源の課題を解決し、省電力運用を可能にします。RTCで電源OFF時も時刻を保持します。USB Type-C端子を搭載し、モバイルバッテリーでも利用できます。
Raspberry Pi / Jetson Nano電源の課題
Raspberry Pi/Jetson Nanoは便利なシングルボードコンピュータですが、次のような悩みを持ったことはありませんか?
- USBケーブルを抜き差ししないと電源をON、OFFできない
- ネットワークや遠隔から電源をOFFできない
- インターネットに繋がっていないと時刻がずれる
- 決まった時間だけ起動して消費電力を抑えたい
- モバイルバッテリーで長時間運用したい
- どれくらい電力を消費しているか知りたい
電源管理、省電力運用に必要な機能を網羅している「RPZ-PowerMGR」拡張基板を使えばこれらの問題を全て解決できます。
特徴
スイッチから電源ON、OFF
スイッチを押すだけでRaspberry Pi/Jetsonを電源ON、OFFできます。電源OFF時はシャットダウン処理が自動的に実行され、その後安全に電源が切れます。
入力端子に外付スイッチの接続も可能です。ケーブル付きスイッチを利用すればレイアウトの幅が広がります。スイッチの代わりにICなどから信号を入力することでも電源ON、OFFできます。
シャットダウン後に自動電源OFF
Raspberry Pi/Jetsonのシャットダウンを検知して自動的に電源OFFできます。ネットワークや遠隔からでも電源OFFが可能になるほか、プログラムの最後にシャットダウン命令を記述しておくことで、プログラム実行後に電源OFFさせることができます。
指定日時に電源ON、OFF
あらかじめ登録した日時、時刻に電源ON、OFFできます。必要なときだけ電源をONすれば省電力でRaspberry Pi/Jetsonを運用できます。モバイルバッテリーで長期間の稼働が可能になります。
月、日、曜日、時、分を自由に指定でき、毎週、毎日、毎時のような指定も可能で、複雑なパターンに対応できます。例えば以下のようなスケジュールが簡単に作成できます。
- 毎時0分に電源ON、10分に電源OFF
- 毎日8:15に電源ON、17:40に電源OFF
- 毎週月、水、金の20:00に電源ON
- 毎月15日の0:00に電源ON
- 1月15日の9:00に電源ON
- 現在時刻から10分後に電源OFF、60分後に電源ON
他社製品の多くはRTCのアラーム機能を使う構成です。そのためスケジュールを同時に1個しか登録できず、起動するたびに次の時刻を登録するプログラムを記述しなければなりません。
一方、RPZ-PowerMGRは専用開発したスケジューラーを搭載しています。そのためスケジュールを最大250個登録可能で、曜日指定などの複雑なスケジュールにも対応できます。一度登録しておけばRaspberry Pi/Jetson側からの管理は不要です。CSVファイルインポート、エクスポート機能もあるので表計算ソフトを使ってスケジュール作成、管理でき、同じ設定を複数台に展開できます。
RTC(時刻保持)
RTC(時計)機能を搭載しており、インターネットに接続されていなくても、電源OFFから復帰した際に自動的に正しい時刻に設定できます。インターネットに接続されている環境では、自動的に時刻サーバーの正確な時刻に同期します。
バックアップコンデンサーに電力を蓄えておくことで、完全に電源から切断されても時刻を保持します。保持期間は電源切断から100時間程度となります。コイン電池を使用しないのでメンテナンスフリーです。
超低消費電力
超低消費電力のIC、回路設計により、Raspberry Pi/Jetson電源OFF時のRPZ-PowerMGRの消費電力をわずか5uA以下に抑えました。長期間の省電力運用を可能にします。(これとは別にモバイルバッテリー側の電圧供給回路での電力消費が生じる場合があります。)
モバイルバッテリーWake up
モバイルバッテリーの多くは消費電流が低くなるとスリープに入り電源が切断されてしまうため、間欠動作させることができません。スリープしないようにダミー電流を流す機能を持つ製品もありますが、電源OFF時にも電力を消費してしまう問題があります。
RPZ-PowerMGRにはモバイルバッテリーWake up機能を搭載しており、スリープ状態のモバイルバッテリーを起動させることができるので、モバイルバッテリーを使った間欠動作が可能です。(動作確認済モデルをご確認下さい)
Raspberry Pi / Jetson消費電流測定
モバイルバッテリーでRasbperry Pi/Jetsonを運用する場合に気になるのは実際にどの程度電力を消費しているかどうかでしょう。RPZ-PowerMGRはRaspberry Pi/Jetsonの消費電流を測定できるので、どの程度の期間バッテリーで運用できるか試算したり、電力消費を下げる構成を探すことができます。
実際に測定できるのは以下の電流値です。
- 現在の消費電流値 (測定は1秒間隔)
- Raspberry Pi/Jetsonを電源ONしてから1秒おきの電流値のデータ (最大1時間分)
- 指定したタイミングから1秒おきの電流値のデータ (最大1時間分)
Raspberry Pi Zero対応 & 拡張基板/HATスタック
基板サイズは消費電力の低いRasbperry Pi Zeroに対応しています。
RPZ-PowerMGRの上に別の拡張基板/HATをスタック(積み重ね)できます。付属アダプターを接続するだけなのではんだ付けは不要です。
コントロールツール付属
Raspberry Pi/JetsonからRPZ-PowerMGRの設定の変更、ON/OFFスケジュールの登録、電流測定などが一括して行えるコントロールツールが付属するので、すぐに使い始めることができます。
また、I2Cの仕様を公開しているので、ご自身のプログラムから制御することもできます。
電源自動リカバリー
意図しない電源切断やバッテリー切れとなっても、電源再投入やバッテリー回復後、すみやかにRaspberry Pi/Jetsonを起動し、運用を再開することができます。
他社製品との比較
他社製品やRaspberry Pi 5内蔵機能はモバイルバッテリーに最適化されておらず、モバイルバッテリーがスリープしてしまうと起動できません。スリープしないモバイルバッテリーでは動作可能ですが、製品自体やモバイルバッテリーの待機電力が大きいため、動作していない間も徐々にバッテリーを消耗してしまいます。
RPZ-PowerMGRであれば、スリープしたモバイルバッテリーからの起動が可能であり、製品自体やモバイルバッテリーの待機電力を大幅に抑えることで長期運用が可能になります。また、設定や管理が容易なスケジューラーや、電流測定機能など、実使用を見据えた設計を行っています。
仕様
項目 | 仕様 |
---|---|
対応ハードウェア | 40ピンコネクタを搭載したRaspberry Piシリーズ、およびJetson Nano 動作確認を行っている製品: – Raspberry Pi 5 – Raspberry Pi 4 Model B – Raspberry Pi 3 Model B/B+ – Raspberry Pi Zero 2 W – Raspberry Pi Zero W/WH – Raspberry Pi Zero – Jetson Nano Developer Kit B01 – Jetson Nano 2GB Developer Kit (Jetson Orin Nanoは非対応です) |
対応OS | Raspberry Pi: 2020年以降にリリースされたRaspberry Pi OS Jetson Nano: JetPack4.6 |
入力電圧 | 4.75 – 5.25V |
最大電流 | 3A (*3) |
消費電流 Raspberry Pi/Jetson電源OFF時 | 5uA (*1) |
消費電流 Raspberry Pi/Jetson電源OFF モバイルバッテリーWake up使用時 | 10uA (*1) |
消費電流 Raspberry Pi/Jetson電源ON時 | 10mA |
I2Cアドレス | 0x20 / 0x22 から選択 |
I2Cアドレス RTC | 0x68 |
I2Cスピード | Normal Mode 100kbps |
外部スイッチ/信号入力 (ESW) | SW OFF : Hi-Z / 3.3V SW ON : GND |
RTC水晶振動子精度 | +/-20ppm (*2) |
電源切断後RTC時刻保持期間 | 100h (*1) |
(*1) バックアップコンデンサーが充電された状態、室温での標準値. モバイルバッテリーなどの電源側で生じる電力消費は含みません.
(*2) 水晶振動子の特性上、温度変化によりこれ以上のずれとなる可能性があります
(*3) Raspberry Pi 5の5Aモードには非対応です
購入
RPZ-PowerMGR拡張基板本体と、Raspberry Pi/Jetson接続用アダプターのセットになります。
まとまった数量をご希望の方は、見積もり依頼よりご連絡ください。
Rev2
Rev1の機能強化/上位互換版です。
Rev1
Rev1の生産は終了しました。上位互換版のRev2をご検討ください。
組み立て
アダプターの取り付け
以下の写真のように、付属アダプターをRPZ-PowerMGRに取り付けます。
Raspberry Pi / Jetsonに取り付け
付属アダプターを装着したRPZ-PowerMGRを、Raspberry Pi/Jetsonの40ピンコネクターに取り付けます。
Raspberry Pi Zeroに関してはアダプターを使わずに直接ピンヘッダーに取り付けて高さを低くすることができます。Raspberry PiとRPZ-PowerMGRの間に高さ4mmのスペーサーを挟むことを推奨しております。この取り付け方法の場合、mini HDMI端子は使用できません。
電源ケーブルの取り付け
RPZ-PowerMGRのUSB Type-C端子(J2)に電源用のUSBケーブルを接続します。Raspberry Pi/Jetson本体の電源端子には何も接続しないで下さい。
電源ON
DSW1の6つのスイッチ全てがOFFにセットされていることを確認します。
青スイッチ(SW2)、もしくはサイドスイッチ(SW3)のどちらかを押すとLEDが点灯してRaspberry Pi/Jetsonに電源が供給されて起動します。Rev1にはサイドスイッチはありませんので青スイッチを使って下さい。
Jetson Nanoをお使いの場合はセットアップ(Jetson Nano)に進んでください。
セットアップ(Raspberry Pi)
コントロールツールのインストール
RPZ-PowerMGRと通信して制御、スケジュール管理するためのコントロールツールをインストールします。以下の記事を参考にI2Cを有効化して下さい。
ターミナルを開き、以下$に続くコマンドを実行します。最新版へのアップグレードも同じコマンドで可能です。
$ sudo python3 -m pip install -U cgpmgr --break-system-packages
エラーが出る場合は最後のオプションを指定せずにお試しください。
$ sudo python3 -m pip install -U cgpmgr
config.txt
config.txtファイルをスーパーユーザーで開きます。パスはOSバージョンによって異なりますので、以下を参照してください。
OSバージョン | パス |
---|---|
Bookworm(最新版) | /boot/firmware/config.txt |
Bullseye (Legacy版)、Bookworm(最新版)の一部 | /boot/config.txt |
config.txtに以下の内容を追記します。
dtoverlay=gpio-shutdown,gpio_pin=16
dtoverlay=gpio-poweroff,gpiopin=26
dtoverlay=i2c-rtc,ds1307
1行目がRPZ-PowerMGRからのシャットダウン要求信号のGPIO番号(デフォルト16)、2行目がRaspberry Piからのシャットダウン完了信号のGPIO番号(デフォルト26)を意味しています。(1行目がgpio_pin、2行目がgpiopinとなっていますが誤記ではありません) 他の拡張基板/HATとGPIOが重なる場合は、16, 17, 26, 27から2つを自由に選択してください。設定した番号は後述のコントロールツールの初期設定で使うので、メモしておきます。
3行目はRTCの設定です。I2Cアドレスは0x68で、DS1307互換デバイスとして動作します。
Raspberry Pi 5の場合はさらに以下の1行をconfig.txtに追記します。本体付属のRTCを無効化する設定です。
dtparam=rtc=off
設定ファイルの編集方法が分からない場合は、以下の記事を参考にして下さい。
config.txtを編集したら、変更を反映させるためRaspberry Piを再起動します。
コントロールツールの設定
「cgpmgr」コマンドでPowerMGRの設定を行うことができます。
以下コマンドを実行します。-r でシャットダウン要求信号のGPIO番号(デフォルト16)、-c でシャットダウン完了信号のGPIO番号(デフォルト26)を設定しています。先ほどconfig.txtで指定した番号と一致するようにして下さい。
$ cgpmgr cf -r 16 -c 26
OSについて
最新OS Bookwormの古いバージョンと一部Raspberry Piモデルの組み合わせにおいて、シャットダウン要求に反応しない場合があります。Bookwormをお使いの場合は以下のコマンドでOSを最新にアップデートしてください。
$ sudo apt update
$ sudo apt upgrade -y
Raspberry Piのセットアップは以上です。使い方に進んでください。
セットアップ(Jetson Nano)
JetsonでJetpack4.6以外をお使いの場合はJetPack4.6をインストールし直し、以下のコマンドでシステムを最新にしてください。
$ sudo apt update
$ sudo apt upgrade -y
$ sudo reboot
コントロールツールのインストール
RPZ-PowerMGRと通信して制御、スケジュール管理するためのコントロールツールをインストールします。ターミナルを開き、以下$に続くコマンドを実行します。最新版へのアップグレードも同じコマンドで可能です。
$ sudo apt update
$ sudo apt install python3-pip
$ sudo python3 -m pip install -U cgpmgr
RPZ-PowerMGR情報の確認
以下のように「cgpmgr cf」コマンドを実行して、RPZ-PowerMGRの情報が表示されればOKです。
$ cgpmgr cf
コンフィグ情報
ファームウェアバージョン: 2.2
スタートアップタイマー: 30秒
シャットダウンタイマー: 150秒
シャットダウン要求信号: 無効
シャットダウン完了信号: 無効
タイムゾーン設定: 540
電源自動リカバリー: 無効
USB Type-Aウェイクアップ: 有効
Jetson Nanoをお使いで、表示されたファームウェアバージョンが以下のいずれかの場合、ファームウェアをアップデートする必要があります。こちらを参考に最新のものにアップデート後、再度スイッチで電源ONしてセットアップを継続してください。
- 1.0 – 1.4
- 2.0 – 2.1
自動セットアップツール
RTCを使うためのカーネルのインストールや、デバイスツリーなどシステムに関わる設定が必要なため、自動セットアップツールを用意しています。ターミナルを開いて以下のコマンドを順に実行します。
$ mkdir pmgr_installer
$ cd pmgr_installer
$ wget https://raw.githubusercontent.com/IndoorCorgi/cgpmgr/master/jetson_nano/pmgr_setup_nano.py
$ python3 pmgr_setup_nano.py
表示されるメッセージ、注意事項に従ってインストールを完了してください。完了したら再起動します。
インストール用に作成したpmgr_installerディレクトリは削除しても構いません。
インストール後の確認
uname -rコマンドの結果が4.9.xxx-tegra-extrtcと表示されていればカーネルが正常にインストール、適用されています。
$ uname -r
4.9.299-tegra-extrtc
以下のコマンドで、結果にrtc2が表示されていればRTCが正常に認識されています。
$ ls /dev | grep rtc
rtc
rtc0
rtc1
rtc2
コントロールツールの設定
「cgpmgr」コマンドでPowerMGRの設定を行うことができます。
以下コマンドを実行します。-r でシャットダウン要求信号のGPIO番号、-c でシャットダウン完了信号のGPIO番号(Raspberry Pi基準)を設定しています。Jetson Nanoではそれぞれ16(Pin#36)、26(Pin#37)固定となります。この2つの信号は他のハードウェアやプログラムで使用しないようにしてください。
$ cgpmgr cf -r 16 -c 26
ファームウェアバージョンが2.7もしくは1.10の場合、追加で以下のコマンドを実行して再起動処理をJetson Nano用に変更してください。
$ cgpmgr cf -b 5
使い方
セットアップが問題なく完了していれば以下の機能が使えるようになっています。
- 電源OFFの状態で青スイッチ(SW2)かサイドスイッチ(SW3)を押すと電源ONされRaspberry Pi/Jetsonが起動します
- 電源ONの状態で青スイッチ(SW2)かサイドスイッチ(SW3)を押すと自動的にシャットダウンが始まり、完了後に電源OFFします
- Raspberry Pi/Jetsonをシャットダウンする操作(sudo poweroffコマンドやメニューからシャットダウンを選択)を行うと、自動的に電源OFFします
- インターネットに接続されていない状態で電源OFFしても、次回起動時に時刻がずれなくなります
基本的な使い方、スケジュール設定や電流測定については以下の解説ページを用意しています。
スイッチでラズパイ/Jetsonの電源をON/OFF (RPZ-PowerMGR)
RPZ-PowerMGRを使って、スイッチでRaspberry Pi(ラズパイ)/Jetson Nanoの電源ON/OFFする方法の解説です。ケーブルの抜き挿しやログインして操作しなくても電源ON/OFFできるほか、リモートやプログラムからシャットダウンした際に自動で電源OFFすることもできます。不要な時は電源を切ることで省電力化が可能です。
指定時刻にラズパイ/Jetsonの電源をON/OFF (RPZ-PowerMGR)
RPZ-PowerMGRを使って、指定時刻にRaspberry Pi(ラズパイ)やJetson Nanoの電源ON/OFFする方法の解説です。決まった時間だけ起動して消費電力を抑えることが可能で、モバイルバッテリーやソーラーシステムでの運用に最適です。
Raspberry PiでRTCを使って時刻管理 (RPZ-PowerMGR)
RTC(時計)を使って、Raspberry Pi(ラズパイ)の時刻を管理する方法の解説です。RTCを使うと、インターネットに繋がっていなくても正確な時刻で運用できます。電源OFFから起動した際に自動的に時刻を設定する方法も説明します。
ラズパイ/Jetsonの消費電力測定&モバイルバッテリー稼働時間の計算 (RPZ-PowerMGR)
RPZ-PowerMGRを使って、Raspberry Pi(ラズパイ)/Jetson Nanoの消費電力を測定する方法の解説です。モバイルバッテリーでの運用可能な時間を計算し、実際の運用時間と比較しました。
以下の2つのオプション機能についての解説ページを用意しています。
電源自動リカバリーで停電やバッテリー切れから復帰 (RPZ-PowerMGR)
RPZ-PowerMGRには、自動的にRaspberry Pi/Jetsonの電源を復帰する「電源自動リカバリー」機能を搭載しています。これにより、意図しない電源切断やバッテリー切れとなっても、スイッチ操作なしで再度Raspberry Pi/Jetsonを起動し、運用を再開することが可能となります。本記事ではその仕組みと、設定方法を解説します。
USB Type-A Wake Up無効化 (RPZ-PowerMGR)
RPZ-PowerMGRはモバイルバッテリーWake up機能を搭載しているため、モバイルバッテリーを使った間欠動作が可能です。ただし、一部の使用環境では副作用でRTCが意図せずリセット(初期化)されてしまうことがあります。本記事ではそれを回避する機能について解説します。
応用例
定期撮影ラズパイカメラをモバイルバッテリーで長期運用 (RPZ-PowerMGR)
Raspberry Pi(ラズパイ)と純正カメラを使用して、定期的に撮影するタイムラプス機能を実装する方法を解説します。RPZ-PowerMGR拡張基板を使うことで、指定時刻に起動し、撮影後は自動的にシャットダウン&電源OFFします。待機時の消費電力をカットすることで、モバイルバッテリーで長期運用が可能になります。
時刻の手動設定
インターネットに接続されている場合は自動的に時刻が設定されるので、この設定は不要です。
インターネットに接続されていない環境で運用している際に時刻合わせをしたい場合などは、以下のコマンドを実行して手動で現在時刻を設定できます。
set-timeの後は現在時刻を指定します。以下は2020年12月20日、15時30分に設定する例です。NTPが有効だと設定できないので、一時的に無効にした後有効に戻しています。
$ sudo timedatectl set-ntp false
$ sudo timedatectl set-time "2020-12-20 15:30:00"
$ sudo timedatectl set-ntp true
timedatectlコマンドでLocal timeが現在時刻になっていればOKです。
$ timedatectl
Local time: 日 2020-12-20 15:30:03 JST
Universal time: 日 2020-12-20 06:30:03 UTC
RTC time: 日 2020-12-20 06:30:03
Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: no
NTP service: active
RTC in local TZ: no
I2Cアドレス切り替え
他の拡張基板/HATとI2Cアドレスが重なる場合は、DSW1-6(下の写真の6つ並んでいる小スイッチの、一番右)をON(上側)にセットした状態で電源ONすることで0x22に切り替わります。Indoor Corgi製品についてはアドレスが重なるものはありません。0x22を使用する場合、後述のコントロールツール cgpmgr を使う際に「-a」オプションを指定する必要があります。
I2Cアドレス0x22を使用している場合は、コントロールツールcgpmgrコマンド実行時、常に-aオプションを追加で指定してください。
$ cgpmgr cf -a -r 16 -c 26 (I2Cアドレス0x22を使用している場合)
セーフモード
セーフモードスイッチを使うと、RPZ-PowerMGRのコンフィグ情報、スケジュールを全て初期化することができます。間違った設定でうまく起動しなくなった場合などにお使い下さい。
- Raspberry Pi/Jetsonが動作中の場合、sudo poweroffコマンドを実行してOSをシャットダウンした状態にしてください。
- LED2が点灯中(Raspberry Pi/Jetsonに通電)されている場合、USBケーブルを抜いてLED2を消灯させた後、再度USBケーブルを挿して下さい。
- DSW1-5(下の写真の6つ並んでいる小スイッチのうち、右から2番目)をONにセットします。
- 白スイッチ(SW1)を押します。RPZ-PowerMGRがセーフモードで起動し、コンフィグ情報、スケジュールが初期化されます。
- DSW1-5をOFFに戻します。
ファームウェアアップデート
RPZ-PowerMGRの制御プログラム(ファームウェア)アップデート手順はこちらを参照して下さい。動作の改善のため新しいファームウェアをリリースする場合があり、アップデートすることで最新のものを適用できます。
モバイルバッテリー
Rev2で動作確認済のモデル
Rev1で動作確認済モデル
開発者向け資料
注意事項
開発依頼
本製品への機能追加などのカスタマイズや、本製品を使ったシステムの開発依頼、その他ハードウェア、ソフトウェアの開発については、有償にて承っております。ハードウェア、ソフトウェア受託開発をご参照下さい。
関連ページ
- RPZ-PowerMGR購入先
- スイッチでRaspberry Pi/Jetson Nanoの電源をON/OFF
- 指定時刻にRaspberry Pi/Jetson Nanoの電源をON/OFF
- Raspberry Pi/Jetson Nanoの消費電力測定&モバイルバッテリー稼働時間の計算
- Raspberry PiでRTCを使って時刻管理
- 電源自動リカバリーで停電やバッテリー切れから復帰
- USB Type-A Wake Up無効化
- Raspberry Pi技術情報一覧
RPi TPH Monitor Rev2 (Raspberry Pi用 温度/湿度/気圧/赤外線 ホームIoT拡張ボード)
動作をプログラミング可能な、Raspberry Pi(ラズパイ)用ホームIoT拡張ボードです。温度、湿度、気圧センサー、赤外線送信、受信機能を搭載。温度が上がったらエアコンをオンにする、外出先から家電の操作をする、気温や湿度を記録する、といった使い方が可能です。ディスプレイやLEDに情報表示、スイッチを押したら特定の処理をすることもできます。
SCD41 CO2センサーとラズパイで二酸化炭素濃度を測定する
Indoor Corgiのセンサー制御ソフトウェア「cgsensor」を利用して、SCD41 CO2センサーで二酸化炭素濃度を測定したり、センサーの校正や設定を変更する方法を解説します。コマンドラインツールを使って1行もコードを書かずに測定や記録ができるほか、Pythonパッケージを使えばご自身のプログラムから簡単にセンサーを制御できます。
CG-FusionLogger (加速度/姿勢/回転/地磁気/気温/湿度/気圧/空気品質 マルチセンサーロガー)
ArduinoIDEで動作を自由にプログラミング可能な、19種類以上のセンサーに対応したマルチセンサーロガーです。加速度/姿勢/回転/地磁気/気温/湿度/気圧/空気品質などのデータをmicroSDに記録できます。USB-Aポートに直挿し可能な設計となっており、車などモバイルで運用可能です。