Sommario:

Photobooth Raspberry Pi: 5 passaggi
Photobooth Raspberry Pi: 5 passaggi

Video: Photobooth Raspberry Pi: 5 passaggi

Video: Photobooth Raspberry Pi: 5 passaggi
Video: Top 5 complex DIY projects with Raspberry Pi. 2024, Novembre
Anonim
Photobooth Raspberry Pi
Photobooth Raspberry Pi

La proposta:

  • Scopri come codificare e installare una fotocamera Pi
  • Utilizzo delle istruzioni define e if nella codifica
  • Imparare a usare la nuova tecnologia come i LED RGB

Passaggio 1: cosa ti servirà

Cosa ti servirà
Cosa ti servirà
Cosa ti servirà
Cosa ti servirà
Cosa ti servirà
Cosa ti servirà
  • 1 lampone pi 3
  • tagliere
  • ponticelli
  • 1 resistenza dipendente dalla luce
  • 1 condensatore
  • 1 pulsante
  • 6 resistori da 220 Ohm
  • 2 LED RGB
  • 1 fotocamera Raspberry Pi

Passaggio 2: collegamento del modulo fotocamera

Collegamento del modulo telecamera
Collegamento del modulo telecamera

Prima di tutto, con il Pi spento, dovrai collegare il modulo fotocamera alla porta della fotocamera del Raspberry Pi, quindi avviare il Pi e assicurarti che il software sia abilitato.

  1. Individua la porta della fotocamera che si trova tra la porta HDMI e quella da 3,5 mm
  2. Tirare verso l'alto la clip della fotocamera dai bordi di plastica finché la clip non è diagonale
  3. Ora inserisci il cavo della fotocamera con il blu rivolto verso la porta da 3,5 mm

Passaggio 3: configurazione della fotocamera

Configurazione della fotocamera
Configurazione della fotocamera
Configurazione della fotocamera
Configurazione della fotocamera

Aprire lo strumento di configurazione Raspberry Pi dal menu principale e disabilitare e abilitare tutte le interfacce sopra

Dal menu principale apri il Terminale e digita le seguenti righe di codice:

Sudo Raspi-config

Ora da qui usa i tasti freccia per operare attraverso il sistema e fai clic sull'opzione Connessione periferica e dal loro fai clic su Fotocamera P1 e abilita la fotocamera, quindi seleziona Fine. Tornando al terminale digitare le seguenti righe di codice:

pip installa picamera

o Sudo pip installa Picamera

Passaggio 4: test del modulo della fotocamera

Test del modulo della fotocamera
Test del modulo della fotocamera

Da qui possiamo testare se la fotocamera funziona o meno perché abbiamo tutto il software e l'hardware abilitati.

Apri Python 3 dal menu

Da lì apri un nuovo file dalla shell e salvalo in cameratest.py.

Inserisci il seguente codice:

from picamera import PiCamera #modulo importato creato dal comando pip install pi camerafrom time import sleep #importato sleep per assicurarsi che la nostra fotocamera rimanga sulla fotocamera = PiCamera() #Setup per la fotocamera

camera.start_preview()# avvia la fotocamera e mostra l'aspetto dell'output della fotocamera

sleep(10)#lascia l'anteprima attiva per 10 secondi

camera.stop_preview()#finalmente chiude l'anteprima

Esegui il codice con F5

Se ricevi questo errore durante l'esecuzione del codice:

(mmal: mmal_vc_component_create: impossibile creare il componente 'vc.ril.camera' (1:ENOMEM)

mmal: mmal_component_create_core: impossibile creare il componente 'vc.ril.camera' (1) Traceback (ultima chiamata più recente): File "", riga 1, in File "/usr/lib/python2.7/dist-packages/picamera /camera.py", riga 257, in _init_ self._init_camera() File "/usr/lib/python2.7/dist-packages/picamera/camera.py", riga 288, in _init_camera prefix="Impossibile creare la telecamera componente") File "/usr/lib/python2.7/dist-packages/picamera/exc.py", riga 112, in mmal_check raise PiCameraMMALError(status, prefix) picamera.exc. PiCameraMMALError: impossibile creare il componente della fotocamera: Out di memoria)

Vai alla configurazione di Raspberry Pi, vai nella colonna delle prestazioni e aumenta la memoria della GPU fino a quando l'errore non scompare (è necessario riavviare).

Ora per creare una foto che verrà salvata sul desktop utilizzeremo il seguente codice:

from picamera import PiCamera #Modulo importato creato dal comando pip install pi camerafrom time import sleep #Sleep importato per assicurarci che la nostra fotocamera rimanga accesa

camera = PiCamera() #Setup per la fotocamera

camera.start_preview() #Avvia il previewsleep(5)#Lascia l'anteprima per 5 secondi

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

camera.stop_preview()#Interrompe l'anteprima

Passaggio 5: creazione del circuito con codice

Creazione del circuito con codice!
Creazione del circuito con codice!
Creazione del circuito con codice!
Creazione del circuito con codice!
Creazione del circuito con codice!
Creazione del circuito con codice!

Come visto sopra dagli schemi circuitali abbiamo bisogno di impostare un pulsante, un LDR e infine due LED RGB. Per prima cosa imposteremo il pulsante nella parte inferiore sinistra della breadboard. Durante la configurazione del pulsante utilizzeremo le linee ferroviarie comuni, il che significa che collegheremo i nostri 3.3V al positivo e la massa al negativo. Dopo aver terminato la configurazione del circuito solo per il pulsante.

