Nota
¡Hola, bienvenido a la Comunidad de Entusiastas de SunFounder Raspberry Pi & Arduino & ESP32 en Facebook! Sumérgete más en Raspberry Pi, Arduino y ESP32 con otros entusiastas.
¿Por qué unirte?
Soporte experto: Resuelve problemas postventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo.
Aprende y comparte: Intercambia consejos y tutoriales para mejorar tus habilidades.
Avances exclusivos: Obtén acceso anticipado a nuevos anuncios de productos y adelantos.
Descuentos especiales: Disfruta de descuentos exclusivos en nuestros productos más nuevos.
Promociones y sorteos festivos: Participa en sorteos y promociones navideñas.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [Aquí] y únete hoy mismo!
3.1.1 Módulo Fotográfico
Introducción
En este kit, equipado con un módulo de cámara, intentemos tomar una foto con Raspberry Pi.
Componentes Necesarios
En este proyecto, necesitamos los siguientes componentes.
Es definitivamente conveniente comprar un kit completo, aquí está el enlace:
Nombre |
ARTÍCULOS EN ESTE KIT |
ENLACE |
|---|---|---|
Kit Raphael |
337 |
También puedes comprarlos por separado en los enlaces a continuación.
INTRODUCCIÓN DEL COMPONENTE |
ENLACE DE COMPRA |
|---|---|
Procedimientos Experimentales
Paso 1: Accede al Escritorio de Raspberry Pi. Es posible que necesites una pantalla para una mejor experiencia, consulta: Connect your Raspberry Pi. O accede al escritorio de Raspberry Pi de forma remota, para un tutorial detallado consulta Escritorio Remoto.
Paso 2: Abre una Terminal y ve a la carpeta del código.
cd ~/raphael-kit/python-pi5
Paso 3: Ejecuta.
sudo python3 3.1.1_PhotographModule_zero.py
Después de que el código se ejecute, la cámara tomará una foto. Ahora puedes ver la foto llamada my_photo.jpg en el directorio ~.
Nota
También puedes abrir 3.1.1_PhotographModule.py en la ruta ~/raphael-kit/python-pi5/ con un IDE de Python, haz clic en el botón Ejecutar para ejecutar y detén el código con el botón Detener.
Si deseas descargar la foto a tu PC, consulta Software FileZilla.
Advertencia
Si recibe el mensaje de error RuntimeError: Cannot determine SOC peripheral base address, consulte Si «gpiozero» no funciona.
Código
#!/usr/bin/env python3
from picamera2 import Picamera2, Preview
import os
# Obtener el nombre de usuario actual
user = os.getlogin()
# Obtener la ruta al directorio principal del usuario
user_home = os.path.expanduser(f'~{user}')
# Crear una instancia de Picamera2
camera = Picamera2()
# Recuperar la configuración predeterminada de previsualización
preview_config = camera.preview_configuration
try:
# Configurar tamaño y formato de previsualización
preview_config.size = (800, 600)
preview_config.format = 'XRGB8888'
# Iniciar la previsualización de la cámara en modo QTGL
camera.start_preview(Preview.QTGL)
# Iniciar la cámara
camera.start()
# Capturar y guardar una foto en el directorio principal del usuario
camera.capture_file(f'{user_home}/my_photo.jpg')
except KeyboardInterrupt:
# Detener la previsualización de la cámara si ocurre una interrupción de teclado (por ejemplo, Ctrl+C)
camera.stop_preview()
pass
Explicación del Código
Importa las clases
Picamera2yPreviewde la biblioteca picamera2, y el móduloospara interacciones con el sistema operativo.#!/usr/bin/env python3 from picamera2 import Picamera2, Preview import os
Recupera el nombre de usuario actual y la ruta a su directorio principal.
# Obtener el nombre de usuario actual user = os.getlogin() # Obtener la ruta al directorio principal del usuario user_home = os.path.expanduser(f'~{user}')
Crea una instancia de la clase
Picamera2y recupera la configuración predeterminada de previsualización.# Crear una instancia de Picamera2 camera = Picamera2() # Recuperar la configuración predeterminada de previsualización preview_config = camera.preview_configuration
Configura el tamaño y formato de la previsualización de la cámara. El tamaño se establece en 800x600 píxeles y el formato en
XRGB8888.try: # Configurar tamaño y formato de previsualización preview_config.size = (800, 600) preview_config.format = 'XRGB8888' ...
Inicia la previsualización de la cámara en modo QTGL y luego inicia la cámara.
try: ... # Iniciar la previsualización de la cámara en modo QTGL camera.start_preview(Preview.QTGL) # Iniciar la cámara camera.start() ...
Captura una imagen con la cámara, guardándola en
~/.try: ... # Capturar y guardar una foto en el directorio principal del usuario camera.capture_file(f'{user_home}/my_photo.jpg')
Nota
Puedes usar la función
camera.capture()y un bucleforjuntos para lograr una captura continua. Utiliza la funcióndelaypara ajustar el intervalo de tiempo entre las tomas.for i in 5: camera.capture(f'{user_home}/my_photo%s.jpg' % i)
Este bloque de código maneja una interrupción de teclado (como Ctrl+C) deteniendo la previsualización de la cámara. La declaración
passse usa para manejar la excepción sin hacer nada más.except KeyboardInterrupt: # Detener la previsualización de la cámara si ocurre una interrupción de teclado (por ejemplo, Ctrl+C) camera.stop_preview() pass