Turinys:

„Raspberry Pi Photobooth“: 5 žingsniai
„Raspberry Pi Photobooth“: 5 žingsniai

Video: „Raspberry Pi Photobooth“: 5 žingsniai

Video: „Raspberry Pi Photobooth“: 5 žingsniai
Video: Raspberry Pi PhotoBooth with Printer Tutorial 2024, Lapkritis
Anonim
Raspberry Pi Photobooth
Raspberry Pi Photobooth

Tikslas:

  • Sužinokite, kaip koduoti ir įdiegti „Pi“kamerą
  • Naudojant define ir if teiginius koduojant
  • Išmokti naudotis naujomis technologijomis, tokiomis kaip RGB šviesos diodai

1 žingsnis: ko jums reikės

Ko jums reikės
Ko jums reikės
Ko jums reikės
Ko jums reikės
Ko jums reikės
Ko jums reikės
  • 1 Raspberry Pi 3
  • Bandomoji Lenta
  • Džemperiai
  • 1 nuo šviesos priklausomas rezistorius
  • 1 kondensatorius
  • 1 Paspauskite mygtuką
  • 6 220 omų rezistoriai
  • 2 RGB šviesos diodai
  • 1 „Raspberry Pi“fotoaparatas

2 veiksmas: fotoaparato modulio prijungimas

Fotoaparato modulio prijungimas
Fotoaparato modulio prijungimas

Visų pirma, kai „Pi“išjungtas, turėsite prijungti fotoaparato modulį prie „Raspberry Pi“kameros prievado, tada paleisti „Pi“ir įsitikinti, kad programinė įranga įjungta.

  1. Raskite kameros prievadą, esantį tarp HDMI ir 3,5 mm prievado
  2. Patraukite fotoaparato spaustuką už plastikinių kraštų, kol spaustukas bus įstrižai
  3. Dabar įkiškite fotoaparato kabelį mėlyna spalva į 3,5 mm prievadą

3 žingsnis: nustatykite fotoaparatą

Fotoaparato nustatymas
Fotoaparato nustatymas
Fotoaparato nustatymas
Fotoaparato nustatymas

Pagrindiniame meniu atidarykite „Raspberry Pi Configuration“įrankį ir išjunkite bei įjunkite visas aukščiau pateiktas sąsajas

Pagrindiniame meniu atidarykite terminalą ir įveskite šias kodo eilutes:

Sudo Raspi-config

Dabar naudokite rodyklių klavišus, kad galėtumėte valdyti sistemą, ir spustelėkite parinktį Periferinis ryšys, tada spustelėkite P1 kamera ir įjunkite fotoaparatą, tada pasirinkite baigti. Grįžtant prie terminalo tipo šiose kodo eilutėse:

pip įdiegti picamera

arba „Sudo pip“įdiegti „Picamera“

4 žingsnis: fotoaparato modulio bandymas

Kameros modulio testavimas
Kameros modulio testavimas

Iš čia galime patikrinti, ar fotoaparatas veikia, ar ne, nes įjungta visa programinė ir techninė įranga.

Meniu atidarykite „Python 3“

Iš ten atidarykite naują failą iš apvalkalo ir išsaugokite jį cameratest.py.

Įveskite šį kodą:

iš „picamera import“„PiCamera“#importuotas modulis, sukurtas naudojant „pip“instaliaciją „Pi“fotoaparato komanda iš laiko importavimo miego režimas #importuotas miego režimas, siekiant užtikrinti, kad mūsų fotoaparatas liktų fotoaparate = „PiCamera“)

camera.start_preview ()#paleidžia fotoaparatą ir parodo, kaip atrodo fotoaparato išvestis

miego režimas (10)#peržiūra paliekama įjungta 10 sekundžių

camera.stop_preview ()#pagaliau išeina iš peržiūros

Paleiskite kodą naudodami F5

Jei vykdydami kodą gaunate šią klaidą:

