Tabla de contenido:

Fotomatón Raspberry Pi: 5 pasos
Fotomatón Raspberry Pi: 5 pasos

Video: Fotomatón Raspberry Pi: 5 pasos

Video: Fotomatón Raspberry Pi: 5 pasos
Video: Raspberry Pi, Curso para principiantes 2024, Diciembre
Anonim
Fotomatón Raspberry Pi
Fotomatón Raspberry Pi

El propósito:

  • Aprenda a codificar e instalar una cámara Pi
  • Uso de sentencias define y if en codificación
  • Aprendiendo a utilizar nuevas tecnologías como los LED RGB

Paso 1: lo que necesitará

Que necesitarás
Que necesitarás
Que necesitarás
Que necesitarás
Que necesitarás
Que necesitarás
  • 1 frambuesa Pi 3
  • Tablero de circuitos
  • Jerséis
  • 1 resistencia dependiente de la luz
  • 1 condensador
  • 1 pulsador
  • 6 resistencias de 220 ohmios
  • 2 LED RGB
  • 1 cámara Raspberry Pi

Paso 2: Conexión del módulo de la cámara

Conexión del módulo de la cámara
Conexión del módulo de la cámara

En primer lugar, con la Pi apagada, deberá conectar el módulo de la cámara al puerto de la cámara de la Raspberry Pi, luego iniciar la Pi y asegurarse de que el software esté habilitado.

  1. Localice el puerto de la cámara que se encuentra entre el puerto HDMI y el puerto de 3,5 mm
  2. Levante el clip de la cámara por los bordes de plástico hasta que el clip esté en diagonal.
  3. Ahora inserte el cable de la cámara con el azul hacia el puerto de 3,5 mm

Paso 3: configuración de la cámara

Configuración de la cámara
Configuración de la cámara
Configuración de la cámara
Configuración de la cámara

Abrir la herramienta de configuración Raspberry Pi desde el menú principal y deshabilitar y habilitar todas las interfaces anteriores

Desde el menú principal, abra la Terminal y escriba las siguientes líneas de código:

Sudo Raspi-config

Ahora, desde aquí, use las teclas de flecha para operar a través del sistema y haga clic en la opción Conexión periférica y desde su haga clic en Cámara P1 y habilite la cámara, luego seleccione finalizar. Volviendo al tipo de terminal en las siguientes líneas de código:

pip instalar picamera

o Sudo pip instala Picamera

Paso 4: prueba del módulo de la cámara

Prueba del módulo de la cámara
Prueba del módulo de la cámara

Desde aquí podemos probar si la cámara está funcionando o no porque tenemos todo el software y hardware habilitado.

Abra Python 3 desde el menú

Desde allí, abra un nuevo archivo desde el shell y guárdelo como cameratest.py.

Ingrese el siguiente código:

from picamera import PiCamera # módulo importado creado a partir del comando pip install pi camerafrom time import sleep #imported sleep para asegurarnos de que nuestra cámara permanece en camera = PiCamera () #Setup para la cámara

camera.start_preview () # inicia la cámara y le muestra cómo se ve la salida de la cámara

sleep (10) # deja la vista previa activada durante 10 segundos

camera.stop_preview () # finalmente sale de la vista previa

Ejecute el código con F5

Si recibe este error al ejecutar el código:

(mmal: mmal_vc_component_create: no se pudo crear el componente 'vc.ril.camera' (1: ENOMEM)

mmal: mmal_component_create_core: no se pudo crear el componente 'vc.ril.camera' (1) Traceback (última llamada más reciente): Archivo "", línea 1, en Archivo "/usr/lib/python2.7/dist-packages/picamera /camera.py ", línea 257, en _init_ self._init_camera () Archivo" /usr/lib/python2.7/dist-packages/picamera/camera.py ", línea 288, en el prefijo _init_camera =" No se pudo crear la cámara componente ") Archivo" /usr/lib/python2.7/dist-packages/picamera/exc.py ", línea 112, en mmal_check subir PiCameraMMALError (estado, prefijo) picamera.exc. PiCameraMMALError: No se pudo crear el componente de la cámara: Fuera de memoria)

Vaya a la configuración de Raspberry Pi, vaya debajo de la columna de rendimiento y aumente la memoria de su GPU hasta que desaparezca el error (debe reiniciar).

Ahora para crear una foto que se guardará en el escritorio usaremos el siguiente código:

desde picamera import PiCamera #Módulo importado creado a partir del comando pip install pi camerafrom time import sleep #Imported sleep para asegurarnos de que nuestra cámara permanece encendida

camera = PiCamera () # Configuración para la cámara

camera.start_preview () #Inicia la vista previa dormido (5) #Deja la vista previa activada durante 5 segundos

camera.capture ('/ home / pi / Desktop / image.jpg') # Desde el

camera.stop_preview () # Detiene la vista previa

Paso 5: ¡Creando el circuito con código

¡Creando el circuito con código!
¡Creando el circuito con código!
¡Creando el circuito con código!
¡Creando el circuito con código!
¡Creando el circuito con código!
¡Creando el circuito con código!

Como se ve arriba en los diagramas de circuitos, necesitamos configurar un botón, un LDR y finalmente dos LED RGB. Primero vamos a configurar el botón en el lado inferior izquierdo de la placa. Durante su configuración para el botón, usaremos las líneas ferroviarias comunes, lo que significa que conectaremos nuestro 3.3V en el positivo y el suelo en el negativo. Una vez que haya finalizado la configuración del circuito solo para el botón.

Probaremos nuestro circuito para ver si podemos hacerlo de manera que si se presiona el botón encendamos el led usando el siguiente código:

#Módulos importados de gpiozero botón de importación de picamera importar PiCamera de time import sleep

#Configuración

Cámara = PiCamera () Botón = Botón (22)

#Función de toma de fotos, he decidido ponerla en una función de definición, ya que nos ayuda a limpiar el código principal

def photocap ():

Camera.start_preview ()

sleep (5) Camera.capture ('/ home / pi / Desktop / image.jpg') print ("Se tomó la foto") Camera.stop_preview ()

#Código principal:

while True: if Button.is_pressed: print ("Se presionó el botón") photocap ()

# Por qué funciona: el código principal funciona ya que todo lo que estamos haciendo es usar el comando if button.is_pressed en una declaración while verdadera, por lo que se actualiza constantemente cuando se presiona el botón para tomar la foto.

Ahora vamos a configurar 2 LED RGB hasta la parte superior del circuito y los separaremos en el medio de la placa de pruebas y haremos el simétrico. Si no tiene resistencias de 220 ohmios para este proyecto, puede configurarlas en paralelo dependiendo de su resistencia para las resistencias que tenga. El segundo pin del LED RGB de 4 pines (el más largo debe estar conectado a tierra a través del ferrocarril. Los otros pines deben estar conectados a sus propios pines GPIO. (Primer pin = rojo, Segundo pin = tierra, Tercer pin = verde, Cuarto pin = azul).

Probaremos uno de nuestros LED RGB en nuestro circuito de botones con el siguiente código:

#Módulos importados de gpiozero Botón de importación de picamera import PiCamera

desde gpiozero importar RGBLED

desde el momento de importar el sueño

#Configuración

Cámara = PiCamera () Botón = Botón (22)

TimedLED = RGBLED (rojo = 21, verde = 20, azul = 16)

#Función de toma de fotos con LED RGB, he decidido ponerla en una función de definición, ya que nos ayuda a limpiar el código principal

def photocap (): Camera.start_preview () sleep (4)

timedled.color (1, 0, 0)

dormir (2)

timedled.color (0, 1, 0)

dormir (1)

Camera.capture ('/ home / pi / Desktop / image.jpg') print ("Se tomó la foto") Camera.stop_preview ()

#Código principal:

mientras que es cierto:

si Button.is_pressed:

imprimir ("Se presionó el botón") photocap ()

# Por qué funciona: La razón por la que este código funciona es porque ahora tenemos el RGBLED para que funcione como un temporizador para cuando se tomará la foto.

Ahora configure la resistencia dependiente de la luz en el lado inferior derecho de la placa usando el diagrama en la parte superior y los ferrocarriles comunes discutidos anteriormente. Recuerde que ambas patas largas del LDR y el capicitador deben estar conectados al pin GPIO.

Después de haber conectado el LDR vamos a utilizar el siguiente código:

#Módulos importados

desde el botón de importación gpiozero

desde picamera importar PiCamera desde gpiozero importar RGBLED

desde gpiozero import LightSensor

desde el momento de importar el sueño

#Configuración

Cámara = PiCamera () Botón = Botón (22) TimedLED = RGBLED (rojo = 21, verde = 20, azul = 16)

LightSensor = LightSensor (23)

#Función de toma de fotos con LED RGB, he decidido ponerla en una función de definición, ya que nos ayuda a limpiar el código principal

def photocap (): Camera.start_preview () sleep (4) timedled.color (1, 0, 0) sleep (2) timedled.color (0, 1, 0) sleep (1) Camera.capture ('/ home / pi / Desktop / image-j.webp

#Código principal:

mientras que es cierto:

if Button.is_pressed: print ("Se presionó el botón") photocap ()

si Button.is_pressed y Lightsensor.when_dark:

imprimir ("Se presionó el botón")

print ("Está oscuro")

fotocap ()

# Por qué funciona: la forma en que agregué el sensor de luz a mi código es a través de otra declaración if que contiene la función importada del sensor de luz.

Ahora, el paso final de este proyecto sería activar el otro RGBLED simétrico al otro para que funcione como luz de flash, El código final:

desde el botón de importación gpiozero

desde picamera importar PiCamera

desde gpiozero importar RGBLED

desde gpiozero import LightSensor

desde el momento de importar el sueño

#Configuración

Cámara = PiCamera ()

Botón = Botón (22)

TimedLED = RGBLED (rojo = 21, verde = 20, azul = 16)

FlashLED = RGBLED (rojo = 19, verde = 13, azul = 6)

LightSensor = LightSensor (23)

#Función de toma de fotos con LED RGB, he decidido ponerla en una función de definición, ya que nos ayuda a limpiar el código principal def photocap (): Camera.start_preview () sleep (4) timedled.color (1, 0, 0) sleep (2) timedled.color (0, 1, 0) sleep (1) Camera.capture ('/ home / pi / Desktop / image.jpg') print ("Se tomó la foto") Camera.stop_preview () # Código principal: while True: si Button.is_pressed:

imprimir ("Se presionó el botón")

fotocap ()

si Button.is_pressed y Lightsensor.when_dark:

imprimir ("Se presionó el botón") imprimir ("Está oscuro")

FlashLED.color (1, 1, 1)

fotocap ()

# Por qué funciona: La forma en que agregué mi linterna es usando el LED RGB para generar el color blanco que es 1, 1, 1 y solo lo hace si la declaración if es verdadera.

Recomendado: