Nota

Hola, ¡bienvenido a la comunidad de entusiastas de SunFounder Raspberry Pi, Arduino y ESP32 en Facebook! Sumérgete más profundamente en Raspberry Pi, Arduino y ESP32 junto a otros entusiastas.

¿Por qué unirse?

  • Soporte experto: Resuelve problemas postventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo.

  • Aprender y compartir: Intercambia consejos y tutoriales para mejorar tus habilidades.

  • Avances exclusivos: Accede anticipadamente a nuevos anuncios de 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 navideñas.

👉 ¿Listo para explorar y crear con nosotros? Haz clic en [Aquí] y únete hoy mismo.

4.1.1 Cámara

Introducción

Aquí haremos una cámara con obturador. Cuando presiones el botón, la cámara tomará una foto mientras el LED parpadea.

Componentes Necesarios

En este proyecto, necesitamos los siguientes componentes.

../_images/3.1.15camera_list.png

Es muy conveniente comprar un kit completo, aquí está el enlace:

Nombre

ELEMENTOS EN ESTE KIT

ENLACE

Kit Raphael

337

Raphael Kit

También puedes comprarlos por separado en los enlaces a continuación.

INTRODUCCIÓN DEL COMPONENTE

ENLACE DE COMPRA

Placa de Extensión GPIO

COMPRAR

Protoboard

COMPRAR

Cables de Puente

COMPRAR

Resistor

COMPRAR

LED

COMPRAR

Botón

COMPRAR

Módulo de Cámara

COMPRAR

Diagrama Esquemático

Nombre T-Board

cableado físico

wiringPi

BCM

GPIO17

Pin 11

0

17

GPIO18

Pin 12

1

18

../_images/camera_schematic.png

Procedimientos Experimentales

Paso 1: Construye el circuito.

../_images/3.1.15camera_fritzing.png

Paso 2: Para conectar el módulo de la cámara y completar la configuración, por favor consulta: Módulo de Cámara.

Paso 3: Entra en el escritorio de Raspberry Pi. Puede 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 Acceso a Escritorio Remoto para Raspberry Pi.

Paso 4: Abre una terminal y accede a la carpeta del código.

cd ~/raphael-kit/python/

Paso 5: Ejecuta.

sudo python3 4.1.1_Camera.py

Después de que el código se ejecute, presiona el botón, la Raspberry Pi hará parpadear el LED y tomará una foto. La foto se llamará my_photo.jpg y se almacenará en el directorio ~.

Nota

También puedes abrir 4.1.1_Camera.py en la ruta ~/raphael-kit/python/ con un IDE de Python, hacer clic en el botón Ejecutar para correrlo y detener el código con el botón Detener.

Si quieres descargar la foto a tu PC, por favor consulta Software Filezilla.

Código

Nota

Puedes Modificar/Restablecer/Copiar/Ejecutar/Detener el código a continuación. Pero antes de eso, necesitas ir a la ruta del código fuente como raphael-kit/python. Después de modificar el código, puedes ejecutarlo directamente para ver el efecto.

    #!/usr/bin/env python3

    from picamera import PiCamera
    import RPi.GPIO as GPIO
    import time
import os
user = os.getlogin()
user_home = os.path.expanduser(f'~{user}')


    camera = PiCamera()

    LedPin = 17 # Set GPIO17 as LED pin
    BtnPin = 18 # Set GPIO18 as button pin

    status = False

    def setup():
            GPIO.setmode(GPIO.BCM)
            GPIO.setup(LedPin, GPIO.OUT, initial=GPIO.HIGH)
            GPIO.setup(BtnPin, GPIO.IN)
            camera.start_preview(alpha=200)

    def takePhotos(pin):
            global status
            status = True

    def main():
            global status
            GPIO.add_event_detect(BtnPin, GPIO.FALLING, callback=takePhotos)
            while True:
                    if status:
                            for i in range(5):
                                    GPIO.output(LedPin, GPIO.LOW)
                                    time.sleep(0.1)
                                    GPIO.output(LedPin, GPIO.HIGH)
                                    time.sleep(0.1)
                            camera.capture(f'{user_home}/my_photo.jpg')
                            print ('Take a photo!')
                            status = False
                    else:
                            GPIO.output(LedPin, GPIO.HIGH)
                    time.sleep(1)

    def destroy():
            camera.stop_preview()
            GPIO.output(LedPin, GPIO.HIGH)
            GPIO.cleanup()

    if __name__ == '__main__':
            setup()
            try:
                    main()
            except KeyboardInterrupt:
                    destroy()

Explicación del Código

GPIO.add_event_detect(BtnPin, GPIO.FALLING, callback=takePhotos)

Configura el evento de BtnPin, cuando se presiona el botón (la señal de nivel cambia de alto a bajo), llama a la función takePhotos().

def takePhotos(pin):
    global status
    status = True

Cuando se llama a takePhotos(), modifica el status a True.

if status:
    for i in range(5):
        GPIO.output(LedPin, GPIO.LOW)
        time.sleep(0.1)
        GPIO.output(LedPin, GPIO.HIGH)
        time.sleep(0.1)
    camera.capture(f'{user_home}/my_photo.jpg')
    print ('Take a photo!')
    status = False
else:
    GPIO.output(LedPin, GPIO.HIGH)
time.sleep(1)

Cuando status es True, la Raspberry Pi hará parpadear el LED y tomará una foto. La foto se llamará my_photo.jpg y se almacenará en el directorio ~.

Imagen del Fenómeno

../_images/4.1.1camera.JPG