جدول المحتويات:

روبوت البحث عن بعد والتخلص من Leap Motion المتحكم فيه: 5 خطوات
روبوت البحث عن بعد والتخلص من Leap Motion المتحكم فيه: 5 خطوات

فيديو: روبوت البحث عن بعد والتخلص من Leap Motion المتحكم فيه: 5 خطوات

فيديو: روبوت البحث عن بعد والتخلص من Leap Motion المتحكم فيه: 5 خطوات
فيديو: طاعة البشر ليست هدف الذكاء الاصطناعي | بودكاست فنجان 2024, شهر نوفمبر
Anonim
Image
Image

كجزء من مشاركتي في Leap Motion # 3D Jam ، كنت متحمسًا لبناء هذا الروبوت الذي يتحكم فيه البحث / الإنقاذ بالإيماءة اللاسلكية استنادًا إلى Raspberry Pi. يوضح هذا المشروع ويقدم مثالًا بسيطًا على كيفية استخدام إيماءات اليد اللاسلكية ثلاثية الأبعاد للتحكم في الأشياء المادية والتفاعل معها.

نظرًا لأن هذا المشروع يستخدم إطار WebIOPi IoT الشهير على Raspberry Pi ، فيمكن توسيعه بسهولة للتحكم والواجهة عادةً مع أي مستشعر / أجهزة / إلكترونيات يمكن توصيلها مع Raspberry Pi.

بعض السيناريوهات المحتملة التي أتصورها قد يستخدم زملائي صناع هذا المشروع كإطار عمل أساسي للبناء عليه:

1. روبوت يعمل بإيماءات للتخلص من القنابل عن بعد (ربما باستخدام ذراع OWI وما إلى ذلك)

2. عملية جراحية عن بعد من قبل طبيب

3. معارض فنية تفاعلية أو محتوى تعليمي يتم التحكم فيه بواسطة الإيماءات

4. إمكانيات / تكاملات أخرى لا حصر لها (أنا مقيد بمخيلتي:))

الخطوة 1: نظرة عامة

فهم إطار عمل WebIOPi
فهم إطار عمل WebIOPi

يسمح هذا المشروع للمستخدم بالتحكم بشكل تفاعلي في الروبوت باستخدام إيماءات اليد ثلاثية الأبعاد من خلال Leap Motion المتصل بجهاز كمبيوتر.

يحتوي Raspberry Pi على الروبوت أيضًا على كاميرا ويب USB تقوم ببث الفيديو المباشر إلى المستخدم والذي يمكن رؤيته على متصفح الويب. تعالج مكتبة LeapMotion JavaScript المضمنة في صفحة الويب هذه إيماءات اليد وترسل إشارات التحكم مرة أخرى إلى الروبوت ، والذي ينتقل بعد ذلك وفقًا لذلك.

تم تكوين Raspberry Pi على الروبوت كنقطة اتصال (وضع AP) بمساعدة دونجل USB WiFi المتصل به. يتيح ذلك لأجهزة الكمبيوتر / الأجهزة الخاصة بنا الاتصال مباشرة بـ Raspberry Pi والتحكم عبر صفحة ويب. يمكن أيضًا تكوين Raspberry Pi للعمل في وضع العميل ، حيث يتصل لاسلكيًا بنقطة وصول WiFi Router التي يتصل بها الكمبيوتر / الأجهزة بالفعل.

يعتمد هذا المشروع على WebIOPi (https://webiopi.trouch.com/) وهو إطار إنترنت الأشياء الشهير لـ Raspberry Pi. باستخدام مجموعة Weaved IoT Kit المجمعة (أو من خلال إعادة توجيه المنفذ على جهاز التوجيه) ، يمكن التحكم في هذا الروبوت عن بُعد و / أو استقبال البيانات من أي جزء من العالم.

تم استخدام المكونات التالية لبناء المشروع:

  1. Raspberry Pi B (متوافق 100٪ مع Raspberry Pi B +)
  2. كاميرا ويب Logitech USB Webcam (paltry 1.3 Megapixel)
  3. L293D Motor Driver IC و Breakout Shield
  4. USB WiFi Dongle لـ Raspberry Pi
  5. بنك الطاقة USB لـ Raspberry Pi
  6. بطارية خارجية 4 فولت / 1.5 أمبير لقيادة روبوت موتورز

الخطوة 2: بناء المشروع

تثبيت WebIOPi وكتابة رمز مخصص وتكوين كاميرا الويب:

تتوفر إرشادات تثبيت WebIoPi وأساسيات إطار العمل والعديد من الأمثلة في صفحة المشروع هنا:

من أجل تضمين وظائف LeapMotion في صفحة الويب ، قم بتشغيل إجراءات GPIO على Raspberry Pi ، استخدمنا وحدات الماكرو ، والتي تم العثور على تفاصيلها هنا:

لقد كتبت أيضًا بعض ملاحظات البدء حول العملية المذكورة أعلاه والتي يمكن العثور عليها مرفقة.

تثبيت وتكوين كاميرا الويب

نحن نستخدم MJPG-Streamer من أجل دفق تغذية الفيديو من Raspberry Pi إلى المتصفح من خلال USB Webcam المتصل بـ Pi. يرجى اتباع تعليمات الإعداد والبناء الموضحة هنا https://blog.miguelgrinberg.com/post/how-to-build-… للحصول على MJPG-Streamer يعمل على Raspberry Pi.

تكوين Raspberry Pi كنقطة وصول / نقطة فعالة

لإعداد Raspberry Pi باعتباره Hostpot ، يرجى اتباع الإرشادات المتوفرة هنا: https://elinux.org/RPI-Wireless-Hotspot. لقد قمت بتكوين IP الثابت لـ Raspberry Pi كـ 192.168.42.1 وهو ما نكتبه في المتصفح بمجرد تشغيل Pi في وضع AP.

تم تكوين خدمة WebIOPi و MJPG-Streamer و WiFi hotspot للتشغيل التلقائي عند الإقلاع وهذا يسمح لنا بفتح مستعرض ويب مباشرة والاتصال بالروبوت بعد بدء تشغيله. يتم استخدام ملف rc.local المتاح في الريبو لتشغيل كاميرا الويب عند التمهيد.

الخطوة 3: تعليمات البناء / الأسلاك

4 GPIOs الخاصة بـ Raspberry Pi وهي GPIO 9 و 11 و 23 و 24 متصلة بـ L293D Motor Driver IC الذي يقود المحركات وفقًا لذلك بعد تلقي طلبات الماكرو من صفحة الويب التي يخدمها إطار عمل Webiopi. USB WiFi dongle و USB Logitech Webcam متصلان بمنافذ USB المتوفرة في Raspberry Pi. يوفر باور بانك 5 فولت 4000 مللي أمبير الطاقة الرئيسية لـ Pi. تستخدم بطارية الرصاص الحمضية 4V 1.5A لقيادة المحركات.

ملاحظة: نظرًا لأن الحد الأقصى لتيار الإخراج لبنك الطاقة الذي استخدمته كان 1000 مللي أمبير ، فقد اضطررت إلى استخدام بطارية الرصاص الحمضية الخارجية لقيادة المحركات. إذا كان لديك بنك طاقة يمنحك> = 2000Mah ، فيمكنك قيادة المحركات مباشرة من سكة 5V على Pi (لا أوصي بهذا للمحركات المتعطشة للطاقة رغم ذلك)

تم توضيح الأقسام الفرعية الرئيسية الثلاثة لمشروع LeapMotion Javascript API و WebIOPi و MJPG-Streamer وعملها / إعدادها الأساسي بإيجاز أدناه.

الخطوة 4: فهم إطار عمل WebIOPi

تتم كتابة الواجهة الأمامية التي تظهر على المتصفح بتنسيق HTML (اسم الملف: index.html) وجافا سكريبت بينما تتم كتابة الواجهة الخلفية التي تدفع كائنات GPI بلغة Python (اسم الملف: script.py). يتم إرفاق الملاحظات التفصيلية حول إنشاء تطبيق ويب مخصص بناءً على إطار عمل WebIOPi كملاحظات في Bitbucket repo.

يمكن تشغيل وحدات الماكرو المخصصة المحددة في برنامج Python النصي من ملف HTML.

على سبيل المثال: webiopi (). callMacro ("go_forward") ؛ هذه دعوة مخصصة لماكرو go_forward المحدد في نص Python الذي يعالج عملية دفع كلا المحركين في الاتجاه الأمامي.

يتم عرض التسلسل الهرمي للدليل الخاص بمكان تخزين الملفات على Pi في الصورة المرفقة.

يحتوي مجلد الروبوت على هذه المجلدات الفرعية:

  • html: تحتوي على index.html
  • python: يحتوي على script.py
  • mjpg-streamer-r63: يحتوي على ملفات الإنشاء وقابل للتنفيذ لتشغيل كاميرا الويب

MJPG-Streamer: يعمل دفق الفيديو المباشر من USB Webcam على المنفذ 8080 من Pi افتراضيًا. لعرض البث يدويًا ، انتقل إلى RASPBERRYPI_IP: 8080 على المتصفح بعد تشغيل كاميرا الويب.

كود LeapMotion:

تم تضمين مقتطفات التعليمات البرمجية من الأمثلة المتوفرة في LeapMotion SDK في ملف index.html. يجب إضافة ملف leap.js الخاص بـ LeapMotion إلى مجلد html في دليل المشروع على Raspberry Pi.

يتم استخدام معلمة palmPosition المرسلة بواسطة LeapMotion لتحديد الماكرو الذي سيتم تشغيله على Raspberry Pi.

الخطوة الخامسة: تشغيل المشروع

ما عليك سوى تشغيل Raspberry Pi وانتظر لمدة دقيقة تقريبًا. ستلاحظ ظهور Hotpsot RaspberryPi الجديد. اتصل بنقطة الاتصال هذه وافتح عنوان IP الثابت هذا في المتصفح: 192.168.42.1:8000. 8000 هو المنفذ الافتراضي لـ WebIOPi.

يمكن أيضًا تكوين Raspberry Pi للاتصال بشبكة WiFi المحلية باعتبارها كلين بدلاً من الظهور كنقطة اتصال. ستحتاج بعد ذلك إلى تحديد عنوان IP الديناميكي المخصص لـ Raspberry Pi بواسطة جهاز التوجيه ثم الضغط عليه في المتصفح للتلاعب بالبوت.

يمكنك ترك تعليق إذا كنت بحاجة إلى أي مساعدة أو لديك أي أسئلة حول المشروع. قفزة سعيدة!

تم إرفاق رموز المصدر بالكامل. يمكنك ترك تعليق إذا كنت بحاجة إلى أي مساعدة في أي جزء من بناء المشروع. قفزة سعيدة!

موصى به: