pythonのgpiozero
- M.Katono
- 2019年7月10日
- 読了時間: 2分
更新日:2019年7月29日

raspberry pi のGPIOを使ってLチカ(LEDを点滅させる)例はインターネット上にたくさんあるが、本当にチカチカさせるだけのサンプルコードばかりで、網羅的にgpiozeroの機能を説明しているサイトは(日本語では)ほぼ無い。公式ドキュメントは英語なので、読んでると疲れる。
今回はラズパイzero Wからリレーを作動させてラズパイ3B+を作動させ、シャットダウンしたらoffにしたい。リレーは基盤に実装済みなので簡単(
)。ラズパイzero Wに付属の電源アダプタの線を加工してリレーに繋いだ。
まだpythonよく分からないが、動かして確かめる。gpiozeroでは、gpioの物理的ピン番号を指定して動かすらしい。LEDという関数を使って電気を流してみる。ちなみに、python3を使っている。
これだと、電気が流れない。pw.on()で0秒だけonにして、すぐにoffになる感じ。
onにしたあとにちょっと待ってみる。
これで4秒電気が流れて消えた。電気を流す時間が決まっていない場合は無限ループさせるといいらしい。pw.on()とsleep(4)のところと変える。
ここで試しにラズパイ3B+を起動して動作確認をした。(
)
これでずっと電気が流れるが、終了するときにはCtrl+Cとかで強制終了するしかないのでイマイチ。試行錯誤した結果、無限ループの中で入力待ちにして、’close'と入れたら終了してみる。
これで成功。ラズパイ3B+のシャットダウンを待つために、30秒待ってから電源を切るようにする。
最終的には、「電源を入れたらメッセージを表示→入力待ちで'close'を入力したら電源を切る」、Ctrl+Cでメッセージを表示して強制終了という感じ。
最終的にはこんな感じになった。pythonはコードが短くて、なれるとわかりやすい気がする。
Comments