Talaan ng mga Nilalaman:

Raspberry Pi Photobooth: 5 Hakbang
Raspberry Pi Photobooth: 5 Hakbang

Video: Raspberry Pi Photobooth: 5 Hakbang

Video: Raspberry Pi Photobooth: 5 Hakbang
Video: DIY PhotoBooth Tutorial with Raspberry Pi 4 2024, Nobyembre
Anonim
Raspberry Pi Photobooth
Raspberry Pi Photobooth

Ang Pakay:

  • Alamin kung paano mag-code at mag-install ng isang Pi Camera
  • Paggamit ng tukuyin at kung mga pahayag sa coding
  • Pag-aaral na gumamit ng bagong teknolohiya tulad ng RGB LEDs

Hakbang 1: Ano ang Kakailanganin Mo

Ano ang Kakailanganin Mo
Ano ang Kakailanganin Mo
Ano ang Kakailanganin Mo
Ano ang Kakailanganin Mo
Ano ang Kakailanganin Mo
Ano ang Kakailanganin Mo
  • 1 Raspberry Pi 3
  • Breadboard
  • Mga jumper
  • 1 Banayad na Nakasalalay na Resistor
  • 1 Kapasitor
  • 1 Push Button
  • 6 220 Ohm Resistors
  • 2 RGB LEDs
  • 1 Raspberry Pi Camera

Hakbang 2: Pagkonekta sa Module ng Camera

Pagkonekta sa Module ng Camera
Pagkonekta sa Module ng Camera

Una sa lahat, sa naka-off ang Pi, kakailanganin mong ikonekta ang Module ng Camera sa port ng camera ng Raspberry Pi, pagkatapos ay simulan ang Pi at tiyaking pinagana ang software.

  1. Hanapin ang port ng camera na nasa pagitan ng HDMI at 3.5mm port
  2. Hilahin ang clip ng camera sa pamamagitan ng mga plastik na gilid hanggang sa diagonal ang clip
  3. Ipasok ngayon ang camera cable na may asul na nakaharap sa 3.5mm port

Hakbang 3: Pag-set up ng Camera

Pag-set up ng Camera
Pag-set up ng Camera
Pag-set up ng Camera
Pag-set up ng Camera

Ang pagbubukas ng tool na Pag-configure ng Raspberry Pi mula sa pangunahing menu at huwag paganahin at paganahin ang lahat ng mga interface sa itaas

Mula sa Pangunahing menu buksan ang Terminal at i-type ang mga sumusunod na linya ng code:

Sudo Raspi-config

Mula dito gamitin ang iyong mga arrow key upang mapatakbo sa pamamagitan ng system at mag-click sa Peripheral na pagpipilian ng koneksyon at mula sa kanilang pag-click sa P1 Camera at paganahin ang camera, pagkatapos ay piliin ang tapusin. Bumabalik sa uri ng terminal sa mga sumusunod na linya ng code:

pip install picamera

o Sudo pip i-install ang Picamera

Hakbang 4: Pagsubok sa Modyul ng Camera

Pagsubok sa Modyul ng Camera
Pagsubok sa Modyul ng Camera

Mula dito maaari naming subukan kung gumagana ang camera o hindi dahil mayroon kaming lahat ng software at hardware na pinagana.

Buksan ang Python 3 mula sa menu

Mula doon buksan ang isang bagong file mula sa shell at i-save ito ng cameratest.py.

Ipasok ang sumusunod na code:

mula sa picamera import PiCamera #imported module na nilikha mula sa pip install pi camera command mula sa oras na pag-import ng pagtulog #import na pagtulog upang matiyak na ang aming camera ay mananatili sa camera = PiCamera () #Setup para sa camera

camera.start_preview () # nagsisimula ang camera at ipinapakita sa iyo kung ano ang hitsura ng output ng camera

tulog (10) # umalis sa preview sa loob ng 10 segundo

camera.stop_preview () # sa wakas ay umalis sa preview

Patakbuhin ang code sa pamamagitan ng F5

Kung natanggap mo ang error na ito kapag pinapatakbo ang code:

(mmal: mmal_vc_component_create: bigong lumikha ng sangkap na 'vc.ril.camera' (1: ENOMEM)

mmal: mmal_component_create_core: hindi makalikha ng sangkap na 'vc.ril.camera' (1) Traceback (pinakahuling huling tawag): File "", linya 1, sa File "/usr/lib/python2.7/dist-packages/picamera /camera.py ", linya 257, sa _init_ self._init_camera () File" /usr/lib/python2.7/dist-packages/picamera/camera.py ", linya 288, sa _init_camera prefix =" Nabigong lumikha ng camera sangkap na ") File" /usr/lib/python2.7/dist-packages/picamera/exc.py ", linya 112, sa mmal_check itaas ang PiCameraMMALError (katayuan, unlapi) picamera.exc. PiCameraMMALError: Nabigong lumikha ng bahagi ng camera: Lumabas ng memorya)

Mangyaring pumunta sa pagsasaayos ng Raspberry Pi pumunta sa ilalim ng haligi ng pagganap at palakasin ang iyong memorya ng GPU hanggang nawala ang error (kailangang mag-reboot).

Ngayon upang lumikha ng isang larawan na makatipid sa desktop gagamitin namin ang sumusunod na code:

mula sa picamera import PiCamera #Import na module na nilikha mula sa pip install pi camera command mula sa oras na pag-import ng pagtulog #I-import na pagtulog upang matiyak na mananatili ang aming camera

camera = PiCamera () #Setup para sa camera

camera.start_preview () #Simulan ang previews Sleep (5) #Ngaiwan ang preview sa loob ng 5 segundo

camera.capture ('/ home / pi / Desktop / image.jpg') # Mula sa

camera.stop_preview () # Ititigil ang Pag-preview

Hakbang 5: Paglikha ng Circuit With Code

Paglikha ng Circuit With Code!
Paglikha ng Circuit With Code!
Paglikha ng Circuit With Code!
Paglikha ng Circuit With Code!
Paglikha ng Circuit With Code!
Paglikha ng Circuit With Code!

Tulad ng nakikita sa itaas mula sa mga circuit diagram kailangan naming mag-setup ng isang pindutan, isang LDR, at sa wakas dalawang RGB LEDs. Una naming i-setup ang pindutan sa ibabang kaliwang bahagi ng breadboard. Sa panahon ng iyong pag-set up para sa pindutan gagamitin namin ang mga karaniwang linya ng riles na nangangahulugang mai-plug namin ang aming 3.3V sa positibo at sa lupa para sa negatibo. Matapos mong matapos ang pag-setup ng circuit para sa pindutan lamang.

Susubukan namin ang aming circuit upang makita kung magagawa namin ito upang kung napindot ang pindutan ay pinapagana namin ang paggamit ng sumusunod na code:

# Na-import na Mga Modyul mula sa gpiozero na pindutan ng pag-import mula sa picamera import na PiCamera mula sa oras na pag-import ng pagtulog

#Setup

Camera = PiCamera () Button = Button (22)

# Pag-andar ng pagkuha ng larawan, napagpasyahan kong ilagay ito sa isang tukuyin na pagpapaandar dahil nakakatulong ito sa amin na linisin ang pangunahing code

def photocap ():

Camera.start_preview ()

pagtulog (5) Camera.capture ('/ home / pi / Desktop / image.jpg') print ("Kuha ang larawan") Camera.stop_preview ()

# Pangunahing code:

habang Totoo: kung ang Button.is_pressed: print ("Ang pindutan ay pinindot") photocap ()

#Bakit ito gumagana: Ang pangunahing code ay gumagana tulad ng lahat ng ginagawa namin ay ang paggamit ng utos kung ang pindutan ay nai-compress nang ilang sandali totoong pahayag kaya't patuloy itong ina-update kapag pinindot ang pindutan upang kunan ang larawan

