その4-1.シャットダウンボタンを作る

着手する前に…

ここからプログラムを組んでいく事になるので、WinSCPをインストールしておきます。
なくてもvimで書けばいいのですが、私vim苦手なので…あとやっぱりTeraPad使えるのはすごく便利です。サクラエディタ? 秀丸? そんなものは知りません。
それにWin10側とRaspberrtPi側を分けておけば作業工程がそのままバックアップ作業になりますからね。

とりあえずボタンをつけてみる

開発環境の構築が完了したので、早速いろいろ作ってみようと思います。
まずはボタン制御から。以下サイトを参考に組んでいきます。

【Raspberry Pi 2 Model B】初めての電子工作 タクトスイッチに挑戦 - Qiita

今回は抵抗を用意してないので(迂闊、でも計画通り)ラズパイ内のプルダウン抵抗に任せることにします。

f:id:nekhbet:20200119155918p:plain

ソースコードをコピペして動作確認。

f:id:nekhbet:20200119211736p:plain

無事に動きました。

5秒間押し続けたらシャットダウンするようにする

 先のソースを少し変更して、5秒間押し続けたらシャットダウンする内容へ変更します。

#!/usr/bin/env python

import RPi.GPIO as GPIO
import time
import os

GPIO.setmode(GPIO.BCM)
GPIO.setup(14, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)

try:
    pushtime = 0
    while True:
        if GPIO.input(14) == GPIO.HIGH:
            pushtime += 1
            print(pushtime)
            if pushtime >= 50:
                os.system("sudo shutdown -h now")
        else:
            pushtime = 0

        time.sleep(0.1)
except KeyboardInterrupt:
    pass

GPIO.cleanup()
?
変更内容は至極簡単。pushtime変数で押下している間カウンティングして50になる(5秒経過)したらシャットダウンコマンドを走らせるだけです。非押下時を想定してピン入力がhighではない時はカウントリセットするのを忘れず。

まだ課題はたくさん…

とりあえずシャットダウンボタンはできましたけど、まだ課題は山積しています。

  1. ソースコードLua
  2. ボタン制御を常時動作させる

次からは上記課題の解消を目指すつもりですが、もしかしたら少しタイミングを前後して冷却ファン制御に着手するかもしれません。Raspberry Pi 4結構熱くなってるので…