Kazalo:

Raspberry Pi Photobooth: 5 korakov
Raspberry Pi Photobooth: 5 korakov

Video: Raspberry Pi Photobooth: 5 korakov

Video: Raspberry Pi Photobooth: 5 korakov
Video: Raspberry Pi PhotoBooth with Printer Tutorial 2024, November
Anonim
Raspberry Pi Photobooth
Raspberry Pi Photobooth

Namen:

  • Naučite se kodirati in namestiti kamero Pi
  • Z uporabo stavkov define in if pri kodiranju
  • Naučite se uporabljati nove tehnologije, kot so LED RGB

Korak: Kaj boste potrebovali

Kaj boste potrebovali
Kaj boste potrebovali
Kaj boste potrebovali
Kaj boste potrebovali
Kaj boste potrebovali
Kaj boste potrebovali
  • 1 malina Pi 3
  • Ogledna plošča
  • Skakalci
  • 1 svetlobno odvisen upor
  • 1 Kondenzator
  • 1 Pritisnite gumb
  • 6 220 ohmskih uporov
  • 2 RGB LED
  • 1 kamera Raspberry Pi

2. korak: Priključitev modula kamere

Priključitev modula kamere
Priključitev modula kamere

Najprej, ko je Pi izklopljen, morate priključiti modul kamere na vrata kamere Raspberry Pi, nato zagnati Pi in zagotoviti, da je programska oprema omogočena.

  1. Poiščite vrata za fotoaparat, ki so med vrati HDMI in 3,5 mm
  2. Sponko fotoaparata povlecite za plastične robove, dokler ni sponka diagonalna
  3. Zdaj vstavite kabel kamer z modro, obrnjeno proti 3,5 -milimetrskim vhodom

3. korak: Nastavitev kamere

Nastavitev kamere
Nastavitev kamere
Nastavitev kamere
Nastavitev kamere

V glavnem meniju odprite orodje za konfiguracijo Raspberry Pi in onemogočite in omogočite vse zgornje vmesnike

V glavnem meniju odprite terminal in vnesite naslednje vrstice kode:

Sudo Raspi-config

Sedaj od tu uporabite puščične tipke za delovanje po sistemu in kliknite možnost Periferna povezava, nato pa kliknite na kamero P1 in omogočite kamero, nato izberite končaj. Če se vrnemo k vrsti terminala v naslednjih vrsticah kode:

pip namestite pikamero

ali Sudo pip namestite Picamero

4. korak: Preizkusite modul kamere

Testiranje modula kamere
Testiranje modula kamere

Od tu lahko preverimo, ali kamera deluje ali ne, ker imamo omogočeno vso programsko in strojno opremo.

V meniju odprite Python 3

Od tam odprite novo datoteko iz lupine in jo shranite na cameratest.py.

Vnesite naslednjo kodo:

from picamera import PiCamera #imported module created from the pip install pi camera commandfrom time import sleep #imported sleep, da se prepričamo, da naša kamera ostane pri kameri = PiCamera () #Nastavitev za kamero

camera.start_preview ()#zažene kamero in prikaže, kako izgleda izhod kamere

sleep (10)#pusti predogled vklopljen za 10 sekund

camera.stop_preview ()#končno prekine predogled

Zaženite kodo s tipko F5

Če pri zagonu kode prejmete to napako:

(mmal: mmal_vc_component_create: ni uspelo ustvariti komponente 'vc.ril.camera' (1: ENOMEM)

mmal: mmal_component_create_core: ni bilo mogoče ustvariti komponente 'vc.ril.camera' (1) Sledenje (zadnji klic zadnji): Datoteka "", 1. vrstica, v datoteki "/usr/lib/python2.7/dist-packages/picamera /camera.py ", vrstica 257, v _init_ self._init_camera () Datoteka" /usr/lib/python2.7/dist-packages/picamera/camera.py ", vrstica 288, v _init_camera prefix =" Ustvarjanje kamere ni uspelo komponenta ") Datoteka" /usr/lib/python2.7/dist-packages/picamera/exc.py ", vrstica 112, v mmal_check dvig PiCameraMMALError (status, predpona) picamera.exc. PiCameraMMALError: ni bilo mogoče ustvariti komponente kamere: Out spomina)

Pojdite v konfiguracijo Raspberry Pi pod stolpec zmogljivosti in povečajte pomnilnik grafičnega procesorja, dokler napaka ne izgine (morate znova zagnati).

Zdaj bomo za ustvarjanje fotografije, ki se shrani na namizje, uporabili naslednjo kodo:

from picamera import PiCamera #Imported module created from the pip install pi camera commandfrom time import sleep #Imported sleep za zagotovitev, da naša kamera ostane vklopljena

camera = PiCamera () #Nastavitev kamere

camera.start_preview () #Začne predogled spanja (5) #Pušča predogled vklopljen za 5 sekund

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

camera.stop_preview ()#Ustavi predogled

5. korak: Ustvarjanje vezja s kodo

Ustvarjanje vezja s kodo!
Ustvarjanje vezja s kodo!
Ustvarjanje vezja s kodo!
Ustvarjanje vezja s kodo!
Ustvarjanje vezja s kodo!
Ustvarjanje vezja s kodo!

Kot je prikazano zgoraj iz diagramov vezja, moramo nastaviti gumb, LDR in na koncu dve LED RGB. Najprej bomo nastavili gumb na spodnji levi strani plošče. Med nastavitvijo gumba bomo uporabljali skupne železniške proge, kar pomeni, da bomo priključili naš 3.3V na pozitivnem in tlaku za negativnega. Ko končate nastavitev vezja samo za gumb.

