ዝርዝር ሁኔታ:

RaspberryPI ፎቶ ካሜራ - MagicBox: 13 ደረጃዎች (ከስዕሎች ጋር)
RaspberryPI ፎቶ ካሜራ - MagicBox: 13 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: RaspberryPI ፎቶ ካሜራ - MagicBox: 13 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: RaspberryPI ፎቶ ካሜራ - MagicBox: 13 ደረጃዎች (ከስዕሎች ጋር)
ቪዲዮ: 📷ጥራት ያለው ፎቶ የምትነሱበትና ቪዲዮ የምትቀርፁበት ምርጥ አፕ 2024, ህዳር
Anonim
Image
Image
ይገንቡ
ይገንቡ

ከጥቂት ጊዜ በፊት ፣ ከ Raspberry PI ውስጥ የፎቶግራፍ ማሽን ለመፍጠር ይህ እብድ ሀሳብ ነበረኝ። በከተማዬ ውስጥ ሰዎች ሄደው የኤሌክትሮኒክስ ዕቃዎችን ፣ ኮምፒተሮችን ፣ ወዘተ በመጠቀም የሚሠሩትን ወይም የሚያደርጉትን የሚያሳዩበት ትንሽ ትርኢት ነበር…

አንዱ እየመጣ ነበር ፣ እና ከባለቤቴ ጋር ፣ ይህንን ነገር እንገነባለን።

እንዴት ነው የሚሰራው ?

ሰማያዊውን ቁልፍ ተጭነው - ብልጭ ድርግም ማለት ይጀምራል - እና ከ 3 ሰከንዶች በኋላ ስዕል ይነሳል። በካሜራው በሌላ በኩል ቆጠራን የሚያሳይ ማሳያ አለ እና ስዕሉ ከተነሳ በኋላ የፎቶው ቅድመ -እይታ።

አሁን ወደ ትዊተር እና ፌስቡክ ለመላክ ወይም ለመሰረዝ እና እንደገና ለመሞከር መምረጥ ይችላሉ። ያ ቀላል ነው።

የፒአይ ፍሬም አዘጋጅን በመጠቀም ሁሉም ነገር በ Python ውስጥ መርሃ ግብር ተይ is ል - ምንም Xorg የለም ፣ GUI ጥቅም ላይ አይውልም።

የፕሮጀክቱ ሥራ ቪዲዮ እዚህ አለ

አቅርቦቶች

  • Raspberry PI (ስሪት 2 እየተጠቀምኩ ነው)
  • Raspberry PI ካሜራ (ሥሪት 1 ን በመጠቀም)
  • 3x ትልቅ ዶም የግፊት አዝራሮች
  • TFT/LCD Monitor በቪጂኤ/ኤችዲኤምአይ
  • ኤምዲኤፍ
  • የብረት ማጠፊያዎች ፣ ዊቶች ፣ ወዘተ.
  • የኃይል መሣሪያዎች
  • ትርፍ ጊዜ እና ብዙ አስደሳች

ደረጃ 1: ይገንቡ

ይገንቡ
ይገንቡ
ይገንቡ
ይገንቡ

እሱን መገንባት አስደሳች ነበር። ብዙ መቁረጥ ፣ መቀባት እና ቁፋሮ።

የካሜራውን መሰረታዊ መዋቅር ለመገንባት የ MDF ፓነሎችን እጠቀም ነበር። እነሱ ለመሥራት ቀላል እና ቀላል ናቸው። እንደዚሁም ፣ በአከባቢው ፋብላብ ላይ ያለው የሌዘር ማሽን ለመቁረጥ የቻለው አንድ ዓይነት እንጨት ነበር።

መቆጣጠሪያውን ለማንሳት እንዲረዱ ከውስጥ ወደ ሽቦው ተደራሽነት በተቆጣጣሪው በኩል ተደረገ።

ደረጃ 2 ካሜራ

ካሜራ
ካሜራ
ካሜራ
ካሜራ
ካሜራ
ካሜራ

ካሜራ

ካሜራው የሚከተሉትን ልኬቶች የያዘ ሳጥን ነው 60 ሴ.ሜ x 40 ሴሜ x 30 ሴሜ የእርስዎ ትንሽ ፣ ትልቅ ፣ የእርስዎ ነው። እርስዎ ለሚጠቀሙት ተቆጣጣሪ ማስተናገድ ብቻ ያስፈልግዎታል። የኤምዲኤፍ ፓነሎች በአካባቢው ፋብላብ ላይ ሌዘር ተቆርጠዋል። በጀርባው ውስጥ 3 ቀዳዳዎች ያስፈልጋሉ - ሁለት ትልቅ ጉልላት የግፊት ቁልፎች እና አንዱ ለተቆጣጣሪው። ከፊት ለፊት ፣ 2 ቀዳዳዎች - አንዱ ለትልቅ ጉልላት የግፊት ቁልፍ እና ሌላ - ትንሽ - ለ Raspberry PI ካሜራ። እኔ የተወሰኑ ልኬቶች የለኝም - ልክ ካሜራ አስበው ያንን ይጠቀሙ።

ደረጃ 3: ይከታተሉ

ተቆጣጠር
ተቆጣጠር
ተቆጣጠር
ተቆጣጠር
ተቆጣጠር
ተቆጣጠር

ተቆጣጠር

የመቆጣጠሪያው ድጋፍ በስፋቱ ውስጥ ለመደገፍ ትናንሽ እንጨቶችን በመጨመር ነበር።

እሱ ከፕላስቲክ መኖሪያ ቤቱ ተገንጥሎ በቦታዎች ተጠብቆ ነበር። እሱን ለማንሳት ለማገዝ ሁለት የሃይድሮሊክ ማጠፊያዎች (ያገለገሉ) ጥቅም ላይ ውለዋል።

ደረጃ 4: ማስጌጥ

ማስጌጥ
ማስጌጥ
ማስጌጥ
ማስጌጥ
ማስጌጥ
ማስጌጥ
ማስጌጥ
ማስጌጥ

እኔ የፉጂ ኤክስ-ቲ 30 ዘይቤን በጣም ስለምወደው ሄደን ተመሳሳይ የሆነ ነገር አደረግን።

በመጀመሪያ ፣ በአረፋ ሸፍነነዋል እና በመቀጠልም በጥቁር ቀለም ቀባነው። ከቀለም በኋላ ለአሉሚኒየም ፎይል ለብር ክፍሎች አክለነው እና ጠቅለልነው

ሌንሱን ለማስመሰል ፣ እኛ ለ Raspberry PI ካሜራ ሞዱል ለመቀመጥ ትንሽ ቀዳዳ ብንሠራ አንድ ዙር ቱፐርዌርን ብቻ ተጠቅመን ነበር።

ደረጃ 5 - ፕሮግራሚንግ

ካሜራውን ፕሮግራም ማድረጉ ፈታኝ ነበር ፣ ግን በጣም አስደሳች ነበር።

ምንም GUI የለም - ይህ በ CLI ላይ ይሠራል እና በ Python ስሪት 3 ላይ ይሠራል።

መጀመሪያ ቁልፎቹን በመሞከር እና በፕሮግራም በማዘጋጀት ጀመርኩ ፣ ቀጣዩ የቀረቡትን መሣሪያዎች እና የፓይዘን ኤፒአይ በመጠቀም ሥዕሎችን ማንሳት ነበር። ከዚያ በካሜራ ውፅዓት (ለቁጥሩ) እና ከትዊተር እና ከፌስቡክ ጋር ለመገናኘት ቀጥሎ ስዕሎችን ወደ ተደራቢነት ተሻገርኩ።

በዚህ ሁሉ ከተመቸኝ በኋላ እንደ እንቆቅልሽ ሁሉንም ቁርጥራጮች አንድ ላይ ሰብስቤአለሁ። እዚህ ፣ እኛ በተመሳሳይ ሂደት እንሄዳለን። ዘገምተኛ እና ትንሽ ይጀምሩ እና ወደ ፈጣን እና ትልቅ ይሂዱ።

በመጀመሪያ ፣ Raspberry PI ን በማዋቀር እንጀምር

ደረጃ 6 - Raspberry PI ን ማዘጋጀት

Raspberry PI ን ማዘጋጀት
Raspberry PI ን ማዘጋጀት
Raspberry PI ን ማዘጋጀት
Raspberry PI ን ማዘጋጀት
Raspberry PI ን ማዘጋጀት
Raspberry PI ን ማዘጋጀት

Raspbian ን በ Raspberry PI ላይ እንዴት እንደሚጭኑ አላብራራም - በ Raspberry PI ኦፊሴላዊ ድር ጣቢያ ላይ እንኳን ብዙ ትምህርቶች አሉ።

ለእሱ የኤስኤስኤች መዳረሻ እንዲኖርዎት ፣ ወይም ከተቆጣጣሪ ጋር በመሰካት የቁልፍ ሰሌዳ እና አይጤን መሰካት ያስፈልግዎታል።

ማሳሰቢያ: ከ Raspberry PI ካሜራ ሲጀምሩ ፣ ከተቆጣጣሪ ጋር እንዲሰካ ማድረግ ያስፈልግዎታል። እዚያ ድረስ ሁሉም እርምጃዎች ኤስኤስኤች በመጠቀም ሊደረጉ ይችላሉ።

በእርስዎ Raspberry PI ውስጥ ከተነሳ በኋላ የ Raspberry PI ካሜራ ማንቃት አለብን። ለዚያ የ raspi-config መሣሪያን እንጠቀም።

sudo raspi-config

  1. አማራጭ 5 ን ይምረጡ - በይነተገናኝ አማራጮች
  2. ከ Raspberry PI ካሜራ ጋር P1 ን ይምረጡ - ግንኙነትን ያንቁ/ያሰናክሉ
  3. እሺ በል
  4. ለ እሺ
  5. ጨርስን ይምረጡ
  6. አሁን እንደገና ለማስጀመር አዎ የሚለውን ይምረጡ

ዳግም ከተነሳ በኋላ መቀጠል እንችላለን

ደረጃ 7: ሶፍትዌር

አንዳንድ የ Python ቤተ -መጻሕፍት እንዲጫኑ እንፈልጋለን። ይህ ለአዲሱ Raspbian ስሪት - Buster ተዘምኗል

በመጀመሪያ ፣ Python 3 ን እንደ ነባሪው እናስቀምጠው። SYSTEM WIDE ን እንዴት እንደሚያዋቅሩት ለማወቅ ይህንን አገናኝ ይከተሉ

ቤተመጻሕፍት ፦

  • Python-pil.imagetk ምስሎችን ለማዛባት
  • ጂፒኦ ፒኖችን ለመድረስ python-rpi.gpio
  • Python-picamera ወደ Raspberry PI ካሜራ ለመድረስ
  • ፎቶውን ወደ ትዊተር ለማጋራት Tweepy
  • ለ facebook ገጽ ለማጋራት facebook-sdk

