Raspberry PiのGPIOピンをPIRセンサーで使用して動きを検出しています。センサーが動きを検出すると、ソフトウェアを他の機能に移動したいと思います。PythonでのRaspberry Pi- GPIOイベント
現在のところ、動きを検出するために、動きが検出されるのを待っている間、私のプログラムは常にループで動作しています。これは現時点では機能しますが、将来的には非常に非効率的で、イベントに割り当てることでこれを改善したいと考えています。
手動でループを実行することなくプログラムで検出されたイベントにGPIO入力をバインドする方法はありますか。
var = 1
counter = 0
while var == 1:
if GPIO.input(7):
counter += 1
time.sleep(0.5)
else:
counter = 0
time.sleep(1)
if counter >= 3:
print "Movement!"
captureImage()
time.sleep(20)
カウンタとセンサーが拾うことを偽陽性の数を減らすために使用される運動を複数回検出:
は、ここに私の現在の検出運動のためのループです。
この方法は、GUIと同じように機能しますか?私がしたいのは、このループが自分のGUIから実行されているモーションディテクタクラスを呼び出すことですが、ループを使うとGUIがクラッシュするだけです。これをスレッドで使用すると、GUIが関連する入力をリッスンしている間にモーション検出ループがバックグラウンドで実行されますか? – Stefoth
@StefothこれはGUIプログラミングがどのように機能するかです。あなたのGUIは独自のスレッドで動作し、モーション検出コードはそれ自身で動作します。 – msvalkon