Pour la prise de vue avec Raspberry Pi Je pense que la première chose à faire est de tirer en utilisant le clavier. Cependant, lorsqu'il s'agit de prendre un grand nombre d'images C'est impossible pour les gens ordinaires car il est nécessaire de licencier un grand nombre de personnes. Je l'ai donc créé en pensant qu'il serait plus facile de filmer automatiquement.
Cette fois j'ai fait un subordonné (Sacrifice n ° 1) donc je l'ai fait ensemble
Raspberry Pi 3 Model B+ os Raspbian(Bastar) Python 3.7.3 opencv 4.1.0.25 Caméra d'occasion 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
Puisque GPIO est utilisé cette fois Je l'ai ajouté à l'ensemble de prise de vue de base J'utilise une minuterie, donc je l'ajoute.
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)
Cette fois, j'ai attaché un interrupteur tactile à la planche à pain Puisqu'il est utilisé pour démarrer et terminer la prise de vue, il est réglé de manière à pouvoir être effectué.
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)
Appuyez sur l'interrupteur tactile (24) pour tirer toutes les secondes. Appuyez sur l'interrupteur tactile (22) pour arrêter de tirer. Appuyez sur l'interrupteur tactile (24) à l'état arrêté pour reprendre le tir. Appuyez sur l'interrupteur tactile (22) à l'état arrêté pour terminer le tir. La LED (25) s'allume pendant la prise de vue.
Je l'ai fait en recherchant diverses choses, donc je ne comprends pas les détails Je vais bien parce que j'ai pu tirer.
Le câblage de la maquette est comme ça, basé sur divers matériaux.
Je l'ai couru pendant environ 4 heures, mais cela a fonctionné sans s'arrêter. Cependant, il ne s'est pas arrêté automatiquement en précisant le nombre de feuilles. Actuellement en construction.
J'ai fait le tour du WEB de différentes manières, mais je ne sais pas pourquoi cela ne fonctionne pas ces jours-ci
c'est tout.