sudo apt-get install python3-pil.imagetk python3-rpi.gpio python3-picamera python3-tweepy python3-pip

Facebook- sdk ን ለመጫን የ Python pip ን ይጠቀሙ

sudo pip3 facebook-sdk ን ይጫኑ

ደረጃ 8 - ፕሮግራሚንግ - የካሜራ ቅድመ -እይታ

Image
Image
ፕሮግራሚንግ - የካሜራ ቅድመ -እይታ
ፕሮግራሚንግ - የካሜራ ቅድመ -እይታ
ፕሮግራሚንግ - የካሜራ ቅድመ -እይታ
ፕሮግራሚንግ - የካሜራ ቅድመ -እይታ

ለዚህ ፕሮጀክት ካወጣኋቸው መስፈርቶች አንዱ ይህ ፕሮግራም በ CLI ሞድ ውስጥ እንዲሠራ ነበር። ስለዚህ ፣ በካሜራው ላይ የካሜራውን ምስል ማሳየት አለብን። ለዚህ ፣ ፓይዘን ፒክሜራን እንጠቀም። ከዚያ በኋላ በካሜራ ቅድመ -እይታ አናት ላይ ተደራቢ ለማሳየት pil.imagetk ን እንጠቀም

የእኛ ትንሽ ፕሮግራም (አንድ ትልቅ እስከሚጨርስ ድረስ ትናንሽ ፕሮግራሞችን እናዘጋጃለን) የካሜራውን ቅድመ -እይታ ያሳያል።

#!/usr/bin/env ፓይዘን

የማስመጣት ጊዜ አስመጪ ፒካሜራ ከእንቅልፍ ማስመጣት የእንቅልፍ ካሜራ = picamera. PiCamera () # የሚፈልጉትን ካሜራ ያዘጋጁ። መፍትሄ = (1280 ፣ 1024) camera.framerate = 24 ካሜራ።) ካልሆነ በስተቀር (የቁልፍ ሰሌዳ ኢንተርስተር ፣ ሲስተም ኤክስት) - ማተም (“በመውጣት ላይ…”) ካሜራ.stop_preview ()

እሱን ለመሞከር ብቻ ያስፈጽሙት

የፓይዘን ካሜራ ቅድመ -እይታ

ከላይ ምስሎችን የያዘ ካሜራውን አስቀድመው ይመልከቱ

ሥዕሉን ከመውሰዴ በፊት ቆጠራ እንዲታይ ስለፈለግኩ የካሜራ ቅድመ -እይታ ተደራራቢ ምስሎች ያስፈልጉኝ ነበር።

የ-p.webp" />

የሚከተለው ኮድ በካሜራ ቅድመ -እይታ 1-p.webp

ፒኤምኤም ከውጭ ማስመጣት ምስል ከፒክሜራ ጋር ፒሜሜራ () እንደ ካሜራ ካሜራ። መፍትሄ = (1920 ፣ 1080) camera.framerate = 24 ካሜራ። ') # ፍጠር pad = Image.new (' RGB ', (((img.size [0] + 31) // 32) * 32, ((img.size [1] + 15) // 16) * 16,)) pad.paste (img, (0, 0)) o = camera.add_overlay (pad.tobytes () ፣ መጠን = img.size) o.alpha = 128 o.layer = 3 ሳለ እውነት: እንቅልፍ (1)

ሞክረው:

Python imageOverlay.py

አሁን ከተደራቢ ምስሎች ጋር ቆጠራን እንፍጠር። የ 1-p.webp

ከዚያ በኋላ የሚከተለውን ኮድ ይጠቀሙ

picamera ያስመጡ

ከ PIL ማስመጣት ምስል ከ picamera ጋር ፒክሜራ () እንደ ካሜራ ካሜራ። መፍትሄ = (1280 ፣ 1024) camera.framerate = 24 ካሜራ።) img2 = Image.open ('2.png') img3 = Image.open ('1.png') # create pad = Image.new ('RGB', (((img1.seze [0] + 31) / / 32) * 32 ፣ ((img1. መጠን [1] + 15) // 16) * 16 ፣)) pad.paste (img1 ፣ (0 ፣ 0)) o = camera.add_overlay (pad.tobytes () ፣ መጠን = img1.size) o.alpha = 128 o.layer = 3 እንቅልፍ (2) #ቀዳሚውን ተደራቢ ካሜራ.ሬሞቭ_ቨርላይ (o) pad.paste (img2 ፣ (0 ፣ 0))) o = camera.add_overlay (pad. tobytes () ፣ መጠን = img2.size) o.alpha = 128 o.layer = 3 እንቅልፍ (2) # ቀዳሚውን ተደራቢ ካሜራ ያስወግዱ። remove_overlay (o) pad.paste (img3 ፣ (0 ፣ 0)) o = ካሜራ። add_overlay (pad.tobytes () ፣ መጠን = img3.size) o.alpha = 128 o.layer = 3 እንቅልፍ (2)

አሁን ያስፈጽሙት

Python imageOverlayCounter.py

እና ቆጠራውን ይመልከቱ

ዋው - አንዳንድ ብዙ ኮድ እና ምንም ስዕል አልተነሳም… ሁሉንም በአንድ ላይ በማጣመር ያንን እንፈታ - ካሜራ ቅድመ እይታ ፣ ቆጠራ እና ፎቶ አንሳ

picamerafrom ከ PIL ማስመጣት ምስል ከጊዜው ማስመጣት የእንቅልፍ def overlayCounter (): # ጭነት ምስል img1 = Image.open ('3.png') img2 = Image.open ('2.png') img3 = Image.open ('1.-p.webp

ሞክረው:

Python pictureWithTimer.py

እና እዚህ ዮዳ አለን

ደረጃ 9 ፕሮግራሚንግ - ትልቅ ጉልላት የግፊት ቁልፍ

ፕሮግራሚንግ - ቢግ ዶም የግፋ አዝራር
ፕሮግራሚንግ - ቢግ ዶም የግፋ አዝራር
ፕሮግራሚንግ - ትልቅ ጉልላት የግፊት አዝራር
ፕሮግራሚንግ - ትልቅ ጉልላት የግፊት አዝራር

ትልቁ ጉልላት የግፊት አዝራር ትልቅ ክብ አዝራር ነው - ከ 100 ሚሜ አካባቢ ዲያሜትር በትንሽ LED። እሱ በ 12 ቮ ላይ ይሠራል ይላል ፣ ግን የ Raspberry PI 3.3v እሱን ለማብራት በቂ ነው

ለሙከራ ስልታዊውን ይጠቀሙ

ኮዱ ፦

ከ RPi ማስመጣት GPIO

takeButton = 17 ledButton = 27 GPIO.setmode (GPIO. BCM) GPIO.setup (takeButton, GPIO. IN ፣ GPIO. PUD_UP) የማገድ ተግባር GPIO.wait_for_edge (takeButton ፣ GPIO. FALLING) ህትመት ("አዝራር ተጭኗል") GPIO.output (ledButton, False) GPIO.cleanup ()

አንዳንዶች ኮዱን ሲያብራሩ ከ GPIOS እሴቶችን የማግኘት ዓይነቶች አንዱ በማቋረጦች (ሌላ ምርጫ ነው) - የጠርዝ ማወቂያ።

ጫፉ ከ HIGH ወደ LOW (የሚወድቅ ጠርዝ) ወይም ከዝቅተኛ ወደ ከፍተኛ (ወደ ላይ የሚወጣ) ሽግግር ስም ነው። ፒን ከማንኛውም ነገር ጋር በማይገናኝበት ጊዜ ፣ ማንኛውም ንባብ ያልተገለጸ ይሆናል። መፍትሄው በተጠቀሰው ፒን ውስጥ ወደ ላይ/ወደ ታች ተቃዋሚ መኖሩ ነው። Raspberry PI በሶፍትዌር በኩል ወደ ላይ/ወደታች ተቃዋሚዎች ለማዋቀር ይፈቅዳል።

መስመሩ

GPIO.setup (takeButton ፣ GPIO. IN ፣ GPIO. PUD_UP)

ያንን ለማድረግ ያንን ፒን ያዋቅራል - ወደ ላይ ያንሱ

ለምን ይነሳል? ደህና ፣ ትልቁ ጉልላት የግፊት ቁልፍ 2 ፒኖች አሉት - ለመስበር ወይም ለመሥራት (ወይም ብዙውን ጊዜ ከአርዲኖ/Raspberry PI ኪት ጋር እንደሚመጡ ትናንሽ የግፊት ቁልፎች)። የአዝራሩን ፒን “ለማድረግ ግፊት” አድርጌዋለሁ። ሲጫኑ ወረዳው ይዘጋል እና ኤሌክትሪክ ያልፋል (በተለምዶ ክፍት ነው)።

መስመሩ

GPIO._gege_ ይጠብቁ (ቡትተን ፣ ጂፒኦ። መውደቅ)

የፒን መውደቁን እስኪያገኝ ድረስ ይጠብቃል (የስክሪፕቱን አፈፃፀም በትክክል ያቆማል) - አዝራሩን መልቀቅ የኤሌክትሪክ ፍሰቱን ይቀንሳል እና ፒኑ ከ 3.3v ወደ 0v ይሄዳል።

የ LED ፒን በአዝራሩ ላይ ያለውን LED ለማብራት ብቻ ነው

ከ Arduino Tutorials ፣ ዊኪፔዲያ ለማድረግ ወይም ለመገፋፋት ግፊት በማድረግ ጂፒኦ ያቋርጣል ስለ ግፊት መቀየሪያዎች ተጨማሪ መረጃ።

አሁን የግፊት ቁልፍን ከካሜራው ጋር እናዋህደው - ቁልፉ ሲጫን ብቻ ስዕል ያንሱ

ፒሜራ ማስመጣት ከ RPi ማስመጣት እንቅልፍን ከፒፒ ማስመጣት ምስል # ማሳሰቢያ - በዋናው ፕሮግራም ውስጥ የስረዛ ቁልፍ የሚሆነው ይህ ነው # እኔ በቪዲዮው ውስጥ ግልፅነት ለማግኘት እዚህ ብቻ እየተጠቀምኩ ነው Button = 24 ledCancel = 5 GPIO.setmode (GPIO. BCM) GPIO. (): GPIO.output (ledCancel, ሐሰተኛ) # ተግባር የምስል def overlayCounter (): # ሥዕሎችን ይጫኑ img1 = Image.open ('3.png') img2 = Image.open ('2.png') img3 = ምስል። * 32 ፣ ((img1.size [1] + 15) // 16) * 16 ፣)) # ተደራቢውን ይለጥፉ - 3 pad.paste (img1 ፣ (0 ፣ 0)) ov = camera.add_overlay (pad.tobytes () ፣ መጠን = img1.size) ov.alpha = 200 # ንብርብር 3 ነው ምክንያቱም የካሜራ ቅድመ -እይታ በ 2 ov.layer = 3 sleep (1) camera.remove_overlay (ov) # ተደራቢውን ይለጥፉ - 2 pad.paste (img2 ፣ (0 ፣ 0)) ov = camera.add_overlay (pad.tobytes () ፣ መጠን = img2.size) ov.alpha = 200 # ንብርብር 3 ነው ምክንያቱም የካሜራ ቅድመ -እይታ በደረጃ 2 ov.layer = 3 sleep (1) camera.remove_overlay (ov) # ተደራቢውን ይለጥፉ - 1 pad.paste (img3 ፣ (0 ፣ 0)) ov = camera.add_overlay (pad.tobytes () ፣ መጠን = img3.size) ov.alpha = 200 # ንብርብር 3 ነው ምክንያቱም የካሜራ ቅድመ እይታ በንብርብር 2 ov.layer = 3 እንቅልፍ (1) camera.remove_overlay (ov) camera = picamera. PiCamera () camera.resolution = (1280, 1024) camera.framerate = 24 camera.start_preview () GPIO.wait_for_edge (takeButton, GPIO. FALLING) onLeds () overlayCounter () camera.capture ('pushTesting.jpg') camera.stop_preview () offLeds () GPIO.cleanup ()

ትንሽ የኮድ ማብራሪያ

የካሜራ ቅድመ -እይታውን ይጀምራል እና አንድ አዝራር እስኪጫን ድረስ እዚያ ይጠብቃል። አዝራሩ ከተጫነ በኋላ የ LED መብራቱ እና ቆጠራው ይጀምራል። ወደ መጨረሻው ሲደርስ ሥዕሉ ተወስዶ ኤልኢዲው ጠፍቷል

ደረጃ 10 - ወደ ትዊተር ይለጥፉ

ወደ ትዊተር ይለጥፉ
ወደ ትዊተር ይለጥፉ
ወደ ትዊተር ይለጥፉ
ወደ ትዊተር ይለጥፉ
ወደ ትዊተር ይለጥፉ
ወደ ትዊተር ይለጥፉ

አሁን እኛ Python ን እንጠቀማለን እና ትዊተር እንለካለን!:) ለመለጠፍ ምስል ያስፈልግዎታል - በጥበብ ይምረጡ።

በመጀመሪያ ፣ የትዊተር ኤፒአይ መድረስ አለብን እና ለዚህም APP መፍጠር አለብን። አዲስ መተግበሪያ ለመፍጠር ወደ https://apps.twitter.com ይሂዱ።

ለገንቢ መለያ ማመልከት ያስፈልግዎታል - አንዳንድ ጥያቄዎችን ይሙሉ እና የኢሜል አድራሻዎን ያረጋግጡ። ከዚያ በኋላ አዲስ APP መፍጠር ይችላሉ።

APP ን ከፈጠሩ በኋላ ወደ ቁልፎች እና ማስመሰያዎች ይሂዱ እና የመዳረሻ ማስመሰያ እና የመዳረሻ ማስመሰያ ምስጢር ይፍጠሩ። ቁልፎች በአንድ ጊዜ አንድ መስኮት ይታያል - እነዚያን ይቅዱ እና በኋላ ላይ ያስቀምጧቸው።

ወደ ትዊተር መለያዎ ስዕል ለመላክ የሚከተለውን ኮድ ይጠቀሙ። መሙላትዎን አይርሱ-

  • ሸማች_ቁልፍ
  • የሸማች_ ምስጢር
  • ተደራሽነት_ ተይ.ል
  • ተደራሽነት_አስተያየት

የትዊተር መልእክት በትዊተር ውስጥ ለመላክ ጽሑፍ ነው።

jpg_foto_to_send ከትዊቱ ጋር የሚጣበቅ ስዕል ነው። ልክ እንደ ፒቶን ስክሪፕት በተመሳሳይ ማውጫ ውስጥ የተወሰነ ስዕል ይኑሩ እና በኮዱ ውስጥ ስሙን ይለውጡ።

ማስመጣት tweepy # የትዊተር ቅንብሮች def get_api (cfg): auth = tweepy. OAuthHandler (cfg ['consumer_key'], cfg ['consumer_secret']) auth.set_access_token (cfg ['access_token'], cfg ['access_token_secret']) መመለስ tweepy. API (auth) # ወደ twitter def sendToTwitter (): cfg = {"consumer_key": "", "consumer_secret": "", "access_token": "", "access_token_secret": ""} api = get_api (cfg) # የሁኔታ መልእክት ትዊተር = “የትዊተር መልእክት” ሁኔታ = api.update_with_media (“jpg_foto_to_Send” ፣ tweet) sendToTwitter ()

ለትዊተርዎ የትዊተር ምግብዎን ይመልከቱ።

ትዊቱ ይኸውና

ወይም ከታች:

#RaspberryPI MagicBox። ፎቶዎችን ያንሱ ፣ ይከልሷቸው እና ወደ ትዊተር እና ፌስቡክ ለመላክ ይምረጡ። በ Raspberry PI የተጎላበተው። @@ Raspberry_Pi#RaspberryPI#RaspberryPIProjectpic.twitter.com/cCL33Zjb8p

- ብሩኖ ሪካርዶ ሳንቶስ (@feiticeir0) ፌብሩዋሪ 29 ፣ 2020

ደረጃ 11 አንዳንድ ንጥረ ነገሮችን ማዋሃድ

አንዳንድ ንጥረ ነገሮችን ማዋሃድ
አንዳንድ ንጥረ ነገሮችን ማዋሃድ
አንዳንድ ንጥረ ነገሮችን ማዋሃድ
አንዳንድ ንጥረ ነገሮችን ማዋሃድ

አሁን ትልቁን ጉልላት የግፋ ቁልፍን እናጣምረው ፣ በመጫን ፣ ወደታች በመቁጠር ፣ ፎቶ አንሳ ፣ ወደ ትዊተር ለመላክ ወይም ላለመላክ ይወስኑ።

ሌላ ተደራቢ ምስል እንጨምራለን እና ሁሉንም ሶስቱን የግፊት አዝራሮች እንጠቀማለን። ስዕሉ በሚነሳበት ጊዜ ሁሉም 3 አዝራሮች ኤልኢዲዎች ያበራሉ።

ወደ ማህበራዊ አውታረ መረቦች ለመለጠፍ አዶዎችን የሚያሳይ ሌላ ስዕል እንጨምራለን

SelectOption-p.webp

Aenviar-p.webp

በቪዲዮው ውስጥ ሰማያዊ የግፋ አዝራር (ከካሜራው ፊት) አይታይም ፣ ግን ኤልዲው እንደበራ እና እንደተጫነ ወዲያውኑ ብልጭ ድርግም ማለት ይጀምራል።

ከፈለጉ ኮዱ ተያይ isል

ይህ ከዋናው ፕሮግራም በፊት የመጨረሻው የሙከራ ኮድ ነው።

# ኮድ ማድረጊያ = utf-8 ማስመጣት የፒካሜራ ማስመጣት _አስፈላጊው የማስመጣት ንዑስ ሂደት እንደ ጊዜ ከ RPi ማስመጣት GPIO ን ከ PIL ማስመጣት የምስል ማስመጣት ክርክር # ሰርዝ ስዕል ሰርዝ አዝራር = 24 # የስዕል አዝራር ያንሱ LED takePicButtonLed = 27 # ወደ ማህበራዊ አውታረ መረብ አዝራር LED ልጥፍNNed = 22 # አዝራር ሰርዝ LED ሰርዝ ButtonLed = 5 GPIO.setmode (GPIO. BCM) GPIO.setup (takeButton ፣ GPIO. IN ፣ GPIO. PUD_UP) GPIO.setup (socialNetworkButton ፣ GPIO. IN ፣ GPIO. PUD_UP) GPIO.setup (CancelButton ፣ GPIO. IN ፣ GPIO. PUD_UP) GPIO.setup (cancelButtonLed, GPIO. OUT) # የትዊተር ቅንብሮች def get_api (cfg): auth = tweepy. OAuthHandler (cfg ['consumer_key'], cfg ['consumer_secret']) auth.set_access_token (cfg ['access_token'] ፣ cfg ['access_token_secret']) tweepy ይመለሱ። ኤፒአይ (auth) # ወደ twitter def sendToTwitter (): cfg = {"con sumer_key ":" "," consumer_secret ":" "," access_token ":" "," access_token_secret ":" "} api = get_api (cfg) # የሁኔታ መልዕክት tweet =" MagicBox instructable ሙከራ. #MagicBox #RaspberryPI #Raspberry #Instructables "status = api.update_with_media (" pushTesting.jpg "፣ tweet) #Facebook AOth def get_api_facebook (cfg): ግራፍ = ፌስቡክ። ግራፊክስ (cfg ['access_token'] እንደ ገጹ ይለጥፉ። እንደ ራስዎ መለጠፍ ከፈለጉ የሚከተለውን # መዝለል ይችላሉ። resp = graph.get_object ('እኔ/መለያዎች') ገጽ_access_token = በሬስ ውስጥ ለገፅ የለም ['ውሂብ']: ገጽ ከሆነ '' መታወቂያ '] == cfg ['page_id']: page_access_token = page ['access_token'] graph = facebook. GraphAPI (page_access_token) return graph # ወደ facebook def sendToFacebook (): #Vallaues for access cfg = {"page_id": "", "access_token": ""} api = get_api_facebook (cfg) መግለጫ ፅሁፍ = "ምስሉን ይግለጹ" albumid = "" api.put_photo (ምስል = ክፍት ("pushTesting.jpg" ፣ "rb") ፣ መግለጫ ፅሁፍ = "ምስሉን የመግለጫ ፅሁፍ) ") # Light ብቻ TakePicButtonLed def onlyTakePicLed (): GPIO.output (takePicButtonLed, True) GPIO.output (postSNLed, False) GPIO.output (cancelButtonLed, False) # Light Only Cancel እና የማህበራዊ አውታረ መረብ አዝራር defPostLEDS () ኦ..output (takePicButtonLed, False) እንቅልፍ (0.5) GPIO.output (takePicButtonLed, True) sleep (0.5) GPIO.output (takePicButtonLed ፣ሐሰት) እንቅልፍ (0.5) GPIO.output (takePicButtonLed ፣ True) sleep (0.5) GPIO.output (takePicButtonLed ፣ ሐሰተኛ) # ብልጭታ postSNLed ለማህበራዊ አውታረ መረቦች def blinkPosting (stop_event) በመለጠፍ ላይ ሳለ # ጀምር (የማያቆም_ኢቨንት.is_set ()): ማተም (“ጠፍቷል”) GPIO.output (postSNLed ፣ ሐሰተኛ) እንቅልፍ (0.5) ህትመት (“በርቷል”) GPIO.output (postSNLed ፣ True) እንቅልፍ (0.5) def timer (): GPIO.output (takePicButtonLed ፣ እውነት)) እንቅልፍ (1) GPIO.output (postSNLed ፣ True) እንቅልፍ (1) GPIO.output (cancelButtonLed ፣ True) sleep (1) def showAllLeds (): GPIO.output (takePicButtonLed ፣ True) GPIO.output (postSNLed ፣ True) GPIO.output (cancelButtonLed, True) # በ 1 ንብርብር ማሳያ ላይ ቅድመ -እይታን ያሳዩ ቅድመ -እይታ (imgName): # የ PIL ምስል ትዕይንት ጉድፍ ስለሆነ # ቅድመ -እይታውን img = Image.open (imgName) ለማሳየት ከካሜራው ተደራቢውን እንጠቀማለን።) padding = Image.new ('RGB', (((img.size [0] + 31) // 32) * 32, ((img.size [1] + 15) // 16) * 16,))) padding.paste (img, (0, 0)) ov = camera.add_overlay (padding.tobytes () ፣ መጠን = img.size) ov.layer = 1 # ንብርብር ላይ ቅድመ -እይታን ያሳዩ 3 def displayPreview3 (imgName): # የ PIL ምስል ትዕይንት ክራፕ ስለሆነ # ከካሜራ ተደራቢውን እንጠቀማለን # ቅድመ -እይታ img = Image.open (imgName) padding = Image.new ('RGB', ((((img.size [0] + 31) // 32) * 32 ፣ ((img.size [1] + 15) // 16) * 16 ፣)) padding.paste (img ፣ (0 ፣ 0)) ov = camera.add_overlay (padding.tobytes () ፣ መጠን = img.size) ov.alpha = 150 ov.layer = 3 የመመለሻ ኦቭ # ተግባር ተደራራቢ ማህበራዊ አውታረ መረብ def overlayn (): imgsn = Image.open ('SelectOption.png') # ፍጠር ተደራቢ ፓድ = ምስል አዲስ # ተደራቢውን pad.paste (imgsn ፣ (0, 0)) ov = camera.add_overlay (pad.tobytes () ፣ መጠን = imgsn.size) ov.alpha = 100 ov.layer = 3 መመለስ ኦቭ image def overlayCounter () # ምስሎችን ይጫኑ img1 = Image.open ('3.png') img2 = Image.open ('2.png') img3 = Image.open ('1.png') # ተደራቢ ይፍጠሩ # ሁሉም ተመሳሳይ መጠን ፓድ = Image.new ('RGB', (((img1.size [0] + 31) // 32) * 32, ((img1.size [1] + 15) // 16) * 16 ፣)) # ተደራቢውን ይለጥፉ - 3 pad.paste (img1 ፣ (0 ፣ 0)) ov = camera.add_overlay (pad.tobytes () ፣ መጠን = img1.size) ov.alpha = 200 # ንብርብር 3 ነው ምክንያቱም የካሜራ ቅድመ -እይታ በደረጃ 2 ov.layer = 3 sleep (1) camera.remove_overlay (ov) # ተደራቢውን ይለጥፉ - 2 pad.paste (img2 ፣ (0 ፣ 0)) ኦቭ = ካሜራ። ተደራቢው - 1 pad.paste (img3, (0, 0)) ov = camera.add_overlay (pad.tobytes () ፣ መጠን = img3.size) ov.alpha = 200 # ንብርብር 3 ነው ምክንያቱም የካሜራ ቅድመ -እይታ በደረጃ 2 ላይ ነው ov.layer = 3 sleep (1) camera.remove_overlay (ov) # ዋና ተግባር # የማስነሻ መልእክቶች እንዳይገኙ ማያ ገጹን ያፅዱ # ምናልባት ይህንን በባሽ tmp = sp.call ('ግልጽ' ፣ shell = True) camera = picamera. PiCamera () camera.resolution = (1280, 1024) camera.framerate = 24 camera.brightness = 55 camera.sharpness = 0 camera.contrast = 0 #camera.exposure_co mpensation = 0 #camera.exposure_mode = 'auto' #camera.meter_mode = 'አማካኝ' #እዚህ መሞከር ይሞክሩት - ሳለ (እውነት): camera.start_preview () #ፎቶ ለማንሳት ብቻ የፎቶ ማሳያ (TakePicLed)) #አዝራሩን እስኪወስድ ይጠብቁ ሥዕል GPIO. Wit_for_edge (takeButton, GPIO. FALLING) # ምስሎቹ በሚታዩበት ጊዜ ከ LED ዎች ጋር ለመቁጠር ክር ይጀምሩ # ምናልባት በተደራቢው የኮኔተር ተግባር ውስጥ ጥቅም ላይ ሊውል ይችላል ፣ # ምክንያቱም ሥዕሎቹን ለማሳየት ጊዜ ቆጣሪዎችም አሉት ፣ ግን መሪ ውጤቶች # ተመሳሳይ_አይደለም። stop_preview () # የምስል ማሳያ ቅድመ እይታ ('pushTesting.jpg') # ተደራቢ አሳይ / = ተደራቢ () # ለማኅበራዊ አውታረ መረቦች መሰረዝ ወይም መለጠፍ LEDs አሳይ Postosts () GPIO.add_event_detect (socialNetworkButton ፣ GPIO. FALLING) GPIO.add_event_detect ፣ GPIO. FALLING) እያለ (እውነት) - GPIO.event_detecte ከሆነ መ (socialNetworkButton): camera.remove_overlay (oo) GPIO.output (cancelButtonLed, False) o = displayPreview3 ('Aenviar.png') #የህትመት "ማህበራዊ አውታረ መረቦች አዝራር" sendToTwitter () sendToFacebook () camera.remove_overlay (o) GPIO.event_detected (cancelButton): #print "ተሰር "ል" camera.remove_overlay (oo) break # GPIOS GPIO.remove_event_detect (socialNetworkButton) GPIO.remove_event_detect (cancelButton) GPIO.remove_evente "ወጥቷል …") #offLeds () GPIO.cleanup ()

ደረጃ 12 - ሽቦ

Image
Image
ሽቦ
ሽቦ
ሽቦ
ሽቦ

ሽቦው ትልቁን ዶም ushሽ አዝራሮችን ወደ Raspberry PI ማገናኘት ብቻ ነው።

የ Fritzing Schematic ን ብቻ ይከተሉ።

ግንኙነቶች የሚከተሉት ናቸው

RRP ጂፒኦ ፒን GND አረንጓዴ የግፊት አዝራር GND (#3) GND ቢጫ የግፊት አዝራር GND (#9) GND ሰማያዊ የግፊት አዝራር GND (#39) ፎቶ አንሳ (ሰማያዊ የግፋ አዝራር “ለማድረግ ግፋ”) 17 (BCM) ወደ ማህበራዊ አውታረ መረቦች (አረንጓዴ ግፋ) አዝራር "ለማድረግ ግፋ") 23 (BCM) ሰርዝ (ቢጫ ግፊት አዝራር "ለማድረግ ግፋ") 24 (BCM) ሰማያዊ የግፊት አዝራር LED27 (BCM) አረንጓዴ የግፊት አዝራር LED22 (BCM) ቢጫ የግፋ አዝራር LED5 (BCM)

የሙቀት መቀነስ እንዲሁ በቀለም ኮድ ተሰጥቷል

  • ጥቁር የ GND ግንኙነቶች ነው
  • ቢጫ ግንኙነቶች “ለማድረግ ግፊት” ናቸው
  • ሰማያዊ የ LED ግንኙነቶች ናቸው

GPIO. BCM ቁጥሮች ከ GPIO. BOARD ግንኙነቶች ጋር

ግንኙነቶቼ ቢሲኤም ስለሆኑ ፣ ስለእሱ እና በቢሲኤም እና በቦርድ መካከል ስላለው ልዩነት አሁን ለመነጋገር ጥሩ ጊዜ ይመስለኛል።

ዋናው ልዩነት የ GPIO ፒኖችን እንዴት እንደሚያመለክቱ ነው ፣ ይህ ደግሞ ግንኙነቶችን እንዴት እንደሚያደርጉ ያሽከረክራል። GPIO.board በኢንተርኔት ላይ በማንኛውም የጂፒኦ አቀማመጥ ላይ በታተመው ቁጥር ፒኖቹን ይልካል።

GPIO. BCM ብሮድኮም ኤስኦሲ ሲያያቸው ወደ ፒን ቁጥሮች ይጠቅሳል። በአዲሱ የ Raspberry PI ስሪቶች ይህ ሊለወጥ ይችላል።

በ pinout.xyz ጣቢያ ላይ የቦርዱ ቁጥሮች ልክ ከፒንዎቹ ቀጥሎ ያሉት እና ቢሲኤም እንደዚያ የተጠቀሱት - ቢሲኤም ኤክስ (X ቁጥር ባለበት)

ደረጃ 13 - MagicBox

ከዚህ ደረጃ ጋር የተያያዘው ኮድ የመጨረሻው ነው።

መግባት ሳያስፈልግዎት በ raspberry PI ማስነሻ ላይ ማስኬድ ይችላሉ። ይህንን ለማድረግ ኮዱን ባስቀመጡበት ማውጫ ውስጥ ይህንን ትንሽ ስክሪፕት ይፍጠሩ - መንገዶችን በዚሁ መሠረት ይለውጡ

#!/ቢን/ባሽ

cd/home/pi/magicbox python MagicBox.py

እንዲተገበር ያድርጉት

chmod +x start_magicbox.sh

አሁን ፣ ከመውጫው 0 መመሪያ በፊት /etc/rc.local ውስጥ ይደውሉለት

sudo vi /etc/rc.local

/ቤት /pi/magicbox/start_magicbox.sh &

አስቀምጥ እና ተወው።

አሁን ፣ በእያንዳንዱ ዳግም ማስነሳት ፣ የ Python ፕሮግራም ይፈፀማል

ማሳሰቢያ: ሁሉም የምስል ፋይሎች እንደ ስክሪፕቱ በተመሳሳይ ማውጫ ውስጥ መሆን አለባቸው። ሊኖርዎት ይገባል:

  • 1.png
  • 2.png
  • 3.png
  • Aenviar.png
  • SelectOption.png

እነዚህን ሁሉ ፋይሎች በ MagicBox github ላይ ማግኘት ይችላሉ።

የሚመከር: