ዝርዝር ሁኔታ:

Raspberry Pi Photobooth: 5 ደረጃዎች
Raspberry Pi Photobooth: 5 ደረጃዎች

ቪዲዮ: Raspberry Pi Photobooth: 5 ደረጃዎች

ቪዲዮ: Raspberry Pi Photobooth: 5 ደረጃዎች
ቪዲዮ: MSC Meraviglia Full Ship Tour Tips Tricks & Review Award Winning Cruise Ship Vista Project 2024, ህዳር
Anonim
Raspberry Pi Photobooth
Raspberry Pi Photobooth

አላማው:

  • የፒ ካሜራ እንዴት ኮድ ማድረግ እና መጫን እንደሚችሉ ይወቁ
  • መግለፅን በመጠቀም እና በኮድ ውስጥ መግለጫዎች ካሉ
  • እንደ RGB LEDs ያሉ አዲስ ቴክኖሎጂን ለመጠቀም መማር

ደረጃ 1: የሚያስፈልግዎት

የሚያስፈልግዎት
የሚያስፈልግዎት
የሚያስፈልግዎት
የሚያስፈልግዎት
የሚያስፈልግዎት
የሚያስፈልግዎት
  • 1 Raspberry Pi 3
  • የዳቦ ሰሌዳ
  • መዝለሎች
  • 1 ቀላል ጥገኛ ጥገኛ
  • 1 አቅም (Capacitor)
  • 1 የግፊት አዝራር
  • 6 220 Ohm Resistors
  • 2 RGB LEDs
  • 1 Raspberry Pi ካሜራ

ደረጃ 2 የካሜራ ሞዱሉን በማገናኘት ላይ

የካሜራ ሞዱሉን በማገናኘት ላይ
የካሜራ ሞዱሉን በማገናኘት ላይ

በመጀመሪያ ፣ በ Pi ሲጠፋ ፣ የካሜራ ሞዱሉን ከ Raspberry Pi ካሜራ ወደብ ጋር ማገናኘት ያስፈልግዎታል ፣ ከዚያ ፒውን ያስጀምሩ እና ሶፍትዌሩ መንቃቱን ያረጋግጡ።

  1. በኤችዲኤምአይ እና በ 3.5 ሚሜ ወደብ መካከል ያለውን የካሜራ ወደብ ያግኙ
  2. ቅንጥቡ ሰያፍ እስኪሆን ድረስ የካሜራውን ቅንጥብ በፕላስቲክ ጠርዞች ይጎትቱ
  3. አሁን ሰማያዊውን ወደ 3.5 ሚሜ ወደብ ሲመለከት የካሜራዎችን ገመድ ያስገቡ

ደረጃ 3 ካሜራውን ማቀናበር

ካሜራውን ማቀናበር
ካሜራውን ማቀናበር
ካሜራውን ማቀናበር
ካሜራውን ማቀናበር

ከዋናው ምናሌ የ Raspberry Pi ውቅረት መሣሪያን በመክፈት እና ከላይ ያሉትን ሁሉንም በይነገጾች ያሰናክሉ እና ያንቁ

ከዋናው ምናሌ ተርሚናሉን ይክፈቱ እና በሚከተሉት የኮድ መስመሮች ውስጥ ይተይቡ

ሱዶ Raspi- ውቅር

አሁን ከዚህ ሆነው በስርዓቱ ውስጥ ለማንቀሳቀስ የቀስት ቁልፎችዎን ይጠቀሙ እና በፔሪፈራል ግንኙነት አማራጭ ላይ ጠቅ ያድርጉ እና በ P1 ካሜራ ላይ ጠቅ ካደረጉ እና ካሜራውን ያንቁ ፣ ከዚያ ጨርስን ይምረጡ። በሚከተሉት የኮድ መስመሮች ውስጥ ወደ ተርሚናል ዓይነት ይመለሱ

ፒፓ ጫን picamera

ወይም ሱዶ ፒፓ Picamera ን ይጫኑ

ደረጃ 4 የካሜራ ሞዱሉን መሞከር

የካሜራ ሞዱሉን መሞከር
የካሜራ ሞዱሉን መሞከር

ሁሉም ሶፍትዌሮች እና ሃርድዌር ነቅተው ስለነበር ካሜራው እየሰራ መሆኑን ወይም አለመሆኑን ከዚህ መሞከር እንችላለን።

ከምናሌው Python 3 ን ይክፈቱ

ከዚያ አዲስ ፋይል ከቅርፊቱ ይክፈቱ እና cameratest.py ን ያስቀምጡ።

የሚከተለውን ኮድ ያስገቡ

ከፒክሜራ ማስመጣት PiCamera #የገባው ሞዱል ከፓይፕ መጫኛ ፒ ካሜራ ትዕዛዙ የተፈጠረ ከእንቅልፍ ማስመጣት እንቅልፍ #ከውጭ ያስመዘገበው እንቅልፍ ካሜራችን በካሜራ ላይ መቆየቱን ለማረጋገጥ = PiCamera () #ለካሜራው ማዋቀር

camera.start_preview ()#ካሜራውን ይጀምራል እና የካሜራ ውፅዓት ምን እንደሚመስል ያሳየዎታል

እንቅልፍ (10)#ቅድመ -እይታውን ለ 10 ሰከንዶች ይተዉታል

camera.stop_preview ()#በመጨረሻ ቅድመ ዕይታውን ያቋርጣል

ኮዱን በ F5 ያሂዱ

ኮዱን በሚያሄዱበት ጊዜ ይህንን ስህተት ከተቀበሉ -

(mmal: mmal_vc_component_create: ክፍል 'vc.ril.camera' ን መፍጠር አልተሳካም (1: ENOMEM)

mmal: mmal_component_create_core: ክፍል 'vc.ril.camera' (1) Traceback (የቅርብ ጊዜ ጥሪ የመጨረሻ) መፍጠር አልተቻለም ፦ ፋይል "" ፣ መስመር 1 ፣ በፋይል ውስጥ//usr/lib/python2.7/dist-packages/picamera /camera.py "፣ መስመር 257 ፣ በ _init_ self._init_camera () ፋይል" /usr/lib/python2.7/dist-packages/picamera/camera.py "፣ መስመር 288 ፣ በ _init_Camera ቅድመ ቅጥያ =" ካሜራ መፍጠር አልተሳካም ክፍል ") ፋይል" /usr/lib/python2.7/dist-packages/picamera/exc.py "፣ መስመር 112 ፣ mmal_check ውስጥ PiCameraMMALError (ሁኔታ ፣ ቅድመ-ቅጥያ) picamera.exc. PiCameraMMALError: የካሜራ ክፍል መፍጠር አልተሳካም የማስታወስ ችሎታ)

እባክዎን ወደ Raspberry Pi ውቅር በአፈጻጸም አምድ ስር ይሂዱ እና ስህተቱ እስኪያልቅ ድረስ የጂፒዩ ማህደረ ትውስታዎን ያሳድጉ (እንደገና ማስጀመር አለብዎት)።

አሁን በዴስክቶፕ ላይ የሚቀመጥ ፎቶ ለመፍጠር የሚከተሉትን ኮድ እንጠቀማለን-

ከፒክሜራ ማስመጣት PiCamera #የገባው ሞዱል ከፓይፕ መጫኛ ፒ ካሜራ ትዕዛዝ የተፈጠረ ከእንቅልፍ ማስመጣት እንቅልፍ #ከውጭ የመጣ እንቅልፍ ካሜራችን መቆየቱን ለማረጋገጥ

camera = PiCamera () #ለካሜራ ቅንብር

camera.start_preview () #የቅድመ እይታውን እንቅልፍ ይጀምራል (5) #ቅድመ -እይታውን ለ 5 ሰከንዶች ይተውታል

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

camera.stop_preview ()#ቅድመ ዕይታውን ያቆማል

ደረጃ 5 ወረዳውን ከኮድ ጋር መፍጠር

ወረዳውን በኮድ መፍጠር!
ወረዳውን በኮድ መፍጠር!
ወረዳውን በኮድ መፍጠር!
ወረዳውን በኮድ መፍጠር!
ወረዳውን በኮድ መፍጠር!
ወረዳውን በኮድ መፍጠር!

ከላይ እንደተመለከተው ከወረዳ ሥዕላዊ መግለጫዎች አንድ ቁልፍ ፣ ኤልዲአር ፣ እና በመጨረሻም ሁለት የ RGB LED ን ማዋቀር አለብን። በመጀመሪያ ከዳቦ ሰሌዳው በታችኛው ግራ በኩል ያለውን አዝራር እናዘጋጃለን። ለአዝራሩ በሚያዋቅሩበት ጊዜ እኛ 3.3V ን በአዎንታዊ እና መሬት ላይ ለአሉታዊ እንሰካለን ማለት የጋራ የባቡር መስመሮችን እንጠቀማለን። ለአዝራሩ ብቻ የወረዳውን ማዋቀር ከጨረሱ በኋላ።

አዝራሩን ከተጫነ የሚከተለውን ኮድ በመጠቀም መሪውን እንዲያበራ ለማድረግ እኛ ማድረግ እንደምንችል ወረዳችንን እንሞክራለን።

ከጂፒዮዜሮ የማስመጣት አዝራር #ከፒካሜራ የማስመጣት አዝራር ፒካሜራን ከውጭ ያስመጣል እንቅልፍ

#አዘገጃጀት

ካሜራ = PiCamera () አዝራር = አዝራር (22)

#ፎቶ ማንሳት ተግባር ፣ ዋናውን ኮድ ለማፅዳት ስለሚረዳን ወደ ፍቺ ተግባር ለማስገባት ወስኛለሁ

def photocap ():

Camera.start_preview ()

እንቅልፍ (5) Camera.capture ('/home/pi/Desktop/image.jpg') print ("ፎቶ ተነስቷል") Camera.stop_preview ()

#ዋና ኮድ

እውነት ሆኖ Button.is_pressed ከሆነ - ማተም ("አዝራር ተጭኖ ነበር") ፎቶ ካፕ ()

#ይህ ለምን ይሠራል - እኛ የምንሰራው ሁሉ አዝራሩን ከሆነ ትዕዛዙን እየተጠቀመበት ስለሆነ ዋናው ኮድ ይሠራል። አዝራሩ ከተጫነ እውነተኛ መግለጫ ስለዚህ ፎቶውን ለማንሳት ቁልፉ ሲጫን ያለማቋረጥ ይዘምናል።

አሁን 2 RGB LEDs ን እስከ ወረዳው አናት ድረስ እናዘጋጃለን እና በዳቦ ሰሌዳው መሃል ላይ እንለያቸዋለን እና ሚዛናዊ እንሆናለን። ለዚህ ፕሮጀክት 220 ohm resistors ከሌለዎት እርስዎ ላሏቸው ተቃዋሚዎች የመቋቋም ችሎታዎ ላይ በመመስረት በትይዩ ሊያቀናብሯቸው ይችላሉ። የ 4 ፒን RGB LED ሁለተኛው ፒን (ረጅሙ በባቡር ሐዲድ በኩል ከመሬት ጋር መገናኘት አለበት። ሌሎቹ ፒኖች ሁሉም ከራሳቸው የጂፒኦ ፒኖች ጋር መገናኘት አለባቸው። (የመጀመሪያ ፒን = ቀይ ፣ ሁለተኛ ፒን = መሬት ፣ ሦስተኛ ፒን = አረንጓዴ) ፣ አራተኛ ፒን = ሰማያዊ)።

ከዚህ በታች ባለው ኮድ በእኛ የአዝራር ወረዳ ውስጥ አንዱን የእኛን የ RGB LEDs እንሞክራለን-

#ከጂፒዮዜሮ የማስመጣት ሞዱሎች ከፒካሜራ ማስመጣት ፒካሜራ ማስመጣት

ከ gpiozero ማስመጣት RGBLED

ከጊዜ ወደ ጊዜ እንቅልፍ ያስመጣሉ

#አዘገጃጀት

ካሜራ = PiCamera () አዝራር = አዝራር (22)

TimedLED = RGBLED (ቀይ = 21 ፣ አረንጓዴ = 20 ፣ ሰማያዊ = 16)

#ፎቶን በ RGB LED ተግባር ማንሳት ዋናውን ኮድ ለማፅዳት ስለሚረዳን ወደ ገላጭ ተግባር ለማስገባት ወስኛለሁ።

def photocap (): Camera.start_preview () እንቅልፍ (4)

timedled.color (1, 0, 0)

እንቅልፍ (2)

timedled.color (0, 1, 0)

እንቅልፍ (1)

Camera.capture ('/home/pi/Desktop/image.jpg') ህትመት ("ፎቶ ተነስቷል") Camera.stop_preview ()

#ዋና ኮድ

እውነት እያለ ፦

Button.is_press ከሆነ

ማተም ("አዝራር ተጭኖ ነበር") የፎቶ ካፕ ()

#ይህ ለምን ይሠራል - ይህ ኮድ የሚሠራበት ምክንያት አሁን ፎቶግራፉ በሚነሳበት ጊዜ እንደ ሰዓት ቆጣሪ ሆኖ እንዲሠራ RGBLED ስላገኘን ነው።

አሁን ከላይ ወደላይ ያለውን ንድፍ እና ከዚህ ቀደም የተወያዩትን የጋራ የባቡር ሐዲዶችን በመጠቀም የዳቦ ሰሌዳውን ታችኛው ክፍል በስተቀኝ ላይ ያለውን የብርሃን ጥገኛ ተከላካይ ያዘጋጁ። ሁለቱንም የ LDR ረጃጅም እግሮች እና ተቆጣጣሪው ከጂፒዮ ፒን ጋር መገናኘት እንዳለባቸው ያስታውሱ።

LDR ን ካገናኘን በኋላ የሚከተለውን ኮድ እንጠቀማለን-

#ከውጭ የገቡ ሞጁሎች

ከ gpiozero ማስመጣት አዝራር

ከፒክሜራ ማስመጣት ፒካሜራ ከ gpiozero ማስመጣት RGBLED

ከ gpiozero ማስመጣት LightSensor

ከጊዜ ወደ ጊዜ እንቅልፍ ያስመጣሉ

#አዘገጃጀት

ካሜራ = PiCamera () አዝራር = አዝራር (22) TimedLED = RGBLED (ቀይ = 21 ፣ አረንጓዴ = 20 ፣ ሰማያዊ = 16)

LightSensor = LightSensor (23)

#ፎቶን በ RGB LED ተግባር ማንሳት ዋናውን ኮድ ለማፅዳት ስለሚረዳን ወደ ገላጭ ተግባር ለማስገባት ወስኛለሁ።

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

#ዋና ኮድ

እውነት እያለ ፦

Button.

Button.is_press እና Lensensor ከሆነ።

ማተም ("አዝራር ተጭኗል")

ማተም ("ጨለማ ነው")

ፎቶግራፍ ()

#ይህ ለምን ይሠራል - የብርሃን ዳሳሹን ወደ ኮዴዬ ያከልኩበት መንገድ ከውጭ የሚመጣውን የብርሃን ዳሳሽ ተግባርን የያዘ መግለጫ ከሆነ። ጨለማ ለቀጣዩ እርምጃችን ፍጹም ሲያቀናብርን ነው።

አሁን ይህንን ፕሮጀክት ለማውጣት የመጨረሻው ደረጃ ሌላውን የ RGBLED ሲምሜትሪክን እንደ ፍላሽ መብራት እንዲሠራ ማድረግ ነው ፣

የመጨረሻው ኮድ:

ከ gpiozero ማስመጣት አዝራር

ከፒክሜራ ማስመጣት PiCamera

ከ gpiozero ማስመጣት RGBLED

ከ gpiozero ማስመጣት LightSensor

ከጊዜ ወደ ጊዜ እንቅልፍ ያስመጣሉ

#አዘገጃጀት

ካሜራ = PiCamera ()

አዝራር = አዝራር (22)

TimedLED = RGBLED (ቀይ = 21 ፣ አረንጓዴ = 20 ፣ ሰማያዊ = 16)

FlashLED = RGBLED (ቀይ = 19 ፣ አረንጓዴ = 13 ፣ ሰማያዊ = 6)

LightSensor = LightSensor (23)

#ፎቶን በ RGB LED ተግባር በመውሰድ ፣ ዋናውን ኮድ def photocap (): ካሜራ.start_preview () እንቅልፍ (4) timedled.color (1 ፣ 0 ፣ 0)) እንቅልፍ (2) timedled.color (0, 1, 0) እንቅልፍ (1) Camera.capture ('/home/pi/Desktop/image.jpg') print ("Photo was taken") Camera.stop_preview () # ዋናው ኮድ - እውነት እያለ Button.is_pressed ከሆነ

ማተም ("አዝራር ተጭኖ ነበር")

ፎቶግራፍ ()

Button.is_press እና Lensensor ከሆነ።

ማተም ("አዝራር ተጭኖ ነበር") ህትመት ("ጨለማ ነው")

FlashLED.color (1, 1, 1)

ፎቶግራፍ ()

#ይህ ለምን ይሠራል -የእጅ ባትሪዬን ያከልኩበት መንገድ RGB ን በመጠቀም 1 ፣ 1 ፣ 1 የሆነውን ነጭ ቀለም ለማውጣት ነው እና መግለጫው እውነት ከሆነ ብቻ ይሠራል።

የሚመከር: