Índice:

Cabine de fotos Raspberry Pi: 5 etapas
Cabine de fotos Raspberry Pi: 5 etapas

Vídeo: Cabine de fotos Raspberry Pi: 5 etapas

Vídeo: Cabine de fotos Raspberry Pi: 5 etapas
Vídeo: ⚫5 Лет Соседи Смеялись Пока Мы Строили Самодельную ЯХТУ На Заднем Дворе 2024, Novembro
Anonim
Raspberry Pi Photobooth
Raspberry Pi Photobooth

O objetivo:

  • Aprenda a codificar e instalar uma câmera Pi
  • Usando instruções define e if na codificação
  • Aprendendo a usar novas tecnologias como LEDs RGB

Etapa 1: O que você precisa

O que você vai precisar
O que você vai precisar
O que você vai precisar
O que você vai precisar
O que você vai precisar
O que você vai precisar
  • 1 Raspberry Pi 3
  • Tábua de pão
  • Jumpers
  • 1 resistor dependente de luz
  • 1 capacitor
  • 1 botão de pressão
  • 6 resistores de 220 Ohm
  • 2 LEDs RGB
  • 1 câmera Raspberry Pi

Etapa 2: Conectando o Módulo da Câmera

Conectando o Módulo da Câmera
Conectando o Módulo da Câmera

Em primeiro lugar, com o Pi desligado, você precisará conectar o Módulo da câmera à porta da câmera do Raspberry Pi, em seguida, inicie o Pi e verifique se o software está ativado.

  1. Localize a porta da câmera que está entre a porta HDMI e 3,5 mm
  2. Puxe o clipe da câmera pelas bordas de plástico até que o clipe esteja na diagonal
  3. Agora insira o cabo da câmera com o azul voltado para a porta de 3,5 mm

Etapa 3: Configurando a câmera

Configurando a câmera
Configurando a câmera
Configurando a câmera
Configurando a câmera

Abrindo a ferramenta Raspberry Pi Configuration no menu principal e desabilitando e habilitando todas as interfaces acima

No menu Principal, abra o Terminal e digite as seguintes linhas de código:

Sudo Raspi-config

Agora, a partir daqui, use as setas do teclado para operar através do sistema e clique na opção de conexão periférica e a partir deles clique em P1 Camera e habilite a câmera, em seguida, selecione terminar. Voltando ao tipo de terminal nas seguintes linhas de código:

pip install picamera

ou Sudo pip instalar Picamera

Etapa 4: Testar o módulo da câmera

Testando o Módulo da Câmera
Testando o Módulo da Câmera

A partir daqui podemos testar se a câmera está funcionando ou não porque temos todo o software e hardware habilitado.

Abra o Python 3 a partir do menu

A partir daí, abra um novo arquivo do shell e salve-o em cameratest.py.

Insira o seguinte código:

from picamera import PiCamera #imported module criado a partir do comando pip install pi camerafrom time import sleep #imported sleep para garantir que nossa câmera permaneça na câmera = PiCamera () # Configuração da câmera

camera.start_preview () # inicia a câmera e mostra como é a saída da câmera

sleep (10) # deixa a visualização ligada por 10 segundos

camera.stop_preview () # finalmente sai da visualização

Execute o código por F5

Se você receber este erro ao executar o código:

(mmal: mmal_vc_component_create: falha ao criar o componente 'vc.ril.camera' (1: ENOMEM)

mmal: mmal_component_create_core: não foi possível criar o componente 'vc.ril.camera' (1) Traceback (última chamada mais recente): Arquivo "", linha 1, no Arquivo "/usr/lib/python2.7/dist-packages/picamera /camera.py ", linha 257, em _init_ self._init_camera () File" /usr/lib/python2.7/dist-packages/picamera/camera.py ", linha 288, em _init_camera prefix =" Falha ao criar câmera componente ") Arquivo" /usr/lib/python2.7/dist-packages/picamera/exc.py ", linha 112, em mmal_check levantar PiCameraMMALError (status, prefixo) picamera.exc. PiCameraMMALError: Falha ao criar o componente da câmera: Out de memória)

Vá para a configuração do Raspberry Pi na coluna de desempenho e aumente a memória da GPU até que o erro desapareça (é necessário reinicializar).

Agora, para criar uma foto que será salva na área de trabalho, usaremos o seguinte código:

from picamera import PiCamera #Módulo importado criado a partir do comando pip install pi camerafrom time import sleep #Imported sleep para garantir que nossa câmera permaneça ligada

camera = PiCamera () #Setup para a câmera

camera.start_preview () #Inicia a pré-visualização em espera (5) #Deixa a pré-visualização ligada por 5 segundos

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

camera.stop_preview () # Pára a visualização

Etapa 5: Criando o circuito com código

Criando o circuito com código!
Criando o circuito com código!
Criando o circuito com código!
Criando o circuito com código!
Criando o circuito com código!
Criando o circuito com código!

Como visto acima nos diagramas de circuito, precisamos configurar um botão, um LDR e, finalmente, dois LEDs RGB. Primeiro, vamos configurar o botão no lado esquerdo inferior da placa de ensaio. Durante a configuração do botão, usaremos as linhas ferroviárias comuns, o que significa que conectaremos nossos 3,3V no positivo e o aterramento no negativo. Depois de concluir a configuração do circuito apenas para o botão.

Vamos testar nosso circuito para ver se podemos fazer com que, se o botão for pressionado, liguemos o led usando o seguinte código:

#Imported Modulesfrom gpiozero import Button from Picamera import PiCamera from time import sleep

#Configurar

Câmera = PiCamera () Botão = Botão (22)

#Função de captura de fotos, decidi colocá-la em uma função de definição, pois ela nos ajuda a limpar o código principal

def photocap ():

Camera.start_preview ()

sleep (5) Camera.capture ('/ home / pi / Desktop / image.jpg') print ("A foto foi tirada") Camera.stop_preview ()

#Código principal:

enquanto True: if Button.is_pressed: print ("O botão foi pressionado") photocap ()

# Por que isso funciona: o código principal funciona, pois tudo o que estamos fazendo é usar o comando if button.is_pressed em um momento de instrução true, portanto, é atualizado constantemente quando o botão é pressionado para tirar a foto

Agora vamos configurar 2 LEDs RGB até o topo do circuito e separá-los no meio da placa de ensaio e fazer o simétrico. Se você não tiver resistores de 220 ohms para este projeto, você pode configurá-los em paralelo dependendo da sua resistência para os resistores que você tem. O segundo pino do LED RGB de 4 pinos (o mais longo deve ser conectado ao aterramento através da ferrovia. Os outros pinos devem ser todos conectados aos seus próprios pinos GPIO. (Primeiro pino = vermelho, Segundo pino = terra, Terceiro pino = verde, Quarto pino = azul).

Testaremos um de nossos LEDs RGB em nosso circuito de botão com o código abaixo:

#Imported Modulesfrom gpiozero import Button from Picamera import PiCamera

de gpiozero import RGBLED

do tempo importar dormir

#Configurar

Câmera = PiCamera () Botão = Botão (22)

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

#Função de captura de fotos com LED RGB, decidi colocá-la em uma função de definição, pois nos ajuda a limpar o 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 ("A foto foi tirada") Camera.stop_preview ()

#Código principal:

enquanto verdadeiro:

se Button.is_pressed:

print ("O botão foi pressionado") photocap ()

# Por que isso funciona: A razão pela qual esse código funciona é porque agora temos o RGBLED para funcionar como um cronômetro para quando a foto vai ser tirada

Agora configure o resistor Light Dependent no lado direito inferior da placa de ensaio usando o diagrama no topo e as ferrovias comuns discutidas antes. Lembre-se de que ambas as pernas longas do LDR e do capicitador devem ser conectadas ao pino GPIO.

Depois de conectar o LDR, usaremos o seguinte código:

# Módulos importados

do botão de importação do gpiozero

de picamera import PiCamera de gpiozero import RGBLED

de gpiozero import LightSensor

do tempo importar dormir

#Configurar

Câmera = PiCamera () Botão = Botão (22) TimedLED = RGBLED (vermelho = 21, verde = 20, azul = 16)

LightSensor = LightSensor (23)

#Função de captura de fotos com LED RGB, decidi colocá-la em uma função de definição, pois nos ajuda a limpar o 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:

enquanto verdadeiro:

if Button.is_pressed: print ("O botão foi pressionado") photocap ()

if Button.is_pressed e Lightsensor.when_dark:

imprimir ("Botão pressionado")

imprimir ("Está escuro")

fotocap ()

# Por que isso funciona: a maneira como adicionei o sensor de luz ao meu código é por meio de outra instrução if que contém a função importada do sensor de luz. Quando escuro, configurando-nos perfeitamente para nossa próxima etapa

Agora, a etapa final neste projeto seria ativar o outro RGBLED simétrico ao outro para funcionar como uma luz de flash, O código final:

do botão de importação do gpiozero

de picamera import PiCamera

de gpiozero import RGBLED

de gpiozero import LightSensor

do tempo importar dormir

#Configurar

Camera = PiCamera ()

Botão = Botão (22)

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

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

LightSensor = LightSensor (23)

#Função de captura de foto com LED RGB, decidi colocá-la em uma função de definição, pois ela nos ajuda a limpar o 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 ("A foto foi tirada") Camera.stop_preview () # Código principal: enquanto True: if Button.is_pressed:

imprimir ("O botão foi pressionado")

fotocap ()

if Button.is_pressed e Lightsensor.when_dark:

print ("Botão pressionado") print ("Está escuro")

FlashLED.color (1, 1, 1)

fotocap ()

# Por que isso funciona: A maneira que adicionei minha lanterna é usando o led RGB para produzir a cor branca que é 1, 1, 1 e só faz efeito se a declaração if for verdadeira.

Recomendado: