Indholdsfortegnelse:

Raspberry Pi Photobooth: 5 trin
Raspberry Pi Photobooth: 5 trin

Video: Raspberry Pi Photobooth: 5 trin

Video: Raspberry Pi Photobooth: 5 trin
Video: Weekend Project: Raspberry Pi Photo Booth 2024, November
Anonim
Raspberry Pi Photobooth
Raspberry Pi Photobooth

Formålet:

  • Lær, hvordan du koder og installerer et Pi -kamera
  • Ved hjælp af definere og if -sætninger i kodning
  • Lær at bruge ny teknologi som RGB -lysdioder

Trin 1: Hvad du får brug for

Hvad du får brug for
Hvad du får brug for
Hvad du får brug for
Hvad du får brug for
Hvad du får brug for
Hvad du får brug for
  • 1 Raspberry Pi 3
  • Brødbræt
  • Jumpere
  • 1 Lysafhængig modstand
  • 1 kondensator
  • 1 Tryk på knappen
  • 6 220 Ohm modstande
  • 2 RGB lysdioder
  • 1 Raspberry Pi kamera

Trin 2: Tilslutning af kameramodulet

Tilslutning af kameramodul
Tilslutning af kameramodul

Først og fremmest, når Pi er slukket, skal du slutte kameramodulet til Raspberry Pi's kameraport, derefter starte Pi og sikre, at softwaren er aktiveret.

  1. Find kameraporten, der er mellem HDMI- og 3,5 mm -porten
  2. Træk kameraklemmen op af plastikkanterne, indtil klemmen er diagonal
  3. Indsæt nu kameraets kabel med den blå mod 3,5 mm -porten

Trin 3: Opsætning af kameraet

Opsætning af kameraet
Opsætning af kameraet
Opsætning af kameraet
Opsætning af kameraet

Åbning af Raspberry Pi -konfigurationsværktøjet fra hovedmenuen og deaktiver og aktiver alle grænsefladerne ovenfor

Åbn Terminal i hovedmenuen, og indtast følgende kodelinjer:

Sudo Raspi-konfiguration

Nu herfra skal du bruge dine piletaster til at operere gennem systemet, og klik på mulighed for perifer tilslutning og fra deres klik på P1 -kamera og aktivere kameraet, og vælg derefter afslut. Går tilbage til terminaltypen i følgende kodelinjer:

pip installer picamera

eller Sudo pip installere Picamera

Trin 4: Test af kameramodulet

Test af kameramodulet
Test af kameramodulet

Herfra kan vi teste, om kameraet fungerer eller ej, fordi vi har al software og hardware aktiveret.

Åbn Python 3 fra menuen

Derfra åbner du en ny fil fra skallen og gemmer den en cameratest.py.

Indtast følgende kode:

fra picamera import PiCamera #imported module created from the pip install pi camera command from time import sleep #imported sleep for at sikre, at vores kamera forbliver på kamera = PiCamera () #Setup til kameraet

camera.start_preview ()#starter kameraet og viser dig, hvordan kameraets output ser ud

sleep (10)#forlader forhåndsvisningen i 10 sekunder

camera.stop_preview ()#afslutter endelig forhåndsvisningen

Kør koden med F5

Hvis du modtager denne fejl, når koden køres:

(mmal: mmal_vc_component_create: kunne ikke oprette komponent 'vc.ril.camera' (1: ENOMEM)

mmal: mmal_component_create_core: kunne ikke oprette komponent 'vc.ril.camera' (1) Traceback (seneste opkald sidste): Fil "", linje 1, i File "/usr/lib/python2.7/dist-packages/picamera /camera.py ", linje 257, i _init_ self._init_camera () File" /usr/lib/python2.7/dist-packages/picamera/camera.py ", linje 288, i _init_camera præfiks =" Kunne ikke oprette kamera komponent ") Fil" /usr/lib/python2.7/dist-packages/picamera/exc.py ", linje 112, i mmal_check raise PiCameraMMALError (status, præfiks) picamera.exc. PiCameraMMALError: Kunne ikke oprette kamerakomponent: Ud hukommelse)

Gå til Raspberry Pi -konfigurationen, gå under ydeevne -kolonnen, og boost din GPU -hukommelse, indtil fejlen er væk (skal genstartes).

For at oprette et foto, der gemmes på skrivebordet, bruger vi følgende kode:

fra picamera import PiCamera #Imported module created from the pip install pi camera command from time import sleep #Importeret søvn for at sikre, at vores kamera forbliver tændt

kamera = PiCamera () #Opsætning til kameraet

camera.start_preview () #Starter previewsleep

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

camera.stop_preview ()#Stopper forhåndsvisningen

Trin 5: Oprettelse af kredsløbet med kode

Oprettelse af kredsløbet med kode!
Oprettelse af kredsløbet med kode!
Oprettelse af kredsløbet med kode!
Oprettelse af kredsløbet med kode!
Oprettelse af kredsløbet med kode!
Oprettelse af kredsløbet med kode!

Som det ses ovenfor fra kredsløbsdiagrammerne, skal vi opsætte en knap, en LDR og til sidst to RGB -lysdioder. Først skal vi opsætte knappen i nederste venstre side af brødbrættet. Under din opsætning af knappen bruger vi de fælles jernbanelinjer, hvilket betyder, at vi tilslutter vores 3.3V på det positive og jorden til det negative. Når du er færdig med kredsløbsopsætningen kun for knappen.

Vi vil teste vores kredsløb for at se, om vi kan gøre det sådan, at hvis der trykkes på knappen, tænder vi lysdioden ved hjælp af følgende kode:

#Importerede moduler fra gpiozero import knap fra picamera import PiCamera fra tid import sleep

#Opsætning

Kamera = PiCamera () Knap = Knap (22)

#Fotooptagelsesfunktion, jeg har besluttet at sætte den i en definieringsfunktion, da den hjælper os med at rydde op i hovedkoden

def photocap ():

Camera.start_preview ()

sleep (5) Camera.capture ('/home/pi/Desktop/image.jpg') print ("Foto blev taget") Camera.stop_preview ()

#Main kode:

while True: if Button.is_pressed: print ("Button was pressed") photocap ()

#Hvorfor virker dette: Hovedkoden fungerer, som alt vi gør, er at bruge kommandoen, hvis knappen. Er_presset i et stykke tid sand erklæring, så den opdateres konstant, når der trykkes på knappen for at tage billedet

Nu skal vi opsætte 2 RGB LED'er helt op til toppen af kredsløbet og adskille dem i midten af brødbrættet og gøre det symmetriske. Hvis du ikke har 220 ohm modstande til dette projekt, kan du konfigurere dem parallelt afhængigt af din modstand for de modstande, du har. Den anden pin på 4 -pins RGB LED (den længste skal forbindes til jorden gennem jernbanen. De andre pins skal alle forbindes til deres egne GPIO -ben. (Første pin = rød, anden pin = jord, tredje pin = grøn, Fjerde pin = blå).

Vi tester en af vores RGB -lysdioder i vores knapkredsløb med koden herunder:

#Importerede moduler fra gpiozero importknap fra picamera import PiCamera

fra gpiozero import RGBLED

fra tid importere søvn

#Opsætning

Kamera = PiCamera () Knap = Knap (22)

TimedLED = RGBLED (rød = 21, grøn = 20, blå = 16)

#Fotooptagelsesfunktion med RGB LED, jeg har besluttet at sætte den i en definieringsfunktion, da den hjælper os med at rydde op i hovedkoden

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

tidsbestemt. farve (1, 0, 0)

sove (2)

tidsbestemt. farve (0, 1, 0)

søvn (1)

Camera.capture ('/home/pi/Desktop/image.jpg') print ("Foto blev taget") Camera.stop_preview ()

#Main kode:

mens det er sandt:

hvis Button.is_pressed:

print ("der blev trykket på knappen") photocap ()

#Hvorfor virker dette: Grunden til at denne kode virker, er fordi vi nu fik RGBLED'en til at fungere som en timer, når billedet skal tages

Opsæt nu den lysafhængige modstand i nederste højre side af brødbrættet ved hjælp af diagrammet helt oppe øverst og de fælles jernbaner, der er diskuteret før. Husk, at begge de lange ben på LDR og capicitatoren skal forbindes til GPIO -stiften.

Når vi har tilsluttet LDR, vil vi bruge følgende kode:

#Importerede moduler

fra gpiozero importknap

fra picamera import PiCamera fra gpiozero import RGBLED

fra gpiozero import LightSensor

fra tid importere søvn

#Opsætning

Kamera = PiCamera () Knap = Knap (22) TimedLED = RGBLED (rød = 21, grøn = 20, blå = 16)

LightSensor = LightSensor (23)

#Fotooptagelsesfunktion med RGB LED, jeg har besluttet at sætte den i en definieringsfunktion, da den hjælper os med at rydde op i hovedkoden

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

#Main kode:

mens det er sandt:

hvis Button.is_pressed: print ("Der blev trykket på knappen") photocap ()

hvis Button.is_pressed og Lightsensor.when_dark:

print ("Der blev trykket på knappen")

print ("Det er mørkt")

photocap ()

#Hvorfor virker dette: Den måde, hvorpå jeg har tilføjet lyssensoren til min kode, er gennem en anden if -sætning, der indeholder den importerede funktion af lyssensor. Når mørket indstiller os perfekt til vores næste trin

Nu er det sidste trin gennem dette projekt at aktivere den anden RGBLED symmetrisk til den anden for at fungere som et blitzlys, Den sidste kode:

fra gpiozero importknap

fra picamera import PiCamera

fra gpiozero import RGBLED

fra gpiozero import LightSensor

fra tid importere søvn

#Opsætning

Kamera = PiCamera ()

Knap = Knap (22)

TimedLED = RGBLED (rød = 21, grøn = 20, blå = 16)

FlashLED = RGBLED (rød = 19, grøn = 13, blå = 6)

LightSensor = LightSensor (23)

#Fotooptagelsesfunktion med RGB LED, jeg har besluttet at sætte den i en definieringsfunktion, da den hjælper os med at rydde op i hovedkoden 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 ("Foto blev taget") Camera.stop_preview () # Hovedkode: mens True: if Button.is_pressed:

print ("der blev trykket på knappen")

photocap ()

hvis Button.is_pressed og Lightsensor.when_dark:

print ("Der blev trykket på knappen") print ("Det er mørkt")

FlashLED.color (1, 1, 1)

photocap ()

#Hvorfor virker dette: Den måde, hvorpå jeg har tilføjet min lommelygte, er ved hjælp af RGB -ledningen til at udsende farven hvid, der er 1, 1, 1, og det gør kun dette, hvis if -sætningen er sand.

Anbefalede: