Cuprins:

Photobooth Raspberry Pi: 5 pași
Photobooth Raspberry Pi: 5 pași

Video: Photobooth Raspberry Pi: 5 pași

Video: Photobooth Raspberry Pi: 5 pași
Video: Raspberry PI Wedding Photobooth 5 2024, Noiembrie
Anonim
Raspberry Pi Photobooth
Raspberry Pi Photobooth

Scopul:

  • Aflați cum să codificați și să instalați o cameră Pi
  • Utilizarea instrucțiunilor define și if în codificare
  • Învățând să folosesc noi tehnologii precum LED-urile RGB

Pasul 1: De ce veți avea nevoie

Ce vei avea nevoie
Ce vei avea nevoie
Ce vei avea nevoie
Ce vei avea nevoie
Ce vei avea nevoie
Ce vei avea nevoie
  • 1 Raspberry Pi 3
  • Pană de pâine
  • Jumpers
  • 1 rezistor dependent de lumină
  • 1 condensator
  • 1 Buton
  • 6 Rezistoare de 220 Ohm
  • 2 LED-uri RGB
  • 1 cameră Raspberry Pi

Pasul 2: Conectarea modulului camerei

Conectarea modulului camerei
Conectarea modulului camerei

În primul rând, cu Pi oprit, va trebui să conectați modulul camerei la portul camerei Raspberry Pi, apoi să porniți Pi și să vă asigurați că software-ul este activat.

  1. Localizați portul camerei care se află între portul HDMI și portul de 3,5 mm
  2. Trageți în sus clema camerei de marginile din plastic până când clema este în diagonală
  3. Acum introduceți cablul camerei cu albastrul orientat spre portul de 3,5 mm

Pasul 3: Configurarea camerei

Configurarea camerei
Configurarea camerei
Configurarea camerei
Configurarea camerei

Deschideți instrumentul de configurare Raspberry Pi din meniul principal și dezactivați și activați toate interfețele de mai sus

Din meniul principal deschideți terminalul și tastați următoarele linii de cod:

Sudo Raspi-config

Acum, de aici, utilizați tastele săgeți pentru a opera prin sistem și faceți clic pe opțiunea Conexiune periferică și din clicul acestora pe Camera P1 și activați camera, apoi selectați Finalizare. Revenind la tipul terminalului în următoarele linii de cod:

pip instala picamera

sau Sudo pip instalează Picamera

Pasul 4: Testarea modulului camerei

Testarea modulului camerei
Testarea modulului camerei

De aici putem testa dacă camera funcționează sau nu, deoarece avem toate software-urile și hardware-ul activat.

Deschideți Python 3 din meniu

De acolo deschideți un fișier nou din shell și salvați-l pe cameratest.py.

Introduceți următorul cod:

din picamera import PiCamera #modul importat creat din comanda pip install pi camera de la import timp somn # importat somn pentru a ne asigura că camera noastră rămâne pe cameră = PiCamera () #Setup for the camera

camera.start_preview () # pornește camera și vă arată cum arată ieșirea camerei

sleep (10) # lasă previzualizarea activată timp de 10 secunde

camera.stop_preview () # părăsește în cele din urmă previzualizarea

Rulați codul până la F5

Dacă primiți această eroare când rulați codul:

(mmal: mmal_vc_component_create: nu s-a putut crea componenta 'vc.ril.camera' (1: ENOMEM)

mmal: mmal_component_create_core: nu s-a putut crea componenta 'vc.ril.camera' (1) Traceback (ultimul apel cel mai recent): Fișier "", linia 1, în Fișier "/usr/lib/python2.7/dist-packages/picamera /camera.py ", linia 257, în _init_ self._init_camera () Fișier" /usr/lib/python2.7/dist-packages/picamera/camera.py ", linia 288, în prefixul _init_camera =" Nu s-a putut crea camera componentă ") Fișier" /usr/lib/python2.7/dist-packages/picamera/exc.py ", linia 112, în mmal_check mărire PiCameraMMALError (stare, prefix) picamera.exc. PiCameraMMALError: Nu s-a putut crea componenta camerei: Out de memorie)

Accesați configurația Raspberry Pi, intrați sub coloana de performanță și măriți memoria GPU până când eroarea dispare (trebuie să reporniți).

Acum, pentru a crea o fotografie care va fi salvată pe desktop, vom folosi următorul cod:

din picamera import PiCamera # Modulul importat creat din comanda pip instala pi camera

camera = PiCamera () #Setup pentru camera

camera.start_preview () # Începe previzualizarea (5) # Lasă previzualizarea activă timp de 5 secunde

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

camera.stop_preview () # Oprește previzualizarea

Pasul 5: Crearea circuitului cu cod

Crearea circuitului cu cod!
Crearea circuitului cu cod!
Crearea circuitului cu cod!
Crearea circuitului cu cod!
Crearea circuitului cu cod!
Crearea circuitului cu cod!

După cum se vede mai sus din schemele de circuite, trebuie să configurăm un buton, un LDR și, în cele din urmă, două LED-uri RGB. Mai întâi vom configura butonul din partea stângă jos a panoului de verificare. În timpul configurării pentru buton, vom folosi liniile de cale ferată comune, ceea ce înseamnă că vom conecta 3.3V la pozitiv și la sol pentru negativ. După ce ați terminat configurarea circuitului doar pentru buton.

Vom testa circuitul nostru pentru a vedea dacă îl putem face astfel încât, dacă butonul este apăsat, pornim ledul folosind următorul cod:

#Module importate de la importul gpiozero Buton de la importul camerei foto PiCamera de la ora de somn la import

#Înființat

Camera = PiCamera () Buton = Buton (22)

Funcția #Photo taking, am decis să o pun într-o funcție de definire, deoarece ne ajută să curățăm codul principal

photocap def ():

Camera.start_preview ()

sleep (5) Camera.capture ('/ home / pi / Desktop / image.jpg') print ("A fost făcută fotografia") Camera.stop_preview ()

#Cod principal:

în timp ce este adevărat: dacă Button.is_pressed: print ("Butonul a fost apăsat") photocap ()

#De ce funcționează: Codul principal funcționează așa cum facem doar folosind comanda dacă butonul este apăsat într-o declarație adevărată în timp ce se actualizează constant atunci când butonul este apăsat pentru a face fotografia

Acum vom configura 2 LED-uri RGB până în partea de sus a circuitului și le vom separa la mijlocul panoului și vom face simetricul. Dacă nu aveți rezistențe de 220 ohmi pentru acest proiect, le puteți configura în paralel, în funcție de rezistența dvs. pentru rezistențele pe care le aveți. Al doilea pin al LED-ului RGB cu 4 pini (cel mai lung ar trebui să fie conectat la masă prin calea ferată. Ceilalți pini trebuie conectați toți la propriii lor pini GPIO. (Primul pin = roșu, Al doilea pin = masă, Al treilea pin = verde, Al patrulea pin = albastru).

Vom testa unul dintre LED-urile noastre RGB în circuitul nostru de butoane cu codul de mai jos:

#Imported Modulesde la gpiozero import Buton de la picamera import PiCamera

din importul gpiozero RGBLED

din timp import somn

#Înființat

Camera = PiCamera () Buton = Buton (22)

TimedLED = RGBLED (roșu = 21, verde = 20, albastru = 16)

#Funcția de fotografiere cu LED RGB, am decis să o pun într-o funcție de definire, deoarece ne ajută să curățăm codul principal

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

timedled.color (1, 0, 0)

somn (2)

timedled.color (0, 1, 0)

dormi (1)

Camera.capture ('/ home / pi / Desktop / image.jpg') print („A fost făcută fotografia”) Camera.stop_preview ()

# Cod principal:

în timp ce este adevărat:

dacă Button.is_pressed:

print ("Butonul a fost apăsat") photocap ()

#De ce funcționează acest lucru: Motivul pentru care funcționează acest cod este că acum am primit RGBLED să funcționeze ca temporizator pentru momentul în care va fi făcută fotografia

Acum configurați rezistorul Light Dependent din partea dreaptă jos a panoului de calcul folosind diagrama până în partea de sus și căile ferate comune discutate anterior. Amintiți-vă că ambele picioare lungi ale LDR și capicitatorul trebuie să fie conectate la pinul GPIO.

După ce am conectat LDR, vom folosi următorul cod:

#Module importate

din butonul de importare gpiozero

din picamera import PiCamera din gpiozero import RGBLED

din importul gpiozero LightSensor

din timp import somn

#Înființat

Camera = PiCamera () Buton = Buton (22) TimedLED = RGBLED (roșu = 21, verde = 20, albastru = 16)

LightSensor = LightSensor (23)

#Funcția de fotografiere cu LED RGB, am decis să o pun într-o funcție de definire, deoarece ne ajută să curățăm codul principal

photocap def (): 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

# Cod principal:

în timp ce este adevărat:

dacă Button.is_pressed: print ("Butonul a fost apăsat") photocap ()

dacă Button.is_pressed și Lightsensor.when_dark:

print („Butonul a fost apăsat”)

print („Este întuneric”)

fotocap ()

#De ce funcționează acest lucru: modul în care am adăugat senzorul de lumină la codul meu este printr-o altă instrucțiune if care conține funcția importată a senzorului de lumină. Când întunericul ne configurează perfect pentru următorul nostru pas

Acum, ultimul pas prin realizarea acestui proiect ar fi să activezi celălalt simetric RGBLED la celălalt pentru a funcționa ca o lumină flash, Codul final:

din butonul de importare gpiozero

din picamera import PiCamera

din importul gpiozero RGBLED

din importul gpiozero LightSensor

din timp import somn

#Înființat

Camera = PiCamera ()

Buton = Buton (22)

TimedLED = RGBLED (roșu = 21, verde = 20, albastru = 16)

FlashLED = RGBLED (roșu = 19, verde = 13, albastru = 6)

LightSensor = LightSensor (23)

#Funcția de fotografiere cu LED RGB, am decis să o pun într-o funcție de definire, deoarece ne ajută să curățăm codul 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 ("Fotografia a fost făcută") Camera.stop_preview () # Cod principal: în timp ce este adevărat: dacă Button.is_pressed:

print („Butonul a fost apăsat”)

fotocap ()

dacă Button.is_pressed și Lightsensor.when_dark:

print („Butonul a fost apăsat”) print („Este întuneric”)

FlashLED.color (1, 1, 1)

fotocap ()

#De ce funcționează: modul în care mi-am adăugat lanterna este prin utilizarea ledului RGB pentru a afișa culoarea albă, care este 1, 1, 1 și face acest lucru numai dacă afirmația if este adevărată.

Recomandat: