Hallo,
Bin dabei ein Programm zu schreiben das wenn es eine Bewegung erkennt 5 Bilder schießt und dies in einer Endlosschleife
z.B.
Bewegung
-5 Bilder
nach den 5 Bildern noch immer eine Bewegung
-nochmal 5 Bilder
keine Bewegung mehr
-der Sensor wartet auf eine neue Bewegung
so sieht das Programm zurzeit aus:
Code
import picamera
import time
import RPi.GPIO as GPIO
GPIO.setmode (GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(27, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) #Bewegungsmelder
GPIO.setup(24, GPIO.OUT) #LED
x=1
cam = picamera.PiCamera()
cam.resolution = (1920, 1080)
while(True) :
if (GPIO.input(27) == GPIO.HIGH):
with cam:
time.sleep(1)
try:
for i, filename in enumerate(cam.capture_continuous('{timestamp:%H:%M:%S %d-%m-%y} #{counter:04d}.jpg')):
print(filename)
GPIO.output(24,GPIO.HIGH)
time.sleep(0.1)
GPIO.output(24,GPIO.LOW)
if i == 5-1:
break
finally:
print 'ausgeloest: ' + str(x)
x=x+1
Alles anzeigen
Das Problem ist:
starten des Programms
-wartet auf erste Bewegung
Bewegung
-schießt 5 Bilder
wartet auf nächste Bewegung
-zweite Bewegung
Programm bricht ab :
Code
pi@raspberrypi ~/Desktop/Programme/016#pi-kamera-led-PIR-Sensor $ sudo python pi-kamera-led-PIR-Sensor.py
21:10:25 26-04-15 #0001.jpg
21:10:26 26-04-15 #0002.jpg
21:10:27 26-04-15 #0003.jpg
21:10:27 26-04-15 #0004.jpg
21:10:28 26-04-15 #0005.jpg
ausgeloest: 1
ausgeloest: 2
Traceback (most recent call last):
File "pi-kamera-led-PIR-Sensor.py", line 24, in <module>
for i, filename in enumerate(cam.capture_continuous('{timestamp:%H:%M:%S %d-%m-%y} #{counter:04d}.jpg')):
File "/usr/lib/python2.7/dist-packages/picamera/camera.py", line 1807, in capture_continuous
camera_port, output_port = self._get_ports(use_video_port, splitter_port)
File "/usr/lib/python2.7/dist-packages/picamera/camera.py", line 790, in _get_ports
self._camera[0].output[self.CAMERA_CAPTURE_PORT]
TypeError: 'NoneType' object has no attribute '__getitem__'
Alles anzeigen