Innholdsfortegnelse:

Raspberry Pi Photobooth: 5 trinn
Raspberry Pi Photobooth: 5 trinn

Video: Raspberry Pi Photobooth: 5 trinn

Video: Raspberry Pi Photobooth: 5 trinn
Video: MultiCam от PhotoRobot для 3D-фотографии товаров 2024, Juli
Anonim
Raspberry Pi Photobooth
Raspberry Pi Photobooth

Formålet:

  • Lær hvordan du koder og installerer et Pi -kamera
  • Bruk definere og if -setninger i koding
  • Lære å bruke ny teknologi som RGB -lysdioder

Trinn 1: Det du trenger

Hva du trenger
Hva du trenger
Hva du trenger
Hva du trenger
Hva du trenger
Hva du trenger
  • 1 Raspberry Pi 3
  • Brødbrett
  • Gensere
  • 1 Lysavhengig motstand
  • 1 kondensator
  • 1 Trykknapp
  • 6 220 Ohm motstander
  • 2 RGB lysdioder
  • 1 Raspberry Pi -kamera

Trinn 2: Koble til kameramodulen

Koble til kameramodulen
Koble til kameramodulen

Først av alt, med Pi slått av, må du koble kameramodulen til Raspberry Pi -kameraporten, deretter starte Pi og sørge for at programvaren er aktivert.

  1. Finn kameraporten som er mellom HDMI og 3,5 mm porten
  2. Trekk opp kameraklipset i plastkantene til klippet er diagonalt
  3. Sett nå inn kamerakabelen med den blå vendt mot 3,5 mm -porten

Trinn 3: Sette opp kameraet

Sette opp kameraet
Sette opp kameraet
Sette opp kameraet
Sette opp kameraet

Åpne Raspberry Pi Configuration -verktøyet fra hovedmenyen og deaktiver og aktiver alle grensesnittene ovenfor

Fra hovedmenyen åpner du terminalen og skriver inn følgende kodelinjer:

Sudo Raspi-konfigurasjon

Herfra bruker du piltastene dine til å operere gjennom systemet, klikker på alternativet Perifer tilkobling og klikker på P1 -kameraet og aktiver kameraet, og velg deretter ferdig. Går tilbake til terminaltypen i følgende kodelinjer:

pip installer picamera

eller Sudo pip installere Picamera

Trinn 4: Testing av kameramodulen

Test av kameramodulen
Test av kameramodulen

Herfra kan vi teste om kameraet fungerer eller ikke fordi vi har all programvare og maskinvare aktivert.

Åpne Python 3 fra menyen

Derfra åpner du en ny fil fra skallet og lagrer den en cameratest.py.

Skriv inn følgende kode:

fra picamera import PiCamera #imported module opprettet fra pip installere pi kamera kommando fra tid import sleep #imported sleep for å sikre at kameraet vårt forblir på kamera = PiCamera () #Setup for kameraet

camera.start_preview ()#starter kameraet og viser deg hvordan kamerautgangen ser ut

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

camera.stop_preview ()#avslutter endelig forhåndsvisningen

Kjør koden med F5

Hvis du får denne feilen når du kjører koden:

(mmal: mmal_vc_component_create: klarte ikke å opprette komponent 'vc.ril.camera' (1: ENOMEM)

mmal: mmal_component_create_core: kunne ikke opprette komponent 'vc.ril.camera' (1) Traceback (siste anrop sist): 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 prefix =" Kunne ikke lage kamera komponent ") File" /usr/lib/python2.7/dist-packages/picamera/exc.py ", linje 112, i mmal_check heve PiCameraMMALError (status, prefiks) picamera.exc. PiCameraMMALError: Kunne ikke opprette kamerakomponent: Ut minne)

Gå til Raspberry Pi -konfigurasjonen, gå under ytelseskolonnen og øk GPU -minnet til feilen er borte (må starte på nytt).

For å lage et bilde som vil lagres på skrivebordet, bruker vi følgende kode:

fra picamera import PiCamera #Imported module created from the pip install pi camera command from time import sleep #Importert søvn for å sikre at kameraet vårt forblir på

kamera = PiCamera () #Oppsett for kameraet

camera.start_preview () #Starter forhåndsvisningssøvnen (5) #Lar forhåndsvisningen på i 5 sekunder

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

camera.stop_preview ()#Stopper forhåndsvisningen

Trinn 5: Opprette kretsen med kode

Opprette kretsen med kode!
Opprette kretsen med kode!
Opprette kretsen med kode!
Opprette kretsen med kode!
Opprette kretsen med kode!
Opprette kretsen med kode!

Som vist ovenfor fra kretsdiagrammene må vi sette opp en knapp, en LDR og til slutt to RGB -lysdioder. Først skal vi sette opp knappen på nedre venstre side av brødbrettet. Under oppsettet for knappen bruker vi de vanlige jernbanelinjene, noe som betyr at vi vil koble til 3.3V på det positive og bakken for negative. Etter at du bare har fullført kretsoppsettet for knappen.

Vi vil teste kretsen vår for å se om vi kan gjøre det slik at hvis du trykker på knappen, slår vi på LED -en ved å bruke følgende kode:

#Importerte moduler fra gpiozero importknapp fra picamera import PiCamera fra import av søvn

#Oppsett

Kamera = PiCamera () Knapp = Knapp (22)

#Fotografering, jeg har bestemt meg for å sette den inn i en definisjonsfunksjon, siden den hjelper oss med å rydde opp i hovedkoden

def photocap ():

Camera.start_preview ()

sleep (5) Camera.capture ('/home/pi/Desktop/image.jpg') print ("Bilde ble tatt") Camera.stop_preview ()

#Main kode:

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

#Hvorfor dette fungerer: Hovedkoden fungerer som alt vi gjør er å bruke kommandoen if button.is_pressed in a true true statement so it is constant updating when the button is pressed to take the photo

Nå skal vi sette opp 2 RGB -lysdioder helt opp til toppen av kretsen og skille dem midt på brødbrettet og lage det symmetriske. Hvis du ikke har 220 ohm motstander for dette prosjektet, kan du sette dem opp parallelt, avhengig av motstanden for motstandene du har. Den andre pinnen til 4 -pinners RGB LED (den lengste bør kobles til bakken gjennom jernbanen. De andre pinnene skal alle være koblet til sine egne GPIO -pinner. (Første pinne = rød, andre pinne = bakken, tredje pinne = grønn, Fjerde pinne = blå).

Vi vil teste en av våre RGB -lysdioder i knappekretsen vår med koden nedenfor:

#Importerte moduler fra gpiozero importknapp fra picamera import PiCamera

fra gpiozero import RGBLED

fra tid av importer søvn

#Oppsett

Kamera = PiCamera () Knapp = Knapp (22)

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

#Fotoopptaksfunksjon med RGB LED, jeg har bestemt meg for å sette den inn i en definisjonsfunksjon da den hjelper oss med å rydde opp i hovedkoden

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

tidsbestemt. farge (1, 0, 0)

sove (2)

tidsbestemt. farge (0, 1, 0)

sove (1)

Camera.capture ('/home/pi/Desktop/image.jpg') print ("Bilde ble tatt") Camera.stop_preview ()

#Main kode:

mens det er sant:

if Button.is_pressed:

print ("Trykk på knappen") photocap ()

#Hvorfor dette fungerer: Grunnen til at denne koden fungerer er fordi vi nå fikk RGBLED til å fungere som en timer for når bildet skal tas

Sett nå opp den lysavhengige motstanden på nedre høyre side av brødbrettet ved å bruke diagrammet helt oppe på toppen og fellesbanene som er diskutert før. Husk at begge de lange benene til LDR og capicitatoren må være koblet til GPIO -pinnen.

Etter at vi har koblet til LDR, skal vi bruke følgende kode:

#Importerte moduler

fra gpiozero importknapp

fra picamera import PiCamera fra gpiozero import RGBLED

fra gpiozero import LightSensor

fra tid av importer søvn

#Oppsett

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

LightSensor = LightSensor (23)

#Fotografering med RGB LED, jeg har bestemt meg for å sette den inn i en definisjonsfunksjon da den hjelper oss med å rydde opp 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 sant:

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

if Button.is_pressed og Lightsensor.when_dark:

print ("Knappen ble trykket")

print ("Det er mørkt")

photocap ()

#Hvorfor fungerer dette: Måten jeg har lagt lyssensoren til koden min, er gjennom en annen if -setning som inneholder den importerte funksjonen til lyssensor. Når mørket setter oss perfekt opp for vårt neste trinn

Nå er det siste trinnet gjennom dette prosjektet å aktivere den andre RGBLED symmetrisk til den andre for å fungere som et blitslys, Den siste koden:

fra gpiozero importknapp

fra picamera import PiCamera

fra gpiozero import RGBLED

fra gpiozero import LightSensor

fra tid av importer søvn

#Oppsett

Kamera = PiCamera ()

Knapp = Knapp (22)

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

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

LightSensor = LightSensor (23)

#Fotoopptaksfunksjon med RGB LED, jeg har bestemt meg for å sette den inn i en definisjonsfunksjon ettersom den hjelper oss med å rydde opp 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 ("Bilde ble tatt") Camera.stop_preview () # Hovedkode: while True: if Button.is_pressed:

print ("Knappen ble trykket")

photocap ()

if Button.is_pressed og Lightsensor.when_dark:

print ("Knappen ble trykket") print ("Det er mørkt")

FlashLED.color (1, 1, 1)

photocap ()

#Hvorfor fungerer dette: Måten jeg har lagt til lommelykten min, er ved å bruke RGB -ledningen til å skrive ut fargen hvit som er 1, 1, 1, og den gjør det bare hvis if -setningen er sann.

Anbefalt: