富士山 富士宮口頂上


Date/Time: 2016:10:15 14:40:46
Camera: PENTAX
Model: PENTAX K-5 II s
Exporsure Time: 1/1600
FNumber: 8.0
Aperture Value: 6.0
Focal Length: 21.0

Close

y2blog » Raspberry Pi の電源対策

7

03

2016

Raspberry Pi の電源対策

Raspberry Pi 電源廻りの弱点を改善する


Raspberry Pi は DC +5V の単一電源で動かすことができて、小型のLinuxコンピュータとしては比較的活用し易いのだが、LinuxベースのOSでは通常OSのファイルシステムをMicroSDカードに作成されたファイルシステム上に置くため、組み込み用途には不向きだ.電源を切る前に一々シャットダウンコマンドを投入するのは面倒で、コンピュータに詳しくない人が何も知らずにいきなり電源を落としてしまうとファイルシステムを壊してしまう可能性が高い.


Rasberry Pi をネットワークオーディオプレイヤーとして活用する際の最大の欠点が、電源をいきなり切断することができないことだろう.オーディオ機器としては完全に失格だが、何とかRaspberry Pi を安価なネットワークオーディオプレイヤーとして活用したいところだ.そこで、この最大の欠点をカバーする方法を検討して見ることにする.


Raspberry Pi でいきなり電源ブチ!を可能にする方法としては、大きく2通りの方法がある.一つは通常のLinuxサーバで良く使用されている外部のUPS(無停電電源装置)を導入する方法だ.もう一つは、Raspberry Pi のOSそのものに工夫を加えることで、いきなりコンピュータの電源が切れても、OSが使用するファイルシステムには全く影響が出ないようにすることだ.後者の方法については、別な機会に “LightMPD” というRaspberry Pi のネットワークオーディオプレイヤーについて紹介したいと思う.


モバイルバッテリーを利用したDC5V用小型UPS


小型サーバやPC用のUPS装置としては、APCやオムロンなどの小型UPSが数万円程度で家電量販店などでも販売されているので、入手は容易で使用方法も比較的簡単なのだが、出力はAC100Vで、鉛バッテリーを搭載しているので重くて馬鹿でかい.UPSの制御用にRaspberry Piを使うというのならまだしも、Raspberry Pi 用のUPSとしては使うのは殆ど現実的では無い.


ネットでRaspberry Pi 用のUPSを探していたら、商品が幾つか見つかった.Raspberry Pi 専用に作られた、UPS-PICOという製品がマルツオンラインなどで売られている.値段は4000円前後で、Raspberry Pi のドータカードとして作られているので、他のボードと組み合わせる際は使用するGPIOピンやノイズの影響、物理的な組み合わせ問題など色々と厄介な問題が生じそうだ.

 ・http://www.pimodules.com/_pdf/_pico/UPS_PIco_BL_FSSD_V1.0.pdf

今回私が紹介するのは、元々はRaspberry Pi での使用を想定して開発されたUPSではあるのだが、Raspberry Pi に限らず、他のDC+5V系電源を用いる小型コンピュータボードであれば使用可能な製品だ.


 ・Raspberry Pi 用 ミニUPS  Gallileo 7
  製品マニュアル: https://sites.google.com/a/galileoseven.com/galileo-7/home/miniups

この製品のユニークなところは、UPS用のバッテリーとして専用のLiイオンバッテリーを使うのではなく、市販のモバイルバッテリーをUPS用のバッテリーとして活用していることだ.市販のモバイルバッテリーをそのまま利用するので、DC電源につきものの昇圧・降圧制御回路やバッテリーの充電などの厄介な制御が不要なので、回路がシンプルで小型化できることだ.Raspberry Pi との接続も、+5Vの通常の電源供給ラインと制御用のライン(1〜2本)だけだ.



Rapsberry pi 用 ミニUPS
Rapsberry Pi 用 ミニUPS

UPSとの接続
Rapsberry Pi、ミニUPS、モバイルバッテリーを接続して実験(UPS制御信号は未接続)


【使用方法】

接続方法はいたって簡単で、

 ・電源ジャック J1  2.1φ(センター +): 一般的な DC +5V 系のACアダプタを接続する
                      Raspberry Piで使用する分とモバイルバッテリーへの
                      充電で消費する分を十分賄える電力が必要(3A以上が良いかも)

 ・CN6(USB-Aタイプ): このUSBポートを通じてRaspberry Pi へ給電する
 ・CN5(10Pヘッダ) : ピンヘッダからも+5VをRaspberry Pi 側へ給電することも可能

 ・CN2(USB-Aタイプ): このUSBポートを通じてモバイルバッテリへ給電する
 ・CN3(ミニUSBタイプ):モバイルバッテリからの給電ポート

 ・CN4(シャットダウン/Power ONスイッチ): この端子にタクトスイッチを接続する
                       外部スイッチで強制的にシャットダウンを行う事が可能
                      (接続には2.0mmピッチの日圧PHコネクタが必要かも)

 ・CN8 ピンヘッダ(未装着:ピンヘッダやコネクタは自分で用意する必要がある)
  UPSのステータス信号(Pin#2)      出力
  UPSへのシャットダウン要求信号(Pin#1) 入力


PDFのマニュアルを読んだだけでは、このUPSの具体的な動作イメージがつかみ難いかもしれないが、動作シーケンスを簡単に説明しておく.

 ・外部給電ポート(J1)からの給電停止 または
 ・CN4に接続した外部スイッチからのシャットダウン要求

 UPSがシャットダウンモードに移行(LEDが緑→オレンジへ)し、CN8のStatus(#2ピンまたはCN5のStatusピン)
 信号が Low -> High(3.3V)に遷移する

 Raspberry Pi 側で、UPSのStatus信号が接続されたGPIO端子のLow -> High(3.3V)への遷移を検出し、
 OSをシャットダウンさせる

 UPS側では、Raspberry Pi への給電ポートを監視しており、Raspberry Pi側のOS停止による負荷電圧の変動を
 検出すると、UPS装置そのものの電源をOFFにする(Raspberry Pi への給電も停止)


 ・Raspberry Pi 側からのUPS停止処理

 UPS側からのシャットダウン処理以外にも、接続されたRaspberry Pi 側からもUPSを停止させることが可能

 Raspberry Pi 側のOSでシャットダウン処理を行う前に、UPSのCN8のshutdown(#1ピン)を
 High(3.3V)→ Low に遷移させると、UPS側はシャットダウンモードに移行する
 この後の処理は、UPS側からのシャットダウン時の処理と同じ


このUPSを使用する上で、ちょっと厄介なのはRaspberry Pi 側でのShutdown信号の検出だろう.Raspberry Pi 側のOS上でこのShutdown信号が Low – > High に切り替わった事を検出して、シャットダウン処理を行わなければならない.この辺の仕組みはRaspberry PiのGPIOの制御に絡む話で、ちょっと厄介なのでまた別な機会に紹介することにする.


とりあえずGPIOピンにシャットダウン用のスイッチを接続して、Pythonスクリプトによりシャットダウンさせる方法については、ネット上に沢山記事が出まわっているので、それらを参考にすると良いだろう.

 ・”Adding a Shutdown Button to the Raspberry Pi B+” 

余計なCPU負荷を掛けないという観点から、スクリプト言語のPythonでUPS監視用のバックグラウンドプロセスを動かしておくのはどうかと思うが、とりあえずUPSと連動して簡単にシャットダウンを行う方法としては一番簡単で手軽な方法だろう.


このUPSを使用する上で気になる点としては、モバイルバッテリの昇圧・降圧回路による電源廻りのノイズだろうか.シャットダウン時のほんの短時間の電源供給用途であれば、乾電池やニッケル水素電池などを使ってバックアップ電源を供給した方がネットワークオーディオ用途としては良さそうだ.