Talaan ng mga Nilalaman:
- Hakbang 1: Mga Bagay na Kakailanganin mo:
- Hakbang 2: Pag-set-up ng Kapaligiran ng Python:
- Hakbang 3: Python Script:
- Hakbang 4: Arduino Code:
- Hakbang 5: Pan-Ikiling Mekanismo: -
- Hakbang 6: Paggawa ng Mga Koneksyon:
- Hakbang 7: PAGSUSULIT:
Video: FACE TRACKING USING ARDUINO !!!: 7 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:10
Sa isang nakaraang itinuro na ibinahagi ko kung paano ka makikipag-usap sa pagitan ng Arduino at Python gamit ang module na 'pyserial' at kontrolin ang isang LED. Kung hindi mo pa ito nakita suriin ito dito: KOMUNIKASYON SA pagitan ng ARDUINO & PYTHON!
At kung paano mo mahahanap ang kulay ng isang bagay at subaybayan ito sa screen, Suriin iyan dito: KOLEKTO NG Detalye Gumagamit ng OPENCV AT PYTHON.
Sa Instructable na ito ay ipapakita ko sa iyo kung paano subaybayan ang mga mukha gamit ang Arduino & Python at gawin ang Camera na sundin ang mukha. Ito ay maaaring mahirap pakinggan ngunit tiwala ka sa akin hindi, Ang kailangan mo lang ay pangunahing kaalaman sa Arduino at Python.
Kaya't magsimula tayo …
Hakbang 1: Mga Bagay na Kakailanganin mo:
Minimum ang mga kinakailangan. Narito na ibinigay ko ang listahan ng bahagi ng lahat ng kailangan mo:
Kinakailangan sa Hardware:
- Arduino UNO (Amazon US / Amazon EU)
- Web Cam (Amazon US / Amazon EU)
- Servos x 2 (Amazon US / Amazon EU)
- Breadboard (Amazon US / Amazon EU)
- Servo Pan Tilt Kit (Amazon US / Amazon EU)
Kinakailangan ng Software:
- Python 2.7 (Dapat na mai-install, kadalasang mayroon itong pre-install na Linux OS)
- OpenCV (Maaari mong i-download ito nang magkahiwalay o mag-install gamit ang 'pip install' Naipaliwanag pa)
- pyserial (Maaaring mai-install gamit ang pip)
- numpy
- Haarcascade.
Matapos ang bawat bagay ay natipon maaari kaming magpatuloy sa Hakbang sa Pag-install …
Hakbang 2: Pag-set-up ng Kapaligiran ng Python:
Pag-install ng Python:
Kaya kailangan muna namin ng Python 2.7 pataas at tumatakbo. Upang magawa ito sa unang pag-download at I-install ang python 2.7.14. Upang suriin kung na-install ito nang tama Goto: Paghahanap sa Windows >> I-type ang "IDLE" >> Pindutin ang Enter. Ang isang Python Shell ay dapat na mag-pop up.
O kaya
Sa uri ng paghahanap na 'CMD' at pindutin ang enter upang buksan ang Command Prompt. Sa uri ng CMD >> python at hit enter, dapat ipakita ang interface ng Python.
Kung nakakita ka ng isang error sa CMD, Huwag panic marahil kailangan mong itakda ang variable ng kapaligiran. Maaari mong sundin ang tutorial na ito Dito upang mai-set up ang Variable ng Kapaligiran.
Pag-install ng 'pyserial', 'OpenCV "at" numpy "sa sawa:
Upang mai-install ang mga modyul na ito gagamitin namin ang paggamit ng pag-install ng pip, Una buksan ang CMD at i-type ang mga sumusunod na code: -
pip install serial
pip install opencv-python> pip install numpy
ang mga utos na ito ay mai-install ang kinakailangang mga module. Maaari na kaming lumipat sa bahagi ng pag-coding …
Hakbang 3: Python Script:
Bago simulang isulat ang code unang dapat gawin ay gumawa ng isang bagong folder dahil ang lahat ng code ay kailangang maiimbak sa parehong folder. Kaya lumikha ng isang bagong folder, pangalanan ito anumang nais mo. at i-download ang 'Haarcascade' mula sa ibaba at i-paste ito sa folder.
Ngayon buksan ang notepad at isulat ang script na ibinigay sa ibaba, I-save ito bilang 'face.py' sa parehong folder bilang haarcascade. (Maaari mong i-download ang code na ibinigay ko sa file sa ibaba):
#import ang lahat ng kinakailangang mga module
import numpy as np import serial import time import sys import cv2 #Setup Path ng komunikasyon para sa arduino (Sa lugar ng 'COM5' ilagay ang port kung saan nakakonekta ang iyong arduino) arduino = serial. Serial ('COM5', 9600) time.sulog (2) print ("Nakakonekta sa arduino…") #import ang Haarcascade para sa pagtuklas ng mukha face_cascade = cv2. CascadeClassifier ('haarcascade_frontalface_default.xml') # Upang makuha ang stream ng video mula sa webcam. cap = cv2. VideoCapture (0) #Basahin ang nakunan ng imahe, i-convert ito sa Gray na imahe at hanapin ang mga mukha habang 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) grey = cv2.cvtColor (img, cv2. COLOR_BGR2GRAY) mga mukha = face_cascade.detectMultiScale (grey, 1.3) # tuklasin ang mukha at gumawa ng isang parihaba sa paligid nito. para sa (x, y, w, h) sa mga mukha: cv2.rectangle (img, (x, y), (x + w, y + h), (0, 255, 0), 5) roi_gray = grey [y: y + h, x: x + w] roi_color = img [y: y + h, x: x + w] arr = {y: y + h, x: x + w} print (arr) print ('X: '+ str (x)) print (' Y: '+ str (y)) print (' x + w: '+ str (x + w)) print (' y + h: '+ str (y + h)) # Center of roi (Rectangle) xx = int (x + (x + h)) / 2 yy = int (y + (y + w)) / 2 print (xx) print (yy) center = (xx, yy) # nagpapadala ng data sa arduino print ("Center of Rectangle ay:", center) data = "X {0: d} Y {1: d} Z".format (xx, yy) print ("output = '" + data + "'") arduino.write (data) #Ipakita ang stream. cv2.imshow ('img', img) #Hit 'Esc' upang wakasan ang pagpapatupad k = cv2.waitKey (30) & 0xff kung k == 27: break
Kapag tapos na ito, magpatuloy upang isulat ang code para sa arduino…
Hakbang 4: Arduino Code:
Matapos ang python script ay handa na kailangan namin ng arduino sketch upang makontrol ang servo. Sumangguni sa code sa ibaba, i-paste ito sa Arduino IDE at i-save ito bilang 'servo.ino' sa parehong folder tulad ng face.py at haarcascade. i-upload ang code at magpatuloy sa susunod na hakbang upang magawa ang mga koneksyon.
(Naida-download na file na ibinigay sa ibaba)
# isama
Servo servoVer; // Vertical Servo Servo servoHor; // Pahalang na Servo int x; int y; int prevX; int prevY; void setup () {Serial.begin (9600); servoVer.attach (5); // Attach Vertical Servo to Pin 5 servoHor.attach (6); // Attach Horizontal Servo to Pin 6 servoVer.write (90); servoHor.write (90); } void Pos () {if (prevX! = x || prevY! = y) {int servoX = map (x, 600, 0, 70, 179); int servoY = mapa (y, 450, 0, 179, 95); servoX = min (servoX, 179); servoX = max (servoX, 70); servoY = min (servoY, 179); servoY = max (servoY, 95); servoHor.write (servoX); servoVer.write (servoY); }} void loop () {if (Serial.available ()> 0) {if (Serial.read () == 'X') {x = Serial.parseInt (); kung (Serial.read () == 'Y') {y = Serial.parseInt (); Pos (); }} habang (Serial.available ()> 0) {Serial.read (); }}}
Hakbang 5: Pan-Ikiling Mekanismo: -
Gumamit ako ng isang madaling magagamit na kit para sa Pan-Tilt. Kung nais mo maaari kang gumawa ng isa sa iyong sarili gamit ang kahoy / plastik o kahit 3D print na isa.
Ang ginamit ko ay medyo mura, at napakadaling magtipun-tipon. Gayunpaman kung nais mo ang mga tagubilin sa kung paano ito gawin, mahahanap mo ito rito.
Hakbang 6: Paggawa ng Mga Koneksyon:
Ang Circuit ay medyo simple. Maglakip lamang ng dalawang servo sa arduino.
- Patayo sa Pin 5
- Pahalang sa Pin 6
- Lakas sa + 5V
- Ground sa GND
Suriin ang diagram ng circuit para sa sanggunian.
Hakbang 7: PAGSUSULIT:
- Matapos ang lahat ay tapos na huling gawin ay subukan kung ito ay gumagana. Upang subukan muna siguraduhin na ang mga servo ay maayos na konektado sa arduino at na-upload ang sketch.
- Matapos ma-upload ang sketch siguraduhing isara ang IDE upang ang port ay malayang kumonekta sa sawa.
- Ngayon buksan ang 'face.py' gamit ang Python IDLE at pindutin ang 'F5' upang patakbuhin ang code. Aabutin ng ilang segundo upang kumonekta sa arduino at pagkatapos ay dapat mong makita ang isang window na streaming sa web cam. Ngayon matutukoy ng code ang iyong mukha at susubaybayan ito ng mga servo.
- Dapat gumalaw ang Servo habang inililipat mo ang object. Ngayon ay ilakip lamang ang camera sa mga servo kaya't lilipat ito kasama ng mga servos.
Salamat.
Inirerekumendang:
Head Motion Tracking System para sa VR: 8 Hakbang
Head Motion Tracking System para sa VR: Ang pangalan ko ay Sam KODO, Sa tuto na ito, tuturuan kita sa hakbang-hakbang kung paano gamitin ang mga sensor ng Arduino IMU upang bumuo ng system ng pagsubaybay sa ulo para sa VR. Sa proyektong ito kakailanganin mo: - Isang LCD Display HDMI : https: //www.amazon.com/Elecrow-Capacitive-interfac…- Isang
MVRK's Mandalorian Tracking Fob: 8 Hakbang (na may Mga Larawan)
MVRK's Mandalorian Tracking Fob: Mayo na ika-4, kung hindi man kilala bilang Star Wars Day, isang piyesta opisyal na malapit at mahal ng aming mga puso. Sa taong ito napagpasyahan naming ipagdiwang ito nang medyo naiiba kaysa sa mga nakaraang taon. Sa pamamagitan ng isang experiential tech at gumagawa-proyekto, gumawa kami ng isang kumplikadong diskarte at lumiliko
Portable Solar Auto Tracking System: 9 Mga Hakbang (na may Mga Larawan)
Portable Solar Auto Tracking System: Ang Medomyself ay isang kalahok sa Amazon Services LLC Associates Program, isang kaakibat na programa sa advertising na idinisenyo upang magbigay ng isang paraan para sa mga site upang kumita ng mga bayarin sa advertising sa pamamagitan ng advertising at pag-link sa amazon.comby: Ang Dave Weaver Ang pagbuo na ito ay ginawa kasama ng
DIY Smart Robot Tracking Car Kits Tracking Car Photosensitive: 7 Hakbang
DIY Smart Robot Tracking Car Kits Tracking Car Photosensitive: Disenyo ng SINONING ROBOTMaaari kang bumili mula sa pagsubaybay ng robot carTheoryLM393 chip ihambing ang dalawang photoresistor, kapag may isang panig na LED na photoresistor sa PUTI ang gilid ng motor ay titigil kaagad, ang iba pang bahagi ng motor paikutin, upang
AUTOMATIC LIGHT SOURCE TRACKING WITH ARDUINO UNO R3: 5 Hakbang
AUTOMATIC LIGHT SOURCE TRACKING WITH ARDUINO UNO R3: Sa araling ito, gagamit kami ng isang servo motor, isang photoresistor at isang pull-down risistor upang tipunin ang isang awtomatikong pagsubaybay sa light source system