Imágenes automáticas con fswebcam en Raspberry Pi

Tomar imágenes de forma automática con una webcam en Raspberry Pi.

Etiquetas: Informática Raspberry Pi Secundaria Bachillerato Raspbian Webcam

Introducción

En este tutorial vamos a explicar cómo instalar fswebcam para tomar imágenes de forma automática en Raspberry Pi.

Antes de empezar

Vas a necesitar los siguientes componentes:

  • Raspberry Pi con Raspbian
  • Webcam USB

Es recomendable acceder a los siguientes tutoriales:

  • Configurar Webcam en Raspberry Pi

Software fswebcam

Fswebcam es una programa optimizado para la toma de imágenes utilizando una webcam. Se utiliza mediante la línea de comandos con lo que es muy útil para programar scripts automáticos en bash que se ejecuten cada cierto tiempo, o incluso controlando los pines GPIO de nuestra Raspberry Pi.


Instalar fswebcam

Recuerda que antes de instalar un programa es recomendable actualizar Raspbian como se explica en el tutorial de actualizar Raspbian.

Una vez actualizado el sistema procedemos a la instalación del software mediante el comando apt install fswebcam.

pi@raspberrypi:~ $ sudo apt install fswebcam

Para comprobar que se ha instalado correctamente ejecutamos la aplicación para que tome una imagen y la guarde en el directorio raíz de nuestro usuario con el nombre imagen.jpg.

pi@raspberrypi:~ $ fswebcam image.jpg

--- Opening /dev/video0...
Trying source module v4l2...
/dev/video0 opened.
No input was specified, using the first.
Adjusting resolution from 384x288 to 352x288.
--- Capturing frame...
Captured frame in 0.00 seconds.
--- Processing captured image...
Writing JPEG image to 'image.jpg'.
pi@raspberrypi:~ $ 

Fswebcam
Fswebcam


Imágenes automáticas

Para tomar imágenes de forma automática vamos a utilizar un script en bash encargado de tomar imágenes y guardarlas en una carpeta con la fecha de la captura. Además deberemos crear un cron que se ejecute cada cierto tiempo.

En primer lugar creamos el fichero webcam.sh que guardaremos dentro de una carpeta webcam. Podemos crearla desde consola mediante el comando mkdir /home/pi/webcam.

pi@raspberrypi:~ $ mkdir webcam
pi@raspberrypi:~ $ cd webcam
pi@raspberrypi:~/webcam $ sudo leafpad webcam.sh

Añadimos el siguiente código encargado de tomar una foto. Fíjate como se crea una variable que contendrá la fecha del sistema para guardar la foto con la fecha y hora de la captura.

#!/bin/bash

DATE=$(date +"%Y-%m-%d_%H%M")

fswebcam /home/pi/webcam/$DATE.jpg

El siguiente paso será dar permisos al fichero para que se pueda ejecutar.

pi@raspberrypi:~/webcam $ sudo chmod +x webcam.sh

Comprobamos que tenemos permisos para ejecutar el comando y además comprobamos que se ha creado la captura correctamente con la fecha del sistema.

pi@raspberrypi:~/webcam $ ./webcam.sh

Cron que se ejecuta cada minuto

Las tareas cron siguen una determinada sintaxis. Tienen 5 asteriscos seguidos del comando a ejecutar. * * * * * /ruta/ejecutar/script.sh

Los 5 asteriscos, de izquierda a derecha, los asteriscos representan:

  • Minutos: de 0 a 59.
  • Horas: de 0 a 23.
  • Día del mes: de 1 a 31.
  • Mes: de 1 a 12.
  • Día de la semana: de 0 a 6, siendo 0 el domingo.

En este ejemplo, como queremos tomar una imagen cada minuto crearemos una entrada similar a la anterior. Pero en primer lugar debemos acceder al cron mediante el comando crontab -e y seleccionamos la opción /bin/nano.

pi@raspberrypi:~ $ crontab -e

A continuación nos situamos al final del documento para introducir la siguiente línea.

* * * * * /home/pi/webcam/webcam.sh

Ahora solo nos queda esperar y ver como en cada cambio de minuto se realiza una fotografía.


Ejercicios propuestos

1.- Conecta una webcam USB y comprueba el correcto funcionamiento de las capturas de pantalla mediante consola.

2.- Crea una cron o tarea personalizada que se ejecute cada media hora y tome una imagen.

3.- Comenta la tarea del cron para que deje de realizar capturas de pantalla.

Contribuciones

¿Has encontrado algún error en el contenido?
Edita esta página en GitHub y aparecerás en este apartado.

Síguenos


A menos que se especifique lo contrario, todos los contenidos de este proyecto están bajo una licencia de Creative Commons Reconocimiento-CompartirIgual 4.0 Internacional.

This project is Open Source on GitHub and made with by @migueabellan

2015-2022 Asociación Programo Ergo Sum