Introducción
Aprenda cómo conectar el módulo de cámara Raspberry Pi a su Raspberry Pi y tomar fotos, grabar videos y aplicar efectos de imagen.
Que necesitarás
Computadora Raspberry Pi con un puerto de módulo de cámara
Todos los modelos actuales de Raspberry Pi tienen un puerto para conectar el módulo de cámara.
Nota: Si desea utilizar un Raspberry Pi Zero, necesita un cable plano del Módulo de cámara que se ajuste al puerto más pequeño del Módulo de cámara del Raspberry Pi Zero.
Módulo de cámara Raspberry Pi
Hay dos versiones del módulo de cámara:
- La versión estándar , diseñada para tomar fotografías con luz normal.
- La versión NoIR , que no tiene un filtro infrarrojo, por lo que puede usarlo junto con una fuente de luz infrarroja para tomar fotos en la oscuridad
Conecte el módulo de la cámara
Asegúrese de que su Raspberry Pi esté apagada.
- Localice el puerto del módulo de cámara
- Tire suavemente hacia arriba de los bordes del clip de plástico del puerto
- Inserte el cable plano del módulo de cámara; asegúrese de que el cable esté en la dirección correcta
- Empuje el clip de plástico en su lugar
- Enciende tu Raspberry Pi.
- Vaya al menú principal y abra la herramienta de configuración Raspberry Pi .
Seleccione la pestaña Interfaces y asegúrese de que la cámara esté habilitada :
Reinicia tu Raspberry Pi.
Cómo controlar el módulo de la cámara a través de la línea de comando
Ahora su módulo de cámara está conectado y el software está habilitado, pruebe las herramientas de línea de comandos raspistill
y raspivid
.
- Abra una ventana de terminal haciendo clic en el icono del monitor negro en la barra de tareas:
Escriba el siguiente comando para tomar una fotografía y guardarla en el escritorio:
raspistill -o Desktop/image.jpg
- Presione Enterpara ejecutar el comando.
Cuando se ejecuta el comando, puede ver la vista previa de la cámara abierta durante cinco segundos antes de tomar una fotografía.
- Busque el icono del archivo de imagen en el escritorio y haga doble clic en el icono del archivo para abrir la imagen.
Al agregar diferentes opciones, puede establecer el tamaño y el aspecto de la imagen que raspistill
toma el comando.
- Por ejemplo, agregue
-h
y-w
para cambiar el alto y el ancho de la imagen:
raspistill -o Desktop/image-small.jpg -w 640 -h 480
Ahora grabe un video con el Módulo de cámara utilizando el siguiente raspivid
comando:
Para reproducir el archivo de video, haga doble clic en el video.h264
icono del archivo en el escritorio para abrirlo en VLC Media Player.
Cómo controlar el módulo de cámara con código Python
La picamera
biblioteca Python le permite controlar su módulo de cámara y crear proyectos increíbles.
- Abra un editor de Python 3, como Thonny Python IDE :
- Abra un nuevo archivo y guárdelo como
camera.py
. - Nota: es importante que nunca guarde el archivo como
picamera.py
. - Ingrese el siguiente código
from picamera import PiCamera
from time import sleep
camera = PiCamera()
camera.start_preview()
sleep(5)
camera.stop_preview()
Guarda y ejecuta tu programa. La vista previa de la cámara debe mostrarse durante cinco segundos y luego cerrarse nuevamente.
- Nota: la vista previa de la cámara solo funciona cuando hay un monitor conectado a su Raspberry Pi. Si está utilizando acceso remoto (como SSH o VNC), no verá la vista previa de la cámara.
- Si su vista previa está al revés, puede rotarla 180 grados con el siguiente código:
camera = PiCamera()
camera.rotation = 180
- Puede girar la imagen
90
,180
o270
grados. Para restablecer la imagen, configurerotation
en0
grados.
Es mejor hacer que la vista previa sea ligeramente transparente para que pueda ver si se producen errores en su programa mientras la vista previa está activada.
- Haga que la vista previa de la cámara sea transparente estableciendo un
alpha
nivel:
camera.start_preview(alpha=200)
El alpha
valor puede ser cualquier número entre 0
y 255
.
Toma fotos fijas con código Python
Ahora use el Módulo de cámara y Python para tomar algunas imágenes fijas.
- Modifique su código para agregar una
camera.capture()
línea:
camera.start_preview()
sleep(5)
camera.capture('/home/pi/Desktop/image.jpg')
camera.stop_preview()
- Nota: es importante
sleep
durante al menos dos segundos antes de capturar una imagen, ya que esto le da tiempo al sensor de la cámara para detectar los niveles de luz. - Ejecuta el código.
Debería ver la vista previa de la cámara abierta durante cinco segundos, y luego se debería capturar una imagen fija. A medida que se toma la imagen, puede ver que la vista previa se ajusta brevemente a una resolución diferente.
Su nueva imagen debe guardarse en el escritorio.
- Ahora agregue un bucle para tomar cinco fotos seguidas:
camera.start_preview()
for i in range(5):
sleep(5)
camera.capture('/home/pi/Desktop/image%s.jpg' % i)
camera.stop_preview()
- La variable
i
cuenta cuántas veces se ha ejecutado el ciclo, desde0
hasta4
. Por lo tanto, las imágenes se guardan comoimage0.jpg
,image1.jpg
y así sucesivamente. - Vuelva a ejecutar el código y mantenga el módulo de la cámara en su posición.
La cámara debe tomar una foto cada cinco segundos. Una vez que se toma la quinta imagen, se cierra la vista previa.
- Mire su escritorio para encontrar las cinco nuevas imágenes.
Grabar video con código Python
¡Ahora graba un video!
- Modifique su código para eliminar
capture()
y, en su lugar, agreguestart_recording()
ystop_recording()
Su código debería verse así ahora:
camera.start_preview()
camera.start_recording('/home/pi/Desktop/video.h264')
sleep(5)
camera.stop_recording()
camera.stop_preview()
- Ejecuta el código.
Su Raspberry Pi debe abrir una vista previa, grabar 5 segundos de video y luego cerrar la vista previa.
Cómo cambiar la configuración de la imagen y agregar efectos de imagen
El picamera
software Python proporciona una serie de efectos y configuraciones para cambiar el aspecto de sus imágenes.
Nota: algunas configuraciones solo afectan a la vista previa y no a la imagen capturada, algunas afectan solo a la imagen capturada y muchas otras afectan a ambas.
Establecer la resolución de la imagen
Puede cambiar la resolution
imagen que toma el módulo de cámara.
Por defecto, la resolución de la imagen está configurada para la resolución de su monitor. La resolución máxima es 2592 × 1944 para fotos fijas y 1920 × 1080 para grabación de video.
- Use el siguiente código para establecer el
resolution
máximo y tomar una foto.Nota: también debe establecer la velocidad de fotogramas15
para habilitar esta resolución máxima.
camera.resolution = (2592, 1944)
camera.framerate = 15
camera.start_preview()
sleep(5)
camera.capture('/home/pi/Desktop/max.jpg')
camera.stop_preview()
La resolución mínima es 64 × 64.
- Intenta tomar una foto con la resolución mínima.
Agrega texto a tu imagen
Puede agregar texto a su imagen usando el comando annotate_text
.
- Ejecute este código para probarlo:
camera.start_preview()
camera.annotate_text = "Hello world!"
sleep(5)
camera.capture('/home/pi/Desktop/text.jpg')
camera.stop_preview()
Cambiar el aspecto del texto agregado
- Establezca el tamaño del texto con el siguiente código:
camera.annotate_text_size = 50
- Puede ajustar el tamaño del texto para cualquier cosa entre
6
a160
. El tamaño predeterminado es32
.
También es posible cambiar el color del texto.
- En primer lugar, agregue
Color
a suimport
línea en la parte superior del programa:
from picamera import PiCamera, Color
Luego, debajo de la import
línea, modifique el resto de su código para que se vea así:
camera.start_preview()
camera.annotate_background = Color('blue')
camera.annotate_foreground = Color('yellow')
camera.annotate_text = " Hello world "
sleep(5)
camera.stop_preview()
Cambiar el brillo de la vista previa
Puede cambiar el brillo de la vista previa. El brillo predeterminado es 50
, y puede establecerlo en cualquier valor entre 0
y 100
.
- Ejecute el siguiente código para probar esto:
camera.start_preview()
camera.brightness = 70
sleep(5)
camera.capture('/home/pi/Desktop/bright.jpg')
camera.stop_preview()
El siguiente bucle ajusta el brillo y también agrega texto para mostrar el nivel de brillo actual:
camera.start_preview()
for i in range(100):
camera.annotate_text = "Brightness: %s" % i
camera.brightness = i
sleep(0.1)
camera.stop_preview()
Cambiar el contraste de la vista previa
De manera similar al brillo de la vista previa, puede cambiar el contraste de la vista previa.
- Ejecute el siguiente código para probar esto:
camera.start_preview()
for i in range(100):
camera.annotate_text = "Contrast: %s" % i
camera.contrast = i
sleep(0.1)
camera.stop_preview()
Agrega efectos de imagen geniales
Puede usar camera.image_effect
para aplicar un efecto de imagen particular.
Las opciones de efecto de imagen son:
none
negative
solarize
sketch
denoise
emboss
oilpaint
hatch
gpen
pastel
watercolor
film
blur
saturation
colorswap
washedout
posterise
colorpoint
colorbalance
cartoon
deinterlace1
deinterlace2
El efecto predeterminado es none
.
- Elija un efecto de imagen y pruébelo:
camera.start_preview()
camera.image_effect = 'colorswap'
sleep(5)
camera.capture('/home/pi/Desktop/colorswap.jpg')
camera.stop_preview()
Ejecute este código para recorrer todos los efectos de imagen con camera.IMAGE_EFFECTS
:
camera.start_preview()
for effect in camera.IMAGE_EFFECTS:
camera.image_effect = effect
camera.annotate_text = "Effect: %s" % effect
sleep(5)
camera.stop_preview()
Establecer el modo de exposición de imagen
Puede usar camera.exposure_mode
para establecer la exposición a un modo particular.
Las opciones del modo de exposición son:
off
auto
night
nightpreview
backlight
spotlight
sports
snow
beach
verylong
fixedfps
antishake
fireworks
El modo predeterminado es auto
.
- Elija un modo de exposición y pruébelo:
camera.start_preview()
camera.exposure_mode = 'beach'
sleep(5)
camera.capture('/home/pi/Desktop/beach.jpg')
camera.stop_preview()
- Puede recorrer todos los modos de exposición con
camera.EXPOSURE_MODES
, como lo hizo para los efectos de imagen.
Cambiar el balance de blancos de la imagen
Puede usar camera.awb_mode
para establecer el balance de blancos automático en un modo preestablecido.
Los modos de balance de blancos automático disponibles son:
off
auto
sunlight
cloudy
shade
tungsten
fluorescent
incandescent
flash
horizon
El valor por defecto es auto
.
- Elija un modo de balance de blancos automático y pruébelo:
camera.start_preview()
camera.awb_mode = 'sunlight'
sleep(5)
camera.capture('/home/pi/Desktop/sunlight.jpg')
camera.stop_preview()
Puede recorrer todos los modos de balance de blancos automático con camera.AWB_MODES
, como lo hizo para los efectos de imagen.
¿Qué sigue?
Ahora que sabe cómo usar su Módulo de cámara, podría, por ejemplo:
- Agregue botones para controlar la cámara con la ayuda del código GPIO Zero Python
- Integra la cámara con Minecraft Pi
- Publique las fotos de la cámara en Twitter automáticamente
-
Infrarojo seguidor de linea¡Oferta!
$3.50$1.75 -
Kit Raspberry – Sensor de lluvia FR-04¡Oferta!
$97.00$92.50 -
Case para Raspberry Pi 3¡Oferta!
$10.00$6.99
Hola,
Cuando escribo este comando sudo apt-get install raspistill, aparece el error «E: paquete raspistill no encontrado».