فهرست مطالب:
- مرحله 1: موارد مورد نیاز:
- مرحله 2: راه اندازی محیط پایتون:
- مرحله 3: اسکریپت پایتون:
- مرحله 4: کد آردوینو:
- مرحله 5: مکانیزم حرکت شیب دار:-
- مرحله 6: ایجاد ارتباطات:
- مرحله 7: آزمایش:
تصویری: ردیابی صورت با استفاده از ARDUINO !!!: 7 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:52
در دستورالعمل قبلی ، من نحوه برقراری ارتباط بین آردوینو و پایتون را با استفاده از ماژول pyserial و کنترل یک LED به اشتراک گذاشتم. اگر آن را ندیده اید ، اینجا را بررسی کنید: ارتباط بین ARDUINO & PYTHON!
و اینکه چگونه می توانید رنگ یک شی را تشخیص داده و آن را روی صفحه ردیابی کنید ، اینجا را بررسی کنید: COLOR DETECTION با استفاده از OPENCV و PYTHON.
در این دستورالعمل به شما نشان خواهم داد که چگونه می توانید چهره ها را با استفاده از آردوینو و پایتون ردیابی کرده و دوربین را از چهره پیروی کنید. این ممکن است سخت به نظر برسد ، اما باور کنید اینطور نیست ، تنها چیزی که نیاز دارید دانش اولیه در مورد آردوینو و پایتون است.
بنابراین بیایید شروع کنیم…
مرحله 1: موارد مورد نیاز:
الزامات حداقل است. در اینجا من لیستی از همه چیزهایی که نیاز دارید ارائه کرده ام:
سخت افزار مورد نیاز:
- آردوینو UNO (آمازون آمریکا / آمازون اتحادیه اروپا)
- وب کم (آمازون آمریکا / آمازون اتحادیه اروپا)
- Servos x 2 (آمازون آمریکا / آمازون اتحادیه اروپا)
- تخته نان (آمازون آمریکا / آمازون اتحادیه اروپا)
- Servo Pan Tilt Kit (آمازون آمریکا / آمازون اتحادیه اروپا)
نرم افزار مورد نیاز:
- پایتون 2.7 (باید نصب شود ، سیستم عامل لینوکس معمولاً آن را از قبل نصب کرده است)
- OpenCV (می توانید آن را جداگانه بارگیری کنید یا با استفاده از "pip install" توضیح بیشتری توضیح دهید)
- pyserial (قابل نصب با پیپ)
- بی حس
- Haarcascade.
پس از جمع آوری همه چیز ، می توانیم به مرحله نصب برویم…
مرحله 2: راه اندازی محیط پایتون:
نصب پایتون:
بنابراین ابتدا به پایتون 2.7 نیاز داریم تا اجرا شود. برای انجام این کار ابتدا Python 2.7.14 را بارگیری و نصب کنید. برای بررسی اینکه آیا به درستی نصب شده است بروید: Windows Search >> Type "IDLE" >> Enter را بزنید. یک پوسته پایتون باید ظاهر شود.
یا
در جستجو "CMD" را تایپ کرده و enter را بزنید تا Command Prompt باز شود. در CMD نوع >> python و enter را بزنید ، رابط پایتون باید نمایش داده شود.
اگر خطایی در CMD مشاهده کردید ، نگران نباشید ، احتمالاً باید متغیر محیط را تنظیم کنید. برای تنظیم متغیر محیط می توانید این آموزش را در اینجا دنبال کنید.
نصب "pyserial" ، "OpenCV" و "numpy" در پایتون:
برای نصب این ماژول ها از pip install استفاده می کنیم ،
ابتدا CMD را باز کرده و کدهای زیر را تایپ کنید:-
سریال pip install
pip install opencv-python> pip install numpy
این دستورات ماژول های لازم را نصب می کند. اکنون می توانیم به قسمت کد نویسی برویم…
مرحله 3: اسکریپت پایتون:
قبل از شروع به نوشتن کد ، اولین کاری که باید انجام دهید این است که یک پوشه جدید بسازید زیرا همه کدها باید در یک پوشه ذخیره شوند. بنابراین یک پوشه جدید ایجاد کنید ، نام آن را هر چیزی که می خواهید بگذارید. و "Haarcascade" را از زیر بارگیری کرده و در پوشه بچسبانید.
حالا دفترچه یادداشت را باز کنید و اسکریپت زیر را بنویسید ، آن را به عنوان 'face.py' در همان پوشه haarcascade ذخیره کنید. (می توانید کدی را که فایل زیر در اختیار شما قرار داده است بارگیری کنید):
#ماژول های مورد نیاز را #وارد کنید
import numpy as np import serial time import import sys import cv2 #راه اندازی مسیر ارتباطی برای arduino (به جای "COM5" پورتی را که arduino شما به آن متصل است قرار دهید) arduino = serial. سریال ("COM5" ، 9600) time.sleep (2) print ("متصل به 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 مستطیل (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)) print (' Y: '+str (y)) print (' x+w: '+str (x+w)) print (' y+h: '+str (y+h)) # مرکز روی (مستطیل) xx = int (x+(x+h))/2 yy = int (y+(y+w))/2 چاپ (xx) چاپ (yy) مرکز = (xx ، yy) # ارسال داده به چاپ آردوینو ("مرکز مستطیل است:" ، مرکز) data = "X {0: d} Y {1: d} Z".format (xx، yy) print ("output = '" +data + "'") arduino.write (data) #نمایش جریان. cv2.imshow ('img'، img) #ضربه بزنید 'Esc' برای خاتمه اجرا k = cv2.waitKey (30) & 0xff اگر k == 27: break
پس از انجام این کار ، به نوشتن کد برای arduino ادامه دهید…
مرحله 4: کد آردوینو:
پس از آماده شدن اسکریپت پایتون ، برای کنترل سروو به طرح آردوینو نیاز داریم. کد زیر را ارجاع دهید ، آن را در Arduino IDE بچسبانید و آن را به عنوان 'servo.ino' در همان پوشه face.py و haarcascade ذخیره کنید. کد را بارگذاری کرده و برای برقراری ارتباط به مرحله بعدی بروید.
(فایل قابل بارگیری در زیر آورده شده است)
#عبارتند از
سرو سرو سرو؛ // Servo Servo ServoHor عمودی ؛ // Horizontal Servo int x؛ int y؛ int prevX؛ int prevY ؛ void setup () {Serial.begin (9600)؛ servoVer.attach (5) ؛ // وصل کردن سرووی عمودی به پین 5 servoHor.attach (6) ؛ // پیوستن Horizontal Servo به پین 6 servoVer.write (90) ؛ servoHor.write (90) ؛ } void Pos () {if (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) ؛ }} حلقه void () {if (Serial.available ()> 0) {if (Serial.read () == 'X') {x = Serial.parseInt ()؛ if (Serial.read () == 'Y') {y = Serial.parseInt ()؛ Pos ()؛ }} while (Serial.available ()> 0) {Serial.read ()؛ }}}
مرحله 5: مکانیزم حرکت شیب دار:-
من از یک کیت به راحتی در دسترس برای Pan-Tilt استفاده کرده ام. در صورت تمایل می توانید یکی را با استفاده از چوب/پلاستیک یا حتی چاپ سه بعدی تهیه کنید.
موردی که من استفاده کردم بسیار ارزان است و جمع آوری آن بسیار آسان است. با این حال ، اگر می خواهید دستورالعمل نحوه انجام این کار را پیدا کنید ، می توانید آن را در اینجا پیدا کنید.
مرحله 6: ایجاد ارتباطات:
مدار بسیار ساده است. فقط دو سروو به آردوینو وصل کنید.
- عمودی به پین 5
- افقی به پین 6
- قدرت +5V
- زمین به GND
برای مرجع نمودار مدار را بررسی کنید.
مرحله 7: آزمایش:
- بعد از انجام همه کارها آخرین کار این است که آزمایش کنید آیا کار می کند یا خیر. برای آزمایش ابتدا مطمئن شوید که سرووها به درستی به آردوینو متصل شده اند و طرح بارگذاری شده است.
- پس از بارگذاری طرح ، مطمئن شوید که IDE را ببندید تا پورت برای اتصال به پایتون آزاد باشد.
- اکنون 'face.py' را با Python IDLE باز کرده و 'F5' را برای اجرای کد فشار دهید. چند ثانیه طول می کشد تا به arduino متصل شوید و سپس باید بتوانید پنجره ای را مشاهده کنید که به وب کم می رسد. اکنون کد چهره شما را تشخیص می دهد و سرویس ها آن را ردیابی می کنند.
- هنگام حرکت دادن جسم ، سروو باید حرکت کند. حالا فقط دوربین را به سروو وصل کنید تا همراه سرووها حرکت کند.
متشکرم.
توصیه شده:
ردیابی حرکت با استفاده از MPU-6000 و Arduino Nano: 4 مرحله
ردیابی حرکت با استفاده از MPU-6000 و Arduino Nano: MPU-6000 یک سنسور ردیابی حرکت 6 محوره است که دارای شتاب سنج 3 محوره و ژیروسکوپ 3 محوره در آن تعبیه شده است. این سنسور قادر به ردیابی کارآمد موقعیت و موقعیت دقیق یک جسم در صفحه سه بعدی است. قابل استفاده در
ماسک Covid-19 که در صورت لمس صورت شما را فریاد می زند: 4 مرحله
ماسک Covid-19 که در صورت لمس صورت شما را فریاد می زند: آیا نمی توانید دست زدن به صورت خود را متوقف کنید؟ این وسایل الکترونیکی را روی ماسکی که دارید بچسبانید و مدام به شما یادآوری می شود که این کار را نکنید
ربات هوشمند DIY ردیابی ماشین ردیابی ماشین ردیابی خودرو حساس به نور: 7 مرحله
دستگاه DIY Robot Smart Tracking Car Tracking Car Photosensitive: طراحی شده توسط SINONING ROBOT شما می توانید از ربات ردیابی ماشین خرید کنید بچرخید تا
دستگاه ردیابی صورت! پایتون و آردوینو: 5 مرحله
دستگاه ردیابی صورت! پایتون و آردوینو: سلام به همه کسانی که این مطلب را می خوانند. این یک دستگاه ردیابی چهره است که روی یک کتابخانه پایتون به نام OpenCV کار می کند. CV مخفف "Computer Vision" است. سپس یک رابط سریال بین رایانه شخصی خود و Arduino UNO ایجاد کردم. بنابراین این بدان معناست که
تفنگ ردیابی صورت: 4 مرحله
تفنگ ردیابی صورت: این پروژه توسعه پروژه تفنگ سیمی لیزری است که در اینجا نشان داده شده است-https://www.instructables.com/id/Building-a-Sentry-Gun-wis-Laser-Trip-Wire-System-/ ALLSTEPS تنها تفاوت این است که تفنگ توسط لیزر فعال نمی شود بلکه توسط