Ngayon ay magse-set up kami ng 2 RGB LEDs hanggang sa tuktok ng circuit at paghiwalayin ang mga ito sa gitna ng breadboard at gawin ang simetriko. Kung wala kang 220 ohm resistors para sa proyektong ito maaari mong i-set up ang mga ito nang kahanay depende sa iyong paglaban para sa mga resistors na mayroon ka. Ang pangalawang pin ng 4 pin RGB LED (ang pinakamahaba ay dapat na konektado sa lupa sa pamamagitan ng riles. Ang iba pang mga pin ay dapat na konektado sa kanilang sariling mga GPIO pin. (Unang pin = pula, Pangalawang pin = lupa, Ikatlong Pin = berde, Pang-apat na pin = asul).

Susubukan namin ang isa sa aming mga RGB LED sa aming button circuit na may code sa ibaba:

# Na-import na Mga Modyul mula sa gpiozero na import na Button mula sa pag-import ng picamera na PiCamera

mula sa gpiozero import RGBLED

mula sa oras mag-import ng pagtulog

#Setup

Camera = PiCamera () Button = Button (22)

TimedLED = RGBLED (pula = 21, berde = 20, asul = 16)

# Pag-andar ng pagkuha ng larawan sa RGB LED, napagpasyahan kong ilagay ito sa isang tukuyin na pagpapaandar dahil nakakatulong ito sa amin na linisin ang pangunahing code

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

nag-time.color (1, 0, 0)

tulog (2)

nag-time.color (0, 1, 0)

tulog (1)

Camera.capture ('/ home / pi / Desktop / image.jpg') print ("Kuha ang larawan") Camera.stop_preview ()

# Pangunahing code:

habang Totoo:

kung ang Button.is_pressed:

print ("pinindot ang pindutan") photocap ()

#Bakit ito gumagana: Ang dahilan kung bakit gumagana ang code na ito ay dahil nakuha namin ang RGBLED upang gumana bilang isang timer kung kailan kukuha ng larawan

Ngayon ay itatakda ang Light Dependent resistor sa ibabang kanang bahagi ng breadboard gamit ang diagram hanggang sa itaas at ang mga karaniwang riles na tinalakay dati. Alalahanin ang parehong mga mahabang binti ng LDR at ang capicitator ay dapat na konektado sa GPIO pin.

Matapos naming ikonekta ang LDR gagamitin namin ang sumusunod na code:

#Mga Na-import na Modyul

mula sa gpiozero import Button

mula sa picamera import PiCamera mula sa gpiozero import RGBLED

mula sa gpiozero import LightSensor

mula sa oras mag-import ng pagtulog

#Setup

Camera = PiCamera () Button = Button (22) TimedLED = RGBLED (pula = 21, berde = 20, asul = 16)

LightSensor = LightSensor (23)

# Pag-andar ng pagkuha ng larawan sa RGB LED, napagpasyahan kong ilagay ito sa isang tukuyin na pagpapaandar dahil nakakatulong ito sa amin na linisin ang pangunahing code

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

# Pangunahing code:

habang Totoo:

kung Button.is_pressed: print ("Ang pindutan ay pinindot") photocap ()

kung ang Button.is_pressed at Lightsensor.when_dark:

i-print ("Pinindot ang Button")

i-print ("Madilim")

photocap ()

#Bakit ito gumagana: Ang paraan na naidagdag ko ang Light sensor sa aking code ay sa pamamagitan ng isa pa kung ang pahayag na naglalaman ng na-import na pag-andar ng light sensor. Kapag maitim na naitakda kami ng perpekto para sa aming susunod na hakbang

Ngayon ang pangwakas na hakbang sa pamamagitan ng proyektong ito ay upang buhayin ang iba pang RGBLED simetriko sa iba pa upang gumana bilang isang flash light, Ang pangwakas na code:

mula sa gpiozero import Button

mula sa picamera import PiCamera

mula sa gpiozero import RGBLED

mula sa gpiozero import LightSensor

mula sa oras mag-import ng pagtulog

#Setup

Camera = PiCamera ()

Button = Button (22)

TimedLED = RGBLED (pula = 21, berde = 20, asul = 16)

FlashLED = RGBLED (pula = 19, berde = 13, asul = 6)

LightSensor = LightSensor (23)

# Pag-andar ng pagkuha ng larawan sa RGB LED, napagpasyahan kong ilagay ito sa isang tinukoy na pagpapaandar dahil nakakatulong ito sa amin na linisin ang pangunahing code def photocap (): Camera.start_preview () pagtulog (4) nag-time.color (1, 0, 0) sleep (2) timedled.color (0, 1, 0) sleep (1) Camera.capture ('/ home / pi / Desktop / image.jpg') print ("Kuha ang larawan") Camera.stop_preview () # Pangunahing code: habang Tama: kung Button.is_pressed:

i-print ("pinindot ang pindutan")

photocap ()

kung ang Button.is_pressed at Lightsensor.when_dark:

print ("Button was Pressed") print ("Madilim")

FlashLED.kulay (1, 1, 1)

photocap ()

#Bakit ito gumagana: Ang paraan na naidagdag ko ang aking Flashlight ay sa pamamagitan ng paggamit ng RGB na humantong sa paglabas ng kulay puti na 1, 1, 1 at gagawin lamang ito kung totoo ang pahayag kung.

Inirerekumendang: