Агуулгын хүснэгт:

ARDUINO -г ашиглаж буй нүүр царай !!!: 7 алхам
ARDUINO -г ашиглаж буй нүүр царай !!!: 7 алхам

Видео: ARDUINO -г ашиглаж буй нүүр царай !!!: 7 алхам

Видео: ARDUINO -г ашиглаж буй нүүр царай !!!: 7 алхам
Видео: TRYING NEW MAKEUP FROM SEPHORA! 💄 FIRST IMPRESSIONS 2024, Долдугаар сарын
Anonim
ARDUINO -г ашиглаж буй нүүр царай !!!
ARDUINO -г ашиглаж буй нүүр царай !!!

Өмнөх зааварчилгаанд та "pyserial" модулийг ашиглан Arduino болон Python -ийн хооронд хэрхэн холбоо барьж, LED -ийг удирдах талаар хуваалцсан. Хэрэв та хараагүй бол эндээс үзээрэй: ARDUINO & PYTHON -ИЙН ХАРИЛЦАА!

Объектын өнгийг хэрхэн илрүүлж, дэлгэцэн дээр хэрхэн хянах талаар эндээс шалгаарай: OPENCV, PYTHON ашиглан өнгийг илрүүлэх.

Энэхүү гарын авлагад би Arduino & Python ашиглан нүүрээ хэрхэн хянах, камерыг нүүрээ дагахыг танд үзүүлэх болно. Энэ нь хэцүү сонсогдож магадгүй ч надад итгээрэй, энэ бол танд хэрэгтэй зүйл бол Arduino болон Python -ийн талаархи үндсэн мэдлэг юм.

Тиймээс эхэлцгээе …

Алхам 1: Танд хэрэгтэй зүйлс:

Танд хэрэгтэй зүйлс
Танд хэрэгтэй зүйлс
Танд хэрэгтэй зүйлс
Танд хэрэгтэй зүйлс
Танд хэрэгтэй зүйлс
Танд хэрэгтэй зүйлс

Тавигдах шаардлага хамгийн бага байна. Энд би танд хэрэгтэй бүх зүйлийн жагсаалтыг өгсөн болно.

Тоног төхөөрөмжийн шаардлага:

  • Arduino UNO (Amazon US / Amazon EU)
  • Вэб камер (Amazon US / Amazon EU)
  • Servos x 2 (Amazon US / Amazon EU)
  • Breadboard (Amazon US / Amazon EU)
  • Servo Pan Tilt Kit (Amazon US / Amazon EU)

Програм хангамжийн шаардлага:

  1. Python 2.7 (Суулгах ёстой, Linux OS-ийг ихэвчлэн урьдчилан суулгадаг)
  2. OpenCV (Та үүнийг тусад нь татаж авах эсвэл 'pip install' ашиглан суулгаж болно. Дараа нь тайлбарласан болно)
  3. pyserial (pip ашиглан суулгаж болно)
  4. намуухан.
  5. Хааркаскад.

Бүх зүйлийг цуглуулсны дараа бид суулгах алхам руу шилжиж болно …

Алхам 2: Python орчныг тохируулах:

Python орчныг тохируулах
Python орчныг тохируулах
Python орчныг тохируулах
Python орчныг тохируулах
Python орчныг тохируулах
Python орчныг тохируулах

Python суулгаж байна:

Тиймээс эхлээд Python 2.7 -ийг ажиллуулж, ажиллуулах шаардлагатай байна. Үүнийг хийхийн тулд эхлээд python 2.7.14 -ийг татаж аваад суулгаарай. Зөв суулгасан эсэхийг шалгахын тулд Goto: Windows Search >> "IDLE" гэж бичнэ үү. Python Shell гарч ирэх ёстой.

ЭСВЭЛ

Хайлтанд 'CMD' гэж бичээд enter дарж командын мөрийг нээнэ үү. CMD төрөлд >> python гэж бичээд enter дарахад Python интерфейс гарч ирэх ёстой.

Хэрэв та CMD дээр алдаа олж харвал сандрах хэрэггүй, магадгүй та орчны хувьсагчийг тохируулах хэрэгтэй болно. Та энэ зааврыг дагаж Байгаль орчны хувьсагчийг тохируулж болно.

Python дээр 'pyserial', 'OpenCV' ба 'numpy' суулгаж байна

Эдгээр модулийг суулгахын тулд бид pip install, Эхлээд CMD-ийг нээгээд дараах кодыг бичнэ үү:-

Цуваа суулгах цуваа

pip install opencv-python> pip install numpy

Эдгээр тушаалууд нь шаардлагатай модулиудыг суулгах болно. Одоо бид кодлох хэсэг рүү шилжиж болно …

Алхам 3: Python скрипт:

Python скрипт
Python скрипт

Код бичиж эхлэхээс өмнө хийх ёстой хамгийн эхний зүйл бол шинэ хавтас үүсгэх явдал юм, учир нь бүх кодыг нэг хавтсанд хадгалах шаардлагатай болно. Тиймээс шинэ хавтас үүсгээрэй, хүссэн зүйлээ нэрлээрэй. мөн доороос 'Haarcascade' програмыг татаж аваад фолдерт буулгана уу.

Тэмдэглэлийн дэвтэр нээгээд доорх скриптийг бичээд haarcascade -тай ижил хавтсанд 'face.py' гэж хадгална уу. (Та доорх файлыг миний оруулсан кодыг татаж авч болно):

#Шаардлагатай бүх модулийг импортлох

np импортлох цуваа импорт хийх цаг импортлох sys импорт cv2 #Setup Arduino -ийн харилцаа холбооны зам (2) хэвлэх ("Arduino -д холбогдсон …") #Haarcascade -ийг нүүр таних зорилгоор импортлох face_cascade = cv2. CascadeClassifier ('haarcascade_frontalface_default.xml') #Вэбкамераас видео дамжуулалтыг авахын тулд. 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.dectangle (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} хэвлэх (arr) хэвлэх ('X: '+str (x)) хэвлэх (' Y: '+str (y)) хэвлэх (' x+w: '+str (x+w)) хэвлэх (' y+h: '+str (y+h))) # ROI төв (Тэгш өнцөгт) xx = int (x+(x+h))/2 yy = int (y+(y+w))/2 хэвлэх (xx) хэвлэх (yy) төв = (xx, yy) # arduino print руу өгөгдөл илгээх ("Тэгш өнцөгтийн төв нь:", төв) өгөгдөл = "X {0: d} Y {1: d} Z". формат (xx, yy) хэвлэх ("output = '" +өгөгдөл + "'") arduino.write (өгөгдөл) #Дамжуулалтыг харуулах. cv2.imshow ('img', img) #Гүйцэтгэлийг зогсоохын тулд 'Esc' дээр дарна уу k = cv2.waitKey (30) & 0xff бол k == 27: завсарлага

Үүнийг хийсний дараа arduino код бичихийн тулд үргэлжлүүлээрэй …

Алхам 4: Arduino код:

Arduino код
Arduino код

Питон скрипт бэлэн болсны дараа servo -ийг хянахын тулд бидэнд arduino ноорог хэрэгтэй болно. Доорх кодыг үзээд Arduino IDE -д оруулаад face.py болон haarcascade -тай ижил хавтсанд 'servo.ino' болгон хадгална уу. кодыг байршуулж, холболт хийхийн тулд дараагийн алхам руу орно уу.

(Татаж авах боломжтой файлыг доор өгөв)

#оруулах

Servo servoVer; // Босоо Servo Servo servoHor; // Хэвтээ Servo int x; int y; int prevX; int prevY; void setup () {Serial.begin (9600); servoVer.attach (5); // 5 -р Pino servoHor.attach (6) дээр босоо Servo хавсаргах; // Pin 6 servoVer.write (90) -д хэвтээ Servo хавсаргах; servoHor.write (90); } хүчингүй Pos () {if (prevX! = x || prevY! = y) {int servoX = map (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); }} void loop () {if (Serial.available ()> 0) {if (Serial.read () == 'X') {x = Serial.parseInt (); if (Serial.read () == 'Y') {y = Serial.parseInt (); Пос (); }} while (Serial.available ()> 0) {Serial.read (); }}}

Алхам 5: Пан-хазайлтын механизм:-

Пан-хазайлтын механизм
Пан-хазайлтын механизм
Пан-хазайлтын механизм
Пан-хазайлтын механизм

Би Pan-Tilt хийхэд бэлэн байгаа иж бүрдлийг ашигласан. Хэрэв та хүсвэл модон/хуванцар эсвэл бүр 3D хэвлэлийн тусламжтайгаар өөрөө хийж болно.

Миний ашигласан нь харьцангуй хямд бөгөөд угсрахад маш хялбар байдаг. Гэсэн хэдий ч хэрэв та үүнийг хэрхэн яаж хийхийг зааж өгөхийг хүсч байвал эндээс олж болно.

Алхам 6: Холболт хийх:

Холболт хийх
Холболт хийх
Холболт хийх
Холболт хийх

Хэлхээ нь маш энгийн. Arduino -д хоёр servo залгаарай.

  1. 5 -р зүү рүү босоо
  2. 6 -р зүү хүртэл хэвтээ
  3. +5V хүртэл хүчдэл
  4. GND -ийн үндэслэл

Лавлахын тулд хэлхээний диаграмыг шалгана уу.

Алхам 7: Тест хийх:

  • Бүх зүйл дууссаны дараа хийх ёстой хамгийн сүүлийн зүйл бол ажиллаж байгаа эсэхийг шалгах явдал юм. Эхлээд туршихын тулд servo -г arduino -той зөв холбож, ноорог байршуулсан эсэхийг шалгаарай.
  • Ноорог байршуулсны дараа IDE -г хаахаа мартуузай, ингэснээр порт нь python -тэй холбогдох боломжтой болно.
  • Одоо 'face.py' -г Python IDLE -ээр нээгээд кодыг ажиллуулахын тулд 'F5' товчийг дарна уу. Arduino -д холбогдоход хэдэн секунд шаардагдах бөгөөд дараа нь вэб камерыг дамжуулж буй цонхыг харах боломжтой болно. Одоо код нь таны царайг илрүүлэх бөгөөд servos үүнийг хянах болно.
  • Та объектыг хөдөлгөж байхад Servo хөдлөх ёстой. Одоо камерыг servos -д холбоно уу, ингэснээр servo -той хамт хөдлөх болно.

Баярлалаа.

Зөвлөмж болгож буй: