Für Aufnahmen mit Raspberry Pi Ich denke, dass der erste Ort, an den man gehen muss, das Schießen mit der Tastatur ist. Wenn es jedoch darum geht, eine große Anzahl von Bildern aufzunehmen Für normale Menschen ist es unmöglich, weil es notwendig ist, eine große Anzahl von Menschen zu entlassen. Also habe ich es mit dem Gedanken erstellt, dass es einfacher wäre, automatisch zu schießen.
Diesmal habe ich einen Untergebenen gemacht (Opfer Nr. 1), also habe ich es zusammen gemacht
Raspberry Pi 3 Model B+ os Raspbian(Bastar) Python 3.7.3 opencv 4.1.0.25 Kamera verwendet ELECOM UCAM-C750FBBK
cap_save.py
import cv2
import os
import sys
import datetime
import RPi.GPIO as GPIO
from time import sleep
import time
Dieses Mal werde ich GPIO verwenden Ich habe es dem Basis-Shooting-Set hinzugefügt Ich benutze einen Timer, also füge ich ihn hinzu.
cap_save.py
GPIO.setmode(GPIO.BCM)
GPIO.setup(22, GPIO.OUT)
GPIO.setup(24, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(25, GPIO.OUT)
Diesmal habe ich einen Taktschalter an das Brotbrett angeschlossen Da es zum Starten und Beenden der Aufnahme verwendet wird, ist es so eingestellt, dass es durchgeführt werden kann.
cap_save.py
def save_frame_camera_cycle(device_num, dir_path, basename, cycle, ext='jpg', delay=1, window_name='frame'):
cap = cv2.VideoCapture(0)
if not cap.isOpened():
return
os.makedirs(dir_path, exist_ok=True)
base_path = os.path.join(dir_path, basename)
n = 0
while True:
ret, frame = cap.read()
cv2.imshow(window_name, frame)
if GPIO.input(24) == GPIO.HIGH:
GPIO.output(25, GPIO.HIGH)
while True:
ret,frame = cap.read()
cv2.imshow(window_name, frame)
key = cv2.waitKey(1) & 0xFF
if n == cycle:
n = 0
GPIO.output(25, GPIO.HIGH)
cv2.imwrite('{}_{}.{}'.format(base_path, datetime.datetime.now().strftime('%F %T'), ext), frame)
print("shoot")
n += 1
if GPIO.input(22) == GPIO.HIGH:
GPIO.output(25, GPIO.LOW)
print ("stop")
time.sleep(1)
break
else:
GPIO.output(25, GPIO.LOW)
if GPIO.input(22) == GPIO.HIGH:
GPIO.output(25, GPIO.LOW)
print ("end")
break
cv2.destroyWindow(window_name)
GPIO.cleanup()
save_frame_camera_cycle(0,'/home/pi/Desktop/GPIO/test/photo', 'test', 20)
Drücken Sie den Taktschalter (24), um jede Sekunde zu schießen. Drücken Sie den Taktschalter (22), um die Aufnahme zu beenden. Drücken Sie den Taktschalter (24) im gestoppten Zustand, um die Aufnahme fortzusetzen. Drücken Sie den Taktschalter (22) im gestoppten Zustand, um die Aufnahme zu beenden. Die LED (25) leuchtet während der Aufnahme auf.
Ich habe es geschafft, während ich verschiedene Dinge recherchiert habe, daher verstehe ich die Details nicht Mir geht es gut, weil ich schießen konnte.
Die Verkabelung zum Steckbrett basiert auf verschiedenen Materialien.
Ich habe es ungefähr 4 Stunden lang laufen lassen, aber es hat funktioniert, ohne anzuhalten. Es wurde jedoch nicht automatisch gestoppt, indem die Anzahl der Blätter angegeben wurde. Derzeit im Bau.
Ich habe das WEB auf verschiedene Arten bereist, bin mir aber nicht sicher, warum es heutzutage nicht funktioniert
das ist alles.