Sisällysluettelo:

Raspberry Pi Photobooth: 5 vaihetta
Raspberry Pi Photobooth: 5 vaihetta

Video: Raspberry Pi Photobooth: 5 vaihetta

Video: Raspberry Pi Photobooth: 5 vaihetta
Video: Freenove 5MP Camera for Raspberry Pi [Overview] Adjustable Holder 2024, Marraskuu
Anonim
Raspberry Pi Photobooth
Raspberry Pi Photobooth

Tarkoitus:

  • Opi Pi -kameran koodaamiseen ja asentamiseen
  • Määrittele ja jos -lausekkeiden käyttäminen koodauksessa
  • Opi käyttämään uutta tekniikkaa, kuten RGB -LED -valoja

Vaihe 1: Mitä tarvitset

Mitä tarvitset
Mitä tarvitset
Mitä tarvitset
Mitä tarvitset
Mitä tarvitset
Mitä tarvitset
  • 1 Vadelma Pi 3
  • Leipälauta
  • Puserot
  • 1 Valosta riippuvainen vastus
  • 1 kondensaattori
  • 1 Painike
  • 6220 ohmin vastukset
  • 2 RGB -LEDiä
  • 1 Raspberry Pi -kamera

Vaihe 2: Kameramoduulin liittäminen

Kameramoduulin liittäminen
Kameramoduulin liittäminen

Ensinnäkin, kun Pi on kytketty pois päältä, sinun on liitettävä kameramoduuli Raspberry Pi: n kameraporttiin, käynnistettävä sitten Pi ja varmistettava, että ohjelmisto on käytössä.

  1. Etsi kameraportti, joka on HDMI- ja 3,5 mm -portin välissä
  2. Vedä kameran pidikettä ylöspäin muovireunoista, kunnes pidike on lävistäjä
  3. Liitä nyt kameran kaapeli sinisellä 3,5 mm: n porttiin päin

Vaihe 3: Kameran käyttöönotto

Kameran asentaminen
Kameran asentaminen
Kameran asentaminen
Kameran asentaminen

Avaa Raspberry Pi Configuration -työkalu päävalikosta ja poista kaikki yllä olevat rajapinnat käytöstä ja ota ne käyttöön

Avaa päävalikosta päätelaite ja kirjoita seuraavat koodirivit:

Sudo Raspi-config

Käytä tästä lähtien nuolinäppäimiä järjestelmän läpi ja napsauta Oheisliitäntä -vaihtoehtoa ja napsauta sitten P1 -kameraa ja ota kamera käyttöön ja valitse sitten Valmis. Palaten päätelaitetyyppiin seuraavilla koodiriveillä:

pip asenna picamera

tai Sudo pip asenna Picamera

Vaihe 4: Kameramoduulin testaus

Kameramoduulin testaus
Kameramoduulin testaus

Täältä voimme testata, toimiiko kamera vai ei, koska meillä on kaikki ohjelmistot ja laitteistot käytössä.

Avaa Python 3 valikosta

Sieltä avaa uusi tiedosto kuorista ja tallenna se cameratest.py.

Syötä seuraava koodi:

alkaen picamera tuonti PiCamera #tuodut moduuli luotu pip asenna asenna pi kamerakomento ajasta tuonti lepotila #tuonti lepotila varmistaaksemme, että kamera pysyy kamerassa = PiCamera () #Asetukset kameralle

camera.start_preview ()#käynnistää kameran ja näyttää miltä kameran ulostulo näyttää

lepotila (10)#jättää esikatselun päälle 10 sekunniksi

camera.stop_preview ()#lopettaa lopulta esikatselun

Suorita koodi F5: llä

Jos saat tämän virheen koodia suoritettaessa:

(mmal: mmal_vc_component_create: komponentin 'vc.ril.camera' luominen epäonnistui (1: ENOMEM)

mmal: mmal_component_create_core: komponenttia 'vc.ril.camera' ei voitu luoda (1) Jäljitys (viimeisin puhelu viimeksi): Tiedosto "", rivi 1, tiedostossa /usr/lib/python2.7/dist-packages/picamera /camera.py ", rivi 257, _init_ self._init_camera () Tiedosto" /usr/lib/python2.7/dist-packages/picamera/camera.py ", rivi 288, _init_camera prefix =" Kameran luominen epäonnistui komponentti ") Tiedosto" /usr/lib/python2.7/dist-packages/picamera/exc.py ", rivi 112, mmal_check raise PiCameraMMALError (tila, etuliite) picamera.exc. PiCameraMMALEvirhe: Kamerakomponentin luonti epäonnistui: Out muistista)

Siirry Raspberry Pi -kokoonpanoon, siirry suorituskykysarakkeen alle ja lisää GPU -muistiasi, kunnes virhe poistuu (täytyy käynnistää uudelleen).

Nyt luodaan valokuva, joka tallennetaan työpöydälle, käytämme seuraavaa koodia:

picamera tuonnista PiCamera #Pip -asennuksesta luotu tuodut moduuli pi -kamerakomento aikatuonnin lepotilasta #tuonti lepotilasta, jotta kamera pysyy päällä

camera = PiCamera () #Asetukset kameralle

camera.start_preview () #Käynnistää esikatselun (5) #Jättää esikatselun päälle 5 sekunniksi

camera.capture ('/home/pi/Desktop/image.jpg')# Lähteestä

camera.stop_preview ()#Pysäyttää esikatselun

Vaihe 5: Piirin luominen koodilla

Piirin luominen koodilla!
Piirin luominen koodilla!
Piirin luominen koodilla!
Piirin luominen koodilla!
Piirin luominen koodilla!
Piirin luominen koodilla!

Kuten yllä olevasta piirikaaviosta näkyy, meidän on asetettava painike, LDR ja lopuksi kaksi RGB -LEDiä. Asetamme ensin painikkeen leipälevyn vasempaan alakulmaan. Painikkeesi asennuksen aikana käytämme yhteisiä rautateitä, mikä tarkoittaa, että liitämme 3,3 V: n positiiviseen ja negatiivisen maan. Kun olet suorittanut piirin asetukset vain painikkeelle.

Testaamme virtapiiriä nähdäksemme, pystymmekö tekemään sen niin, että jos painiketta painetaan, kytketään ledi päälle seuraavan koodin avulla:

#Imported Modulesfrom gpiozero import Button from picamera Import PiCamera from time Import Sleep

#Perustaa

Kamera = PiCamera () -painike = -painike (22)

#Valokuvaustoiminto, olen päättänyt laittaa sen määrittelytoimintoon, koska se auttaa meitä puhdistamaan pääkoodin

def photocap ():

Camera.start_preview ()

lepotila (5) Camera.capture ('/home/pi/Desktop/image.jpg') print ("Valokuva on otettu") Camera.stop_preview ()

#Pääkoodi:

kun taas Totta: jos Button.is_pressed: print ("painiketta painettiin") photocap ()

#Miksi tämä toimii: Pääkoodi toimii, koska kaikki mitä teemme, on käyttää komentoa if button.is_pressed in a true true, joten se päivittyy jatkuvasti, kun painiketta otetaan valokuvan ottamiseksi

Nyt aiomme asentaa 2 RGB -LEDiä aina piirin yläosaan asti ja erottaa ne leipälaudan keskelle ja tehdä symmetriset. Jos sinulla ei ole 220 ohmin vastuksia tähän projektiin, voit asettaa ne rinnakkain riippuen vastuksistasi. 4 -nastaisen RGB -LEDin toinen nasta (pisin on liitettävä maahan rautateiden kautta. Muut nastat on liitettävä omiin GPIO -nastoihinsa. (Ensimmäinen nasta = punainen, toinen nasta = maadoitus, kolmas nasta = vihreä, Neljäs nasta = sininen).

Testaamme yhden RGB -merkkivaloistamme painikepiirissämme alla olevalla koodilla:

#Imported Modulesfrom gpiozero import Button from picamera import PiCamera

gpiozero -tuonnista RGBLED

tuontihetkestä

#Perustaa

Kamera = PiCamera () -painike = -painike (22)

TimedLED = RGBLED (punainen = 21, vihreä = 20, sininen = 16)

#Valokuvaustoiminto RGB -LEDillä, olen päättänyt laittaa sen määrittelytoimintoon, koska se auttaa meitä puhdistamaan pääkoodin

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

ajoitettu. väri (1, 0, 0)

nukkua (2)

ajoitettu. väri (0, 1, 0)

nukkua (1)

Camera.capture ('/home/pi/Desktop/image.jpg') print ("Valokuva on otettu") Camera.stop_preview ()

#Pääkoodi:

vaikka totta:

jos Button.is_pressed:

tulosta ("painiketta painettiin") photocap ()

#Miksi tämä toimii: Tämä koodi toimii siksi, että nyt saimme RGBLED -laitteen toimimaan ajastimena valokuvan ottamiselle

Asenna nyt valosta riippuva vastus leipälaudan oikeaan alakulmaan käyttämällä kaaviota ylöspäin yläreunassa ja edellä mainittuja yhteisiä rautateitä. Muista, että LDR: n ja kapikitaattorin molemmat pitkät jalat on liitettävä GPIO -nastaan.

Kun olemme liittäneet LDR: n, käytämme seuraavaa koodia:

#Tuodut moduulit

gpiozeron tuontipainikkeesta

picamera tuonnista PiCamera gpiozerosta tuonti RGBLED

gpiozeron tuonnista LightSensor

tuontihetkestä

#Perustaa

Kamera = PiCamera () -painike = -painike (22) TimedLED = RGBLED (punainen = 21, vihreä = 20, sininen = 16)

Valoanturi = Valoanturi (23)

#Valokuvaustoiminto RGB -LEDillä, olen päättänyt laittaa sen määrittelytoimintoon, koska se auttaa meitä puhdistamaan pääkoodin

def photocap (): Camera.start_preview () uni (4) timedled.color (1, 0, 0) uni (2) ajastettu.väri (0, 1, 0) uni (1) Camera.capture ('/home/ pi/Desktop/image-j.webp

#Pääkoodi:

vaikka totta:

jos Button.is_pressed: print ("painiketta painettiin") photocap ()

jos Button.is_pressed ja Lightsensor.when_dark:

tulosta ("painiketta painettiin")

tulosta ("On pimeää")

valokuvakorkki ()

#Miksi tämä toimii: Valoanturin lisääminen koodiini tapahtuu toisen if -lauseen kautta, joka sisältää valotunnistimen tuodun toiminnon. Kun tumma asettaa meidät täydellisesti seuraavaan vaiheeseen

Tämän projektin viimeinen vaihe olisi aktivoida toinen RGBLED -symmetrinen toiselle, jotta se toimisi salamavalona, Lopullinen koodi:

gpiozeron tuontipainikkeesta

picamera tuonti PiCamera

gpiozero -tuonnista RGBLED

gpiozeron tuonnista LightSensor

tuontihetkestä

#Perustaa

Kamera = PiCamera ()

Painike = painike (22)

TimedLED = RGBLED (punainen = 21, vihreä = 20, sininen = 16)

FlashLED = RGBLED (punainen = 19, vihreä = 13, sininen = 6)

Valoanturi = Valoanturi (23)

#Valokuvan ottotoiminto RGB -LED -valolla) uni (2) ajastettu.väri (0, 1, 0) uni (1) Camera.capture ('/home/pi/Desktop/image.jpg') print ("Valokuva on otettu") Camera.stop_preview () # Pääkoodi: kun True: if Button.is_pressed:

tulosta ("painiketta painettiin")

valokuvakorkki ()

jos Button.is_pressed ja Lightsensor.when_dark:

print ("Painiketta painettiin") print ("On pimeää")

FlashLED. Väri (1, 1, 1)

valokuvakorkki ()

#Miksi tämä toimii: Olen lisännyt taskulampun käyttämällä RGB -lediä valkoisen värin tuottamiseksi, joka on 1, 1, 1, ja se toimii vain, jos if -lause on totta.

Suositeltava: