Trigger a Webcam With a Button and Raspberry Pi
by JoseBarreiros in Circuits > Raspberry Pi
33770 Views, 167 Favorites, 0 Comments
Trigger a Webcam With a Button and Raspberry Pi

This instructable will show how to trigger a webcam using Raspberry and a push button. A bash script run at startup and it launch a Python script that survey the GPIO port. When the button is pressed, a "fswebcam" command runs.
Materials




- Raspberry Pi 2 Model B
- Webcam (Make sure your camera is UVC complain)
- Push Button
- Breadboard
- Cables
Wiring




- Connect the push button to the GPIO pins: GPIO15 (pin 12) and GND (pin 6).
- Connect the Webcam to a USB port.
To make sure your camera was recognized, list the devices with:
$cd /dev/
$ls
Your camera should be listed as /video*
Creating Your Program in Python


Open a window in Python 3: Menu>Programming>Python 3>File>New Window
Copy the following code and Save As /home/pi/camerascript.py
import subprocess
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(12, GPIO.IN, pull_up_down=GPIO.PUD_UP)
i=0
try:
while True:
input_state = GPIO.input(12)
if input_state == 0:
subprocess.call("fswebcam -d /dev/video0 -r 1024x768 -S0 "+str(i)+"pic.jpg",shell=True) print('PIC CAPTURED')
i=i+1
time.sleep(0.2)
except KeyboardInterrupt:
GPIO.cleanup()
Bash Script


Open the terminal and run:
$nano bashscript.sh
Add the following lines to /home/pi/bashscript.sh
#!/bin/bash
echo Launching camera
sudo python camerascript.py
Make Your Script Executable and Run at Startup




First, give make your bash script executable:
$chmod ugo +x /home/pi/bashcript.sh
Second, type $nano ~/.bashrc ,and add the following lines at the end of the file to make your script run at startup:
#run startup script
echo .bash running
bash bashscript.sh
Third, autologin as pi user:
$sudo nano /etc/inittab
Comment this line: 1:2345:respawn:/sbin/getty --noclear 38400 tty1
Add this line: 1:2345:respawn:/bin/login -f pi tty1 /dev/tty1 2>&1
Finally, reboot your Pi
$sudo reboot
Results


Push the button, wait for the trigger and check if a new jpeg file was created in /home/pi/
Have fun.
Thanks for reading.