(mmal: mmal_vc_component_create: nepavyko sukurti komponento „vc.ril.camera“(1: ENOMEM)

mmal: mmal_component_create_core: nepavyko sukurti komponento „vc.ril.camera“(1) „Traceback“(paskutinis paskutinis skambutis): failas „“, 1 eilutė, faile „/usr/lib/python2.7/dist-packages/picamera“/camera.py ", 257 eilutė, _init_ self._init_camera () Failas" /usr/lib/python2.7/dist-packages/picamera/camera.py ", 288 eilutė, _init_camera prefix =" Nepavyko sukurti kameros komponentas ") Failas" /usr/lib/python2.7/dist-packages/picamera/exc.py ", 112 eilutė, mmal_check pakelti PiCameraMMALError (būsena, priešdėlis) picamera.exc. PiCameraMMALEklaidos klaida: nepavyko sukurti fotoaparato komponento: Iš atminties)

Eikite į Raspberry Pi konfigūraciją, eikite į našumo stulpelį ir padidinkite savo GPU atmintį, kol klaida išnyks (reikia iš naujo paleisti).

Dabar norėdami sukurti nuotrauką, kuri bus išsaugota darbalaukyje, naudosime šį kodą:

iš „picamera import“

kamera = „PiCamera“() #Nustatykite fotoaparatą

camera.start_preview () #Pradeda peržiūros miegą (5) #Palieka peržiūrą 5 sekundes

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

camera.stop_preview ()#Sustabdo peržiūrą

5 žingsnis: Sukurkite grandinę su kodu

Sukurkite grandinę su kodu!
Sukurkite grandinę su kodu!
Sukurkite grandinę su kodu!
Sukurkite grandinę su kodu!
Sukurkite grandinę su kodu!
Sukurkite grandinę su kodu!

Kaip matyti aukščiau iš schemų, turime nustatyti mygtuką, LDR ir galiausiai du RGB šviesos diodus. Pirmiausia mes nustatysime mygtuką apatinėje kairėje duonos lentos pusėje. Nustatydami mygtuką naudosime bendras geležinkelio linijas, o tai reiškia, kad 3,3 V įtrauksime teigiamą ir neigiamą pagrindą. Baigę tik mygtuko grandinės sąranką.

Mes išbandysime savo grandinę, kad pamatytume, ar galime tai padaryti taip, kad paspaudus mygtuką, įjungtume lemputę naudodami šį kodą:

#„Importuoti moduliai“iš „gpiozero“importavimo mygtuko iš „picamera“importo „PiCamera“iš laiko importavimo miego režimo

#Sąranka

Fotoaparatas = „PiCamera“() mygtukas = mygtukas (22)

#Fotografavimo funkcija, nusprendžiau ją įtraukti į apibrėžimo funkciją, nes tai padeda mums išvalyti pagrindinį kodą

def photocap ():

Camera.start_preview ()

miego režimas (5) Camera.capture ('/home/pi/Desktop/image.jpg') print ("Nuotrauka padaryta") Camera.stop_preview ()

#Pagrindinis kodas:

nors tiesa: jei Button.is_pressed: print („Mygtukas buvo paspaustas“) photocap ()

#Kodėl tai veikia: pagrindinis kodas veikia taip, kaip viskas, ką mes darome, yra komandos „if“naudojimas.

Dabar mes nustatysime 2 RGB šviesos diodus iki pat grandinės viršaus ir atskirime juos duonos lentos viduryje ir padarysime simetrišką. Jei šiam projektui neturite 220 omų rezistorių, galite juos nustatyti lygiagrečiai, priklausomai nuo jūsų turimų rezistorių varžos. Antrasis 4 kontaktų RGB šviesos diodo kaištis (ilgiausias turi būti prijungtas prie žemės per geležinkelį. Kiti kaiščiai turėtų būti prijungti prie savo GPIO kaiščių. (Pirmasis kaištis = raudonas, antrasis kaištis = įžemintas, trečiasis kaištis = žalias), Ketvirtas kaištis = mėlyna).

Mes išbandysime vieną iš mūsų RGB šviesos diodų savo mygtukų grandinėje naudodami toliau pateiktą kodą:

#Imported Modulesfrom gpiozero import Button from picamera import PiCamera

iš „gpiozero“importuoja RGBLED

iš laiko importuoti miegą

#Sąranka

Fotoaparatas = „PiCamera“() mygtukas = mygtukas (22)

„TimedLED“= RGBLED (raudona = 21, žalia = 20, mėlyna = 16)

#Fotografavimo funkcija su RGB LED, nusprendžiau ją įtraukti į apibrėžimo funkciją, nes tai padeda mums išvalyti pagrindinį kodą

def photocap (): Camera.start_preview () miego režimas (4)

timedled.color (1, 0, 0)

miegoti (2)

timedled.color (0, 1, 0)

miegoti (1)

Camera.capture ('/home/pi/Desktop/image.jpg') print ("Nuotrauka padaryta") Camera.stop_preview ()

#Pagrindinis kodas:

nors tiesa:

jei Button.is_pressed:

spausdinti („Mygtukas buvo paspaustas“) photocap ()

#Kodėl tai veikia: priežastis, kodėl šis kodas veikia, yra ta, kad dabar mes gavome RGBLED, kad jis veiktų kaip laikmatis fotografuojant.

Dabar sukonfigūruokite nuo šviesos priklausomą rezistorių apatinėje dešinėje duonos lentos pusėje, naudodami diagramą iki viršaus ir bendrus geležinkelius. Atminkite, kad abi ilgos LDR kojos ir kapiciatorius turi būti prijungti prie GPIO kaiščio.

Prijungę LDR, naudosime šį kodą:

#Importuoti moduliai

iš „gpiozero“importo mygtuko

iš „picamera import“„PiCamera“iš „gpiozero import“RGBLED

iš „gpiozero“importuokite „LightSensor“

iš laiko importuoti miegą

#Sąranka

Fotoaparatas = „PiCamera“() mygtukas = mygtukas (22) „TimedLED“= RGBLED (raudona = 21, žalia = 20, mėlyna = 16)

Šviesos jutiklis = Šviesos jutiklis (23)

#Fotografavimo funkcija su RGB LED, nusprendžiau ją įtraukti į apibrėžimo funkciją, nes tai padeda mums išvalyti pagrindinį kodą

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

#Pagrindinis kodas:

nors tiesa:

if Button.is_pressed: print („Mygtukas buvo paspaustas“) photocap ()

jei „Button.is_pressed“ir „Lightsensor.when_dark“:

spausdinti („Mygtukas buvo paspaustas“)

spausdinti („Tamsu“)

foto dangtelis ()

#Kodėl tai veikia: prie kodo pridėjau šviesos jutiklį naudojant kitą if teiginį, kuriame yra importuota šviesos jutiklio funkcija. Kai tamsa puikiai nustato mus kitam žingsniui

Dabar paskutinis šio projekto žingsnis būtų suaktyvinti kitą simetrišką RGBLED, kad jis veiktų kaip blykstė, Galutinis kodas:

iš „gpiozero“importo mygtuko

iš „Picamera“importo „PiCamera“

iš „gpiozero“importuoja RGBLED

iš „gpiozero“importuokite „LightSensor“

iš laiko importuoti miegą

#Sąranka

Kamera = „PiCamera“()

Mygtukas = mygtukas (22)

„TimedLED“= RGBLED (raudona = 21, žalia = 20, mėlyna = 16)

„FlashLED“= RGBLED (raudona = 19, žalia = 13, mėlyna = 6)

Šviesos jutiklis = Šviesos jutiklis (23)

#Fotografavimo funkcija su RGB LED) miegas (2) timedled.color (0, 1, 0) miegas (1) Camera.capture ('/home/pi/Desktop/image.jpg') print ("Nuotrauka padaryta") Camera.stop_preview () # Pagrindinis kodas: tiesa, jei Button.is_pressed:

spausdinti („Mygtukas buvo paspaustas“)

foto dangtelis ()

jei „Button.is_pressed“ir „Lightsensor.when_dark“:

print („Mygtukas buvo paspaustas“) print („Tai tamsu“)

„FlashLED“spalva (1, 1, 1)

foto dangtelis ()

#Kodėl tai veikia: mano žibintuvėlis buvo pridėtas naudojant RGB, kuris išvedė baltą spalvą, kuri yra 1, 1, 1, ir tai veikia tik tuo atveju, jei teiginys yra teisingas.

Rekomenduojamas: