私は、3つのPIRモーションセンサーのどれが「動きを感知している」かによって、異なるビデオループを表示するRaspberry Piプロジェクトに取り組んでいます。センサーが何も検知していないときは、追加のビデオを表示したい。したがって、すべての中には、左、中、右、非アクティブの4つのビデオがあります。PIRモーションセンサーがラズベリーパイを使用して検知しない場合のelse-like節
Python 3.4.2を使用して、センサがアクティブになったときにビデオを再生することができましたが、センサがアクティブでないときにビデオを再生するのが難しくなりました。私はそれが単純な 'else'のような節であると思ったが、明らかにそうではない。私はいろいろな方法を試みましたが、アイデアがなくなりました。誰かが「動きの検出なし」のコードをコードに戻すのを手助けできますか?コードは以下の通りである:私は単純化のためprint("Motion detected ...")
とビデオの部品を交換してきました
''' 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("No motion detected")
を追加することができれば、非常に役に立ちます。