جدول المحتويات:
- اللوازم
- الخطوة 1: سيارة روبوت متنقلة
- الخطوة 2: سيارة روبوت متحركة - مخطط الدائرة
- الخطوة الثالثة: سيارة روبوت متحركة ـ تجميع (محركات)
- الخطوة 4: سيارة روبوت متنقلة - التجميع (مستشعر المسافة)
- الخطوة 5: سيارة روبوت متنقلة - التجميع (ESP32 CAM)
- الخطوة 6: سيارة روبوت متحركة - تجميع (موزع رقاقة)
- الخطوة 7: سيارة روبوت متنقلة - التجميع (ملفات تعريف الارتباط!)
- الخطوة 8: Mobile Robot Car - Arduino Code
- الخطوة 9: سيارة روبوت متنقلة - كود ESP32
- الخطوة 10: موزع الرقائق
- الخطوة 11: عصا التحكم
- الخطوة 12: عصا التحكم - مخطط الدائرة
- الخطوة 13: عصا التحكم - محاكي لوحة المفاتيح
- الخطوة 14: اتصالات الشبكة
- الخطوة 15: وضع كل شيء معًا
فيديو: روبوت الحضور الافتراضي: 15 خطوة
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:36
يتفاعل هذا الروبوت المتحرك مع محيطه المادي ، من خلال تمثيل "الوجود الافتراضي" للشخص الذي يتحكم فيه عن بُعد. يمكن لأي شخص الوصول إليه ، في أي مكان في العالم ، للاستغناء عن المكافآت واللعب معك.
تم تطوير العمل هنا بواسطة شخصين (أحدهما في ألمانيا والآخر في الولايات المتحدة) كمحاولة لتجاوز الوسائل التقليدية للاتصال عبر الإنترنت من خلال إنشاء واجهة فعلية للتفاعل عن بُعد. مع استمرار COVID-19 في التأثير على العالم ، والجميع مسؤول عن الحد من تعرضنا الجسدي للأشخاص ، نحاول إعادة الاتصال الملموس الذي يعد جزءًا من التفاعل الجسدي.
يعتمد على ESP32-Camera-Robot-FPV-Teacher-Entry Instructable وتم تعديله ليشمل مستشعر المسافة وموزع المعالجة وقدرة "التحكم من أي مكان في العالم" ، بشرط أن يكون لديك اتصال إنترنت مستقر إلى حد ما.
اللوازم
يتكون المشروع من 4 أجزاء رئيسية - سيارة روبوت متنقلة ، وموزع رقاقة ، وعصا تحكم ، وإعداد اتصالات الشبكة.
سيارة روبوت متنقلة
- اللوح
- محرك دفع ثنائي ومجموعة روبوت الهيكل (تشمل العجلات ومحركات التيار المستمر ولوحة التركيب والبراغي)
- Arduino Mega 2560 (إذا قمت بالبناء بدون مستشعر المسافة أو موزع الرقائق ، فسيكون لدى Uno دبابيس كافية)
- (3) بطاريات 9 فولت (لديك عدد قليل آخر حيث ستستنزف تصحيح الأخطاء)
- LM2596 منظم التيار الكهربائي DC / DC 3A (أو ما شابه)
- وحدة واي فاي ESP32-CAM
- FT232RL FTDI USB to TTL Serial Converter (لبرمجة ESP32-CAM)
- HC-SR04 جهاز استشعار المسافة بالموجات فوق الصوتية
- سائق محرك L298N
- (3) المصابيح (أي لون)
- (3) 220 أوم مقاومات
موزع الرقائق
- (2) خدمات SG90
- كرتون / ورق مقوى
جويستيك
- اردوينو اونو
- وحدة جويستيك
- لوحة توصيل صغيرة ، (1) LED ، (1) 220 أوم المقاوم (اختياري)
آخر
الكثير من أسلاك توصيل الألواح الخشبية
الصبر =)
الخطوة 1: سيارة روبوت متنقلة
يعمل هيكل Robot Car كمنصة متنقلة ، مع Arduino MEGA باعتباره وحدة التحكم الدقيقة الرئيسية التي تقود المحركات ، وقراءة قيم المستشعرات وتشغيل الماكينات. يتم تنفيذ معظم الإجراءات من خلال تلقي Arduino MEGA للأوامر عبر اتصال تسلسلي ، يتم إرسالها من ESP32-CAM. بينما يوفر ESP32 بثًا مباشرًا للكاميرا للتحكم في الروبوت ، فإن وظيفته الأخرى هي إدارة اتصال لاسلكي بين الروبوت والخادم ، وبالتالي السماح للمستخدمين بالتحكم فيه من أي مكان في العالم. يتلقى ESP32 الأوامر من صفحة الويب عن طريق الضغط على مفتاح ويرسلها إلى Arduino MEGA كقيم char. بناءً على القيمة التي يتم تلقيها ، ستذهب السيارة للأمام والخلف وما إلى ذلك. نظرًا لأن التحكم عن بُعد عبر الإنترنت يعتمد على الكثير من العوامل الخارجية بما في ذلك زمن الوصول المرتفع وجودة البث الرديئة وحتى حالات الفصل ، تم دمج مستشعر المسافة لمنع الروبوت من الانهيار * نظرًا لمتطلبات الطاقة العالية والمتقلبة لشريحة ESP32 ، يوصى باستخدام منظم مصدر الطاقة مع طاقة البطارية (انظر مخطط الأسلاك).
الخطوة 2: سيارة روبوت متحركة - مخطط الدائرة
سنرشدك خلال تجميع هذه الخطوة خطوة.
الخطوة الثالثة: سيارة روبوت متحركة ـ تجميع (محركات)
بعد تجميع هيكل 2WD ، نبدأ بتوصيل المحركات والبطارية بـ Arduino MEGA من خلال برنامج التشغيل L298N.
الخطوة 4: سيارة روبوت متنقلة - التجميع (مستشعر المسافة)
نظرًا لوجود عدد غير قليل من المكونات للاتصال ، دعنا نضيف لوحة توصيل ، حتى نتمكن من توصيل الطاقة والأرض المشتركة بسهولة أكبر. بعد إعادة تنظيم الأسلاك ، قم بتوصيل مستشعر المسافة وإصلاحه في مقدمة الروبوت.
الخطوة 5: سيارة روبوت متنقلة - التجميع (ESP32 CAM)
بعد ذلك ، قم بتوصيل وحدة ESP32-CAM ، وقم بإصلاحها بجوار مستشعر المسافة بالقرب من مقدمة الروبوت. تذكر أن هذا المكون المتعطش للطاقة يتطلب بطارية خاصة به ومنظم تيار مستمر.
الخطوة 6: سيارة روبوت متحركة - تجميع (موزع رقاقة)
الآن ، دعنا نضيف موزع الرقائق (المزيد عن هذا في قسم "موزع الرقائق"). قم بربط المؤازرتين وفقًا لمخطط فريتزينج ، وقم بإصلاح الموزع في ذيل الروبوت.
الخطوة 7: سيارة روبوت متنقلة - التجميع (ملفات تعريف الارتباط!)
أخيرًا ، نضيف المكافآت إلى الموزع!
الخطوة 8: Mobile Robot Car - Arduino Code
RobotCar_Code هو الكود الذي ستحتاج إلى تحميله على Arduino Mega.
إليك كيفية عملها: يستمع Arduino إلى البايتات التي يتم إرسالها من ESP32 عبر الاتصال التسلسلي على النطاق 115200. بناءً على البايت المستلم ، ستتحرك السيارة للأمام والخلف واليسار واليمين وما إلى ذلك عن طريق إرسال إما جهد عالي أو منخفض إلى المحركات للتحكم في الاتجاه ، بالإضافة إلى متغير PWM بين 0-255 للتحكم في السرعة. لتجنب الاصطدامات ، يقرأ هذا الرمز أيضًا القيم الواردة من مستشعر المسافة وإذا كانت المسافة أقل من عتبة محددة ، فلن يتحرك الروبوت للأمام. أخيرًا ، إذا تلقى Arduino أمرًا لتوزيع مكافأة ، فسيقوم بتنشيط الماكينات في موزع الرقائق.
الخطوة 9: سيارة روبوت متنقلة - كود ESP32
يسمح ESP32 بالاتصال بين الخادم و Arduino عبر Wifi. تمت برمجته بشكل منفصل عن Arduino ، وله كود خاص به:
- ESP32_Code.ino هو رمز ESP32 لإرسال المعلومات إلى Arduino
- app_httpd.cpp هو الكود المطلوب لخادم الويب ESP32 الافتراضي وضبط الوظيفة للاستماع إلى ضغطات المفاتيح. جيد لتصحيح الأخطاء والاختبار على شبكة wifi المحلية. لا يتم استخدامه للاتصال خارج الشبكة المحلية.
- camera_index.h هي كود html لتطبيق الويب الافتراضي
- يحدد camera_pins.h المسامير وفقًا لطراز ESP32
يستخدم رمز ESP32 مكتبة Wifi بالإضافة إلى الوظيفة الإضافية ESP32 ، والتي يمكن تثبيتها في Arduino IDE باتباع الخطوات التالية:
- في Arduino IDE ، انتقل إلى ملف> تفضيلات
- ثم في علامة التبويب "الإعدادات" ضمن عنوان URL لمدير اللوحات الإضافية ، أدخل ما يلي "https://dl.espressif.com/dl/package_esp32_index.json"
- افتح الآن Boards Manager وانتقل إلى Tools> Board> Boards Manager وابحث عن ESP32 بكتابة "ESP32"
- يجب أن تشاهد "esp32 by Espressif Systems". انقر فوق تثبيت.
- الآن يجب تثبيت الوظيفة الإضافية ESP32. للتحقق ، ارجع إلى Arduino IDE وانتقل إلى Tools> Board وحدد "ESP32 Wrover Module".
- اذهب مرة أخرى إلى Tools> Upload Speed واضبطها على "115200".
- أخيرًا ، انتقل إلى Tools> Partition Scheme وقم بتعيينه على "Huge APP (3 ميجابايت بدون OTA / 1 ميجابايت SPIFFS)
- بمجرد الانتهاء من ذلك ، أوصي باتباع هذا البرنامج التعليمي بواسطة RandomNerdTutorials الذي يشرح بالتفصيل كيفية إنهاء إعداد ESP32 وتحميل الكود باستخدام مبرمج FTDI
الخطوة 10: موزع الرقائق
يعتبر موزع الرقائق إضافة غير مكلفة إلى الروبوت المحمول مما يسمح له بالتأثير على البيئة المحلية والتفاعل مع الأشخاص / الحيوانات من خلال ترك علاج لذيذ. وتتكون من صندوق خارجي من الورق المقوى مع 2 مؤازرة مثبتة بالداخل ، بالإضافة إلى خرطوشة ورق مقوى داخلية تحتوي على عناصر (مثل الحلوى أو حلوى الكلاب) للاستغناء عنها. تعمل إحدى المؤازرات كبوابة بينما تقوم الأخرى بدفع العنصر للخارج.
*جميع أبعاد هي في ملليمتر
الخطوة 11: عصا التحكم
في حين أنه قد يكون من الممتع التحكم في الروبوت باستخدام لوحة المفاتيح ، إلا أنه من الممتع استخدام عصا التحكم ، حيث يتفاعل الروبوت مباشرة بناءً على الاتجاه الذي تدفعه. نظرًا لأن هذا الروبوت يتم تشغيله عن طريق ضغطات المفاتيح المسجلة على صفحة الويب ، فقد احتجنا إلى عصا التحكم الخاصة بنا لمحاكاة لوحة المفاتيح. بهذه الطريقة يمكن للمستخدمين الذين ليس لديهم عصا التحكم التحكم في الروبوت مباشرة من لوحة المفاتيح ، ولكن يمكن للآخرين استخدام عصا التحكم.
لهذا الغرض ، كان لدينا فقط Arduino Uno الذي لا يمتلك القدرة على استخدام المكتبة ، لذلك قمنا ببرمجته مباشرة باستخدام بروتوكول USB المعروف باسم تحديث البرامج الثابتة للجهاز (DFU) والذي يسمح بوميض اردوينو ببرنامج ثابت للوحة مفاتيح USB HID عام. بمعنى آخر ، عندما يتم توصيل اردوينو بمنفذ USB ، لم يعد يتم التعرف عليه باعتباره اردوينو ولكن كلوحة مفاتيح!
الخطوة 12: عصا التحكم - مخطط الدائرة
إليكم كيف قمنا بتوصيل عصا التحكم.
الخطوة 13: عصا التحكم - محاكي لوحة المفاتيح
لكي يقوم Arduino Uno بمحاكاة لوحة المفاتيح ، فأنت بحاجة إلى برمجة شريحة Atmega16u2 مباشرة على Arduino عبر تحديث البرنامج الثابت للجهاز اليدوي (DFU). ستصف الخطوات التالية العملية الخاصة بجهاز Windows ، ونأمل أن تساعدك على تجنب بعض المشكلات التي واجهناها.
الخطوة الأولى هي الكتابة يدويًا لبرنامج تشغيل Atmel USB إلى Arduino بحيث يتم التعرف عليه على أنه USB وليس Arduino مما يتيح وميضه باستخدام مبرمج FLIP.
- قم بتنزيل مبرمج Atmel's FLIP من هنا
- قم بتوصيل Arduino Uno الخاص بك
- انتقل إلى إدارة الأجهزة وابحث عن Arduino. سيكون ضمن COM أو جهاز غير معروف. قم بتوصيله وإخراجه للتأكد من أن هذا هو الجهاز الصحيح.
- بمجرد العثور على Arduino Uno في إدارة الأجهزة ، انقر بزر الماوس الأيمن فوقه وحدد الخصائص> برنامج التشغيل> تحديث برنامج التشغيل> تصفح جهاز الكمبيوتر للحصول على برنامج التشغيل> اسمح لي بالاختيار من قائمة برامج التشغيل المتوفرة على جهاز الكمبيوتر الخاص بي> قرص خاص> استعرض للوصول إلى ملف "atmel_usb_dfu.inf" وحدده. يجب أن يكون هذا في المجلد حيث تم تثبيت Atmel FLIP Programmer. على جهاز الكمبيوتر الخاص بي يوجد هنا: C: / Program Files (x86) Atmel / Flip 3.4.7 / usb / atmel_usb_dfu.inf
- قم بتثبيت برنامج التشغيل
- عد الآن إلى إدارة الأجهزة ، يجب أن ترى "Atmel USB Devices" مع Arduino Uno المسمى الآن باسم ATmega16u2!
الآن بعد أن تعرف الكمبيوتر على Arduino Uno كجهاز USB ، يمكننا استخدام FLIP Programmer لفلاشها بثلاثة ملفات منفصلة وتحويلها إلى لوحة مفاتيح.
إذا قمت بفصل Arduino Uno بعد الجزء الأول ، فقم بتوصيله مرة أخرى.
- افتح FLIP
- أعد ضبط Arduino Uno عن طريق توصيل الطاقة بالأرض لفترة وجيزة.
- انقر فوق تحديد الجهاز (رمز مثل شريحة ميكروية) وحدد ATmega16U2
- انقر فوق تحديد وسيط اتصال (رمز مثل سلك USB) وحدد USB. إذا أكملت الجزء الأول بشكل صحيح ، فستصبح الأزرار الرمادية الأخرى قابلة للاستخدام.
- اذهب إلى File> Load Hex File> وقم بتحميل الملف Arduino-usbserial-uno.hex
- في نافذة FLIP ، يجب أن تشاهد ثلاثة أقسام: تدفق العمليات ، معلومات المخزن المؤقت FLASH ، و ATmega16U2. في "تدفق العمليات" ، حدد المربعات "مسح" و "برمجة" و "تحقق" ، ثم انقر فوق تشغيل.
- بمجرد اكتمال هذه العملية ، انقر فوق بدء التطبيق في قسم ATmega16U2.
- قم بتوصيل دورة اردوينو عن طريق فصله عن الكمبيوتر وتوصيله مرة أخرى.
- أعد ضبط Arduino Uno عن طريق توصيل الطاقة بالأرض لفترة وجيزة.
- افتح Arduino IDE وقم بتحميل الملف JoyStickControl_Code.ino إلى اللوحة.
- قم بتوصيل دورة اردوينو عن طريق فصله عن الكمبيوتر وتوصيله مرة أخرى.
- أعد ضبط اردوينو عن طريق توصيل الطاقة بالأرض لفترة وجيزة.
- ارجع إلى FLIP ، وتأكد من أن اختيار الجهاز يشير إلى Atmega16U2
- انقر فوق تحديد وسيط اتصال وحدد USB.
- انتقل إلى ملف> تحميل ملف Hex> وقم بتحميل الملف Arduino-keyboard-0.3.hex
- في نافذة FLIP ، يجب أن ترى ثلاثة أقسام: تدفق العمليات ، ومعلومات المخزن المؤقت FLASH ، و ATmega16U2. في "تدفق العمليات" ، حدد المربعات "مسح" و "برمجة" و "تحقق" ، ثم انقر فوق تشغيل.
- بمجرد اكتمال هذه العملية ، انقر فوق بدء التطبيق في قسم ATmega16U2.
- قم بتوصيل دورة اردوينو عن طريق فصله عن الكمبيوتر وتوصيله مرة أخرى.
- الآن عندما تذهب إلى إدارة الأجهزة ، يجب أن يكون هناك جهاز لوحة مفاتيح HID جديد ضمن لوحات المفاتيح.
- افتح مفكرة أو أي محرر نصوص وابدأ في تحريك عصا التحكم. يجب أن ترى الأرقام تتم كتابتها!
إذا كنت ترغب في تغيير الكود في رسم Arduino ، على سبيل المثال كتابة أوامر جديدة على عصا التحكم ، فستحتاج إلى وميضها بجميع الملفات الثلاثة في كل مرة.
بعض الروابط المفيدة: Arduino DFUAtLibUsbDfu.dll غير موجود
يعتمد محاكي لوحة المفاتيح هذا على هذا البرنامج التعليمي بواسطة Michael في 24 حزيران (يونيو) 2012.
الخطوة 14: اتصالات الشبكة
لتلقي دفق الفيديو وإرسال الأوامر إلى الروبوت من أي مكان في العالم ، نحتاج إلى طريقة للحصول على البيانات من وإلى ESP32-CAM. يتم ذلك في جزأين ، معالج اتصال على شبكتك المحلية وخادم عام. قم بتنزيل الملفات الثلاثة لتحقيق ذلك:
- Handlers.py: تنقل المعلومات من ESP32-CAM والخادم العام (تم اختباره على Python 3.8)
- Flask_app.py: يحدد كيفية استجابة تطبيقك للطلبات الواردة.
- Robot_stream.html: يعرض الفيديو في متصفحك ويستمع إلى الأوامر من خلال لوحة المفاتيح / عصا التحكم (تم اختباره على Chrome)
معالج الاتصال: يمكنك كتابة هذا الرمز مباشرةً في app_httpd.cpp ، ولكن لتسهيل تصحيح الأخطاء ، نستخدم نصًا برمجيًا بلغة Python يعمل على جهاز كمبيوتر متصل بالشبكة نفسها. افتح handlers.py وقم بتحديث عنوان IP واسم المستخدم الخاصين بك ، وستكون جاهزًا للانطلاق. سيبدأ الدفق عند تشغيل هذا الملف.
خادم عام للوصول إلى كل شيء على الإنترنت ، يمكنك بدء تشغيل خادم مع PaaS من اختيارك. في pythonanywhere (PA) يستغرق الإعداد أقل من 5 دقائق:
- قم بالتسجيل للحصول على حساب وتسجيل الدخول
- انتقل إلى علامة التبويب "الويب" واضغط على "إضافة تطبيق ويب جديد" ، واختر Flask و Python 3.6
- انسخ flask_app.py إلى دليل mysite /
- انسخ ملف robot_stream.html إلى دليل / mysite / Templates
- انقر فوق "إعادة تحميل"
و … أنت جاهز تمامًا!
إخلاء المسؤولية: سير عمل الشبكات هذا سريع وبسيط ولكنه بعيد جدًا عن المثالية. ستكون RTMP أو المآخذ أكثر ملاءمة للبث ، لكنها غير مدعومة في PA وتتطلب بعض الخبرة في إعداد الشبكات والخادم. يوصى أيضًا بإضافة بعض آليات الأمان للتحكم في الوصول.
الخطوة 15: وضع كل شيء معًا
الآن ، قم بتشغيل الروبوت الخاص بك ، وقم بتشغيل handlers.py على جهاز كمبيوتر (متصل بنفس الشبكة مثل الروبوت) ، ويمكنك التحكم في الروبوت من متصفح بناءً على عنوان url الذي قمت بتعيينه من أي مكان تريده. (مثل
موصى به:
الواقع الافتراضي على Raspberry Pi مع BeYourHero: 19 خطوة (بالصور)
الواقع الافتراضي على Raspberry Pi مع BeYourHero !: مرحبًا بك في & quot؛ كن بطلك & quot؛ مشروع! أتمنى أن تكون مستعدًا لدخول الجيل التالي من الانغماس في الواقع الافتراضي! سيمنحك هذا المشروع تحكمًا كاملاً بالإيماءات لأي بطل افتراضي يعجبك باستخدام مجموعة بسيطة من الأجهزة الرخيصة باستخدام نفس
[DIY] روبوت العنكبوت (روبوت رباعي ، رباعي الأرجل): 14 خطوة (بالصور)
[DIY] Spider Robot (رباعي الروبوت ، رباعي الأرجل): إذا كنت بحاجة إلى دعم إضافي مني ، فسيكون من الأفضل تقديم تبرعات مناسبة لي: http: //paypal.me/RegisHsu2019-10-10 تحديث: المترجم الجديد سوف يتسبب في مشكلة حساب الرقم العائم. لقد قمت بتعديل الكود بالفعل. 2017-03-26
خطوة للخلف ! لعبة الواقع الافتراضي باستخدام Arduino & Acclerometer: 9 خطوات
خطوة للخلف ! لعبة الواقع الافتراضي باستخدام Arduino & Acclerometer: في هذا البرنامج التعليمي ، سننشئ لعبة واقع افتراضي باستخدام Arduino و Acclerometer
روبوت موازنة / روبوت ذو 3 عجلات / روبوت STEM: 8 خطوات
موازنة الروبوت / روبوت ذو 3 عجلات / روبوت STEM: لقد بنينا موازنة مجمعة وروبوت ثلاثي العجلات للاستخدام التعليمي في المدارس والبرامج التعليمية بعد المدرسة. يعتمد الروبوت على Arduino Uno ، وهو درع مخصص (يتم توفير جميع تفاصيل البناء) ، وحزمة بطارية Li Ion (جميعها
روبوت الكلب: ليجو روبوت روفر مع كاميرا ويب: 17 خطوة (بالصور)
Dog Bot: Lego Robot Rover With Webcam: إليك كيفية صنع روبوت Lego يمكنك التحكم فيه من أي شاشة عبر wifi. كما أنه يحتوي على كاميرا ويب حتى تتمكن من رؤية أين تذهب وأضواء LED للعيون! يعد هذا مشروعًا رائعًا يمكنك القيام به مع أطفالك حيث يمكنهم إنشاء الشعار ويمكنك تضمين