停止/復帰ボタンを作成していますか?


10

5番ピンと6番ピンを使用してウェイクフロムストップボタンを装備しました。これらの2つのピンを接続すると、電源がリセットされ、停止状態から再起動します。可能であれば、この同じボタンを使用して、押したときにを使用してコンピューターをシャットダウンするコマンドを実行しsudo haltます。これは可能でしょうか?sudo haltボタンの場合、GPIO 1からボタンに接続し、GPIO 6(グランド)と一般的なGPIOピンに分割する必要があります。GPIO 5をこれに接続することが可能/安全かどうかもわかりません。

回答:


8

他のGPIOピンを追加する必要はありません。あなたはあなたの停止ボタンに同じピンを使うことができます。

ピン5をポーリングするいくつかのpythonコードを次に示します。ボタンを押すと、ピン5がグラウンド(ピン6)に引っ張られ、コードはLOWを読み取ります。その場合はhaltコマンドを実行します

#!/usr/bin/python
import RPi.GPIO as GPIO
import time
import subprocess

GPIO.setmode(GPIO.BOARD)
# set pin 5 to input, and enable the internal pull-up resistor
GPIO.setup(5, GPIO.IN, pull_up_down=GPIO.PUD_UP)

oldButtonState1 = True
while True:
    buttonState1 = GPIO.input(5)

    if buttonState1 != oldButtonState1 and buttonState1 == False :
        # print "Button 1 pressed"
        subprocess.call("halt", shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

    oldButtonState1 = buttonState1

    time.sleep(.1)

PS。Wake from Halt関数については知りませんでした。ありがとうございます。ほんとありがと。


1
鮮やかさ!5と6だけですべてを実行できるとは思いませんでした。ありがとうございます。:)
Ryan McClure 2014年

したがって、私たちは2人とも今日何かを学びました(-:
Gerben 2014年

自分へのメモの詳細。プレスで再起動を行い、プレスアンドホールドでシャットダウンを行う(またはその逆)ようにコードを変更することもできます。
Gerben 2014年

スクリプトはどのように継続的に実行されていますか、つまりデーモン化されていますか?映画を見ているときにパフォーマンスの低下に気づきましたか?
athanassis 2014年

1
確かに、それは非常に長い時間ですが、フルHDムービーをデコードするときなど、CPUが数秒間100%に達するときではありません。私はそれを試してみます、テストは決して害はありません。フィードバックをお寄せいただきありがとうございます!
アタナシス2014年

2

P6ヘッダーにリセットボタンを取り付けることができ、Piをリセットできます。P6の2つのピンを一時的に一緒に短絡すると、CPUがソフトリセットされます(これにより、Piが停止/シャットダウン状態から「ウェイクアップ」する場合があります)。

cf


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.