Innehållsförteckning:

Raspberry Pi Photobooth: 5 steg
Raspberry Pi Photobooth: 5 steg

Video: Raspberry Pi Photobooth: 5 steg

Video: Raspberry Pi Photobooth: 5 steg
Video: Raspberry PI Wedding Photobooth 5 2024, November
Anonim
Raspberry Pi Photobooth
Raspberry Pi Photobooth

Syftet:

  • Lär dig hur du kodar och installerar en Pi -kamera
  • Använda definiera och if -satser i kodning
  • Lär dig att använda ny teknik som RGB -lysdioder

Steg 1: Vad du behöver

Vad du kommer att behöva
Vad du kommer att behöva
Vad du kommer att behöva
Vad du kommer att behöva
Vad du kommer att behöva
Vad du kommer att behöva
  • 1 Raspberry Pi 3
  • Bakbord
  • Tröjor
  • 1 Ljusberoende motstånd
  • 1 kondensator
  • 1 Tryckknapp
  • 6 220 Ohm motstånd
  • 2 RGB -lysdioder
  • 1 Raspberry Pi -kamera

Steg 2: Anslutning av kameramodulen

Anslutning av kameramodulen
Anslutning av kameramodulen

Först och främst, när Pi är avstängd, måste du ansluta kameramodulen till Raspberry Pi: s kameraport, sedan starta Pi och se till att programvaran är aktiverad.

  1. Leta reda på kameraporten mellan HDMI och 3,5 mm porten
  2. Dra upp kameraklämman i plastkanterna tills klippet är diagonalt
  3. Sätt nu i kamerakabeln med den blå vänd mot 3,5 mm -porten

Steg 3: Installera kameran

Installera kameran
Installera kameran
Installera kameran
Installera kameran

Öppna Raspberry Pi -konfigurationsverktyget från huvudmenyn och inaktivera och aktivera alla gränssnitt ovan

Från huvudmenyn öppnar du terminalen och skriver in följande kodrader:

Sudo Raspi-config

Nu härifrån använder du piltangenterna för att styra genom systemet och klicka på alternativet Perifer anslutning och från deras klick på P1 kamera och aktivera kameran, välj sedan avsluta. Gå tillbaka till terminalen i följande kodrader:

pip installera picamera

eller Sudo pip installera Picamera

Steg 4: Testa kameramodulen

Testar kameramodulen
Testar kameramodulen

Härifrån kan vi testa om kameran fungerar eller inte eftersom vi har all programvara och hårdvara aktiverad.

Öppna Python 3 från menyn

Därifrån öppnar du en ny fil från skalet och sparar den en cameratest.py.

Ange följande kod:

från picamera import PiCamera #imported module created from the pip install pi camera command from time import sleep #imported sleep för att se till att vår kamera stannar kvar på kameran = PiCamera () #Setup för kameran

camera.start_preview ()#startar kameran och visar hur kameran ser ut

sleep (10)#lämnar förhandsgranskningen på i 10 sekunder

camera.stop_preview ()#avslutar slutligen förhandsgranskningen

Kör koden med F5

Om du får det här felet när du kör koden:

(mmal: mmal_vc_component_create: misslyckades med att skapa komponenten 'vc.ril.camera' (1: ENOMEM)

mmal: mmal_component_create_core: kunde inte skapa komponent 'vc.ril.camera' (1) Traceback (senaste samtal senast): File "", rad 1, i File "/usr/lib/python2.7/dist-packages/picamera /camera.py ", rad 257, i _init_ self._init_camera () File" /usr/lib/python2.7/dist-packages/picamera/camera.py ", rad 288, i _init_camera prefix =" Det gick inte att skapa kamera komponent ") Fil" /usr/lib/python2.7/dist-packages/picamera/exc.py ", rad 112, i mmal_check höja PiCameraMMALError (status, prefix) picamera.exc. PiCameraMMALError: Det gick inte att skapa kamerakomponent: Ut minne)

Gå till Raspberry Pi -konfigurationen, gå under prestandakolumnen och öka ditt GPU -minne tills felet är borta (måste starta om).

För att skapa ett foto som sparas på skrivbordet använder vi följande kod:

från picamera import PiCamera #Importerad modul skapad från pip installera pi kamera kommando från tid importera sömn #Importerad sömn för att se till att vår kamera stannar kvar

kamera = PiCamera () #Inställning för kameran

camera.start_preview () #Startar förhandsgranskningssömn (5) #Låter förhandsgranskningen vara på i 5 sekunder

camera.capture ('/home/pi/Desktop/image.jpg')# Från

camera.stop_preview ()#Stoppar förhandsgranskningen

Steg 5: Skapa kretsen med kod

Skapa kretsen med kod!
Skapa kretsen med kod!
Skapa kretsen med kod!
Skapa kretsen med kod!
Skapa kretsen med kod!
Skapa kretsen med kod!

Som vi ser ovan från kretsscheman måste vi ställa in en knapp, en LDR och slutligen två RGB -lysdioder. Först ska vi ställa in knappen på den nedre vänstra sidan av panelen. Under din inställning för knappen kommer vi att använda de vanliga järnvägslinjerna, vilket innebär att vi kommer att koppla in vår 3.3V på det positiva och marken för negativa. När du har slutfört kretsinställningen endast för knappen.

Vi kommer att testa vår krets för att se om vi kan göra det så att om knappen trycks in tänder vi lysdioden med följande kod:

#Importerade moduler från gpiozero importknapp från picamera import PiCamera från tid importera sömn

#Uppstart

Kamera = PiCamera () Knapp = Knapp (22)

#Fotografering, jag har bestämt mig för att sätta in den i en definieringsfunktion eftersom den hjälper oss att städa upp huvudkoden

def photocap ():

Camera.start_preview ()

sleep (5) Camera.capture ('/home/pi/Desktop/image.jpg') print ("Foto togs") Camera.stop_preview ()

#Huvudkod:

medan True: if Button.is_pressed: print ("Button was pressed") photocap ()

#Varför fungerar det här: Huvudkoden fungerar eftersom allt vi gör är att använda kommandot if button.is_pressed in a while true statement so it is constant updating when the button is pressed to take the photo

Nu ska vi ställa in 2 RGB -lysdioder ända upp till kretsens topp och separera dem i mitten av brödbrädan och göra det symmetriska. Om du inte har 220 ohm motstånd för detta projekt kan du ställa in dem parallellt beroende på ditt motstånd för motstånden du har. Den andra stiftet på den 4 -stifts RGB -lysdioden (den längsta bör anslutas till marken genom järnvägen. De andra stiften ska alla anslutas till sina egna GPIO -stift. (Första stiftet = rött, andra stiftet = jordat, det tredje stiftet = grönt, Fjärde stiftet = blått).

Vi kommer att testa en av våra RGB -lysdioder i vår knappkrets med koden nedan:

#Importerade moduler från gpiozero importknapp från picamera import PiCamera

från gpiozero importera RGBLED

från tid importera sömn

#Uppstart

Kamera = PiCamera () Knapp = Knapp (22)

TimedLED = RGBLED (röd = 21, grön = 20, blå = 16)

#Fotografering med RGB LED, jag har bestämt mig för att sätta in den i en definieringsfunktion eftersom den hjälper oss att städa upp huvudkoden

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

tidsinställd. färg (1, 0, 0)

sova (2)

tidsinställd. färg (0, 1, 0)

sova (1)

Camera.capture ('/home/pi/Desktop/image.jpg') print ("Foto togs") Camera.stop_preview ()

#Huvudkod:

medan det är sant:

if Button.is_pressed:

print ("knappen trycktes") photocap ()

#Varför fungerar det: Anledningen till att den här koden fungerar är för att nu fick vi RGBLED: en som timer för när fotot ska tas

Ställ nu in det ljusberoende motståndet på den nedre högra sidan av brödbrädan med hjälp av diagrammet hela vägen upp på toppen och de gemensamma järnvägarna som diskuterats tidigare. Kom ihåg att båda de långa benen på LDR och kapitulatorn måste anslutas till GPIO -stiftet.

När vi har anslutit LDR kommer vi att använda följande kod:

#Importerade moduler

från gpiozero importknapp

från picamera import PiCamera från gpiozero import RGBLED

från gpiozero importera LightSensor

från tid importera sömn

#Uppstart

Kamera = PiCamera () Knapp = Knapp (22) TimedLED = RGBLED (röd = 21, grön = 20, blå = 16)

LightSensor = LightSensor (23)

#Fotografering med RGB LED, jag har bestämt mig för att sätta in den i en definieringsfunktion eftersom den hjälper oss att städa upp huvudkoden

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

#Huvudkod:

medan det är sant:

if Button.is_pressed: print ("Button was pressed") photocap ()

if Button.is_pressed and Lightsensor.when_dark:

print ("knappen trycktes")

print ("Det är mörkt")

photocap ()

#Varför detta fungerar: Det sätt som jag har lagt till ljussensorn i min kod är genom ett annat if -uttalande som innehåller den importerade funktionen av ljussensor. När det är mörkt sätter vi oss perfekt för vårt nästa steg

Nu är det sista steget i detta projekt att aktivera den andra RGBLED -symmetrin till den andra för att fungera som en blixt, Den sista koden:

från gpiozero importknapp

från picamera import PiCamera

från gpiozero importera RGBLED

från gpiozero importera LightSensor

från tid importera sömn

#Uppstart

Kamera = PiCamera ()

Knapp = Knapp (22)

TimedLED = RGBLED (röd = 21, grön = 20, blå = 16)

FlashLED = RGBLED (röd = 19, grön = 13, blå = 6)

LightSensor = LightSensor (23)

#Fotografering med RGB LED, jag har bestämt mig för att sätta in den i en definieringsfunktion eftersom den hjälper oss att städa upp huvudkoden 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 ("Foto togs") Camera.stop_preview () # Huvudkod: medan True: if Button.is_pressed:

print ("knappen trycktes")

photocap ()

if Button.is_pressed and Lightsensor.when_dark:

print ("Button was Pressed") print ("Det är mörkt")

FlashLED.color (1, 1, 1)

photocap ()

#Varför fungerar det: Det sätt som jag har lagt till min ficklampa är att använda RGB -ledningen för att mata ut färgen vit som är 1, 1, 1 och det gör bara detta om if -satsen är sann.

Rekommenderad: