Raspberry PIの電源制御ボード OnOff SHIMを買ってみた

素のRaspberry PIの電源をオフにするときの操作はshutdownコマンドのあとに電源ケーブルを抜くという形になり面倒な感じだった。電源制御ボードというのを付けることでそれが改善されるというので物色していたところ、OnOff SHIMという安くて小さいやつがあることを知り購入してみた。

(他にももっと高機能なHATがいくつかあったけどこの小ささに惹かれた)

 

www.switch-science.com

 

GPIOピンにはんだ付けするのはちょっと怖いのでピンソケットを使って接続してみた。ボタンで電源on & ボタン長押しでシャットダウンシーケンスが走った後自動的に電源オフになる。便利。ただちょっと基板がヤワい感じなので電源ケーブル(microUSB)の抜き差しとかピンソケットを外したりするのは注意しないと壊れそう(特にピンソケットのはんだの部分が)で怖い。

 

 

ボタンが押されたことを検知してシャットダウンする部分の制御は割とシンプルなプログラムで出来てそうだったので読んでみた。pythonスクリプトで書かれていて、1秒に1回raspi-gpioでボタンの入力をポーリングして押されていればそのあと1秒間の長押し検出に入るコードになっていた。これはこれでシンプルで実用になっているし悪くないのだ。

 

しかし、僕らが作っている商品ではこういう作り方はできない、富豪なコードだと思った。たとえ全体のCPUパワーがこのPI 3B+を全く上回っていたとしても、たぶん1秒に1回pythonスクリプトが定期的に動いてそこからプロセス生成を含むコマンドが呼び出されるというところがもう無駄にCPUパワーを使うというところでダメであり、押したタイミングによって必要な長押し時間が最大1秒変わってしまうというところもダメだ。同じpythonでやるにしてもRPi.GPIOを使えばもうちょっといい感じにできるんじゃないのか? とか思ったんだけどそうすると割と初心者には難しいプログラムになってくるし、これくらいのユルさが許されるのがいいのかなとも思った。