![تتبع الوجه باستخدام أردوينو: 7 خطوات تتبع الوجه باستخدام أردوينو: 7 خطوات](https://i.howwhatproduce.com/images/002/image-3516-39-j.webp)
جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-23 12:53
![تتبع الوجه باستخدام ArDUINO !!! تتبع الوجه باستخدام ArDUINO !!!](https://i.howwhatproduce.com/images/002/image-3516-40-j.webp)
في تعليمات سابقة ، شاركت كيف يمكنك التواصل بين Arduino و Python باستخدام وحدة 'pyserial' والتحكم في LED. إذا لم تكن قد شاهدته ، فتحقق من ذلك هنا: التواصل بين أردوينو وبايثون!
وكيف يمكنك اكتشاف لون كائن ما وتتبعه على الشاشة ، تحقق من ذلك هنا: اكتشاف اللون باستخدام OPENCV و PYTHON.
في هذا Instructable ، سأوضح لك كيفية تتبع الوجوه باستخدام Arduino & Python وجعل الكاميرا تتبع الوجه. قد يبدو هذا صعبًا ولكن ثق بي أنه ليس كذلك ، كل ما تحتاجه هو معرفة أساسية بـ Arduino و Python.
لذلك دعونا نبدأ…
الخطوة 1: الأشياء التي سوف تحتاجها:
![الأشياء التي سوف تحتاجها الأشياء التي سوف تحتاجها](https://i.howwhatproduce.com/images/002/image-3516-41-j.webp)
![الأشياء التي سوف تحتاجها الأشياء التي سوف تحتاجها](https://i.howwhatproduce.com/images/002/image-3516-42-j.webp)
![الأشياء التي سوف تحتاجها الأشياء التي سوف تحتاجها](https://i.howwhatproduce.com/images/002/image-3516-43-j.webp)
المتطلبات هي الحد الأدنى. لقد قدمت هنا قائمة جزئية لكل ما تحتاجه:
متطلبات الأجهزة:
- Arduino UNO (أمازون الولايات المتحدة / أمازون الاتحاد الأوروبي)
- كاميرا الويب (أمازون الولايات المتحدة / أمازون الاتحاد الأوروبي)
- الماكينات × 2 (أمازون الولايات المتحدة / أمازون الاتحاد الأوروبي)
- اللوح (أمازون الولايات المتحدة / أمازون الاتحاد الأوروبي)
- مجموعة إمالة المقلاة المؤازرة (أمازون الولايات المتحدة / أمازون الاتحاد الأوروبي)
متطلبات البرمجيات:
- Python 2.7 (يجب تثبيته ، عادةً ما يكون نظام التشغيل Linux مثبتًا عليه مسبقًا)
- OpenCV (يمكنك تنزيله بشكل منفصل أو التثبيت باستخدام "تثبيت النقطة" شرح أكثر)
- pyserial (يمكن تركيبها بنقطة)
- حبيبي.
- هاركسكاد.
بعد تجميع كل شيء يمكننا الانتقال إلى خطوة التثبيت …
الخطوة الثانية: إعداد بيئة بايثون:
![إعداد بيئة بايثون إعداد بيئة بايثون](https://i.howwhatproduce.com/images/002/image-3516-44-j.webp)
![إعداد بيئة بايثون إعداد بيئة بايثون](https://i.howwhatproduce.com/images/002/image-3516-45-j.webp)
![إعداد بيئة بايثون إعداد بيئة بايثون](https://i.howwhatproduce.com/images/002/image-3516-46-j.webp)
تثبيت بايثون:
لذلك نحتاج أولاً إلى Python 2.7 وتشغيله. للقيام بذلك ، قم أولاً بتنزيل وتثبيت python 2.7.14. للتحقق مما إذا كان قد تم تثبيته بشكل صحيح ، انتقل إلى: Windows Search >> اكتب "IDLE" >> اضغط على Enter. يجب أن تظهر قذيفة Python.
أو
في البحث ، اكتب CMD واضغط على enter لفتح موجه الأوامر. في نوع CMD >> python واضغط على enter ، يجب أن تظهر واجهة Python.
إذا رأيت خطأ في CMD ، فلا داعي للذعر ، فربما تحتاج إلى ضبط متغير البيئة. يمكنك متابعة هذا البرنامج التعليمي هنا لإعداد متغير البيئة.
تثبيت "pyserial" و "OpenCV" و "numpy" في Python:
لتثبيت هذه الوحدات ، سنستخدم تثبيت النقطة ،
أولاً افتح CMD واكتب الرموز التالية: -
نقطة تثبيت المسلسل
نقطة تثبيت opencv-python> تثبيت Pip numpy
ستقوم هذه الأوامر بتثبيت الوحدات النمطية اللازمة. الآن يمكننا الانتقال إلى جزء الترميز …
الخطوة الثالثة: نص بايثون:
![نص بايثون نص بايثون](https://i.howwhatproduce.com/images/002/image-3516-47-j.webp)
قبل البدء في كتابة التعليمات البرمجية ، فإن أول شيء يجب فعله هو إنشاء مجلد جديد حيث يجب تخزين جميع التعليمات البرمجية في نفس المجلد. لذا قم بإنشاء مجلد جديد ، وقم بتسميته بأي شيء تريده. وقم بتنزيل "Haarcascade" من الأسفل والصقه في المجلد.
افتح المفكرة الآن واكتب النص الوارد أدناه ، واحفظه باسم "face.py" في نفس المجلد مثل haarcascade. (يمكنك تنزيل الكود الذي قدمته للملف أدناه):
# استيراد جميع الوحدات المطلوبة
استيراد numpy كـ np استيراد تسلسلي وقت الاستيراد استيراد sys استيراد cv2 #Setup Communication path for arduino (بدلاً من 'COM5' ضع المنفذ الذي يتصل به اردوينو الخاص بك) arduino = serial. Serial ('COM5'، 9600) time.sleep (2) print ("Connected to 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.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} print (arr) print ('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 print (xx) print (yy) center = (xx، yy) # إرسال البيانات إلى طباعة arduino ("مركز المستطيل هو:" ، المركز) البيانات = "X {0: d} Y {1: d} Z".format (xx، yy) print ("output = '" + data + "" ") arduino.write (البيانات) # عرض الدفق. cv2.imshow ('img'، img) # اضغط على 'Esc' لإنهاء التنفيذ k = cv2.waitKey (30) & 0xff if k == 27: break
بمجرد الانتهاء من ذلك ، انتقل إلى كتابة كود اردوينو …
الخطوة 4: كود اردوينو:
![كود اردوينو كود اردوينو](https://i.howwhatproduce.com/images/002/image-3516-48-j.webp)
بعد أن يصبح نص Python جاهزًا ، نحتاج إلى رسم اردوينو للتحكم في المؤازرة. ارجع إلى الكود أدناه ، والصقه في Arduino IDE واحفظه باسم 'servo.ino' في نفس المجلد مثل face.py و haarcascade. قم بتحميل الكود وانتقل إلى الخطوة التالية لإجراء الاتصالات.
(الملف القابل للتحميل أدناه)
#يشمل
مؤازرة // المؤازرة العمودية المؤازرة ؛ // Horizontal Servo int x؛ int ذ ؛ int prevX ؛ int prevY ؛ إعداد باطل () {Serial.begin (9600) ؛ servoVer.attach (5) ؛ // إرفاق مضاعفات رأسية إلى رقم 5 servoHor.attach (6) ؛ // إرفاق أجهزة أفقية بـ Pin 6 servoVer.write (90) ؛ servoHor.write (90) ؛ } void Pos () {if (prevX! = x || prevY! = y) {int servoX = map (x، 600، 0، 70، 179)؛ مضاعفات int = خريطة (y ، 450 ، 0 ، 179 ، 95) ؛ servoX = min (servoX، 179) ؛ servoX = max (servoX، 70) ؛ المؤازرة = دقيقة (مؤازرة ، 179) ؛ المؤازرة = max (servoY، 95) ؛ servoHor.write (مؤازرة) ؛ servoVer.write (مؤازرة) ؛ }} void loop () {if (Serial.available ()> 0) {if (Serial.read () == 'X') {x = Serial.parseInt ()؛ إذا (Serial.read () == 'Y') {y = Serial.parseInt () ؛ نقاط البيع()؛ }} while (Serial.available ()> 0) {Serial.read ()؛ }}}
الخطوة 5: آلية عموم الميل: -
![آلية عموم الإمالة آلية عموم الإمالة](https://i.howwhatproduce.com/images/002/image-3516-49-j.webp)
![آلية عموم الإمالة آلية عموم الإمالة](https://i.howwhatproduce.com/images/002/image-3516-50-j.webp)
لقد استخدمت مجموعة متاحة بسهولة لـ Pan-Tilt. إذا كنت تريد ، يمكنك صنع واحدة بنفسك باستخدام الخشب / البلاستيك أو حتى الطباعة ثلاثية الأبعاد.
الذي استخدمته رخيص جدًا وسهل التجميع. ومع ذلك ، إذا كنت تريد إرشادات حول كيفية القيام بذلك ، فيمكنك العثور عليها هنا.
الخطوة السادسة: إجراء الاتصالات:
![يصنع علاقات يصنع علاقات](https://i.howwhatproduce.com/images/002/image-3516-51-j.webp)
![يصنع علاقات يصنع علاقات](https://i.howwhatproduce.com/images/002/image-3516-52-j.webp)
الدائرة بسيطة للغاية. فقط قم بإرفاق اثنين من الماكينات إلى اردوينو.
- عمودي على دبوس 5
- أفقي على دبوس 6
- القدرة على + 5V
- الأرض إلى GND
تحقق من مخطط الدائرة للرجوع اليها.
الخطوة 7: الاختبار:
- بعد الانتهاء من كل شيء ، فإن آخر شيء يجب القيام به هو اختبار ما إذا كان يعمل. للاختبار أولاً ، تأكد من توصيل الماكينات بشكل صحيح بـ arduino وتحميل الرسم التخطيطي.
- بعد تحميل المخطط ، تأكد من إغلاق IDE حتى يكون المنفذ مجانيًا للاتصال ببيثون.
- افتح الآن face.py باستخدام Python IDLE واضغط على F5 لتشغيل الكود. سيستغرق الاتصال بـ arduino بضع ثوانٍ ومن ثم يجب أن تكون قادرًا على رؤية نافذة تقوم ببث كاميرا الويب. سيكتشف الرمز الآن وجهك وستتتبعه الماكينات.
- يجب أن يتحرك المؤازر أثناء تحريك الكائن. الآن فقط قم بتوصيل الكاميرا بالمضاعفات بحيث تتحرك جنبًا إلى جنب مع الماكينات.
شكرا لك.
موصى به:
DIY الذكية روبوت تتبع مجموعات السيارات تتبع السيارات حساسة للضوء: 7 خطوات
![DIY الذكية روبوت تتبع مجموعات السيارات تتبع السيارات حساسة للضوء: 7 خطوات DIY الذكية روبوت تتبع مجموعات السيارات تتبع السيارات حساسة للضوء: 7 خطوات](https://i.howwhatproduce.com/images/008/image-22349-j.webp)
DIY الذكية روبوت تتبع مجموعات السيارات تتبع السيارات حساس للضوء: التصميم بواسطة SINONING ROBOT يمكنك الشراء من تتبع سيارة الروبوت ، تقارن رقاقة TheoryLM393 بين المقاومين ، عندما يكون هناك جانب واحد من المقاوم الضوئي LED على الأبيض سيتوقف جانب المحرك على الفور ، والجانب الآخر من المحرك تدور ، بحيث
جهاز تتبع الوجه! Python & Arduino: 5 خطوات
![جهاز تتبع الوجه! Python & Arduino: 5 خطوات جهاز تتبع الوجه! Python & Arduino: 5 خطوات](https://i.howwhatproduce.com/images/001/image-69-31-j.webp)
جهاز تتبع الوجه! Python & Arduino: مرحبًا بالجميع يقرؤون هذه التعليمات. هذا جهاز لتتبع الوجوه يعمل على مكتبة بيثون تسمى OpenCV. السيرة الذاتية تعني "رؤية الكمبيوتر". ثم قمت بإعداد واجهة تسلسلية بين جهاز الكمبيوتر الخاص بي و Arduino UNO. هذا يعني
تتبع متغيرات التسارع باستخدام Raspberry Pi و MMA7455 باستخدام Python: 6 خطوات
![تتبع متغيرات التسارع باستخدام Raspberry Pi و MMA7455 باستخدام Python: 6 خطوات تتبع متغيرات التسارع باستخدام Raspberry Pi و MMA7455 باستخدام Python: 6 خطوات](https://i.howwhatproduce.com/images/002/image-3297-34-j.webp)
تتبع تباينات التسارع باستخدام Raspberry Pi و MMA7455 باستخدام Python: لم أسافر ، كنت أختبر الجاذبية. لا يزال يعمل … أوضح تمثيل لمكوك فضاء متسارع أن الساعة في أعلى نقطة في المكوك ستختار أسرع من ساعة في القاعدة بسبب تمدد زمن الجاذبية. بعض
مسدس تتبع الوجه: 4 خطوات
![مسدس تتبع الوجه: 4 خطوات مسدس تتبع الوجه: 4 خطوات](https://i.howwhatproduce.com/images/005/image-13923-10-j.webp)
مسدس تتبع الوجه: هذا المشروع هو امتداد لمشروع بندقية سلك رحلة الليزر الموضح هنا - https://www.instructables.com/id/Building-a-Sentry-Gun-with-Laser-Trip-Wire-System-/ ؟ ALLSTEPS والفرق الوحيد هو أن البندقية لن يتم تشغيلها بواسطة الليزر ولكن بواسطة
روبوت التسول مع تتبع الوجه والتحكم بواسطة وحدة تحكم Xbox - Arduino: 9 خطوات (بالصور)
![روبوت التسول مع تتبع الوجه والتحكم بواسطة وحدة تحكم Xbox - Arduino: 9 خطوات (بالصور) روبوت التسول مع تتبع الوجه والتحكم بواسطة وحدة تحكم Xbox - Arduino: 9 خطوات (بالصور)](https://i.howwhatproduce.com/images/003/image-7587-11-j.webp)
تسول الروبوت مع تتبع الوجه والتحكم بواسطة وحدة تحكم Xbox - Arduino: سنصنع روبوتًا متسولًا. سيحاول هذا الروبوت إثارة أو جذب انتباه الأشخاص العابرين. سوف يكتشف وجوههم ويحاول إطلاق الليزر عليهم. إذا أعطيت الروبوت عملة معدنية ، فسوف يغني أغنية ويرقص. سيحتاج الروبوت إلى