ዝርዝር ሁኔታ:

ARDUINO ን በመጠቀም ፊት መከታተል !!!: 7 ደረጃዎች
ARDUINO ን በመጠቀም ፊት መከታተል !!!: 7 ደረጃዎች

ቪዲዮ: ARDUINO ን በመጠቀም ፊት መከታተል !!!: 7 ደረጃዎች

ቪዲዮ: ARDUINO ን በመጠቀም ፊት መከታተል !!!: 7 ደረጃዎች
ቪዲዮ: Setting up a 3d Printer with MKS sGen L v1.0 2024, ህዳር
Anonim
ARDUINO ን በመጠቀም ፊት መከታተል !!!
ARDUINO ን በመጠቀም ፊት መከታተል !!!

በቀድሞው መመሪያ ውስጥ ‹ፒሴሪያል› ሞዱልን በመጠቀም በአርዲኖ እና በፓይዘን መካከል እንዴት መገናኘት እንደሚችሉ እና ኤልኢዲ መቆጣጠር እንደሚችሉ አጋርቻለሁ። እርስዎ ካላዩት እዚህ ይመልከቱት - በአርዲኡኖ እና ፒቶን መካከል መግባባት!

እና የአንድን ነገር ቀለም እንዴት እንደሚለዩ እና በማያ ገጹ ላይ መከታተል እንደሚችሉ ፣ ያንን እዚህ ይመልከቱ - ኦፔን እና ፓይቶን በመጠቀም የቀለም ምርጫ።

በዚህ መመሪያ ውስጥ አርዱዲኖ እና ፓይዘን በመጠቀም ፊቶችን እንዴት እንደሚከታተሉ እና ካሜራውን ፊቱን እንዲከተል እንደሚያደርግ አሳያችኋለሁ። ይህ ከባድ መስሎ ሊታይ ይችላል ፣ ግን እመኑኝ አይደለም ፣ የሚያስፈልግዎት የአርዱዲኖ እና የፓይዘን መሠረታዊ እውቀት ብቻ ነው።

ስለዚህ እንጀምር…

ደረጃ 1: የሚያስፈልጉዎት ነገሮች

የሚያስፈልጉዎት ነገሮች
የሚያስፈልጉዎት ነገሮች
የሚያስፈልጉዎት ነገሮች
የሚያስፈልጉዎት ነገሮች
የሚያስፈልጉዎት ነገሮች
የሚያስፈልጉዎት ነገሮች

መስፈርቶቹ አነስተኛ ናቸው። እዚህ የሚፈልጉትን ሁሉ ከፊል ዝርዝር ሰጥቻለሁ-

የሃርድዌር አስፈላጊነት;

  • አርዱዲኖ UNO (አማዞን አሜሪካ / አማዞን ህብረት)
  • ድር ካም (አማዞን አሜሪካ / አማዞን አውሮፓ)
  • ሰርቮስ x 2 (አማዞን አሜሪካ / አማዞን የአውሮፓ ህብረት)
  • የዳቦ ሰሌዳ (አማዞን አሜሪካ / አማዞን የአውሮፓ ህብረት)
  • Servo Pan Tilt Kit (አማዞን አሜሪካ / አማዞን አውሮፓ)

የሶፍትዌር መስፈርቶች

  1. Python 2.7 (መጫን አለበት ፣ ሊኑክስ OS ብዙውን ጊዜ አስቀድሞ ተጭኗል)
  2. OpenCV (በተናጠል ማውረድ ወይም ‹pip install› ን በመጠቀም ሊጭኑት ይችላሉ)
  3. pyserial (በፓይፕ ሊጫን ይችላል)
  4. ደነዘዘ።
  5. Haarcascade.

ሁሉም ነገር ከተሰበሰበ በኋላ ወደ መጫኛ ደረጃ መቀጠል እንችላለን…

ደረጃ 2 የ Python አከባቢን ማቀናበር

የ Python አከባቢን ማቋቋም
የ Python አከባቢን ማቋቋም
የ Python አከባቢን ማቋቋም
የ Python አከባቢን ማቋቋም
የ Python አከባቢን ማቋቋም
የ Python አከባቢን ማቋቋም

Python ን መጫን;

ስለዚህ መጀመሪያ እኛ Python 2.7 ን ወደ ላይ ማሄድ ያስፈልገናል። ይህንን ለማድረግ መጀመሪያ Python ን ያውርዱ እና ይጫኑ 2.7.14. በትክክል መጫኑን ለመፈተሽ ጎቶ - ዊንዶውስ ፍለጋ >> “IDLE” ይተይቡ >> አስገባን ይምቱ። ፓይዘን llል ብቅ ማለት አለበት።

ወይም

በፍለጋ ዓይነት ‹ሲኤምዲ› ውስጥ እና የትእዛዝ መስመርን ለመክፈት አስገባን ይምቱ። በሲኤምዲ ዓይነት >> ፓይዘን እና አስገባን ይምቱ ፣ የፓይዘን በይነገጽ መታየት አለበት።

በሲኤምዲ ውስጥ ስህተት ካዩ ፣ አይጨነቁ ምናልባት የአካባቢ ተለዋዋጭ ማዘጋጀት ያስፈልግዎታል። የአካባቢ ተለዋዋጭን ለማቀናጀት ይህንን ትምህርት እዚህ መከተል ይችላሉ።

በፓይዘን ውስጥ ‹Pyserial ›፣‹ OpenCV ›እና‹ numpy ›ን በመጫን ላይ

እነዚህን ሞጁሎች ለመጫን የ pip መጫንን እንጠቀማለን ፣

መጀመሪያ CMD ን ይክፈቱ እና የሚከተሉትን ኮዶች ይተይቡ--

pip ጭነት ተከታታይ

pip install opencv-python> pip install numpy

እነዚህ ትዕዛዞች አስፈላጊዎቹን ሞጁሎች ይጭናሉ። አሁን ወደ ኮድ መስጫ ክፍል መሄድ እንችላለን…

ደረጃ 3 የፓይዘን ስክሪፕት

የ Python ስክሪፕት
የ Python ስክሪፕት

ኮዱን ለመፃፍ ከመጀመርዎ በፊት ኮዱ በሙሉ በአንድ አቃፊ ውስጥ መቀመጥ ስለሚያስፈልገው አዲስ አቃፊ ማዘጋጀት ነው። ስለዚህ አዲስ አቃፊ ይፍጠሩ ፣ የሚፈልጉትን ሁሉ ይሰይሙት። እና 'Haarcascade' ን ከታች ያውርዱ እና በአቃፊው ውስጥ ይለጥፉት።

አሁን የማስታወሻ ደብተርን ይክፈቱ እና ከዚህ በታች የተሰጠውን ስክሪፕት ይፃፉ ፣ እንደ ‹arcame› በተመሳሳይ አቃፊ ውስጥ ያስቀምጡት። (ከዚህ በታች ያለውን ፋይል ያቀረብኩትን ኮድ ማውረድ ይችላሉ)

#የሚያስፈልጉትን ሞጁሎች ሁሉ ከውጭ ያስመጡ

nump ን እንደ np ማስመጣት ተከታታይ የማስመጣት ጊዜ ማስመጣት sys ማስመጣት ሲቪ 2 #የአደራዲው የግንኙነት ዱካ ለአርዱዲኖ (በ ‹COM5› ምትክ የእርስዎ አርዱኢኖ የተገናኘበትን ወደብ ያስቀምጡ) arduino = serial. Serial (‘COM5’ ፣ 9600) time.sleep (2) ህትመት ("ከአርዲኖ ጋር ተገናኝቷል …") #ፊት ለፊት ለይቶ ለማወቅ face_cascade = cv2. CarcadeClassifier ('haarcascade_frontalface_default.xml') #Haarcascade ን ማስመጣት #የቪዲዮ ዥረቱን ከድር ካሜራ ለመያዝ። cap = cv2. VideoCapture (0) #የተያዘውን ምስል ያንብቡ ፣ ወደ ግራጫ ምስል ይለውጡት እና 1: ret, img = cap.read () cv2.resizeWindow ('img', 500, 500) cv2.line (img ፣ (500 ፣ 250) ፣ (0 ፣ 250) ፣ (0 ፣ 255 ፣ 0) ፣ 1) cv2.line (img ፣ (250 ፣ 0) ፣ (250 ፣ 500) ፣ (0 ፣ 255 ፣ 0) ፣ 1) cv2.circle (img ፣ (250 ፣ 250) ፣ 5 ፣ (255 ፣ 255 ፣ 255) ፣ -1) ግራጫ = cv2.cvtColor (img ፣ cv2. COLOR_BGR2GRAY) ፊቶች = face_cascade.detectMultiScale (ግራጫ ፣ 1.3) # ፊቱን መለየት እና በዙሪያው አራት ማእዘን ያድርጉ። ለ (x ፣ y ፣ w ፣ h) በፊቶች ውስጥ: cv2. rectangle (img ፣ (x ፣ y) ፣ (x+w ፣ y+h) ፣ (0 ፣ 255 ፣ 0) ፣ 5) roi_gray = ግራጫ [y: y+h ፣ x: x+w] roi_color = img [y: y+h ፣ x: x+w] arr = {y: y+h ፣ x: x+w} ህትመት (አር) ህትመት ('X: '+str (x)) ህትመት (' Y: '+str (y)) ህትመት (' x+w: '+str (x+w)) ህትመት (' y+h: '+str (y+h))) # የሮይ ማእከል (ሬክታንግል) xx = int (x+(x+h))/2 ዓመት = int (y+(y+w))/2 ህትመት (xx) ህትመት (yy) ማዕከል = (xx ፣ yy) # መረጃን ወደ አርዱዲኖ ህትመት መላክ ("የአራት ማዕዘን ማእከል:", ማዕከል) ውሂብ = "X {0: d} Y {1: d} Z".format (xx, yy) ህትመት ("ውፅዓት = '" +ውሂብ + "'") arduino.write (ውሂብ) #ዥረቱን ያሳዩ። cv2.imshow ('img', img) ማስፈጸምን ለማቆም #Hit 'Esc' k = cv2.waitKey (30) & 0xff k == 27: break

አንዴ ይህ ከተጠናቀቀ ፣ ለአርዱዲኖ ኮዱን ለመፃፍ ይቀጥሉ…

ደረጃ 4 የአርዱዲኖ ኮድ

የአርዱዲኖ ኮድ
የአርዱዲኖ ኮድ

የፓይዘን ስክሪፕት ከተዘጋጀ በኋላ ሰርዶውን ለመቆጣጠር አርዱዲኖ ንድፍ ያስፈልገናል። ከዚህ በታች ያለውን ኮድ ይመልከቱ ፣ በአርዱዲኖ አይዲኢ ውስጥ ይለጥፉት እና ልክ እንደ face.py እና haarcascade በተመሳሳይ አቃፊ ውስጥ እንደ ‹servo.ino› አድርገው ያስቀምጡት። ግንኙነቶችን ለማድረግ ኮዱን ይስቀሉ እና ወደሚቀጥለው ደረጃ ይሂዱ።

(ከዚህ በታች ሊወርድ የሚችል ፋይል)

#ያካትቱ

Servo servoVer; // አቀባዊ Servo Servo servoHor; // አግድም ሰርቮ int x; int y; int prevX; int prevY; ባዶነት ማዋቀር () {Serial.begin (9600); servoVer.attach (5); // ቀጥ ያለ ሰርቪን ከፒን 5 servoHor.attach (6) ጋር ያያይዙ ፤ // አግድም ሰርቪስን ከፒን 6 servoVer.write (90) ጋር ያያይዙ ፤ servoHor.write (90); } ባዶ Pos () {ከሆነ (prevX! = x || prevY! = y) {int servoX = ካርታ (x ፣ 600 ፣ 0 ፣ 70 ፣ 179) ፤ int servoY = ካርታ (y ፣ 450 ፣ 0 ፣ 179 ፣ 95); servoX = ደቂቃ (servoX ፣ 179); servoX = ከፍተኛ (servoX ፣ 70); servoY = ደቂቃ (servoY, 179); servoY = ከፍተኛ (servoY, 95); servoHor.write (servoX); servoVer.write (servoY); }} ባዶነት loop () {ከሆነ (Serial.available ()> 0) {if (Serial.read () == 'X') {x = Serial.parseInt (); ከሆነ (Serial.read () == 'Y') {y = Serial.parseInt (); Pos (); }} ሳለ (Serial.available ()> 0) {Serial.read (); }}}

ደረጃ 5 የፓን-ዘንበል ዘዴ-

የፓን-ዘንበል ዘዴ
የፓን-ዘንበል ዘዴ
የፓን-ዘንበል ዘዴ
የፓን-ዘንበል ዘዴ

ለፓን-ዘንበል በቀላሉ የሚገኝ ኪት ተጠቅሜያለሁ። ከፈለጉ ከእንጨት/ፕላስቲክ ወይም ከ3 -ል ህትመት አንዱን በመጠቀም እራስዎ ማድረግ ይችላሉ።

እኔ የተጠቀምኩት በጣም ርካሽ ነው ፣ እና ለመሰብሰብ በጣም ቀላል ነው። ሆኖም ያንን እንዴት ማድረግ እንደሚችሉ መመሪያ ከፈለጉ ፣ እዚህ ሊያገኙት ይችላሉ።

ደረጃ 6 ግንኙነቶችን መፍጠር

ግንኙነቶችን መፍጠር
ግንኙነቶችን መፍጠር
ግንኙነቶችን ማካሄድ
ግንኙነቶችን ማካሄድ

ወረዳው በጣም ቀላል ነው። ልክ ሁለት ሰርዶዎችን ከአርዲኖ ጋር ያያይዙ።

  1. አቀባዊ ወደ ፒን 5
  2. አግድም ወደ ፒን 6
  3. ኃይል ወደ +5 ቮ
  4. መሬት ወደ GND

ለማጣቀሻ የወረዳውን ዲያግራም ይመልከቱ።

ደረጃ 7: ሙከራ

  • ሁሉም ነገር ከተከናወነ በኋላ የመጨረሻው ነገር የሚሰራ ከሆነ መሞከር ነው። ለመፈተሽ መጀመሪያ servos ከ አርዱዲኖ ጋር በትክክል መገናኘታቸውን እና ረቂቅ መሰቀሉን ያረጋግጡ።
  • ንድፍ ከተሰቀለ በኋላ ወደብ ከፓይዘን ጋር ለመገናኘት ነፃ እንዲሆን አይዲኢውን መዝጋቱን ያረጋግጡ።
  • አሁን ከ ‹Python IDLE› ጋር ‹face.py› ን ይክፈቱ እና ኮዱን ለማስኬድ 'F5' ን ይጫኑ። ከአሩዲኖ ጋር ለመገናኘት ጥቂት ሰከንዶች ይወስዳል እና ከዚያ የድር ካሜራውን የሚለቅ መስኮት ማየት መቻል አለብዎት። አሁን ኮዱ ፊትዎን ይለያል እና አገልጋዮቹ እሱን ይከታተሉታል።
  • ዕቃውን ሲያንቀሳቅሱ ሰርቮው መንቀሳቀስ አለበት። አሁን ከ servos ጋር አብሮ እንዲንቀሳቀስ አሁን ካሜራውን ከ servos ጋር ያያይዙት።

አመሰግናለሁ.

የሚመከር: