ዝርዝር ሁኔታ:

በምስጢር ክፍል የፊት ገጽታ መስታወት 15 ደረጃዎች (ከስዕሎች ጋር)
በምስጢር ክፍል የፊት ገጽታ መስታወት 15 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: በምስጢር ክፍል የፊት ገጽታ መስታወት 15 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: በምስጢር ክፍል የፊት ገጽታ መስታወት 15 ደረጃዎች (ከስዕሎች ጋር)
ቪዲዮ: Ethiopia:- የልደት ቀን እና ባህሪ በኮከብ ቆጠራ የተወለዱበት ወር ስለ እርሶ ይናገራል | Nuro Bezede Girls 2024, ሀምሌ
Anonim
የፊት እውቅና መስታወት ከሚስጥር ክፍል ጋር
የፊት እውቅና መስታወት ከሚስጥር ክፍል ጋር
የፊት እውቅና መስታወት ከሚስጥር ክፍል ጋር
የፊት እውቅና መስታወት ከሚስጥር ክፍል ጋር
የፊት እውቅና መስታወት ከሚስጥር ክፍል ጋር
የፊት እውቅና መስታወት ከሚስጥር ክፍል ጋር

በታሪኮች ፣ በፊልሞች እና በመሳሰሉት ውስጥ ጥቅም ላይ በሚውሉት ሁል ጊዜ የፈጠራ ምስጢራዊ ክፍሎች ሁል ጊዜ ይማርኩኝ ነበር። ስለዚህ ፣ የምሥጢር ክፍል ውድድርን ባየሁ ጊዜ እኔ እራሴ በሐሳቡ ለመሞከር እና ትክክለኛው ሰው ወደ እሱ ሲመለከት ሚስጥራዊ የጎን መሳቢያ የሚከፍት ተራ መስታወት ለመሥራት ወሰንኩ።

Raspberry Pi ን ፣ አንዳንድ የ Python ፕሮግራም ዕውቀትን ፣ እና የ 8 ኛ ክፍል የሱቅ ክፍልን በመጠቀም ፣ ትክክለኛው ተጠቃሚ ብቻ ሊደርስባቸው በሚችሉ ነገሮች ውስጥ ነገሮችን ለመደበቅ ይህንን ፈጣን መሣሪያ መፍጠር እንችላለን።

መረጃዬን እና ሀብቶቼንም ያገኘሁበት ለእነዚህ ሰዎች/መድረኮች ልዩ ምስጋና ማቅረብ እፈልጋለሁ -

TeCoEd - የ Youtube ሰርጥ

እሜቴ ከ PiMyLifeUp

MJRoBot በ Hackster.io (መገለጫ)

ጌቨን ማክዶናልድ - የዩቲዩብ ቻናል

ቱከር ሻነን በ Thingiverse (መገለጫ)

አቅርቦቶች

የክፈፍ አቅርቦቶች;

  • የእንጨት ፕላንክ (የዚህ ሰሌዳ ልኬቶች 42 "በ 7.5" በ 5/16 ")
  • የእርሳስ ስዕል ፍሬም (ከመስታወት ጋር)
  • የሚረጭ ቀለም
  • አንድ መንገድ አንፀባራቂ ማጣበቂያ
  • የመስታወት ማጽጃ እና ብልጭታ
  • ኤምዲኤፍ እንጨት

የፊት ለይቶ ማወቅ አቅርቦቶች;

  • Raspberry Pi (እኔ Pi 3 B+ ን እጠቀም ነበር ግን ሌሎች አማራጮች አሉ)
  • የካሜራ ሞዱል
  • Stepper ሞተር

መሣሪያዎች ፦

  • ሠንጠረዥ አይቷል
  • ጂግ ሾው
  • የአሸዋ ወረቀት
  • ሙጫ ቴፕ
  • ይለኩ
  • መቀሶች
  • የሚረጭ ጠርሙስ
  • 3 ዲ አታሚ
  • ልዕለ ሙጫ

ደረጃ 1 ለሳጥን ፍሬም ቁርጥራጮች

ለሳጥን ፍሬም ቁርጥራጮች
ለሳጥን ፍሬም ቁርጥራጮች
ለሳጥን ፍሬም ቁርጥራጮች
ለሳጥን ፍሬም ቁርጥራጮች
ለሳጥን ፍሬም ቁርጥራጮች
ለሳጥን ፍሬም ቁርጥራጮች
ለሳጥን ፍሬም ቁርጥራጮች
ለሳጥን ፍሬም ቁርጥራጮች

ከሁለተኛው እጅ መደብር የምስል ፍሬም ገዛሁ። ማስጠንቀቂያ ብቻ ፣ ክፈፉን የያዙት ሳንቆች ቢያንስ 1 1/2 “ስፋት እንዳላቸው ያረጋግጡ። ይህ የሚሠራበት በቂ ቦታ ባለው ቦታ ላይ ሌሎች የእንጨት ሰሌዳዎችን ማጣበቅ እንዲችሉ ነው። እንዲሁም ፣ መስታወቱን በውስጡ ያረጋግጡ ክፈፉ ሙሉ በሙሉ ግልፅ ነው። በአጋጣሚ የቀዘቀዘውን ገዝቼ ከዚያ ለንጹህ መስታወት ብቻ ሌላ ክፈፍ መግዛት ነበረብኝ።

  • ክፈፉን በቁመት አቀማመጥ ላይ ያድርጉት። በሁለቱም የላይኛው እና የታችኛው ክፍል ላይ በማዕቀፉ ላይ ያለውን የመስታወት ቀዳዳ ጎን ረዣዥም ጎኖች (ኤል.ኤስ.) ይለኩ። (ማለትም በመስታወቱ ቀዳዳ ልኬት ረጅም ጎን ላይ አንድ ኢንች ያክሉ። ይህንን ይመዝግቡ እና LSM (ረጅም የጎን ልኬት) ይለጥፉ።
  • በተመሳሳይ ፣ የጉድጓዱን የላይኛው ጎን ይለኩ እና ተጨማሪ 1”ይጨምሩ። ይህንን ይመዝግቡ እና ኤስ.ኤስ.ኤም. (የአጭር ጎን መለካት) የሚል ምልክት ያድርጉ።
  • ሰሌዳዎን ያግኙ እና በጠረጴዛ መጋዝ ፣ ሁለት LSM x 2”እና ሁለት SSM x 2” ይቁረጡ።
  • ከኤል.ኤስ.ኤም.ኤም ቁርጥራጮች አንዱን ይውሰዱ እና ከታች 2”x1” አራት ማእዘን እና 1 is ከግራ እና ከቀኝ ጎኖች (በምስል 3 እንደሚታየው) ይለኩ።
  • ቀዳዳውን ለመቁረጥ ጂፕስ ይጠቀሙ። ከዚያ ጠርዞቹን ለማውጣት የአሸዋ ወረቀቱን ይጠቀሙ።

ደረጃ 2 - ለመሳቢያ ቁርጥራጮች

ለመሳቢያ ቁርጥራጮች
ለመሳቢያ ቁርጥራጮች
ለመሳቢያ ቁርጥራጮች
ለመሳቢያ ቁርጥራጮች
ለመሳቢያ ቁርጥራጮች
ለመሳቢያ ቁርጥራጮች
ለመሳቢያ ቁርጥራጮች
ለመሳቢያ ቁርጥራጮች

አሁን መሳቢያውን (ሚስጥራዊ ክፍልን) መገንባት እንጀምራለን።

  • ሁለት 4”x 1” ጎኖችን ፣ 3 ⅜”x 1” (የኋላ ጠርዝ) ፣ 4 ¼”x 1 ¼” (የፊት ጠርዝ) እና 4”x 3 ⅜” (መድረክ) ይቁረጡ።
  • የመጀመሪያውን 4 "x 1" ጎን በ "4" የመድረክ ጎን በኩል ያያይዙት። ከመድረክ ጎን ስር አንድ ሁለት የታጠፉ ወረቀቶችን አኖርኩ ስለዚህ ትንሽ ከፍ እንዲል ተደርጓል ፣ በዚህ መንገድ በኤል ኤስ ፕላንክ ውስጥ ባቆረጥኩት ቀዳዳ ላይ አይጎተትም። ለ 30 ደቂቃዎች ለማድረቅ ያዘጋጁ።
  • በተመሳሳይ ፣ ከመድረኩ 3 ⅜”ጠርዝ ጋር 3 ⅜” x 1”ን ይለጥፉ። ለ 30 ደቂቃዎች ለማድረቅ ያዘጋጁ። ከዚያም በሁለተኛው 4 "x 1" ጎን ከመጀመሪያው ተቃራኒው ጎን ይለጥፉ። ለ 30 ደቂቃዎች ለማድረቅ ያዘጋጁ።
  • ለአሁን የፊት ጠርዝን ለጎን ያስቀምጡ። በመሳቢያው ላይ የተጣበቀው የመጨረሻው ነገር ይሆናል።
  • ሲጨርሱ ፣ ወደ ኤል.ኤስ.ኤም.ኤም.ኤል ፕላንክ ውስጥ ካስገቡት ቀዳዳ ጋር የሚስማማ መሆኑን ያረጋግጡ። ካልሆነ ፣ መሳቢያው በቀላሉ ወደ ውስጥ እና ወደ ውስጥ እስኪያልፍ ድረስ ጉድጓዱን አሸዋው ፣ እና ምንም መጎተት የለም።

ደረጃ 3 ፍሬሙን አንድ ላይ ማዋሃድ

ክፈፉን አንድ ላይ ማዋሃድ
ክፈፉን አንድ ላይ ማዋሃድ
ክፈፉን አንድ ላይ ማዋሃድ
ክፈፉን አንድ ላይ ማዋሃድ
ክፈፉን አንድ ላይ ማዋሃድ
ክፈፉን አንድ ላይ ማዋሃድ

ሁሉም ክፍሎች ከተጠናቀቁ በኋላ የክፈፉን ሙሉ መሰብሰብ መጀመር እንችላለን።

  • የ LSM ጣውላውን ከግራ መስታወት ቀዳዳ ጋር ያያይዙት each”በእያንዳንዱ ጎን። ከጉድጓዱ (በሥዕል 1 እንደሚታየው) በ ½”ተጣብቆ መሆኑን ያረጋግጡ። ለ 30 ደቂቃዎች ለማድረቅ ያዘጋጁ።
  • ልክ ተጣብቆ የነበረውን የኤል.ኤስ.ኤም. (ቀጥ ብሎ መለጠፉን ለማረጋገጥ ገዥውን ይጠቀሙ)። ለ 30 ደቂቃዎች ለማድረቅ ያዘጋጁ።
  • ሌላውን የ LSM ጎን ይውሰዱ እና ከመጀመሪያው ጋር ተመሳሳይ የሆነ ሙጫ። ከጉድጓዱ ርቆ ½”መሆኑን እና ልክ ተጣብቆ የነበረው ኤስ.ኤስ.ኤም. በፕላኑ ውስጠኛ ክፍል ላይ እንደተጣበቀ ያረጋግጡ። ለ 30 ደቂቃዎች ለማድረቅ ያዘጋጁ።
  • የላይኛውን ጠርዝ ላይ ያለውን የመጨረሻውን ኤስ.ኤስ.ኤም. በሁለቱም በኩል ሁለት LSM ስላለዎት ፣ እርስዎ በቀጥታ ባያያ attachedቸው መሠረት ፣ እሱ የሚስማማ መሆኑን ለማረጋገጥ የ SSM ጎኖቹን ወደ ታች አሸዋ ማድረግ ያስፈልግዎታል (የእኔ መቁረጥ አንዳንድ ጊዜ ጠፍቷል)። ለ 30 ደቂቃዎች ለማድረቅ ያዘጋጁ።
  • በመሳቢያው ታች እና በማዕቀፉ መካከል ያለውን ትንሽ ቦታ ይለኩ። በዚህ ልኬት የ MDF እንጨትን ቁራጭ በ 4”ይቁረጡ። ይህንን ቁራጭ ወደ መሳቢያው ቅርብ ማድረግ ይፈልጋሉ ግን አይነኩትም። መሳቢያውን በትንሹ ግጭት ለመደገፍ የታሰበ ነው።
  • ሁሉም ሲጨርሱ ፣ ሁሉም ቁርጥራጮች እንዲዛመዱ ክፈፉን ቀለም ቀባው።

ደረጃ 4 ለመስተዋት

ለመስተዋት
ለመስተዋት
ለመስተዋት
ለመስተዋት
ለመስተዋት
ለመስተዋት
ለመስተዋት
ለመስተዋት

ከአማዞን የገዛሁት የአንድ አቅጣጫ ፊልም ማጣበቂያ 10 ዶላር አካባቢ ነበር። ፍላጎት ካሳዩ ትንሽ የበለጠ ውድ የሆኑ ጥራት ያላቸው አሉ። እኔ የምጠቀምበት ያንፀባርቃል ነገር ግን እርስዎ በቤት ውስጥ የሚያዩት መደበኛ መስታወት አይደለም ማለት ይችላሉ። በጣም ውድ የሆኑት ያንን መልክ ያገኙልዎታል።

  • በሁለቱም በኩል በመስታወት ማጽጃ መስታወቱን ያፅዱ።
  • ባለአንድ አቅጣጫ ማጣበቂያውን ይክፈቱ እና ብርጭቆውን በላዩ ላይ ያድርጉት። በመስታወቱ በእያንዳንዱ ጎን ቢያንስ ½”ትርፍ እንዲኖር ማጣበቂያውን ይቁረጡ።
  • ብርጭቆውን ወደ ጎን አስቀምጠው አንዱን ጎን በውሃ ያጠቡ። ከዚያ የፕላስቲክ ሽፋኑን ከአንድ አቅጣጫ ማጣበቂያ ላይ ይንቀሉት እና አዲስ የተጋለጠውን ጎን በውሃ ይረጩ።
  • የመስታወቱን እርጥብ ጎን በማጣበቂያው እርጥብ ጎን ላይ ያድርጉት። ለ 30 ደቂቃዎች ያህል ይቆዩ።
  • ወደላይ ያንሸራትቱ እና በማጣበቂያው እና በመስታወቱ መካከል ማንኛውንም አረፋ ለመጠፍጠፍ አውራ ጣትዎን ይጠቀሙ። ከዚያ ከመጠን በላይ ማጣበቂያውን ከጠርዙ ዙሪያ ይቁረጡ።

ደረጃ 5: Raspbian Stretch ን ይጫኑ

ወደ Raspberry Pi አከባቢ ውስጥ ለመጀመሪያ ጊዜ ስገባ ስርዓተ ክወናውን እንዴት እንደሚጭኑ መመሪያዎችን መፈለግ ጀመርኩ። በ ‹‹Tort›› ላይ ‹ስትራክ› በ SD ካርድ ላይ (በጣም በሚያምር መግቢያም እንዲሁ) የተጫነበትን በ TeCoEd በ Youtube ላይ ቀጥ ያለ አጋዥ ስልጠና አገኘሁ። የዚያ መማሪያ አገናኝ እዚህ አለ

በመሠረቱ ፣ ማድረግ ያለብዎት-

  • የእርስዎን Drive >> Drive Tools >> ቅርጸት በመምረጥ የኤስዲ ካርዱን ቅርጸት ይስጡት። ለ Raspian Stretch የዚፕ ፋይልን ያውርዱ (እዚህ ይገኛል
  • የስርዓተ ክወናውን ምስል ወደ ኤስዲ ካርድ ያብሩ። TeCoEd ይህንን ለማጠናቀቅ Win32 Disk Imager ን ተጠቅሟል። እኔ ትንሽ የበለጠ ቀጥተኛ የሚመስለውን balenaEtcher ን ለመጫን አበቃሁ። (ለ balenaEtcher የማውረጃ አገናኝ እዚህ አለ
  • በ balenaEtcher ውስጥ “Flash From File” ን ይምረጡ እና ቀደም ሲል የወረደውን ዚፕ ፋይል ይምረጡ። በመቀጠል ተፈላጊውን የ SD ካርድ ይምረጡ (በራስ -ሰር ካልተመረጠ)። ከዚያ ጭማቂውን የፍላሽ ቁልፍን ይምቱ እና አስማቱ እስኪከሰት ድረስ ይጠብቁ።

በኤስዲ ካርድ ላይ አንዴ ከተጫነ ወደ Raspberry Pi ውስጥ ማስገባት እና አጠቃላይ የ Pi ማዋቀር ሂደቱን ማለፍ ይችላሉ።

ደረጃ 6: OpenCV ን ይጫኑ

አሁን ወደ ይበልጥ የፊት-እውቅና-ተኮር ክፍሎች። ፊቶችን ለመለየት ከኮምፒዩተር እይታ ጋር ለመስራት እጅግ በጣም ብዙ መሣሪያዎችን የያዘውን የ OpenCV ቤተ -መጽሐፍትን ማውረድ አለብን።

ለእኔ OpenCV ን መጫን የሶፍትዌሩ ገጽታ በጣም አድካሚ አካል ነበር። ግን ብዙ መመሪያዎችን ከተከተልኩ በኋላ እዚህ የሚገኘውን ብልሃትን የሠራ ከኤምኤም ከ PiMyLifeUp ትምህርት አግኝቻለሁ-

ከአገናኙ (እነሱን በተሰጡት ማብራሪያዎች እና የበለጠ በቀላሉ ከጣቢያው በቀጥታ የመገልበጥ እና የመለጠፍ ችሎታ) ስለሚከተሉዎት በእነዚህ ደረጃዎች አልራመድም።

ደረጃ 7 ካሜራውን አንቃ/ሞክር

ካሜራውን አንቃ/ሞክር
ካሜራውን አንቃ/ሞክር
ካሜራውን አንቃ/ሞክር
ካሜራውን አንቃ/ሞክር

OpenCV ከተጫነ በኋላ የቀረኝ ጉዞ እዚህ ላይ ተገኝቷል።

እኛ ከመጀመራችን በፊት እኔ የእነዚህ ስክሪፕቶች የመጀመሪያ ፈጣሪ አይደለሁም ነገር ግን የእነሱን ክፍሎች ማሻሻል እንደሆንኩ ላስታውስዎት እፈልጋለሁ።

ለመጀመር በማያ ገጹ ላይ ቪዲዮ መቅረጽ መቻሉን ለማረጋገጥ ካሜራውን መሞከር አለብን። በ MJRoBot ደረጃ 3 የቀረበውን ስክሪፕት ለማሄድ በመሞከር አንድ ሰዓት ያህል አሳልፌአለሁ። ሕይወት እንደሚኖረን እኛ ካሜራውን በ Raspberry Pi ላይ ማንቃት አለብን (የቀረቡ መመሪያዎችን ማንበብ ጥሩ ሀሳብ ሊሆን ይችላል… mmm nah)። ስለዚህ ካሜራውን ከትክክለኛው ወደብ ጋር ካገናኙ በኋላ የሚከተሉትን ደረጃዎች ይከተሉ

  • የትእዛዝ ተርሚናል ይክፈቱ እና sudo raspi-config ይተይቡ
  • «ካሜራ አንቃ» ን ይምረጡ (ይህ በመሣሪያዎች አማራጭ ስር ሊገኝ ይችላል)
  • “ግባ” ን ይምቱ
  • ወደ “ጨርስ” ይሂዱ እና እንደገና እንዲነሳ ይጠየቃሉ

ከዚያ የሚከተሉትን ደረጃዎች ይከተሉ

  • ወደ Raspberry's Main Menu (ከላይ በስተግራ) ይሂዱ
  • ምርጫዎች
  • Raspberry Pi ውቅር
  • በይነገጾች
  • ከዚያ በካሜራ ውስጥ “ነቅቷል” ን ይምረጡ
  • ከዚያ “እሺ”

ካሜራውን ለመፈተሽ አሁን ይህንን ስክሪፕት ከ MJRoBot አጋዥ ስልጠና በተሳካ ሁኔታ ማስኬድ መቻል አለብዎት (ያስታውሱ ይህ ሁሉ ኮድ እና የበለጠ ጥልቀት ያለው መግለጫ ከላይ በተሰጠው አገናኝ ውስጥ ለ MJRobot አጋዥ ስልጠና ይገኛል)።

ቁጥርን እንደ np ያስመጡ

ማስመጣት cv2 cap = cv2. VideoCapture (0) cap.set (3, 640) # set Width cap.set (4, 480) # set Height while (True): ret, frame = cap.read () frame = cv2. Flip (ፍሬም ፣ -1) # Flip ካሜራ በአቀባዊ ግራጫ = cv2.cvtColor (ፍሬም ፣ cv2. COLOR_BGR2GRAY) cv2.imshow ('ፍሬም' ፣ ፍሬም) cv2.imshow ('ግራጫ' ፣ ግራጫ)) & 0xff ከሆነ k == 27: # የእረፍት ጊዜን ለመተው 'ESC' ን ይጫኑ። (cv2.destroyAllWindow ()

የቀደመው ኮድ ሁለት መስኮቶችን ማሳየት አለበት ፣ አንደኛው በቀለም እና ሌላኛው በግራሹ ውስጥ። ይህንን እስከዚህ ድረስ ካደረጉት ጥሩ ሳንድዊች የሚገባዎት ይመስለኛል።

ደረጃ 8 የውሂብ እና የስልጠና መረጃን መሰብሰብ

መረጃን እና የስልጠና መረጃን መሰብሰብ
መረጃን እና የስልጠና መረጃን መሰብሰብ
መረጃን እና የስልጠና መረጃን መሰብሰብ
መረጃን እና የስልጠና መረጃን መሰብሰብ
መረጃን እና የስልጠና መረጃን መሰብሰብ
መረጃን እና የስልጠና መረጃን መሰብሰብ

በተሰጠው መማሪያ ውስጥ ደራሲው በቅርቡ ስለሚሰጡት የኮድ ሂደቶች የበለጠ ወደ ጥልቅ ይሄዳል ፣ ግን እነዚህ መስታወቶች እንዴት እንደተሠሩ ላይ መመሪያዎች ስለሆኑ በታሪክም ሆነ በተወሳሰቡ መካኒኮች ውስጥ ጥልቀት አልገባም። ሆኖም አእምሮዎን በጥሩ ሁኔታ ማገልገል ስለሚችሉ ስለእነዚህ ሁለት ነገሮች እንዲያነቡ በሕይወትዎ አንድ ወር እንዲወስዱ እመክራለሁ።

ይህ ሁሉ እንዲሠራ ከማድረጋችን በፊት ለማሄድ ሦስት ተጨማሪ ስክሪፕቶች አሉ። የመጀመሪያው መረጃን ለመሰብሰብ ፣ ሁለተኛው እሱን ለማሠልጠን እና የመጨረሻው በእውነቱ ዕውቅና ለማግኘት ነው። መረጃን መሰብሰብ የፊት ሥዕሎች ትክክለኛ ሥዕሎች ተወስደው ለሥልጠና በተወሰነ ቦታ እንዲቀመጡ ይጠይቃል። የዚህ ኮድ ፈጣሪ ይህንን ሁሉ ለማከናወን በጣም ቀላል አድርጎታል ስለዚህ ራስ ምታትን ለማስወገድ እነዚህን መመሪያዎች እንዲከተሉ እመክራለሁ።

የትእዛዝ መስመርን ይክፈቱ እና የሚያስደስት ነገር እንዲሰይሙበት አዲስ ማውጫ ያድርጉት (የእኔን FaceRec ብዬ ጠራሁት)

mkdir FaceRec

አሁን ማውጫውን ወደ FaceRec ይለውጡ እና የውሂብ ስብስቡን መሰየሙን እርግጠኛ በመሆን ንዑስ ማውጫ ያድርጉ።

ሲዲ FaceRec

mkdir የውሂብ ስብስብ

እኛ በዚህ ላይ ሳለን ፣ ሌላውን ንዑስ ማውጫ የተሰየመ አሰልጣኝ ማድረግም እንችላለን።

mkdir አሰልጣኝ

አሁን መሮጥ እና የተጠቃሚ ስእሎችን የሚይዝ የመጀመሪያውን ስክሪፕት አቅጣጫዎችን መከተል ይችላሉ። (ልክ ወደላይ ፣ የተጠቃሚ መታወቂያውን እንደ 1 ፣ 2 ፣ 3 ወዘተ ማስገባትዎን እርግጠኛ ይሁኑ)

ማስመጣት cv2import os cam = cv2. VideoCapture (0) cam.set (3, 640) # አዘጋጅ የቪዲዮ ስፋት cam.set (4, 480) # አዘጋጅ የቪዲዮ ቁመት face_detector = cv2. CascadeClassifier ('haarcascade_frontalface_default.xml') # ለእያንዳንዱ ሰው ፣ አንድ የቁጥር ፊት መታወቂያ face_id = ግቤት ('\ n enter id id end press ==>') ህትመት ("\ n [INFO] የፊት መቅረጽን በማስጀመር ላይ። ካሜራውን ይመልከቱ እና ይጠብቁ …") # የግለሰብ ናሙና የፊት ቁጥርን ያስጀምሩ ቆጠራ = 0 በሚሆንበት ጊዜ (እውነት) ፦ ret ፣ img = cam.read () img = cv2.flip (img ፣ -1) # የቪዲዮ ምስል በአቀባዊ ግራጫ = cv2.cvtColor (img ፣ cv2. COLOR_BGR2GRAY) ፊቶች = የፊት_ዲክተር። (ግራጫ ፣ 1.3 ፣ 5) ለ (x ፣ y ፣ w ፣ h) በፊቶች ውስጥ: cv2. rectangle (img ፣ (x ፣ y) ፣ (x+w ፣ y+h) ፣ (255 ፣ 0 ፣ 0)) 2) ቆጠራ + = 1 # የተያዘውን ምስል ወደ የውሂብ ስብስቦች አቃፊ cv2.imwrite ("የውሂብ ስብስብ/ተጠቃሚ።" + str (face_id) + '.' + Str (ቆጠራ) + ".jpg" ፣ ግራጫ [y: y +h ፣ x: x+w]) cv2.howhow ('ምስል' ፣ img) k = cv2.waitKey (100) & 0xff # ቪዲዮን ለመውጣት 'ESC' ን ይጫኑ k == 27 ፦ የኤልፍ ቆጠራን ያቋርጡ> = 30: # 30 የፊት ናሙና ይውሰዱ እና የቪዲዮ መቋረጥን ያቁሙ k ህትመት ("\ n [INFO] መውጫ ፕሮግራም እና የጽዳት ዕቃዎች") cam.release () cv2.destroyAllWindow ()

በዚህ ጊዜ ትራስ በ Pi ላይ መጫኑን ያረጋግጡ። ካልሆነ ትዕዛዙን ያሂዱ-

የቧንቧ መጫኛ ትራስ

ያ ከተጠናቀቀ በኋላ በመጨረሻው ስክሪፕት ውስጥ ጥቅም ላይ የሚውል የ.yaml ፋይል ያለምንም ችግር የሚያቀርብልዎትን የስልጠና ስክሪፕት (ሁለተኛ ስክሪፕት) ማካሄድ ይችላሉ።

ከፒል ማስመጣት cv2import numpy እንደ np አስመጣ የምስል ማስመጣት os # መንገድ ለፊት ምስል የውሂብ ጎታ ዱካ = 'የውሂብ ስብስብ' መታወቂያ = cv2.face. LBPHFaceRecognizer_create () detector = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml"); ምስሎችን እና የመለያ ውሂብን def getImagesAndLabels (ዱካ) ለማግኘት # ተግባር - imagePaths = [os.path.join (መንገድ ፣ ረ) ለ f በ os.listdir (መንገድ)] faceSamples = ids = ለ imagePath በምስል መንገዶች: PIL_img = ምስል። ተከፋፍሏል (".") [1]) ፊቶች = detector.detectMultiScale (img_numpy) ለ (x, y, w, h) ፊቶች ላይ: faceSamples.append (img_numpy [y: y+h, x: x+w]) ids.append (መታወቂያ) የመመለሻ ፊት ናሙናዎች ፣ የመታወቂያዎች ህትመት ("\ n [INFO] የስልጠና ፊቶች። ጥቂት ሰከንዶች ይወስዳል። ይጠብቁ …") ፊቶች ፣ ids = getImagesAndLabels (ዱካ) ለይቶ ማወቅ። ስልጠና (ፊቶች ፣ np.array (መታወቂያዎች)) # ሞዴሉን ወደ አሰልጣኝ/trainer.yml recognizer.write ('አሰልጣኝ/trainer.yml') # recognizer.save () በ Mac ላይ ሰርቷል ፣ ግን በ Pi ላይ አይደለም # የሰለጠኑ እና የተጠናቀቁ የፕሮግራም ህትመቶችን ቁጥር ያትሙ። ("\ n [INFO] {0} የሰለጠኑ ፊቶች። መውጫ ፕሮግራም"

በዚህ የስክሪፕቶች ስብስብ አሪፍ የሆነው ብዙ ፊቶች ወደ ስርዓቱ ውስጥ መግባታቸው ማለት ብዙ ግለሰቦች የመስተዋቱን ውስጠቶች ማግኘት ከፈለጉ ማለት ነው።

ከታች እኔ የውሂብ ቀረፃ ስክሪፕት እና የሥልጠና ስክሪፕት ለማውረድ ይገኛል።

ደረጃ 9 የፊት መታወቂያ ጊዜ

የፊት መታወቂያ ጊዜ
የፊት መታወቂያ ጊዜ
የፊት መታወቂያ ጊዜ
የፊት መታወቂያ ጊዜ

በመጨረሻም ፣ የመታወቂያ ስክሪፕቱን ማካሄድ እንችላለን። የሞተር ሂደቱን እንዲሠራ ለማድረግ ተጨማሪ ኮድ ወደዚህ ስክሪፕት ተጨምሯል ፣ ስለዚህ እነዚያን ክፍሎች በጥቂቱ በደንብ እገልጻለሁ። እኔ ወደ ክፍሎች እከፋፈለው ነገር ግን እርስዎ የሚፈልጉት ከሆነ በደረጃው መጨረሻ ላይ ሙሉውን ስክሪፕት አኖራለሁ።

እኛ የምንፈልጋቸውን ሁሉንም ሞጁሎች በማስመጣት እንጀምራለን እና ከዚያ የ GPIO ሁነታን ወደ GPIO. BCM በማቀናበር እንጀምራለን።

ቁጥርን እንደ np ያስመጡ

የማስመጣት os የማስመጣት ጊዜ አስመጪ RPi. GPIO እንደ GPIO GPIO.setwarnings (ሐሰት) GPIO.setmode (GPIO. BCM)

ይህ ቀጣዩ ዝርዝር ControlPin ተብሎ የሚጠራው ለዝግጅት ሞተራችን የሚያገለግሉ የውጤት ፒኖችን የሚወክል የቁጥር ድርድር ነው።

ControlPin = [14, 15, 18, 23]

ፎር-loop እነዚህን ካስማዎች እንደ ውፅዓት ያዘጋጃቸዋል እና ከዚያ እነሱ መዘጋታቸውን ያረጋግጣል። መሳቢያውን በአንድ አዝራር ግፊት ለመዝጋት አሁንም እዚህ ውስጥ አንድ ኮድ አለኝ ነገር ግን በምትኩ ሰዓት ቆጣሪ ለመጠቀም ወሰንኩ።

GPIO.setup (ControlPin ፣ GPIO. OUT)

GPIO.output (ControlPin ፣ 0) GPIO.setup (2 ፣ GPIO. IN ፣ pull_up_down = GPIO. PUD_DOWN)

የሚቀጥሉት ሁለት ተለዋዋጮች ሞተሩን ለመንዳት የምንጠቀምባቸው ቅደም ተከተሎች ናቸው። ይህንን መረጃ የተማርኩት በጌቨን ማክዶናልድ ከኮቪዱ ብቻ ሳይሆን ከትክክለኛው ሞተር ጋር በጥልቀት ሲገባ እንዲመለከት በጣም እመክራለሁ (እዚህ ተገኝቷል https://www.youtube.com/embed/Dc16mKFA7Fo). በመሰረቱ ፣ እያንዳንዱ ቅደም ተከተል በመጪው openComp እና closeComp ተግባራት ውስጥ ጎጆውን ለ-loops በመጠቀም ይደገማል። በቅርበት የምትመለከቱ ከሆነ seq2 ከ seq1 ጋር ፍጹም ተቃራኒ ነው። አዎ ፣ እርስዎ ገምተውታል። አንደኛው ሞተሩን ወደ ፊት ለማንቀሳቀስ እና ሌላኛው ደግሞ ለተገላቢጦሽ ነው።

seq1 =

[1, 1, 0, 0], [0, 1, 0, 0], [0, 1, 1, 0], [0, 0, 1, 0], [0, 0, 1, 1], [0, 0, 0, 1], [1, 0, 0, 1],]

seq2 =

[0, 0, 1, 1], [0, 0, 1, 0], [0, 1, 1, 0], [0, 1, 0, 0], [1, 1, 0, 0], [1, 0, 0, 0], [1, 0, 0, 1],]

ከ openComp ተግባራችን ጀምሮ 1024 ጊዜ የሚደጋገም ፎር-ሉፕ እንፈጥራለን። በማክዶናልድ ቪዲዮ 512 ድግግሞሽ መሠረት የሞተርን ሙሉ ሽክርክሪት ይሰጣል እና ሁለት ሽክርክሮች ጥሩ ርዝመት እንደነበረ አገኘሁ ግን ይህ በግለሰብ መጠን ላይ በመመስረት ሊስተካከል ይችላል። በሴክ 1 እና በሴክ 2 ውስጥ የተገኙትን 8 ድርድሮች ለመቁጠር ቀጣዩ-ዙር loop 8 ድግግሞሾችን ያካተተ ነው። እና በመጨረሻም ፣ የመጨረሻው for-loop በእያንዳንዱ በእነዚህ ድርድሮች ውስጥ ለሚገኙት አራቱ ዕቃዎች እንዲሁም የእኛ ሞተር የተገናኘን 4 ጂፒኦ ፒኖች አራት ጊዜ ይደግማል። ከዚህ በታች ያለው መስመር የጂፒኦ ፒን ይመርጣል እና ከዚያ በየትኛው ድግግሞሽ ላይ በመመስረት ያብሩት ወይም ያጥፉት። ሞተሩ ጨርሶ እንዳይሽከረከር መስመሩ በኋላ የተወሰነ የመጠባበቂያ ጊዜን ይሰጣል። መሳቢያውን ለማንቀሳቀስ ሞተሩ ከተሽከረከረ በኋላ ከመቀጠሉ በፊት ለ 5 ሰከንዶች ይተኛል። ይህ ጊዜ እዚህ ሊስተካከል ይችላል ወይም ከሰዓት ቆጣሪ ይልቅ በስክሪፕቱ ለማስተላለፍ የግፊት ቁልፍን ለመጠቀም የሚያስችል አስተያየት የተሰጠበትን ኮድ ማንቃት ይችላሉ።

በእኔ ክልል ውስጥ (1024)

በክልል (8) ውስጥ ለግማሽ ደረጃ (ለ 4) GPIO.output (ControlPin [pin] ፣ seq1 [halfstep] [pin]) time.sleep (.001)”’’while True: GPIO.input (2) == GPIO. LOW: እረፍት; '' ጊዜ. እንቅልፍ (5)

የ closeComp ተግባር በተመሳሳይ ሁኔታ ይሠራል። ሞተሩ ወደ ኋላ ከተመለሰ በኋላ ምንም ዓይነት ጉልበት እንዳላባክን ለማረጋገጥ የመጨረሻውን የጂፒኦ ፒኖቻችንን ወደ ዝቅተኛ ዝቅ ማድረጉን እቀጥላለሁ እና ከዚያ ከመቀጠሌ በፊት ሶስት ተጨማሪ ሰከንዶች ጊዜ እጨምራለሁ።

በእኔ ክልል ውስጥ (1024)

በክልል (8) ውስጥ ለግማሽ እርምጃ (በክልል) ውስጥ ለፒን (4) ፦ GPIO.output (ControlPin [pin] ፣ seq2 [halfstep] [pin]) time.sleep (.001) print (“Compartment ዝግ”) GPIO.output (ControlPin [0], 0) GPIO.output (ControlPin [3], 0) time.sleep (3)

የሚቀጥለው ክፍል አብዛኛው ካሜራውን ለማዋቀር እና የፊት ለይቶ ማወቅን ለመጀመር ያገለግላል። እንደገና ፣ የ MKRoBot መመሪያዎች የበለጠ ወደ ክፍሎች ውስጥ ይገባሉ ፣ ግን ለአሁን ፣ እኔ ለመስታወቱ ጥቅም ላይ የዋሉትን ክፍሎች ብቻ እያሳየሁ ነው።

ውሂቡን በሚሰበስብበት ጊዜ እኔ በሰጠሁት መረጃ ጠቋሚ ውስጥ እንዲገኝ መጀመሪያ የዝርዝሮችን ስሞች ቀይሬያለሁ (በእኔ ሁኔታ 1)። እና ከዚያ በውሂብ ስብስብ ውስጥ ምንም ፊቶች ስላልነበሩ የተቀሩትን እሴቶች ወደ አንድ አደረግኩ።

ስሞች = ['የለም' ፣ 'ዳንኤል' ፣ 'የለም' ፣ 'የለም' ፣ 'የለም' ፣ 'የለም']

የመጨረሻዎቹ የኮድ መስመሮቻችን በ thicc for-loop ውስጥ ይተገበራሉ። ተለዋዋጭ መተማመን ወደ ሕብረቁምፊ ከመቀየሩ በፊት በራስ መተማመንን እንደ ኢንቲጀር (intConfidence) ለማከማቸት ተለዋዋጭ ፈጠርኩ። ከዚያ በራስ መተማመን ከ 30 የሚበልጥ መሆኑን እና መታወቂያ (የትኛው ሰው ኮምፒዩተሩ እያወቀ ነው ፣ በዚህ ጉዳይ ላይ “ዳንኤል”) ከስሜ ጋር እኩል መሆኑን ለመፈተሽ if-statement የሚለውን እጠቀማለሁ።ይህ ከተረጋገጠ በኋላ ክፍት (ኮምፓምፕ) ተብሎ የሚጠራው (ቀደም ሲል እንደተገለፀው) ሞተሩን የሚያንቀሳቅስ ፣ ከ 5 ሰከንዶች በኋላ የሚነሳ እና ከዚያ ወደ መዘጋት የሚሄደው ሞተሩን ወደ ተቃራኒው አቅጣጫ የሚያንቀሳቅሰው እና በ thicc loop ከመቀጠልዎ በፊት አንዳንድ ማፅዳትን የሚያደርግ ነው።

intConfidence> 30 እና id == 'ዳንኤል':

openComp () closeComp ()

እዚህ ያገኘሁት ሳንካ አንዳንድ ጊዜ ከኮምፒ ኮም ከተመለሰ በኋላ ኮዱ ይቀጥላል ፣ ግን ሁኔታዊ ከሆነ-መግለጫው አሁንም በማጠራቀሚያው ውስጥ ያለውን የቪዲዮ ምግብ እያነበበ እንደ ሆነ እንደገና እውነት ሆኖ ተገኝቷል። ምንም እንኳን በጭራሽ እንዳይከሰት ለማረጋገጥ መንገድ ባገኘሁ ቁጥር ባይከሰትም ፣ ስለዚህ ማንኛውም ሀሳብ ያለው ካለ በአስተያየቶቹ ውስጥ ያሳውቀኝ።

ያ ሙሉ ስክሪፕት ሁሉም በአንድ ቦታ ነው (እና ከዚህ በታች ማውረድ ነው)

ማስመጣት cv2

ማስመጣት numpy እንደ np ማስመጣት ኦኤስ የማስመጣት ጊዜ ማስመጣት RPi. GPIO እንደ GPIO GPIO.setwarnings (ሐሰት) GPIO.setmode (GPIO. BCM) ControlPin = [14, 15, 18, 23] ለኔ በክልል (4): GPIO.setup (ControlPin ፣ GPIO. OUT) GPIO.output (ControlPin ፣ 0) GPIO.setup (2 ፣ GPIO. IN ፣ pull_up_down = GPIO. PUD_DOWN) seq1 =

ደረጃ 10 Pi ን መጫን እና ሞተሩን ማገናኘት

ፒን መትከል እና ሞተሩን ማገናኘት
ፒን መትከል እና ሞተሩን ማገናኘት
ፒን መትከል እና ሞተሩን ማገናኘት
ፒን መትከል እና ሞተሩን ማገናኘት
ፒን መትከል እና ሞተሩን ማገናኘት
ፒን መትከል እና ሞተሩን ማገናኘት

Raspberry Pi ን ወደ ክፈፉ መጫን በጣም ቀላል ነበር። አንድ ፊት ቀዳዳ ያለው እና ሌላኛው ጎን ሙሉ በሙሉ ጠፍጣፋ የሆነ ትንሽ የ 90 ዲግሪ ክርን ንድፍ አወጣሁ። ከ 3 ዲ 3 ህትመቶች በኋላ እነዚህ በመጫኛ ቀዳዳዎቹ ላይ ከ Raspberry Pi ጋር ከዊንች ጋር ሊጣበቁ ይችላሉ (በጂፒዮ ፒኖች በእያንዳንዱ ጎን ሁለቱን ቀዳዳዎች እጠቀም ነበር)።

በመቀጠልም በፍሬም ላይ ካለው መሳቢያው በላይ ያለውን ፒን ለማጣበቅ በ 3 ዲ የታተሙ ክርኖች ተቃራኒ ፊቶች ላይ እጅግ በጣም ሙጫ መጠቀም ጀመርኩ። ሙጫውን እንዲደርቅ ከፈቀድኩ በኋላ ፒውን ወደ ቦታው በቀላሉ እና ምቹ በሆነ ሁኔታ በሁለት ዊንችዎች ብቻ ማስወገድ ወይም መተካት ችያለሁ። ከዚህ በታች ለተያያዘው ክርኑ.stl አለኝ።

አሁን በቀላሉ GPIO 14 ፣ 15 ፣ 18 ፣ 23 ን በማገናኘት የሞተር ነጂውን ከ P1 ጋር በ IN1 ፣ IN2 ፣ IN3 ፣ IN4 ያገናኙ። በመጨረሻም ፣ የመቆጣጠሪያ ሰሌዳውን 5v እና የመሬት ፒኖችን ከ 5v ውፅዓት እና ከፒ ፒ ፒ ፒን ጋር ያገናኙ።

ለተወሰነ ማጣቀሻ ወደ Pi's Pinout አገናኝ እዚህ አለ

ደረጃ 11 ካሜራውን መጫን

ካሜራውን በመጫን ላይ
ካሜራውን በመጫን ላይ
ካሜራውን በመጫን ላይ
ካሜራውን በመጫን ላይ
ካሜራውን በመጫን ላይ
ካሜራውን በመጫን ላይ

ካሜራውን መጫን ከፒ (ፒ) ትንሽ ጥንካሬ ነበረው ግን ዘዴው ሥራውን አጠናቀቀ። በእያንዳንዱ ጫፍ ላይ 2 ቀዳዳዎች ያሉት ቀጭን ምሰሶ ንድፍ ካወጣ እና ካተመ በኋላ ጨረሩን በተሰቀለው ቀዳዳ በኩል ከራስቤሪ ፒ ጋር አያያዝኩት። ከዚያ ካሜራውን ከሌላ ስፒል ጋር ወደ ጨረሩ ተቃራኒው ጫፍ ብቻ ያያይዙት። ታዳ! ቆንጆ ዝንብ ይመስላል።

ደረጃ 12 መሳቢያ-ማንቀሳቀስ-መካኒክስን መፍጠር እና መጫን

መሳቢያ-ተንቀሳቃሽ-ሜካኒዝም መፍጠር እና መትከል
መሳቢያ-ተንቀሳቃሽ-ሜካኒዝም መፍጠር እና መትከል
መሳቢያ-ተንቀሳቃሽ-ሜካኒዝም መፍጠር እና መትከል
መሳቢያ-ተንቀሳቃሽ-ሜካኒዝም መፍጠር እና መትከል
መሳቢያ-ተንቀሳቃሽ-ሜካኒዝም መፍጠር እና መትከል
መሳቢያ-ተንቀሳቃሽ-ሜካኒዝም መፍጠር እና መትከል

ለሠሪው ማህበረሰብ ሁል ጊዜ በጎ ለሆኑ ስጦታዎች ይህ እርምጃ ቀላል ተደርጎ ነበር። በ Thingiverse ላይ ፈጣን ፍለጋ ካደረግኩ በኋላ በ TucksProjects (በመስመር ላይ እዚህ ተገኝቷል https://www.thingiverse.com/thing:2987762) የተፈጠረውን የመስመር ተዋናይ ማግኘት ቻልኩ። በ SD ካርድ ላይ በጥፊ መምታት እና አታሚው ሥራውን እንዲያከናውን ማድረግ ብቻ ይቀራል።

እኔ ወደ Fusion 360 በመሄድ የሞተርዬ ዘንግ በ TucksProjects ለሚሰጡት በጣም ትልቅ ስለሆነ አነሳሱን አርትዕ አደረግሁ። ከዚህ በታች ለ.stl አለኝ። ህትመቱ ከተሰራ በኋላ መነሳሻውን በሞተር ዘንግ ላይ በማስቀመጥ ፣ ከዚያ የሞተር እና የማሸጊያ ጎኖቹን በ 2 ዊንች በማያያዝ (ከመዘጋቱ በፊት መከለያውን ማስገባትዎን ያረጋግጡ)። በመሳቢያ እና በማዕቀፉ መካከል ውስጥ እንዲገባ ከመደርደሪያው አንድ ኢንች መቁረጥ ነበረብኝ።

አሁን የሚቀረው ስልቱን ከማዕቀፉ እና ከመሳቢያው ጋር ማያያዝ ነው። “ምን ታደርጋለህ?” እርስዎ ይጠይቃሉ… አዎ ፣ ከእኔ ጋር ይናገሩ - እጅግ በጣም ሙጫ። ከላይ ባሉት ሥዕሎች ላይ እንደሚታየው ዘዴውን በፍሬም ታችኛው ክፍል ላይ ብቻ ያድርጉት እና መሳቢያው በሚንሸራተትበት እንጨት ላይ ወደ ላይ ይግፉት። አሠራሩ በሚንቀሳቀስበት ጊዜ መሳቢያውን በቀጥታ እንዲገፋ እና አንግል ላይ እንዳይሆን መደርደሪያውን/አሠራሩን በተቻለ መጠን ከማዕቀፉ ጋር ትይዩ ለማድረግ መሞከር እዚህ አስፈላጊ ነው። ሙጫው ከደረቀ በኋላ በመደርደሪያው ጠርዝ ላይ ተጨማሪ ሙጫ ያስቀምጡ እና መሳቢያውን ወደ ቦታው ያንቀሳቅሱት እና እንዲደርቅ ያድርጉት። አንዴ ከተጠናቀቅን ምስጢራዊ መሳቢያችንን ወደ ውስጥ እና ወደ ውስጥ ለማንሸራተት ጠንካራ ዘዴ አለን።

ደረጃ 13 ከመስተዋት ጀርባ ካርቶን ማከል

ከመስተዋት ጀርባ ካርቶን ማከል
ከመስተዋት ጀርባ ካርቶን ማከል
ከመስታወት በስተጀርባ ካርቶን ማከል
ከመስታወት በስተጀርባ ካርቶን ማከል
ከመስታወት በስተጀርባ ካርቶን ማከል
ከመስታወት በስተጀርባ ካርቶን ማከል

ይህ ባለ ሁለት አቅጣጫ ፊልም የበለጠ መስታወት እንዲመስል ለማድረግ ፣ ከመስታወቱ በስተጀርባ ካርቶን ለማስቀመጥ የእኛን ዓላማ በጥሩ ሁኔታ የሚያገለግል ሆኖ አግኝቼዋለሁ። ጥቅም ላይ የዋለው ካርቶን ከማዕቀፉ ጋር የመጣ ነው ፣ ግን ለመገጣጠም የተቆረጠ ማንኛውም ቁራጭ ይሠራል። ይህ ደግሞ ከካሜራ ኤልኢዲ ፣ ከሞተር ተቆጣጣሪው ወይም ከመስተዋቱ በሌላኛው በኩል የፒ ትዕይንቶችን ምንም ብርሃን አያረጋግጥም። ሁሉም ነገር በእሱ ቦታ ካሜራ በካርቶን ሰሌዳ ላይ የተቀመጠበትን ቦታ ለማመልከት እርሳስ ይጠቀሙ። ከዚያ ካሜራው በቦታው ላይ እንዲታይ አራት ማእዘን ለመቁረጥ ምላጭ ይጠቀሙ።

ደረጃ 14 የመጨረሻውን ቁራጭ መልበስ

የመጨረሻውን ቁራጭ መልበስ
የመጨረሻውን ቁራጭ መልበስ
የመጨረሻውን ቁራጭ መልበስ
የመጨረሻውን ቁራጭ መልበስ

ማድረግ ያለብዎት የመጨረሻው ነገር ቀደም ሲል የተቀመጠውን መሳቢያ የፊት ክፍል ላይ ማድረጉ ነው። መሳቢያው እንዲጣበቅ ሞተሩን ያንቀሳቅሱ። ከዚያ መሳቢያው ቁራጭ ወደ መሃል እንዲሆን የፊት ክፍልን ያያይዙት (በሁሉም ጎኖች ላይ ትንሽ ተንጠልጣይ መኖር አለበት። ከዚያ ግድግዳው ላይ ብቻ መስቀል ይችላሉ።

ደረጃ 15 - መጨረሻ

መጨረሻ
መጨረሻ
መጨረሻ
መጨረሻ

እዚያ አለዎት! ያንን የግፋ አዝራር ማከል ፣ አንዳንድ የተሻለ የሁለትዮሽ ፊልም መግዛት እና ያንን ኮድ በኮዱ ውስጥ መጠገንን የመሳሰሉ ብዙ ማሻሻያዎች አሉ ፣ ግን ሁሉም ነገር ሥራውን ያከናውናል-መስታወት ይመስላል ፣ ቀድሞ የተወሰነውን ያውቃል የተጠቃሚ ፊት እና ያንን ቆንጆ ትንሽ መሳቢያ ይከፍታል። ከዚህ በታች በአስተያየቶች ውስጥ ሁል ጊዜ ሀሳቦችዎን ፣ ጥያቄዎችዎን እና ማስታወሻዎችዎን መስማት እፈልጋለሁ።

አጠቃላይ ደረጃ - 10/10

አስተያየቶች - እኔ ይህንን አስተማሪ መከተል ካልቻልኩ በስተቀር #WillNotTryAgain…)

የምስጢር ክፍል ፈተና
የምስጢር ክፍል ፈተና
የምስጢር ክፍል ፈተና
የምስጢር ክፍል ፈተና

በድብቅ ክፍል ፈተና ውስጥ ታላቅ ሽልማት

የሚመከር: