- المواد المطلوبة:
- طباعة ثلاثية الأبعاد للأجزاء المطلوبة (اختياري):
- التخطيطي والأجهزة:
- إعداد تطبيق Android الخاص بك:
- برمجة اردوينو الخاص بك:
- العمل:
هل رغبت يومًا في بناء ذراع روبوت أو روبوت لتعقب الوجه ببساطة باستخدام Arduino وليس أي برمجة أخرى مثل OpenCV والأساسيات المرئية C # وما إلى ذلك؟ ثم اقرأ جيدًا ، في هذا المشروع ، سنقوم بتنفيذ اكتشاف الوجه من خلال مزج قوة Arduino و Android. في هذا المشروع ، ستتحرك الكاميرا المحمولة جنبًا إلى جنب مع وجهك بمساعدة الماكينات. ميزة استخدام Android Mobile Phone هنا هي أنك لست بحاجة إلى الاستثمار في وحدة الكاميرا ويمكن القيام بعمل الكشف عن الصور بالكامل في الهاتف نفسه ، فأنت لست بحاجة إلى توصيل Arduino بجهاز الكمبيوتر الخاص بك حتى يعمل هذا. استخدمنا هنا وحدة Bluetooth Module مع Arduino للتواصل مع الهاتف المحمول لاسلكيًا.
تم إنشاء تطبيق Android المستخدم في هذا المشروع باستخدام معالجة Android ، ويمكنك إما تثبيت التطبيق مباشرة عن طريق تنزيل ملف APK (اقرأ المزيد للرابط) أو وضع غطاء البرمجة الخاص بك وجعل تطبيق Android الخاص بك أكثر جاذبية باستخدام رمز المعالجة المعطى كذلك في البرنامج التعليمي. تعرف على المزيد حول المعالجة عن طريق التحقق من مشاريع المعالجة السابقة.
بحلول نهاية هذا البرنامج التعليمي ، سيكون لديك ذراع روبوتية Mini Tilt و Span Span يمكنها تتبع وجهك والتحرك معه. يمكنك استخدام هذا (مع مزيد من التقدم) لتسجيل مقاطع فيديو مدونة الفيديو الخاصة بك أو حتى التقاط صورة سيلفي بالكاميرا الخلفية لهاتفك المحمول لأنها تضع وجهك بالضبط في منتصف شاشة هاتفك المحمول. وبالتالي!! مثير للاهتمام؟ تحقق من الفيديو التوضيحي في نهاية هذا البرنامج التعليمي لرؤيته يعمل. دعونا نرى كيف يمكننا بناء واحد…
لقد بذلت قصارى جهدي لجعل هذا المشروع يعمل بأكبر قدر ممكن من البساطة ، ويمكن لأي شخص لديه الحد الأدنى من المعرفة بالأجهزة أو الترميز استخدام هذه الإرشادات لجعل هذا المشروع يعمل في أي وقت من الأوقات. ومع ذلك ، بمجرد القيام بذلك ، أقترح عليك أن تقف وراء الرموز حتى تتمكن حقًا من معرفة ما الذي يجعل هذا الشيء يعمل وكيف.
المواد المطلوبة:
- اردوينو نانو
- محرك سيرفو SG90 - 2Nos
- هاتف Android مع كاميرا لائقة
- وحدة بلوتوث HC-05 / HC-06
- كمبيوتر للبرمجة
- طابعة ثلاثية الأبعاد (اختيارية)
- بطارية 9 فولت
طباعة ثلاثية الأبعاد للأجزاء المطلوبة (اختياري):
من أجل تحريك وإمالة هاتفنا المحمول ، نحتاج إلى بعض الهياكل الميكانيكية مثل حامل الهاتف وعدد قليل من أقواس المؤازرة. يمكنك استخدام الورق المقوى لصنع واحدة ، نظرًا لأن لدي طابعة ثلاثية الأبعاد ، فقد قررت طباعة هذه الأجزاء ثلاثية الأبعاد.
تعد الطباعة ثلاثية الأبعاد أداة رائعة يمكنها المساهمة كثيرًا عند إنشاء مشاريع نموذجية أو تجربة تصميمات ميكانيكية جديدة. إذا لم تكن قد اكتشفت بعد مزايا الطابعة ثلاثية الأبعاد أو كيفية عملها ، يمكنك قراءة دليل المبتدئين للطباعة ثلاثية الأبعاد.
إذا كنت تمتلك طابعة ثلاثية الأبعاد أو لديك حق الوصول إليها ، فيمكنك استخدام ملفات STL التي يمكن تنزيلها من هنا لطباعتها وتجميعها مباشرةً. ومع ذلك ، قد تحتاج بعض الأجزاء مثل حامل الهاتف المحمول إلى بعض التعديلات بناءً على أبعاد هاتفك. لقد صممته لهاتفي المحمول MOTO G. لقد استخدمت طابعة أساسية جدًا لطباعة جميع الأجزاء. الطابعة هي FABX v1 من 3ding والتي تأتي بسعر مناسب مع حجم طباعة يبلغ 10 سم مكعب. يأتي السعر الرخيص مع مقايضة مع دقة طباعة منخفضة ولا توجد بطاقة SD أو وظيفة استئناف الطباعة. أنا أستخدم برنامجًا يسمى Cura لطباعة ملفات STL. الإعدادات التي استخدمتها لطباعة المواد موضحة أدناه ، يمكنك استخدامها أو تغييرها بناءً على طابعتك.
بمجرد طباعة جميع المواد المطلوبة ، يمكنك تثبيتها في مكانها باستخدام البراغي وبعض الغراء الساخن. بعد اكتمال التجميع ، يجب أن يبدو مثل هذا أدناه.
التخطيطي والأجهزة:
تظهر الدائرة الخاصة بمشروع تتبع الوجه على الهواتف الذكية في الصورة أدناه:
تتكون الدائرة من محركين مؤازرين ، أحدهما يستخدم لتحريك الهاتف المحمول يسارًا / يمينًا والآخر يستخدم لإمالة الهاتف المحمول لأعلى / لأسفل. سيتم توجيه الاتجاه الذي يجب أن تتحرك فيه المؤازرة بواسطة Arduino Nano الذي يحصل بنفسه على معلومات من وحدة Bluetooth (HC-05). يتم تشغيل الدائرة بأكملها بواسطة بطارية 9V.
يمكن توصيل هذه الدائرة بسهولة على اللوح الخاص بك أو يمكنك أيضًا لحامها على لوحة أداء صغيرة كما فعلت هنا.
إعداد تطبيق Android الخاص بك:
كما قلت سابقًا ، فإن الدماغ الرئيسي الذي يعمل وراء هذا المشروع هو تطبيق Android هذا. تم تطوير تطبيق Android هذا باستخدام معالجة Android. يمكنك تثبيت هذا التطبيق مباشرة على هاتفك المحمول وتشغيله باتباع الخطوات أدناه.
- قم بتنزيل ملف APK من هنا.
- السلطة على الدائرة المبينة أعلاه.
- في إعدادات هاتفك ، ابحث عن وحدة Bluetooth المسماة "HC-05"
- إذا قمت بتسميته بشيء آخر غير "HC-05" ، فقم بتغييره مرة أخرى إلى HC-05 حيث سيعمل التطبيق عندها فقط.
- قم بإقران وحدة Bluetooth الخاصة بك بكلمة المرور "1234" أو "0000".
- الآن ، قم بتشغيل التطبيق في الوضع الرأسي. يجب أن تشاهد شاشة الكاميرا وأيضًا عبارة "متصلة بـ: HC-05" في الجزء العلوي من الشاشة.
- جرب تحريك الكاميرا فوق أحد الوجه ويجب أن يظهر مربع أخضر فوقه وسيتم عرض موضعه أيضًا في الزاوية اليسرى العلوية من الشاشة كما هو موضح أدناه.
يمكنك نقل مشروع Arduino Face Tracking هذا إلى المستوى التالي من خلال إدخال الكثير من التطورات التي لن تحتاج إلى ترميز تطبيق Android الخاص بك. قد يبدو إنشاء تطبيق Android أمرًا صعبًا ولكن ثق بي بمساعدة المعالجة التي يمكنك تعلمها في أي وقت من الأوقات. يمكن تنزيل رمز المعالجة الكامل المستخدم لبناء هذا التطبيق هنا. أنت حر في تحقيق أي تقدم بإبداعك الخاص. تحقق من المشاريع أدناه لمعرفة المزيد حول المعالجة:
- الواقع الافتراضي باستخدام Arduino والمعالجة
- لعبة بينج بونج باستخدام اردوينو
- راديو FM يتم التحكم فيه بواسطة الهاتف الذكي باستخدام المعالجة.
- نظام رادار اردوينو باستخدام معالجة ومستشعر فوق صوتي
برمجة اردوينو الخاص بك:
سيكتشف تطبيق Android الوجه وموضعه على الشاشة ؛ سيحدد بعد ذلك الاتجاه الذي يجب أن يتحرك فيه بناءً على موضع الوجه بحيث يصل الوجه إلى وسط الشاشة. ثم يتم إرسال هذا الاتجاه إلى Arduino عبر وحدة Bluetooth.
برنامج Arduino لهذا المشروع بسيط إلى حد ما ، علينا فقط التحكم في اتجاه محركي المؤازرة بناءً على القيم الواردة من وحدة Bluetooth. و رمز كاملة يمكن العثور عليها في نهاية هذا البرنامج التعليمي، لقد شرحت أيضا بضعة أسطر الهامة أدناه.
ينشئ سطر الكود أدناه اتصالًا تسلسليًا مع المسامير D12 مثل RX و D11 مثل TX. ومن ثم يجب توصيل الدبوس D12 بوحدة TX الخاصة بوحدة BT والدبوس D11 بوحدة RX لوحدة BT.
SoftwareSerial cam_BT (12 ، 11) ؛ // RX ، TX
ثم قمنا بتهيئة وحدة Bluetooth بمعدل الباود 9600. تأكد من أن الوحدة تعمل أيضًا على نفس معدل الباود. عدا ذلك قم بتغييره وفقًا لذلك.
cam_BT.begin (9600) ؛ // بدء اتصال البلوتوث عند 9600 باودرات cam_BT.println ("جاهز لأخذ الأوامر") ؛
يقرأ السطر أدناه ما يأتي من خلال وحدة Bluetooth. كما يتم حفظ البيانات في المتغير "BluetoothData".
if (cam_BT.available ()) // اقرأ ما يأتي عبر البلوتوث {BluetoothData = cam_BT.read () ؛ Serial.print ("واردة من BT:") ؛ Serial.println (BluetoothData) ؛ }
بناءً على البيانات الواردة من البلوتوث ، يتم التحكم في اتجاه المحركات. لتشغيل محرك إلى اليسار ، يتم تقليل قيمة المحرك بمقدار 2 عن موضعه السابق. يمكنك زيادة هذه القيمة من 2 إلى 4 أو 6 إذا كنت بحاجة إلى تحريك الذراع بشكل أسرع. ولكن ، قد يؤدي ذلك إلى بعض الهزات التي تجعل الكاميرا غير مستقرة.
إذا (BluetoothData == 49) // انعطف لليسار {pos1 + = 2 ؛ servo1.write (pos1) ؛} إذا (BluetoothData == 50) // انعطف يمينًا {pos1- = 2 ؛ servo1.write (pos1) ؛} إذا (BluetoothData == 51) // Turn Up {pos2- = 2 ؛ servo2.write (pos2) ؛} إذا (BluetoothData == 52) // Turn Down {pos2 + = 2 ؛ servo2.write (pos2) ؛}
العمل:
بمجرد أن نكون مستعدين بأجهزتنا ورمزنا وتطبيق Android ، حان الوقت لبعض الإجراءات. ما عليك سوى تشغيل Arduino وفتح تطبيق android. سيتصل التطبيق تلقائيًا بوحدة البلوتوث HC-05 (يجب تسميته HC-05) وسينتظر حتى يتم اكتشاف الوجه. ما عليك سوى وضع الهاتف في حامل الهاتف المحمول الخاص بنا والجلوس أمامه. يجب أن تلاحظ أن محركات المؤازرة الخاصة بك تحرك هاتفك بحيث يتم وضع وجهك في وسط الشاشة. تحرك الآن داخل نطاق الكاميرا وسيتبع هاتفك المحمول تحركاتك. يمكنك أيضًا تجربتها عن طريق وضع أي صورة وتحريكها.
يظهر العمل الكامل للمشروع في الفيديو أدناه. يمكنك بناء الكثير