#!/usr/bin/env python3
# Shutter button support for the MultiPicam2 wrapper.
# Raspberry Pi GPIO pins: https://pinout.xyz/
# To automatically start this script on boot,
# define a systemd service:
# /etc/systemd/system/multi_picam2_shutter_button.service
#
# [Unit]
# Description=MultiPicam2 Shutter Button
#
# [Service]
# ExecStart=/usr/local/bin/multi_picam2_shutter_button.py
#
# [Install]
# WantedBy=multi-user.target
__author__ = "Gernot Walzl"
__date__ = "2025-12-22"
import os
from datetime import datetime
from RPi import GPIO
from multi_picam2 import MultiPicam2
def shutter_button_loop():
channel = 22 # pin 15
output_path = os.path.expanduser("~/cam/")
initial_delay = 10.0
num_files = 60
delay = 0.5
GPIO.setmode(GPIO.BCM)
GPIO.setup(channel, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
multipicam2 = MultiPicam2()
while True:
GPIO.wait_for_edge(channel, GPIO.RISING)
dt_now = datetime.now()
dirname = dt_now.strftime("%Y-%m-%d_%H%M%S")
if not os.path.exists(output_path + dirname):
os.makedirs(output_path + dirname)
filepath = (
output_path + dirname +
"/img_" + dt_now.strftime("%Y%m%d_%H%M%S") +
"_{:03d}_{:01d}.jpg")
multipicam2.start_and_capture_files(
filepath, initial_delay, num_files, delay)
if __name__ == '__main__':
shutter_button_loop()