Preizkusili bomo naše vezje, da ugotovimo, ali lahko to naredimo tako, da ob pritisku gumba vklopimo LED z naslednjo kodo:

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

#Nastaviti

Kamera = Gumb PiCamera () = Gumb (22)

#Potiskanje funkcije, odločil sem se, da jo postavim v funkcijo definiranja, saj nam pomaga očistiti glavno kodo

def photocap ():

Camera.start_preview ()

sleep (5) Camera.capture ('/home/pi/Desktop/image.jpg') print ("Fotografija je bila posneta") Camera.stop_preview ()

#Glavna koda:

medtem ko je True: če je Button.is_pressed: print ("Gumb je bil pritisnjen") photocap ()

#Zakaj to deluje: Glavna koda deluje tako, kot vse, kar počnemo, je, da uporabimo ukaz if button.is_pressed v določenem času pravilen stavek, zato se ob pritisku na gumb za fotografiranje nenehno posodablja.

Zdaj bomo namestili 2 RGB LED diodi vse do vrha vezja in ju ločili na sredini plošče in naredili simetrično. Če za ta projekt nimate uporov 220 ohmov, jih lahko nastavite vzporedno glede na vaš upor uporov, ki jih imate. Drugi zatič 4 -polne LED RGB (najdaljši mora biti povezan z maso po železnici. Vsi drugi zatiči morajo biti povezani z lastnimi zatiči GPIO. (Prvi zatič = rdeč, Drugi zatič = ozemljitev, Tretji zatič = zelen, Četrti zatič = modra).

V našem vezju gumbov bomo preizkusili eno od naših RGB LED s spodnjo kodo:

#Uvoženi moduli iz gumba za uvoz gpiozero iz pikamere za uvoz PiCamera

iz gpiozero uvoz RGBLED

od časa uvoza spanja

#Nastaviti

Kamera = Gumb PiCamera () = Gumb (22)

TimedLED = RGBLED (rdeča = 21, zelena = 20, modra = 16)

#Funkcija fotografiranja z LED RGB, odločil sem se, da jo postavim v funkcijo definiranja, saj nam pomaga pri čiščenju glavne kode

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

timedled.color (1, 0, 0)

spanje (2)

timedled.color (0, 1, 0)

spanje (1)

Camera.capture ('/home/pi/Desktop/image.jpg') print ("Fotografija je bila posneta") Camera.stop_preview ()

#Glavna koda:

medtem ko je res:

če je Button.is_pressed:

print ("Gumb je bil pritisnjen") photocap ()

#Zakaj to deluje: Razlog, zakaj ta koda deluje, je, ker smo zdaj dobili RGBLED, da deluje kot časomer, ko bo fotografija posneta.

Zdaj nastavite svetlobno odvisen upor na spodnji desni strani plošče z uporabo diagrama do vrha navzgor in skupnih železnic, o katerih smo govorili prej. Ne pozabite, da morata biti dolgi nogi LDR in kapicitator priključeni na pin GPIO.

Ko povežemo LDR, bomo uporabili naslednjo kodo:

#Uvoženi moduli

iz gumba za uvoz gpiozero

iz picamere uvoz PiCamera iz gpiozero uvoz RGBLED

iz gpiozera uvoz LightSensor

od časa uvoza spanja

#Nastaviti

Kamera = PiCamera () Gumb = Gumb (22) TimedLED = RGBLED (rdeča = 21, zelena = 20, modra = 16)

Senzor svetlobe = Senzor svetlobe (23)

#Funkcija fotografiranja z LED RGB, odločil sem se, da jo postavim v funkcijo definiranja, saj nam pomaga pri čiščenju glavne kode

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

#Glavna koda:

medtem ko je res:

if Button.is_pressed: print ("Gumb je bil pritisnjen") photocap ()

če je Button.is_pressed in Lightsensor.when_dark:

print ("Gumb je bil pritisnjen")

print ("Temno je")

photocap ()

#Zakaj to deluje: Način, kako sem v svojo kodo dodal svetlobni senzor, je prek drugega stavka if, ki vsebuje uvoženo funkcijo svetlobnega senzorja. Ko je temno nastavljeno za naslednji korak

Zdaj bi bil zadnji korak pri tem projektu aktiviranje drugega RGBLED simetričnega do drugega, da deluje kot bliskavica, Končna koda:

iz gumba za uvoz gpiozero

iz picamere uvoz PiCamera

iz gpiozero uvoz RGBLED

iz gpiozera uvoz LightSensor

od časa uvoza spanja

#Nastaviti

Kamera = PiCamera ()

Gumb = Gumb (22)

TimedLED = RGBLED (rdeča = 21, zelena = 20, modra = 16)

FlashLED = RGBLED (rdeča = 19, zelena = 13, modra = 6)

Senzor svetlobe = Senzor svetlobe (23)

#Fotografiranje s funkcijo RGB LED, odločil sem se, da ga postavim v funkcijo definiranja, saj nam pomaga očistiti glavno kodo 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 ("Fotografija je bila posneta") Camera.stop_preview () # Glavna koda: while True: če je Button.is_pressed:

print ("Gumb je bil pritisnjen")

photocap ()

če je Button.is_pressed in Lightsensor.when_dark:

print ("Gumb je bil pritisnjen") print ("Temno je")

FlashLED.color (1, 1, 1)

photocap ()

#Zakaj to deluje: Način, na katerega sem dodal svetilko, je, da z uporabo RGB prikaže belo barvo, ki je 1, 1, 1, in to naredi le, če je stavek if res.

Priporočena: