我正在開發Raspberry Pi項目,該項目根據3個PIR運動傳感器中的哪一個「感測運動」顯示不同的視頻環路。當沒有傳感器感應到任何東西時,我想顯示一個額外的視頻。所以總共有4個視頻:左,中,右,不活躍。當PIR運動傳感器不使用樹莓派傳感時,其他類似子句
使用Python 3.4.2,我設法在傳感器被激活時播放視頻,但是當沒有任何傳感器處於活動狀態時,我無法播放視頻。我認爲這將是一個簡單的'其他'類似的條款,但顯然它不是。我嘗試了許多不同的方法,但已經用完了想法。有人可以幫我整合一個「無運動檢測」返回代碼嗎?代碼如下:
''' Import required stuff '''
import RPi.GPIO as GPIO #GPIO
import time #for delay
import subprocess #for omxplayer
''' GPIO setup '''
GPIO.setmode(GPIO.BCM) #GPIO setmode
PIR_PIN_L = 23 #define left pin
PIR_PIN_R = 24 #define right pin
PIR_PIN_M = 25 #define middle pin
GPIO.setup(PIR_PIN_L, GPIO.IN) #set left pin
GPIO.setup(PIR_PIN_R, GPIO.IN) #set right pin
GPIO.setup(PIR_PIN_M, GPIO.IN) #set middle pin
'''Definitions '''
def MOTIONL(PIR_PIN_L): #define motion on left
print("Motion Detected on Left!") #output if motion detected
def MOTIONR(PIR_PIN_R): #define motion on right
print("Motion Detected on Right!") #output if motion detected
def MOTIONM(PIR_PIN_M): #define motion in middle
print("Motion Detected at Middle!") #output if motion detected
''' Initiation '''
print("PIR Module Test (CTRL+C to exit)")
time.sleep(4)
print("Ready")
''' Sensing '''
try:
GPIO.add_event_detect(PIR_PIN_L, GPIO.RISING, callback=MOTIONL)
GPIO.add_event_detect(PIR_PIN_M, GPIO.RISING, callback=MOTIONM)
GPIO.add_event_detect(PIR_PIN_R, GPIO.RISING, callback=MOTIONR)
while 1:
time.sleep(100)
except KeyboardInterrupt:
print("Quit")
GPIO.cleanup()
我和print("Motion detected ...")
爲了簡單取代了視頻部分。如果在沒有激活傳感器的情況下可以添加print("No motion detected")
,這將非常有幫助。