Obsah:

Raspberry Pi Photobooth: 5 kroků
Raspberry Pi Photobooth: 5 kroků

Video: Raspberry Pi Photobooth: 5 kroků

Video: Raspberry Pi Photobooth: 5 kroků
Video: Make a Wedding Photobooth DIY with a raspberry pi: awesome 2024, Červenec
Anonim
Raspberry Pi Photobooth
Raspberry Pi Photobooth

Účel:

  • Zjistěte, jak kódovat a nainstalovat kameru Pi
  • Použití příkazů define a if v kódování
  • Naučte se používat nové technologie, jako jsou LED diody RGB

Krok 1: Co budete potřebovat

Co budete potřebovat
Co budete potřebovat
Co budete potřebovat
Co budete potřebovat
Co budete potřebovat
Co budete potřebovat
  • 1 Raspberry Pi 3
  • Prkénko
  • Svetry
  • 1 odpor závislý na světle
  • 1 kondenzátor
  • 1 Tlačítko
  • 6 220 ohmových rezistorů
  • 2 RGB LED
  • 1 kamera Raspberry Pi

Krok 2: Připojení modulu kamery

Připojení kamerového modulu
Připojení kamerového modulu

Nejprve, když je Pi vypnuto, budete muset připojit kamerový modul k portu kamery Raspberry Pi, poté spustit Pi a zajistit, aby byl software povolen.

  1. Najděte port kamery, který je mezi portem HDMI a 3,5 mm
  2. Vytáhněte klip fotoaparátu za plastové hrany, dokud není klip diagonální
  3. Nyní zapojte kabel kamery modrým směrem k 3,5mm portu

Krok 3: Nastavení fotoaparátu

Nastavení fotoaparátu
Nastavení fotoaparátu
Nastavení fotoaparátu
Nastavení fotoaparátu

Otevření konfiguračního nástroje Raspberry Pi z hlavní nabídky a deaktivace a povolení všech výše uvedených rozhraní

Z hlavní nabídky otevřete terminál a zadejte následující řádky kódu:

Sudo Raspi-config

Nyní odsud použijte klávesy se šipkami k ovládání systému a klikněte na možnost Periferní připojení a poté kliknutím na P1 Kamera a aktivujte kameru, poté vyberte Dokončit. Přechod zpět na typ terminálu v následujících řádcích kódu:

pip install picamera

nebo Sudo pip install Picamera

Krok 4: Testování modulu kamery

Testování modulu kamery
Testování modulu kamery

Odtud můžeme vyzkoušet, zda kamera funguje nebo ne, protože máme povolený veškerý software a hardware.

Otevřete Python 3 z nabídky

Odtud otevřete nový soubor z prostředí shell a uložte jej na cameratest.py.

Zadejte následující kód:

z picamery import PiCamera #importovaný modul vytvořený z příkazu pip install pi cameraz času importu spánku #imported sleep, aby se zajistilo, že naše kamera zůstane na kameře = PiCamera () #Setup pro kameru

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

spánek (10)#ponechá náhled zapnutý 10 sekund

camera.stop_preview ()#konečně ukončí náhled

Spusťte kód pomocí F5

Pokud se vám při spuštění kódu zobrazí tato chyba:

(mmal: mmal_vc_component_create: Nepodařilo se vytvořit komponentu 'vc.ril.camera' (1: ENOMEM)

mmal: mmal_component_create_core: nelze vytvořit komponentu 'vc.ril.camera' (1) Traceback (poslední volání poslední): Soubor "", řádek 1, v souboru "/usr/lib/python2.7/dist-packages/picamera /camera.py ", řádek 257, v _init_ self._init_camera () Soubor" /usr/lib/python2.7/dist-packages/picamera/camera.py ", řádek 288, v _init_camera prefix =" Nepodařilo se vytvořit kameru komponenta ") Soubor" /usr/lib/python2.7/dist-packages/picamera/exc.py ", řádek 112, v mmal_check zvýšit PiCameraMMALError (stav, předpona) picamera.exc. PiCameraMMALError: Nepodařilo se vytvořit komponentu kamery: Out paměti)

Přejděte do konfigurace Raspberry Pi, přejděte pod sloupec výkonu a zvyšte paměť GPU, dokud chyba nezmizí (musíte restartovat).

Nyní k vytvoření fotografie, která se uloží na plochu, použijeme následující kód:

z picamera import PiCamera #importovaný modul vytvořený z příkazu pip install pi camera

kamera = PiCamera () #Nastavení pro kameru

camera.start_preview () #Spustí náhled spánku (5) #Ponechá náhled zapnutý na 5 sekund

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

camera.stop_preview ()#Zastaví náhled

Krok 5: Vytvoření obvodu pomocí kódu

Vytvoření obvodu pomocí kódu!
Vytvoření obvodu pomocí kódu!
Vytvoření obvodu pomocí kódu!
Vytvoření obvodu pomocí kódu!
Vytvoření obvodu pomocí kódu!
Vytvoření obvodu pomocí kódu!

Jak je vidět výše ze schémat zapojení, musíme nastavit tlačítko, LDR a nakonec dvě RGB LED. Nejprve nastavíme tlačítko na levé spodní straně prkénka. Během vašeho nastavení pro tlačítko použijeme společné železniční tratě, což znamená, že připojíme naše 3,3 V na kladné a zemní na záporné. Poté, co jste dokončili nastavení obvodu pouze pro tlačítko.

Otestujeme náš obvod, abychom zjistili, zda to dokážeme, takže pokud je tlačítko stisknuto, rozsvítíme LED pomocí následujícího kódu:

#Importované moduly z tlačítka importu gpiozero z picamery import PiCamera z časového importu spánku

#Založit

Fotoaparát = Tlačítko PiCamera () = Tlačítko (22)

#Funkce fotografování, rozhodl jsem se ji vložit do definované funkce, protože nám pomáhá vyčistit hlavní kód

def photocap ():

Camera.start_preview ()

spánek (5) Camera.capture ('/home/pi/Desktop/image.jpg') tisk ("Fotografie byla pořízena") Camera.stop_preview ()

#Hlavní kód:

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

#Proč to funguje: Hlavní kód funguje, protože vše, co děláme, je použití příkazu if button.is_pressed v while true prohlášení, takže se neustále aktualizuje po stisknutí tlačítka pro pořízení fotografie

Nyní nastavíme 2 RGB LED diody až na vrchol obvodu a oddělíme je uprostřed prkénka a vytvoříme symetrii. Pokud pro tento projekt nemáte rezistory 220 ohmů, můžete je nastavit paralelně v závislosti na vašem odporu pro rezistory, které máte. Druhý pin 4pinové RGB LED (nejdelší by měl být připojen k zemi přes železnici. Ostatní piny by měly být všechny připojeny k vlastním GPIO pinům. (První pin = červený, Druhý pin = zem, Třetí Pin = zelený), Čtvrtý kolík = modrý).

Testujeme jednu z našich RGB LED v našem tlačítkovém obvodu pomocí níže uvedeného kódu:

#Importované moduly z tlačítka importu gpiozero z aplikace PiCamera importu z picamery

z gpiozero import RGBLED

z časového importu spánku

#Založit

Fotoaparát = Tlačítko PiCamera () = Tlačítko (22)

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

#Funkce fotografování s RGB LED, rozhodl jsem se ji vložit do definiční funkce, protože nám pomáhá vyčistit hlavní kód

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

timedled.color (1, 0, 0)

spát (2)

timedled.color (0, 1, 0)

spánek (1)

Tisk Camera.capture ('/home/pi/Desktop/image.jpg') („Fotografie byla pořízena“) Camera.stop_preview ()

#Hlavní kód:

zatímco pravda:

pokud Button.is_pressed:

tisk ("Tlačítko bylo stisknuto") fotokapička ()

#Proč to funguje: Důvod, proč tento kód funguje, je ten, že nyní máme RGBLED, který funguje jako časovač pro pořízení fotografie

Nyní nastavte rezistor závislý na světle na spodní pravé straně prkénka pomocí diagramu úplně nahoru v horní části a společných železnic, o nichž se hovořilo dříve. Nezapomeňte, že dlouhé nohy LDR a kapicitátoru musí být připojeny ke kolíku GPIO.

Poté, co jsme připojili LDR, použijeme následující kód:

#Importované moduly

z tlačítka importu gpiozero

z picamery import PiCamera z gpiozero import RGBLED

z gpiozero import LightSensor

z časového importu spánku

#Založit

Kamera = PiCamera () Tlačítko = Tlačítko (22) TimedLED = RGBLED (červená = 21, zelená = 20, modrá = 16)

LightSensor = LightSensor (23)

#Funkce fotografování s RGB LED, rozhodl jsem se ji vložit do definiční funkce, protože nám pomáhá vyčistit hlavní kód

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

#Hlavní kód:

zatímco pravda:

pokud Button.is_pressed: print ("Tlačítko bylo stisknuto") photocap ()

pokud Button.is_pressed a Lightsensor.when_dark:

tisk („Tlačítko bylo stisknuto“)

tisk („Je tma“)

fotokapička ()

#Proč to funguje: Způsob, jakým jsem do svého kódu přidal světelný senzor, je prostřednictvím jiného příkazu if, který obsahuje importovanou funkci světelného senzoru. Když nás tma dokonale nastaví pro náš další krok

Nyní by posledním krokem v rámci tohoto projektu bylo aktivovat další RGBLED symetrii k druhému, aby fungovalo jako zábleskové světlo, Konečný kód:

z tlačítka importu gpiozero

z picamery import PiCamera

z gpiozero import RGBLED

z gpiozero import LightSensor

z časového importu spánku

#Založit

Fotoaparát = PiCamera ()

Tlačítko = Tlačítko (22)

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

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

LightSensor = LightSensor (23)

#Funkce fotografování s RGB LED, rozhodl jsem se ji vložit do definiční funkce, protože nám pomáhá vyčistit hlavní kód def photocap (): Camera.start_preview () sleep (4) timedled.color (1, 0, 0) spánek (2) timedled.color (0, 1, 0) spánek (1) Camera.capture ('/home/pi/Desktop/image.jpg') tisk ("Fotografie byla pořízena") Camera.stop_preview () # Hlavní kód: while True: if Button.is_pressed:

tisk („Tlačítko bylo stisknuto“)

fotokapička ()

pokud Button.is_pressed a Lightsensor.when_dark:

tisk („Tlačítko bylo stisknuto“) tisk („Je tma“)

FlashLED.color (1, 1, 1)

fotokapička ()

#Proč to funguje: Svou svítilnu jsem přidal pomocí RGB diody k výstupu bílé barvy, která je 1, 1, 1, a funguje pouze tehdy, pokud je příkaz if pravdivý.

Doporučuje: