Përmbajtje:

NDJEKJA E FYTYR USS PINGRDORIMI ARDUINO !!!: 7 hapa
NDJEKJA E FYTYR USS PINGRDORIMI ARDUINO !!!: 7 hapa

Video: NDJEKJA E FYTYR USS PINGRDORIMI ARDUINO !!!: 7 hapa

Video: NDJEKJA E FYTYR USS PINGRDORIMI ARDUINO !!!: 7 hapa
Video: Документальный фильм об НЛО 2022 / ТОП-5 СЛУЧАЕВ НЛО / НЕВЕРОЯТНЫЕ ДОКАЗАТЕЛЬСТВА 2024, Korrik
Anonim
NDJEKJA E FYTYR USS Duke PRDORUR ARDUINO !!!
NDJEKJA E FYTYR USS Duke PRDORUR ARDUINO !!!

Në një udhëzues të mëparshëm, unë tregova se si mund të komunikoni midis Arduino dhe Python duke përdorur modulin "pyserial" dhe kontrolloni një LED. Nëse nuk e keni parë, shikojeni këtu: KOMUNIKIMI MES ARDUINO & PYTHON!

Dhe si mund të zbuloni ngjyrën e një objekti dhe ta gjurmoni atë në ekran, shikoni këtu: Zbulimi i ngjyrës duke përdorur OPENCV DHE PYTHON.

Në këtë Instructable unë do t'ju tregoj se si të gjurmoni fytyrat duke përdorur Arduino & Python dhe ta bëni Kamerën të ndjekë fytyrën. Kjo mund të tingëllojë e vështirë, por më besoni se nuk është, e tëra që ju nevojitet është njohuri themelore për Arduino dhe Python.

Pra, le të fillojmë…

Hapi 1: Gjërat që ju nevojiten:

Gjërat që do t'ju nevojiten
Gjërat që do t'ju nevojiten
Gjërat që do t'ju nevojiten
Gjërat që do t'ju nevojiten
Gjërat që do t'ju nevojiten
Gjërat që do t'ju nevojiten

Kërkesat janë minimale. Këtu kam siguruar një listë të gjithçkaje që ju nevojitet:

Kërkesa për harduer:

  • Arduino UNO (Amazon SHBA / Amazon BE)
  • Web Cam (Amazon SHBA / Amazon BE)
  • Servos x 2 (Amazon US / Amazon EU)
  • Breadboard (Amazon SHBA / Amazon BE)
  • Servo Pan Tilt Kit (Amazon US / Amazon EU)

Kërkesa për softuer:

  1. Python 2.7 (Duhet të instalohet, Linux OS zakonisht e ka të para-instaluar)
  2. OpenCV (Mund ta shkarkoni veçmas ose ta instaloni duke përdorur 'pip install' Shpjeguar më tej)
  3. pyserial (Mund të instalohet me pip)
  4. i mpirë
  5. Haarcascade.

Pasi të grumbullohet çdo gjë, mund të kalojmë në Hapin e Instalimit…

Hapi 2: Konfigurimi i Mjedisit Python:

Vendosja e mjedisit Python
Vendosja e mjedisit Python
Vendosja e mjedisit Python
Vendosja e mjedisit Python
Vendosja e mjedisit Python
Vendosja e mjedisit Python

Instalimi i Python:

Pra, së pari ne kemi nevojë për Python 2.7 që të funksionojë. Për ta bërë këtë, së pari shkarkoni dhe instaloni python 2.7.14. Për të kontrolluar nëse është instaluar saktë Shkoni: Kërko në Windows >> Shkruani "IDLE" >> Shtypni Enter. Një Python Shell duhet të shfaqet.

OSE

Në kërkim shkruani 'CMD' dhe shtypni enter për të hapur Command Prompt. Në tipin CMD >> python dhe shtypni enter, ndërfaqja Python duhet të shfaqet.

Nëse shihni një gabim në CMD, mos u frikësoni, ndoshta keni nevojë të vendosni ndryshore të mjedisit. Ju mund ta ndiqni këtë tutorial Këtu për të konfiguruar Variablin e Mjedisit.

Instalimi i "pyserial", "OpenCV" dhe "numpy" në python:

Për të instaluar këto module ne do të përdorim përdorimin e instalimit të pipit, Së pari hapni CMD dhe shkruani kodet e mëposhtme:-

seriali i instalimit të pip

pip install opencv-python> pip install numpy

këto komanda do të instalojnë modulet e nevojshme. Tani mund të kalojmë në pjesën e kodimit …

Hapi 3: Python Script:

Skenari Python
Skenari Python

Para se të filloni të shkruani kodin gjëja e parë që duhet bërë është të krijoni një dosje të re pasi i gjithë kodi duhet të ruhet në të njëjtën dosje. Pra, krijoni një dosje të re, emërtojeni atë çfarë të doni. dhe shkarkoni 'Haarcascade' nga poshtë dhe ngjiteni në dosje.

Tani hapni fletoren dhe shkruani shkrimin e dhënë më poshtë, Ruajeni si 'face.py' në të njëjtën dosje si haarcascade. (Ju mund të shkarkoni kodin që kam dhënë skedarin më poshtë):

#importoni të gjitha modulet e kërkuara

import numpy as np import serial kohë importi import sys import cv2 #Setup Rruga e komunikimit për arduino (Në vend të 'COM5' vendosni portën me të cilën është lidhur arduino juaj) arduino = serial. Serial ('COM5', 9600) koha.fjetur (2) print ("Lidhur me arduino …") #importimi i Haarcascade për zbulimin e fytyrës face_cascade = cv2. CascadeClassifier ('haarcascade_frontalface_default.xml') #Për të kapur transmetimin e videos nga kamera në internet. cap = cv2. VideoCapture (0) #Lexoni imazhin e kapur, shndërrojeni në imazh gri dhe gjeni fytyra ndërsa 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) gri = cv2.cvtColor (img, cv2. COLOR_BGR2GRAY) fytyra = face_cascade.detectMultiScale (gri, 1.3) # zbuloni fytyrën dhe bëni një drejtkëndësh rreth saj. për (x, y, w, h) në fytyra: cv2. drejtkëndësh (img, (x, y), (x+w, y+h), (0, 255, 0), 5) roi_gray = gri [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)) # Qendra e roi (Drejtkëndësh) xx = int (x+(x+h))/2 yy = int (y+(y+w))/2 print (xx) print (yy) qendra = (xx, yy) # dërgimi i të dhënave në printimin arduino ("Qendra e Drejtkëndëshit është:", qendra) të dhëna = "X {0: d} Y {1: d} Z".format (xx, yy) print ("output = '" +të dhëna + "'") arduino.shkruaj (të dhëna) #Shfaq transmetimin. cv2.imshow ('img', img) #Hit 'Esc' për të përfunduar ekzekutimin k = cv2.waitKey (30) & 0xff nëse k == 27: pushim

Pasi të bëhet kjo, vazhdoni të shkruani kodin për arduino…

Hapi 4: Kodi Arduino:

Kodi Arduino
Kodi Arduino

Pasi skripti i pythonit të jetë gati, ne kemi nevojë për skicë arduino për të kontrolluar servo. Referojuni kodit më poshtë, ngjiteni në Arduino IDE dhe ruajeni si 'servo.ino' në të njëjtën dosje si face.py dhe haarcascade. ngarkoni kodin dhe kaloni në hapin tjetër për të bërë lidhjet.

(Skedari i shkarkueshëm i dhënë më poshtë)

#përfshi

Servo servoVer; // Servo Servo ServoHor vertikale; // Servo horizontale int x; int y; int prevX; int prevY; void setup () {Serial.begin (9600); servoVer.tash (5); // Bashkangjisni Servo Vertical në Pin 5 servoHor.attach (6); // Bashkëngjitni Servo Horizontale në Pin 6 servoVer.write (90); servoHor.shkruaj (90); } void Pos () {if (prevX! = x || prevY! = y) {int servoX = hartë (x, 600, 0, 70, 179); int servoY = harta (y, 450, 0, 179, 95); servoX = min (servoX, 179); servoX = max (servoX, 70); servoY = min (servoY, 179); servoY = max (servoY, 95); servoHor.shkruaj (servoX); servoVer.vrite (servoY); }} void loop () {if (Serial.available ()> 0) {if (Serial.read () == 'X') {x = Serial.parseInt (); nëse (Serial.lex () == 'Y') {y = Serial.parseInt (); Pos (); }} ndërsa (Serial.disponueshëm ()> 0) {Serial.read (); }}}

Hapi 5: Mekanizmi Pan-Tilt:-

Mekanizmi Pan-Tilt
Mekanizmi Pan-Tilt
Mekanizmi Pan-Tilt
Mekanizmi Pan-Tilt

Unë kam përdorur një çantë të disponueshme për Pan-Tilt. Nëse dëshironi, mund ta bëni vetë duke përdorur dru/plastikë apo edhe printim 3D.

Ai që kam përdorur është mjaft i lirë, dhe shumë i lehtë për tu montuar. Megjithatë, nëse doni udhëzime se si ta bëni këtë, mund t'i gjeni këtu.

Hapi 6: Krijimi i lidhjeve:

Krijimi i lidhjeve
Krijimi i lidhjeve
Krijimi i lidhjeve
Krijimi i lidhjeve

Qarku është mjaft i thjeshtë. Thjesht lidhni dy servos në arduino.

  1. Vertikale në kunj 5
  2. Horizontale në Pin 6
  3. Fuqia në +5V
  4. Toka në GND

Kontrolloni diagramin e qarkut për referencë.

Hapi 7: TESTIMI:

  • Pasi të jetë bërë gjithçka, gjëja e fundit që duhet bërë është të provoni nëse funksionon. Për të provuar së pari sigurohuni që servos janë të lidhur siç duhet me arduino dhe skica është ngarkuar.
  • Pasi të jetë ngarkuar skica, sigurohuni që të mbyllni IDE në mënyrë që porti të jetë i lirë për t'u lidhur me python.
  • Tani hapni 'face.py' me Python IDLE dhe shtypni 'F5' për të ekzekutuar kodin. Do të duhen disa sekonda për t'u lidhur me arduino dhe më pas duhet të jeni në gjendje të shihni një dritare që transmeton kamerën në internet. Tani kodi do të zbulojë fytyrën tuaj dhe servos do ta gjurmojnë atë.
  • Servo duhet të lëvizë ndërsa lëvizni objektin. Tani thjesht lidhni kamerën me servos në mënyrë që ajo të lëvizë së bashku me servos.

Faleminderit.

Recommended: