Cómo Usar La Cámara Raspberry Pi con Python En 2024
Controlar el módulo de cámara en Python es un proyecto típico para cualquier propietario de Raspberry Pi. Pero con las últimas versiones de Raspberry Pi OS y la nueva biblioteca de la cámara, ha habido muchos cambios. Y era hora de que escribiera un tutorial actualizado, con todos los pasos para instalar y programar tu cámara con Python, qué es el objetivo de este artículo.
Desde Raspberry Pi OS Bullseye, la biblioteca picamera2 es el método predeterminado para controlar el módulo de cámara con Python en un Raspberry Pi. Ahora es un módulo estable, preinstalado en Raspberry Pi OS y listo para usar en una instalación nueva del sistema.
Empecemos verificando tu configuración para asegurarnos de que todo esté correctamente configurado en términos de hardware y software, y luego te daré algunos ejemplos de scripts sobre cómo empezar con Picamera2 en Raspberry Pi OS.
Obtiene su archivo PDF gratuito con todos los comandos que necesitas saber sobre Raspberry Pi.
Descargar
Si estás empezando con Raspberry Pi o Linux, tengo algo que puede ayudarte de inmediato.
Descarga mi hoja de trucos de comandos Linux gratis – es una guía de referencia rápida con todos los comandos esenciales que necesitas para avanzar con tu Raspberry Pi. Haz clic aquí para obtenerla gratis!
Prerrequisitos: Instalación de Raspberry Pi y Cámara
Obtiene su archivo PDF gratuito con todos los comandos que necesitas saber sobre Raspberry Pi.
Descargar
Aquí te comparto los prerrequisitos necesarios para controlar un módulo de cámara con Python en Raspberry Pi:
- Instalar Raspberry Pi OS y completar la configuración inicial.
- Conectar el módulo de cámara en el puerto de la cámara.
- Probar la detección de la cámara desde Raspberry Pi OS.
Sigue leyendo para aprender, en detalle, cómo hacer esto rápidamente.
Instalar Raspberry Pi OS
El primer paso es instalar Raspberry Pi OS en tu Raspberry Pi. Si es tu primera vez, o aún necesitas alguna guía, te recomiendo hacer clic en el enlace anterior para leer mi tutorial paso a paso.
Lo mas importante a recordar es que instalar una cámara y controlarla en Python ha cambiado por completo con la última versión de Raspberry Pi OS (Bullseye). Si sigues este tutorial en una versión obsoleta (Legacy), no funcionará.
Por lo tanto, asegúrate de estar utilizando la última versión de Raspberry Pi OS. Explico aquí cómo comprobar qué versión de Raspberry Pi OS usas.
Estoy probando este tutorial en Raspberry Pi OS Bullseye, la versión de 64 bits, con el entorno de escritorio. Usar la edición de 64 bits o 32 bits no debería ser un problema, y el entorno de escritorio no es obligatorio (aunque recomendado para fines de depuración), pero asegúrate de estar usando Raspberry Pi OS Bullseye.
Completar la configuración inicial de Raspberry Pi OS
Antes de continuar, asegúrate de completar los siguientes pasos de configuración antes de avanzar más en este tutorial:
- Configurar la red para tener acceso a Internet: En la mayoría de los casos, debería funcionar directamente a través de DHCP. Puede que necesites configurar el Wi-Fi si no tienes un cable Ethernet disponible, pero eso es todo.
- Hacer las actualizaciones del sistema: Incluso al usar la última imagen con Raspberry Pi Imager, puede que estés unos meses atrasado en actualizaciones. Yo tenía como 100 actualizaciones disponibles al probar esto, y algunas de ellas eran muy importantes, ya que eran paquetes para picamera2 y libcamera, las bibliotecas que usaremos más adelante en Python.
sudo apt update && sudo apt upgrade -y
- Habilitar SSH o VNC: Me gusta programar desde mi computadora, lo cual no es obligatorio, pero si tienes una mejor configuración en ella que en tu Raspberry Pi, puede que quieras hacer lo mismo.
Usar VNC por ejemplo, te permite copiar/pegar todo el código que te doy en este artículo. Esto significa que irás más rápido y evitarás errores de escritura. También puedes usar SSH por las mismas razones, especialmente si instalaste una edición Lite de Raspberry Pi OS.
De todos modos, una vez que todo esté listo en la parte del software, puedes apagar tu Raspberry Pi (en inglés), y podemos pasar a la instalación del módulo de la cámara.
No te mencioné los editores de texto que puedes usar para la sección de programación, ya que realmente no importa (tienes Nano, Thonny o Geany (en inglés) pre-instalados en la mayoría de los casos). Pero si quieres mejores opciones, puedes encontrar mis 7 editores de texto favoritos para programar en Raspberry Pi aquí (en inglés).
Instalar el módulo de la cámara
El Raspberry Pi tiene un puerto específico para la cámara en la parte superior, donde puedes conectar el módulo de la cámara.
No importa qué módulo de cámara uses (yo estoy usando el oficial para este ejemplo, hay otras opciones disponibles), pero necesitas conectarlo directamente al puerto de la cámara del Raspberry Pi.

En la mayoría de los modelos de Raspberry Pi, el puerto de la cámara se encuentra en el costado, junto al jack y la salida HDMI.
Usa el cable plano proporcionado con el módulo de la cámara e insértalo en el puerto de la cámara:
- Soltar el clip de plástico del puerto de la cámara (tira hacia arriba suavemente).
- Insertar el cable de la cámara en él.
Los conectores deben estar mirando hacia el lado del HDMI, mientras que la etiqueta azul mira hacia los puertos USB (comprueba las imágenes a continuación). - Presionar el clip de plástico de nuevo en su lugar para mantener todo junto.



Puedes usar un soporte para la cámara, o si tienes la carcasa “the Argon Neo” como yo (mira mi revisión aquí, en inglés), hay un lugar donde puedes mantener el módulo de la cámara, para que quede correcto, pero no es obligatorio.
Conecta tu Raspberry Pi y arráncala de nuevo. El último paso es asegurarte de que la cámara sea detectada y funcione como se espera.
Asegúrate de que la cámara está funcionando (sin Python)
Antes de escribir cualquier línea de código, por favor verifica que la cámara sea detectada correctamente por el sistema operativo.
En las últimas versiones del sistema operativo Raspberry Pi, ya no hay pasos adicionales en este punto. La cámara debería funcionar directamente, está habilitada de forma predeterminada al arrancar, y puedes usarla directamente.
Puedes obtener una vista previa de la cámara con el comando:libcamera-still -o test.jpg
Abre una terminal y copia/pega esto. Deberías obtener una vista previa como en la captura de pantalla a continuación, y debería crear un archivo llamado “test.jpg” con la vista de la cámara.

Lo único que importa aquí es que puedas ver algo en la imagen. Jugaremos con la configuración más tarde, directamente en Python (incluida la orientación de la foto). Si obtienes algo similar, está bien, puedes pasar a la siguiente parte y comenzar a usar Python para controlarlo.
Si experimentas algún problema en este punto y no obtienes la vista previa de la cámara, asegúrate de verificar todo dos veces. Esta guía paso a paso sobre cómo configurar la cámara Raspberry Pi también puede darte más detalles si es necesario, y también tengo un artículo de solución de problemas aquí para el módulo de cámara.
Obtiene su archivo PDF gratuito con todos los comandos que necesitas saber sobre Raspberry Pi.
Descargar
Espera, ¡tengo algunas recomendaciones para ti!
Antes de continuar, te invito a descubrir algunos productos que he seleccionado cuidadosamente para ti. Creo que son esenciales para tu Raspberry Pi. Échales un vistazo y pídelos directamente en Amazon.
![]() |
![]() |
![]() |
![]() |
Una caja silenciosa y práctica | Un SSD de alto rendimiento para potenciar tu Pi | Una pantalla genial para liberar el televisor | Un teclado dedicado con touchpad |
Comenzando con el módulo de cámara Raspberry Pi en Python
Obtiene su archivo PDF gratuito con todos los comandos que necesitas saber sobre Raspberry Pi.
Descargar
Una vez que el módulo de cámara está configurado, Python puede interactuar con él a través de la biblioteca picamera2, que está preinstalada en Raspberry Pi OS.
En esta sección, te daré algunos scripts de ejemplo básicos, para que puedas empezar con ellos y entender la lógica antes de usarlos en tus propios proyectos.
Tomar una foto con Python
Con la próxima versión de la biblioteca Picamera (picamera2), incluso tomar una foto simple requiere más líneas de código, pero es un paso importante. Como verás más adelante, la estructura de tu código será la misma para casi todo después de eso.
Vamos a sumergirnos de lleno. Crea un nuevo script de Python en tu sistema (te recomiendo que uses Thonny en esta etapa) y copia/pega estas líneas en él:
import time
from picamera2 import Picamera2, Preview
picam = Picamera2()
config = picam.create_preview_configuration()
picam.configure(config)
picam.start_preview(Preview.QTGL)
picam.start()
time.sleep(2)
picam.capture_file("test-python.jpg")
picam.close()
Puedes usar Thonny para guardar y ejecutar el script directamente desde el entorno de escritorio.
O guardar el archivo con tu editor (en inglés) y ejecutarlo en la línea de comandos con algo como:python yourscript.py
Advertencia: Este no es un tutorial para principiantes en Python, te recomendaría leer algunos artículos primero si eres nuevo en esto:
- ¿Cómo Aprender a Programar en Python con un Raspberry Pi? (en inglés)
- 15 Proyectos Divertidos de Raspberry Pi para Experimentar con Python (en inglés)
Asegúrate de entender lo básico antes de intentar usar el módulo de cámara y los ejemplos dados aquí. También tengo un libro paso a paso para aprender Python en pocos días si necesitas más orientación. Puedes encontrar todos los detalles en esta página (en inglés).
Entonces básicamente, aquí están los pasos importantes en este primer script:
- Importar las librerías necesarias. Necesitamos clases de Picamera2 (que es el módulo principal que usarás en todos los ejemplos). También usamos el tiempo para esperar que la cámara se ajuste al entorno antes de guardar la foto.
- Crear una configuración por defecto. Agregaremos algunas variables más adelante, pero por ahora, los ajustes por defecto están bien.
- Iniciar la ventana de previsualización (verás lo que la cámara ve en tu pantalla) y también iniciamos la cámara.
- Esperamos 2 segundos (sleep) y guardamos la foto en la carpeta actual (“test-python.jpg”).
Si todo está funcionando como se espera, deberías encontrar el archivo “test-python.jpg” en la misma carpeta que tu script, con la misma foto vista en la previsualización cuando ejecutaste el script.
Ajustar la configuración de la cámara con Python
Con los ajustes por defecto, podrías notar que la foto está al revés (como en mi captura de pantalla anterior), o que la foto es bastante pequeña.
Mi módulo de cámara puede obtener imágenes en HD, pero los ajustes predeterminados están configurados en 640 x 320 píxeles o algo similar. Además, quiero rotar la imagen a 180°, para obtenerla en la dirección correcta directamente.
Hay dos cosas diferentes que puedes agregar a tu código para hacer esto, aquí está el código:
import time, libcamera
from picamera2 import Picamera2, Preview
picam = Picamera2()
config = picam.create_preview_configuration(main={"size": (1600, 1200)})
config["transform"] = libcamera.Transform(hflip=1, vflip=1)
picam.configure(config)
- Puedes añadir opciones de configuración dentro del método create_preview_configuration para cambiar los ajustes predeterminados.
En este ejemplo, fuerzo a la cámara a mostrar la vista previa en 1600×1200 píxeles, en lugar de la opción predeterminada. Estoy usando la misma configuración para la grabación, por lo que el archivo JPG tendrá el mismo tamaño. - Puedes usar libcamera para rotar la imagen.
No olvides importarlo al principio, y luego puedes usar el método “Transform()” para voltear la imagen verticalmente, horizontalmente o ambas.
El script completo para este ejemplo se ve así:
import time, libcamera
from picamera2 import Picamera2, Preview
picam = Picamera2()
config = picam.create_preview_configuration(main={"size": (1600, 1200)})
config["transform"] = libcamera.Transform(hflip=1, vflip=1)
picam.configure(config)
picam.start_preview(Preview.QTGL)
picam.start()
time.sleep(2)
picam.capture_file("test-python.jpg")
picam.close()
Puedes cambiar otros ajustes usando la misma estrategia, encontrarás todos los detalles en la documentación enlazada al final de este artículo. Solo quiero mostrarte algunos ejemplos porque no es realmente sencillo.
Crear un timelapse en Python
Una vez que entiendas lo básico, básicamente puedes usar tus habilidades en Python para hacer cualquier cosa.
Digamos que quieres crear un timelapse (es decir, grabar una imagen cada X segundos o minutos durante un largo período), puedes hacer algo como lo siguiente:
import time
from picamera2 import Picamera2, Preview
picam = Picamera2()
config = picam.create_preview_configuration()
picam.configure(config)
picam.start()
for i in range(1,10):
picam.capture_file(f"ts{i}.jpg")
print(f"Captured image {i}")
time.sleep(3)
picam.stop()
No hay nada nuevo relacionado con el módulo de cámara en este script. Solo usamos algunos conceptos básicos de Python para crear un bucle y capturar una foto cada 3 segundos durante 30 segundos.
Cambia la duración del bucle, el tiempo de espera y cualquier cosa necesaria para adaptarlo a tus necesidades.
Para proyectos más grandes, puedes crear una función que tome la foto y llamarla solo cuando sea necesario para simplificar tu script principal.
Puedes usar ffmpeg para crear un video con todas tus imágenes capturadas. El comando se verá así:ffmpeg -r 1 -pattern_type glob -i "ts*.jpg" -vcodec libx264 timelapse.mp4
También es posible hacer lo mismo en Python, grabando el archivo de video directamente. Pero es menos flexible y más complicado (mira este ejemplo si quieres intentarlo).
Grabar un video en Python
La biblioteca picamera2 incluye un montón de métodos y va más allá de lo que podrías estar usando en la versión anterior. Puede parecer abrumador cuando revisas la documentación, pero sigue intentándolo porque te puede ahorrar mucho tiempo para aplicaciones típicas.
Por ejemplo, en lugar de usar el método de timelapse anterior (manera manual de crear un video con ffmpeg), puedes grabar un video directamente, haciendo todo en un pequeño script de Python:
import time
from picamera2 import Picamera2
from picamera2.encoders import H264Encoder
picam2 = Picamera2()
video_config = picam2.create_video_configuration()
picam2.configure(video_config)
encoder = H264Encoder(10000000)
picam2.start_recording(encoder, 'test.h264')
time.sleep(10)
picam2.stop_recording()
La estructura del código es básicamente la misma que la primera que creamos para capturar un JPG, pero esta vez la mejoramos con capacidades de video.
Nota el método “create_video_configuration” en lugar de “create_preview_configuration” y la clase H264encoder. Este script crea un video corto de 10s de tu cámara para que puedas reproducirlo con VLC directamente en Raspberry Pi OS (si usas una versión de escritorio).
Más ejemplos
La Fundación Raspberry Pi proporciona la documentación completa para el módulo picamera2 en formato PDF (que puedes descargar aquí). Pero la manera más fácil de empezar y probar cosas nuevas es revisar los ejemplos de scripts en su GitHub.
Encuentra un ejemplo cercano a lo que quieres hacer, juega con él, y luego revisa la documentación para encontrar las opciones de configuración exactas o métodos que puedes usar para avanzar.
Recuerda que tengo un montón de tutoriales sobre Python y Raspberry Pi en este sitio web que podrían ser útiles para tus próximos proyectos con un módulo de cámara. Aquí hay algunos ejemplos:
- ¿Cómo instalar y usar paquetes de Python en Raspberry Pi? (en inglés)
- 11 Ideas de Proyectos Geniales para el Módulo de Cámara Raspberry Pi (en inglés)
- El Pinout GPIO de Raspberry Pi: Diagrama y Explicación (en inglés)
Y si quieres probar otras excelentes bibliotecas de Python para Raspberry Pi (en inglés), tengo una selección para ti en este enlace.
Cuando estés preparado, aquí tienes un atajo para ti:
Domina tu Raspberry Pi en 30 días: Si buscas los mejores consejos para convertirte en un experto en Raspberry Pi, este libro es para ti. Aprende habilidades útiles de Linux y practica múltiples proyectos con guías paso a paso.