Testeremo il nostro circuito per vedere se possiamo fare in modo che se il pulsante viene premuto accendiamo il led utilizzando il seguente codice:

#Moduli importati da gpiozero import Pulsante da picamera import PiCamera da time import sleep

#Impostare

Fotocamera = PiCamera() Pulsante = Pulsante(22)

#Funzione di scattare foto, ho deciso di inserirla in una funzione define in quanto ci aiuta a ripulire il codice principale

def fotocap():

Camera.start_preview()

sleep(5) Camera.capture('/home/pi/Desktop/image.jpg') print ("La foto è stata scattata") Camera.stop_preview()

#Codice principale:

while True: if Button.is_pressed: print ("Il pulsante è stato premuto") photocap()

#Perché funziona: il codice principale funziona come tutto ciò che stiamo facendo è usare il comando if button.is_pressed in un'istruzione while true quindi si aggiorna costantemente quando si preme il pulsante per scattare la foto

Ora configureremo 2 LED RGB fino alla parte superiore del circuito e li separeremo al centro della breadboard e renderemo il simmetrico. Se non hai resistori da 220 ohm per questo progetto, puoi impostarli in parallelo a seconda della tua resistenza per i resistori che hai. Il secondo pin del LED RGB a 4 pin (il più lungo deve essere collegato a massa attraverso la ferrovia. Gli altri pin devono essere tutti collegati ai propri pin GPIO. (primo pin = rosso, secondo pin = terra, terzo pin = verde, Quarto pin = blu).

Testeremo uno dei nostri LED RGB nel nostro circuito dei pulsanti con il codice seguente:

#Moduli importati da gpiozero import Pulsante da picamera import PiCamera

da gpiozero import RGBLED

dal tempo importa il sonno

#Impostare

Fotocamera = PiCamera() Pulsante = Pulsante(22)

TimedLED=RGBLED(rosso=21, verde=20, blu=16)

#Funzione di scattare foto con LED RGB, ho deciso di inserirla in una funzione define in quanto ci aiuta a ripulire il codice principale

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

timedled.color(1, 0, 0)

dormire(2)

timedled.color(0, 1, 0)

dormire(1)

Camera.capture('/home/pi/Desktop/image.jpg') print ("La foto è stata scattata") Camera.stop_preview()

#Codice principale:

mentre vero:

se Button.is_pressed:

print ("Il pulsante è stato premuto") photocap()

#Perché funziona: il motivo per cui questo codice funziona è perché ora abbiamo il LED RGB per funzionare come timer per quando verrà scattata la foto

Ora imposta il resistore dipendente dalla luce sul lato inferiore destro della breadboard usando il diagramma fino in cima e le ferrovie comuni discusse prima. Ricorda che entrambe le gambe lunghe dell'LDR e del condensatore devono essere collegate al pin GPIO.

Dopo aver collegato l'LDR utilizzeremo il seguente codice:

#Moduli importati

dal pulsante di importazione gpiozero

da picamera importa PiCamera da gpiozero importa RGBLED

da gpiozero import LightSensor

dal tempo importa il sonno

#Impostare

Fotocamera = PiCamera() Pulsante = Pulsante(22) TimedLED=RGBLED(rosso=21, verde=20, blu=16)

Sensore di Luce=Sensore di Luce(23)

#Funzione di scattare foto con LED RGB, ho deciso di inserirla in una funzione define in quanto ci aiuta a ripulire il codice principale

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 ("La foto è stata scattata") Camera.stop_preview()

#Codice principale:

mentre vero:

if Button.is_pressed: print ("Il pulsante è stato premuto") photocap()

if Button.is_pressed e Lightsensor.when_dark:

print ("Il pulsante è stato premuto")

print("E' buio")

fotocap()

#Perché funziona: il modo in cui ho aggiunto il sensore di luce al mio codice è attraverso un'altra istruzione if che contiene la funzione importata del sensore di luce. Quando è buio ci prepara perfettamente per il nostro prossimo passo

Ora il passaggio finale di questo progetto sarebbe quello di attivare l'altro RGBLED simmetrico all'altro per funzionare come luce flash, Il codice finale:

dal pulsante di importazione gpiozero

da picamera import PiCamera

da gpiozero import RGBLED

da gpiozero import LightSensor

dal tempo importa il sonno

#Impostare

Fotocamera = Fotocamera Pi()

Pulsante = Pulsante(22)

TimedLED=RGBLED(rosso=21, verde=20, blu=16)

LED lampeggiante = LED RGB (rosso = 19, verde = 13, blu = 6)

Sensore di Luce=Sensore di Luce(23)

#Funzione di acquisizione foto con LED RGB, ho deciso di inserirla in una funzione define in quanto ci aiuta a ripulire il codice principale 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 ("La foto è stata scattata") Camera.stop_preview() # Codice principale: while True: se Button.is_pressed:

print ("Il pulsante è stato premuto")

fotocap()

if Button.is_pressed e Lightsensor.when_dark:

print ("Il pulsante è stato premuto") print("È buio")

FlashLED.colore(1, 1, 1)

fotocap()

#Perché funziona: il modo in cui ho aggiunto la mia torcia è usando il led RGB per emettere il colore bianco che è 1, 1, 1 e lo fa solo se l'istruzione if è vera.

Consigliato: