Obsah:

Raspberry Pi Photobooth: 5 krokov
Raspberry Pi Photobooth: 5 krokov

Video: Raspberry Pi Photobooth: 5 krokov

Video: Raspberry Pi Photobooth: 5 krokov
Video: Удивительные самоделки на Raspberry PI, 11 интересных проектов на малине. 2024, Júl
Anonim
Raspberry Pi Photobooth
Raspberry Pi Photobooth

Účel:

  • Naučte sa kódovať a nainštalovať kameru Pi
  • Použitie príkazov define a if v kódovaní
  • Naučte sa používať nové technológie, ako sú LED diódy RGB

Krok 1: Čo budete potrebovať

Čo budete potrebovať
Čo budete potrebovať
Čo budete potrebovať
Čo budete potrebovať
Čo budete potrebovať
Čo budete potrebovať
  • 1 Raspberry Pi 3
  • Breadboard
  • Svetre
  • 1 rezistor závislý na svetle
  • 1 kondenzátor
  • 1 Tlačidlo
  • 6 220 ohmových rezistorov
  • 2 RGB LED diódy
  • 1 kamera Raspberry Pi

Krok 2: Pripojenie modulu kamery

Pripojenie modulu kamery
Pripojenie modulu kamery

V prvom rade, keď je Pi vypnutý, budete musieť pripojiť kamerový modul k portu fotoaparátu Raspberry Pi, potom spustiť Pi a zaistiť, aby bol softvér povolený.

  1. Nájdite port kamery, ktorý je medzi portom HDMI a 3,5 mm
  2. Vytiahnite sponu fotoaparátu za plastové hrany, kým nebude sponka diagonálna
  3. Teraz zapojte kábel kamery modrým smerom k 3,5 mm portu

Krok 3: Nastavenie fotoaparátu

Nastavenie fotoaparátu
Nastavenie fotoaparátu
Nastavenie fotoaparátu
Nastavenie fotoaparátu

Otvorenie konfiguračného nástroja Raspberry Pi z hlavnej ponuky a zakázanie a povolenie všetkých vyššie uvedených rozhraní

V hlavnej ponuke otvorte terminál a zadajte nasledujúce riadky kódu:

Sudo Raspi-config

Teraz odtiaľto pomocou klávesov so šípkami pracujte v systéme a kliknite na možnosť Periférne pripojenie a kliknutím na položku P1 Kamera zapnite kameru a potom vyberte položku Dokončiť. Návrat k typu terminálu v nasledujúcich riadkoch kódu:

pip install picamera

alebo Sudo pip install Picamera

Krok 4: Testovanie modulu kamery

Testovanie kamerového modulu
Testovanie kamerového modulu

Odtiaľto môžeme otestovať, či kamera funguje alebo nie, pretože máme povolený všetok softvér a hardvér.

Otvorte Python 3 z ponuky

Odtiaľ otvorte nový súbor z shellu a uložte ho na cameratest.py.

Zadajte nasledujúci kód:

z programu Picamera import PiCamera #importovaný modul vytvorený z príkazu pip install pi cameraz času importu spánku #importovaný spánok, aby sme sa uistili, že naša kamera zostane na kamere = PiCamera () #Nastavenie pre kameru

camera.start_preview ()#spustí kameru a ukáže vám, ako vyzerá výstup z kamery

spánok (10)#ponechá náhľad zapnutý 10 sekúnd

camera.stop_preview ()#konečne ukončí ukážku

Spustite kód pomocou F5

Ak sa vám pri spustení kódu zobrazí táto chyba:

(mmal: mmal_vc_component_create: nepodarilo sa vytvoriť komponent „vc.ril.camera“(1: ENOMEM)

mmal: mmal_component_create_core: nemožno vytvoriť komponent 'vc.ril.camera' (1) Traceback (posledné volanie posledné): súbor "", riadok 1, v súbore "/usr/lib/python2.7/dist-packages/picamera /camera.py ", riadok 257, v _init_ self._init_camera () Súbor" /usr/lib/python2.7/dist-packages/picamera/camera.py ", riadok 288, v _init_camera prefix =" Nepodarilo sa vytvoriť fotoaparát komponent ") Súbor" /usr/lib/python2.7/dist-packages/picamera/exc.py ", riadok 112, v mmal_check zvýšiť PiCameraMMALError (stav, predpona) picamera.exc. PiCameraMMALError: Nepodarilo sa vytvoriť komponent kamery: Out pamäte)

Prejdite do konfigurácie Raspberry Pi, prejdite do stĺpca výkonu a posilnite pamäť GPU, kým chyba nezmizne (musíte reštartovať).

Na vytvorenie fotografie, ktorá sa uloží na pracovnú plochu, použijeme nasledujúci kód:

z importu pikamery PiCamera #Importovaný modul vytvorený z príkazu pip install pi camera z času import spánku #Importovaný spánok, aby sme sa uistili, že naša kamera zostane zapnutá

kamera = PiCamera () #Nastavenie fotoaparátu

camera.start_preview () #Spustí ukážku spánku (5) #Ponechá náhľad zapnutý 5 sekúnd

camera.capture ('/home/pi/Desktop/image.jpg')# Zo súboru

camera.stop_preview ()#Zastaví náhľad

Krok 5: Vytvorenie obvodu s kódom

Vytvorenie obvodu pomocou kódu!
Vytvorenie obvodu pomocou kódu!
Vytvorenie obvodu pomocou kódu!
Vytvorenie obvodu pomocou kódu!
Vytvorenie obvodu pomocou kódu!
Vytvorenie obvodu pomocou kódu!

Ako je uvedené vyššie na schémach zapojenia, musíme nastaviť tlačidlo, LDR a nakoniec dve RGB LED diódy. Najprv nastavíme tlačidlo v dolnej ľavej časti nepájivej dosky. Počas vášho nastavenia tlačidla budeme používať bežné železničné trate, čo znamená, že zapojíme našich 3,3 V na kladné a uzemňovacie na záporné. Potom, čo ste dokončili nastavenie obvodu iba pre tlačidlo.

Otestujeme náš obvod, aby sme zistili, či to dokážeme, takže ak stlačíte tlačidlo, zapneme diódu pomocou nasledujúceho kódu:

#Importované moduly z tlačidla importu gpiozero z programu Picamera import PiCamera z režimu spánku importu

#Nastaviť

Fotoaparát = tlačidlo PiCamera () = tlačidlo (22)

#Funkcia fotografovania, rozhodol som sa ju vložiť do definovanej funkcie, pretože nám pomáha vyčistiť hlavný kód

def photocap ():

Camera.start_preview ()

spánok (5) Camera.capture ('/home/pi/Desktop/image.jpg') tlač ("Fotografia bola urobená") Camera.stop_preview ()

#Hlavný kód:

zatiaľ čo pravda: ak je Button.is_pressed: print („tlačidlo bolo stlačené“) photocap ()

#Prečo to funguje: Hlavný kód funguje, pretože robíme všetko, čo robíme, je použiť príkaz if button.is_press na chvíľu pravdivé vyhlásenie, takže sa neustále aktualizuje po stlačení tlačidla na nasnímanie fotografie.

Teraz nastavíme 2 RGB LED diódy až po hornú časť obvodu a oddelíme ich v strede dosky a urobíme symetrické. Ak pre tento projekt nemáte rezistory 220 ohmov, môžete ich nastaviť paralelne v závislosti od vášho odporu pre rezistory, ktoré máte. Druhý kolík 4 -pinovej RGB LED (najdlhšia by mala byť spojená so zemou cez železnicu. Ostatné kolíky by mali byť všetky prepojené s vlastnými kolíkmi GPIO. (Prvý kolík = červený, Druhý kolík = uzemnenie, Tretí kolík = zelený), Štvrtý kolík = modrý).

Testujeme jednu z našich LED diód RGB v našom obvode tlačidiel s nasledujúcim kódom:

#Importované moduly z tlačidla importu gpiozero z programu PiCamera na import pikamery

z gpiozero import RGBLED

z času importu spánku

#Nastaviť

