Nota
¡Hola, bienvenido a la Comunidad de Entusiastas de SunFounder Raspberry Pi, Arduino y ESP32 en Facebook! Profundiza en Raspberry Pi, Arduino y ESP32 con otros entusiastas.
¿Por qué unirse?
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.
Previews exclusivos: Accede anticipadamente a anuncios de nuevos productos y adelantos exclusivos.
Descuentos especiales: Disfruta de descuentos exclusivos en nuestros productos más recientes.
Promociones y sorteos festivos: Participa en sorteos y promociones de temporada.
👉 ¿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, vamos a intentar 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 |
ELEMENTOS 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. Puede que necesites una pantalla para una mejor experiencia, consulta: Conecta tu Raspberry Pi. O accede al escritorio de Raspberry Pi de forma remota, para un tutorial detallado, consulta Escritorio Remoto.
Paso 2: Abre un terminal y accede a la carpeta del código.
cd ~/raphael-kit/python/
Paso 3: Ejecuta el código.
sudo python3 3.1.1_PhotographModule.py
Después de ejecutar el código, 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/ con un IDE de Python, hacer clic en el botón de Ejecutar para ejecutar el código y detenerlo con el botón de Detener.
Si deseas descargar la foto a tu PC, consulta Software FileZilla.
Código
#!/usr/bin/env python3
from picamera2 import Picamera2, Preview
import os
# Get the current user's login name
user = os.getlogin()
# Get the path to the user's home directory
user_home = os.path.expanduser(f'~{user}')
# Create a Picamera2 instance
camera = Picamera2()
# Retrieve the default preview configuration
preview_config = camera.preview_configuration
try:
# Set preview size and format
preview_config.size = (800, 600)
preview_config.format = 'XRGB8888'
# Start the camera preview in QTGL mode
camera.start_preview(Preview.QTGL)
# Start the camera
camera.start()
# Capture and save a photo to the user's home directory
camera.capture_file(f'{user_home}/my_photo.jpg')
except KeyboardInterrupt:
# Stop the camera preview if a KeyboardInterrupt (e.g., Ctrl+C) occurs
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
Obtiene el nombre de inicio de sesión del usuario actual y la ruta a su directorio personal.
# Obtener el nombre de usuario actual user = os.getlogin() # Obtener la ruta al directorio personal del usuario user_home = os.path.expanduser(f'~{user}')
Crea una instancia de
Picamera2y recupera la configuración predeterminada de vista previa.# Crear una instancia de Picamera2 camera = Picamera2() # Recuperar la configuración predeterminada de la vista previa preview_config = camera.preview_configuration
Establece el tamaño y el formato de la vista previa de la cámara. El tamaño se establece en 800x600 píxeles y el formato en
XRGB8888.try: # Establecer tamaño y formato de la vista previa preview_config.size = (800, 600) preview_config.format = 'XRGB8888' ...
Inicia la vista previa de la cámara en modo QTGL, un método para mostrar la vista previa, y luego inicia la cámara.
try: ... # Iniciar la vista previa en modo QTGL camera.start_preview(Preview.QTGL) # Iniciar la cámara camera.start() ...
Captura una imagen desde la cámara y la guarda en
~/.try: ... # Capturar y guardar una foto en el directorio personal del usuario camera.capture_file(f'{user_home}/my_photo.jpg')
Nota
Puedes usar la función
camera.capture()junto con un bucleforpara lograr disparos continuos. Usa la funcióndelaypara ajustar el intervalo de tiempo entre fotos.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 vista previa de la cámara. La instrucción
passse utiliza para manejar la excepción sin realizar ninguna acción adicional.except KeyboardInterrupt: # Detener la vista previa si ocurre un KeyboardInterrupt (ej., Ctrl+C) camera.stop_preview() pass