私はGPIOピン17の入力を毎回Webカメラで写真を撮るためにPythonでスクリプトをプログラミングしています。私はwhileループを使用していますが、ピン17に接続されているbuttomが押されず、Trueに設定されます。そのセットをFalseにプッシュすると、コードが開始されます。ifステートメントを続ける
私の問題は次のとおりです。if文のコードは、buttomが解放されてTrueに戻される前に終了できません。それで、それはただ停止し、画像を表示します。どのように私は、コードを取得することができますの任意のアイデアをし、それは真の状態に戻りますか?
EDIT:ifステートメントは、ボタンが押されている限り実行されます。解放されると停止します。意味:私がリリースまでプッシュする時、スクリプトは画像を表示するだけで、 "waitKey"コマンドとbeyound dosentが実行されます。そのセットは "True"に戻っているからです。すでにコメントで述べた
import RPi.GPIO as GPIO
import time
import cv2
import os
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.IN, pull_up_down=GPIO.PUD_UP)
while True:
input_state = GPIO.input(17)
if input_state == False:
print('Button Pressed')
capture = cv2.VideoCapture(0)
capture.set(3,1280)
capture.set(4,1024)
ret, img = capture.read()
cv2.imshow("input", img)
cv2.waitKey(1500)
del(capture)
cv2.VideoCapture(0).release()
あなたの質問の字下げは正しいですか?私はその孤独な 'if'行が何をしているのか判断できません。 – usr2564301
現在、何もしていません。それが私が尋ねた理由です。 – usr2564301
ifの代わりにwhileを入れてください。 input_stateは読み込み入力ですが、falseになるとループを終了し、次のコードを続けます。 – Micka