Fotoaparát = tlačidlo PiCamera () = tlačidlo (22)

TimedLED = RGBLED (červená = 21, zelená = 20, modrá = 16)

#Funkcia fotografovania s RGB LED, rozhodol som sa vložiť ju do definovanej funkcie, pretože nám pomáha vyčistiť hlavný kód.

def photocap (): Camera.start_preview () spánok (4)

timedled.color (1, 0, 0)

spať (2)

timedled.color (0, 1, 0)

spať (1)

Camera.capture ('/home/pi/Desktop/image.jpg') tlač („Fotografia bola urobená“) Camera.stop_preview ()

#Hlavný kód:

kým je pravda:

ak je Button.is_pressed:

vytlačiť („Tlačidlo bolo stlačené“) fotokapička ()

#Prečo to funguje: Dôvod, prečo tento kód funguje, je ten, že teraz máme RGBLED tak, aby fungoval ako časovač, kedy bude fotografia nasnímaná.

Teraz nastavte odpor závislý na svetle na pravej dolnej strane nepájivej dosky pomocou diagramu úplne hore v hornej časti a spoločných železníc, o ktorých sme hovorili predtým. Nezabudnite, že dlhé nohy LDR a capicitator musia byť pripojené k pinu GPIO.

Potom, čo sme pripojili LDR, použijeme nasledujúci kód:

#Importované moduly

z tlačidla importu gpiozero

z pikamery import PiCamera z gpiozero import RGBLED

z gpiozero importujte LightSensor

z času importu spánku

#Nastaviť

Fotoaparát = Tlačidlo PiCamera () = Tlačidlo (22) Časované LED = RGBLED (červené = 21, zelené = 20, modré = 16)

LightSensor = LightSensor (23)

#Funkcia fotografovania s RGB LED, rozhodol som sa vložiť ju do definovanej funkcie, pretože nám pomáha vyčistiť hlavný kód.

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

#Hlavný kód:

kým je pravda:

ak Button.is_pressed: print ("Tlačidlo bolo stlačené") photocap ()

ak Button.is_pressed a Lightsensor.when_dark:

vytlačiť („Tlačidlo bolo stlačené“)

tlač („Je tma“)

fotopapier ()

#Prečo to funguje: Spôsob, akým som do svojho kódu pridal svetelný senzor, je prostredníctvom iného príkazu if, ktorý obsahuje importovanú funkciu svetelného senzora. Keď nás tma dokonale nastaví pre ďalší krok

Teraz by posledným krokom v rámci tohto projektu bolo aktivovať druhú symetrickú RGBLED k druhej, aby fungovala ako blesk, Konečný kód:

z tlačidla importu gpiozero

z importu picamery PiCamera

z gpiozero import RGBLED

z gpiozero importujte LightSensor

z času importu spánku

#Nastaviť

Fotoaparát = PiCamera ()

Button = Button (22)

TimedLED = RGBLED (červená = 21, zelená = 20, modrá = 16)

FlashLED = RGBLED (červená = 19, zelená = 13, modrá = 6)

LightSensor = LightSensor (23)

#Funkcia fotografovania s RGB LED, rozhodol som sa ju vložiť do definičnej funkcie, pretože nám pomáha vyčistiť hlavný kód def photocap (): Camera.start_preview () spánok (4) časovaný.color (1, 0, 0) spánok (2) timedled.color (0, 1, 0) spánok (1) Camera.capture ('/home/pi/Desktop/image.jpg') tlač ("Fotografia bola urobená") Camera.stop_preview () # Hlavný kód: zatiaľ čo True: ak je Button.is_pressed:

vytlačiť („Tlačidlo bolo stlačené“)

fotopapier ()

ak Button.is_pressed a Lightsensor.when_dark:

vytlačiť („Tlačidlo bolo stlačené“) vytlačiť („Je tma“)

FlashLED.color (1, 1, 1)

fotopapier ()

#Prečo to funguje: Svoju baterku som pridal tak, že pomocou LED RGB vyžarujem bielu farbu, ktorá je 1, 1, 1, a robí to iba vtedy, ak je príkaz if pravdivý.

Odporúča: