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

لعبة Minecraft التفاعلية لا تدخل السيف / الإشارة (ESP32-CAM): 15 خطوة (بالصور)
لعبة Minecraft التفاعلية لا تدخل السيف / الإشارة (ESP32-CAM): 15 خطوة (بالصور)

فيديو: لعبة Minecraft التفاعلية لا تدخل السيف / الإشارة (ESP32-CAM): 15 خطوة (بالصور)

فيديو: لعبة Minecraft التفاعلية لا تدخل السيف / الإشارة (ESP32-CAM): 15 خطوة (بالصور)
فيديو: اكثر 50 معلومة مخفية في ماين كرافت 2024, يوليو
Anonim
Image
Image
المنتج النهائي
المنتج النهائي

هناك بالفعل عدة أسباب وراء ظهور هذا المشروع:

1. بصفتي مؤلفًا لمكتبة TaskScheduler متعددة المهام التعاوني ، كنت دائمًا أشعر بالفضول حول كيفية الجمع بين فوائد تعدد المهام التعاوني مع فوائد واحدة وقائية. هناك فوائد لكليهما وكلاهما له أوجه قصور. يتيح الجمع بين الاثنين فرصة فريدة للاستفادة من الفوائد والتقليل من أهمية المشكلات المتعلقة بأي منهما بناءً على حالة استخدام معينة. مثير للإعجاب؟ واصل القراءة…

2. حقيقة أن ESP32 هو متحكم متعدد النواة أمر رائع. كنت دائمًا أشعر بالفضول إذا كان بإمكاني الاستفادة من هذه الميزة. لذا فإن التجربة هنا كانت: هل يمكن لـ ESP32 بث الفيديو بسلاسة باستخدام نواة واحدة أثناء القيام بشيء آخر (شيء مفيد ومكثف بشكل معقول) على النواة الأخرى. أكثر إثارة للاهتمام ؟؟ واصل القراءة…!

3. كنت بحاجة إلى أرضية اختبار لمشروعاتي الأخيرة حول توفير البرامج الثابتة لـ OTA وإدارة التكوين …

4. اشتريت وحدتي LED Dot Matrix منذ بعض الوقت ولم أتمكن من معرفة ما أفعل بهما …

5. ابني لاعب Minecraft ، وكما يحب أي طفل صغير تزيين بابه بملصقات "لا تدخل" …

ها أنت ذا - كل الأسباب الوجيهة لـ: لافتة الباب التفاعلية لا تدخل مع ESP32-CAM لتغذية الفيديو "من خلف الباب المغلق" - أو "من سيأتي إلى غرفتي؟"

عن ماذا يدور الموضوع اذا؟

إذا كان لديك الصبر لقراءة القصة بأكملها ، فأنت تدرك أن الأمر لا يتعلق حقًا بسيف Minecraft. هذا المشروع دليل على الكثير من المفاهيم:

  • التعايش بين المهام الاستباقية والتعاونية
  • الاستخدام الانتقائي لنوى ESP32
  • استخدام مكتبات القاموس و EspBootstrap الجديدة
  • توفير البرامج الثابتة عبر الهواء
  • إدارة التكوين
  • دفق الفيديو لعدة عملاء

والكثير.

يتمتع

اللوازم

  • ESP32-CAM
  • MAX7219 Dot Matrix Module 4-in-1 LED Display Module Geekcreit for Arduino
  • أتوم تيك باور بانك 2500 مللي أمبير في الساعة

الخطوة 1: المنتج النهائي

المنتج النهائي
المنتج النهائي

سأبدأ بالشكل الذي يبدو عليه المنتج النهائي ، ثم أشرح كيف تم بناؤه وكيفية التحكم فيه.

يبدو أكثر جاذبية بهذه الطريقة …

الخطوة 2: غطاء السيف

السيف غطاء
السيف غطاء
السيف غطاء
السيف غطاء

صُنعت اللوحة الأمامية للسيف من السبورة البيضاء ، ومُعلمة بقلم رصاص ، وملونة بعلامات كرايولا. قد يكون هذا وحده مشروعًا مثيرًا للاهتمام مع طفلك:

  • ضع علامة سيف على السبورة
  • قطع الغطاء
  • قم بتمييز المربعات (أو الكتل)
  • لون كل منهم على حدة
  • أضف خطوطًا سوداء مع شارب.

لقد قمت بتضمين مستند مكتب مفتوح مع صورة عينة لسيف ماسي يمكنك لصقه أعلى السبورة البيضاء إذا كنت تفضل الاختصارات … بمجرد الانتهاء من كل شيء ، يمكنك إما لصق اللوحة الأمامية على باقي المجموعة بالغراء الساخن أو استخدام مزدوج- شريط من جانب.

الخطوة 3: شاشة LED مصفوفة نقطية

شاشة LED مصفوفة نقطية
شاشة LED مصفوفة نقطية
شاشة LED مصفوفة نقطية
شاشة LED مصفوفة نقطية
شاشة LED مصفوفة نقطية
شاشة LED مصفوفة نقطية

كان لدي 2 منهم ، 4 أجزاء لكل منهما ، لذلك قررت أن أجعل واحدًا مكونًا من 8 أجزاء.

يوجد بشكل ملائم رأس ذكر مكون من 5 سنون على جانب واحد ، ومطابقة 5 ثقوب على الجانب الآخر. من خلال ثني رأس الذكر إلى شكل يشبه الدبابيس ، تمكنت من توصيل الوحدتين كهربائيًا وميكانيكيًا! قتلت عصفورين بحجر واحد (أو ذببتان بضربة واحدة ، لإيقاف فمين بقمة واحدة ، لتكوين صديقين بهدية واحدة ، للحصول على خيطين لقوس واحد ، ما هي المصطلحات الأخرى لهذه المسألة - هل فكرت؟ آسف ، لقد استطلت).

سيتم استخدام رأس الذكر المعاكس لتوصيل رأس أنثى مطابق من veroboard مع ESP32-Cam ومكونات أخرى.

المكونان متصلان بجسر مطبوع ثلاثي الأبعاد ، والذي يضم أيضًا مفتاحًا لتشغيل الطاقة وإيقافها. توجد ملفات STL ثلاثية الأبعاد للجسر والمكونات الأخرى في مجلد files / 3d على GitHub.

الخطوة 4: الطاقة

قوة
قوة

يتم تشغيل Sword بواسطة بنك طاقة USB بقوة 2500 مللي أمبير في الساعة - أصغر وأرفع يمكن أن أجده. ينزلق Powerbank في علبة مطبوعة ثلاثية الأبعاد ، والتي يتم توصيلها أيضًا بوحدات المصفوفة النقطية ، وبالتالي تمسك كل شيء معًا.

هناك نوعان من المغناطيسات المستديرة ملتصقتان بعلبة بنك الطاقة ، وبهذه الطريقة يتم تثبيت السيف بالباب (بحيث يمكن فصله بسهولة للصيانة).

الخطوة 5: التخطيطي

تخطيطي
تخطيطي
تخطيطي
تخطيطي
تخطيطي
تخطيطي

يوجد المخطط الحقيقي على GitHub ، لكن الصورة تساوي 1000 كلمة (1024 في تقنية المعلومات) ، لذلك أنت هنا:

هذا واضح ومباشر إلى حد ما إذا كنت تعرف طريقك باستخدام مسدس لحام. ملاحظة: تم تصميم جزء الجسر ثلاثي الأبعاد لحجم اللوح الخشبي المحدد للغاية: 30 × 70 ملم. إذا قررت استخدام عنصر مختلف ، فأنت بحاجة إلى إعادة تصميم مكون الجسر.

الخطوة 6: الطباعة ثلاثية الأبعاد

طباعة ثلاثية الأبعاد
طباعة ثلاثية الأبعاد
طباعة ثلاثية الأبعاد
طباعة ثلاثية الأبعاد
طباعة ثلاثية الأبعاد
طباعة ثلاثية الأبعاد

تم تصميم وطباعة علبة البطارية والجسر الذي يربط ESP32-CAM veroboard بمجموعة العرض النقطية.

تأتي علبة البطارية في جزأين ، يجب لصقهما معًا بعد الطباعة لإنشاء "جيب" للبطارية. يحتاج الجسر فقط إلى التنظيف من جميع الهياكل الداعمة (لا يوجد توجيه جيد بالفعل يقلل منها ، لسوء الحظ). توجد ملفات STL على GitHub و TinkerCad الأصلية موجودة هنا.

يتضمن التصميم ثلاثي الأبعاد في TinkerCad أيضًا مخطط تجميع محاكى لكيفية توافق الأجزاء معًا ويجب توصيلها.

الخطوة السابعة: البرمجة

تعدد المهام

يستخدم هذا التصميم FreeRTOS لتعدد المهام الوقائي ومكتبة TaskScheduler لمكتبة تعاونية. يتم التحكم في سلوك ورسائل Sword عبر تطبيق Blynk. بعد الإعداد (الدبابيس ، والكاميرا ، وتهيئة نقطية ، والاتصال بشبكة WiFi ، وما إلى ذلك) ، يتم إنشاء مهمتي RTOS:

  • مهمة RTOS لدفق الفيديو ، مثبتة في تطبيق Core لـ ESP32 (core 1)
  • عرض النص ومهمة Blynk للتحكم في RTOS ، والمثبتة في Power Core لـ ESP32 (الأساسية 0) ، وهي أيضًا مسؤولة عن جميع المهام المتعلقة بشبكة WiFi. تتم إدارة التنفيذ المرتبط بالنص وبلينك عبر مهام TaskScheduler.

اكتشفت أن 4K من مساحة المكدس كافية لمهام RTOS ، ولكن هناك احتمال لنفاد المكدس ، لذلك إذا كنت تفضل ذلك ، اجعله 8K - هناك الكثير من ذاكرة الوصول العشوائي على ESP32.

يتم تسجيل جميع مقاطع الفيديو وبثها على Core 1. كل شيء آخر - في Core 0.

يتمتع ESP32 بقوة كافية للتعامل مع كل ذلك مع كسر القليل من العرق (تصبح اللوحة ساخنة عند بث الفيديو).

كان هذا هو الهدف الرئيسي للمشروع: التعايش السلمي والمنتج لتعدد المهام الاستباقي والتعاوني!

الخطوة 8: التحكم في مصفوفة النقاط

أنا أستخدم مكتبات MD_Parola و MD_MAX72xx قوية جدًا متوفرة أيضًا في مدير مكتبة Arduino IDE.

تتم جميع المؤثرات النصية الخاصة عبر تلك المكتبات. لقد تطلب الأمر بعض الجهد لتحديد نوع الجهاز MAX72XX الصحيح (MD_MAX72XX:: ICSTATION_HW في حالتي ، قد تكون حالتك مختلفة) ، وبعد ذلك ، أصبح التحكم في النص أمرًا سهلاً.

يسمح السيف بضوابط التحكم التالية:

  • سطوع
  • رمش العين
  • فلاش
  • سرعة التمرير والاتجاه (أعلى / أسفل ، يسار / يمين ، ثابت)
  • يمكنك أيضًا تحويلها إلى ساعة حائط

الخطوة 9: دفق الفيديو

يحتوي تطبيق Blynk على عنصر واجهة مستخدم صغير لدفق الفيديو ، ولكن يمكنك البث إلى المتصفح أو مشغل VLC أو أي شيء يدعم معيار MJPEG.

يتم دعم ما يصل إلى 10 عملاء متصلين.

سيتعين عليك معرفة عنوان IP الخاص بجهاز ESP32-CAM لتتمكن من الاتصال به. يمكنك البحث عنه على جهاز التوجيه الخاص بك ، أو تجميع هذا المخطط مع تمكين خيار _DEBUG_ أولاً ، وقراءة عنوان IP الخاص بالجهاز عند اتصاله بشبكتك.

هام: يُنصح بشدة بتعيين عنوان IP دائم أو إنشاء حجز DHCP لوحدة ESP32-CAM حتى لا يتغير عنوانها عند انتهاء عقد الإيجار. يمكنك أيضًا تعديل تطبيق Blynk لتحديث عنوان IP في عنوان URL للدفق - وهو واجب منزلي مثير للاهتمام إذا كنت على استعداد لذلك.

يستخدم الرسم التخطيطي الحالي دقة QVGA: 320 × 240 بكسل ، مما يجعلها سريعة جدًا. أنت حر وتشجع على اللعب مع قرارات أخرى وتحديد ما يناسبك.

لا ينبغي أن تكون ذاكرة الوصول العشوائي مشكلة لأن المخطط يستفيد من PSRAM.

الخطوة 10: التكوين

يستفيد الرسم التخطيطي من قاموسي ومكتبتي EspBootstrap لتحميل معلمات التكوين من خادم التكوين عند التمهيد.

أقوم بتشغيل خادم التكوين الخاص بي ، والذي يمكنك القيام به أيضًا (إنه خادم ويب Apache2 بسيط يخدم ملفات JSON فقط).

يمكنك أيضًا استخدام أي من الخدمات المتوفرة عبر الإنترنت للمهمة: (OTADrive و Microsoft Azure و AWS IoT وما إلى ذلك). في هذه الحالة ، يرجى تغيير أسلوب String makeConfig (مسار السلسلة) لإنشاء عنوان URL بشكل مناسب يشير إلى مصدر التكوين الخاص بك. بدلاً من ذلك ، يمكنك حفظ ملف التكوين في نظام ملفات SPIFFS على ESP32-CAM وقراءته من هناك ، أو قم فقط بترميز جميع الإدخالات. يرجى الاطلاع على README الخاص بمكتبة EspBootstrap للتعرف على خياراتك.

يتم توفير مثال لملف التكوين على GitHub.

إذا كنت تفضل معلمات الكود الثابت ، فهناك مثال أدناه:

pd ("Title"، "DND Sword Setup")؛

pd ("ssid" ، "wifi ssid") ؛ pd ("كلمة المرور" ، "كلمة مرور wifi") ؛ pd ("msg"، "Hello!")؛ pd ("الأجهزة"، "8") ؛ pd ("blynk_auth"، "معرف مصادقة blynk الخاص بك")؛ // إذا قمت بتشغيل الخادم الخاص بك فقط: pd ("blynk_host"، "your blynk server IP")؛ pd ("blynk_port"، "منفذ الخادم الخاص بك")؛

الخطوة 11: تحديثات البرامج الثابتة عبر الهواء

المخطط أيضًا هو تمكين تحديث البرامج الثابتة OTA (عبر الأثير) وهو يبحث عن البرامج الثابتة الجديدة في كل عملية تمهيد.

مرة أخرى ، أقوم بتشغيل خادم تحديث OTA الخاص بي ، والذي يمكنك القيام به أيضًا (إنه خادم ويب Apache2 بسيط مع القليل من البرمجة النصية PHP التي تخدم الملفات الثنائية).

يمكنك أيضًا استخدام أي من خدمات إنترنت الأشياء المتوفرة عبر الإنترنت للمهمة: (OTADrive و Microsoft Azure و AWS IoT وما إلى ذلك). في هذه الحالة ، يرجى تغيير طريقة checkOTA () الباطلة لإنشاء عنوان URL للتحديث بشكل مناسب يشير إلى مصدر ملفك الثنائي.

هذا اختياري - قد تختار فقط تحميل الثنائيات عبر الاتصال التسلسلي.

الخطوة 12: خادم MJPEG

هذا الموضوع موصوف بالتفصيل هنا.

الخطوة 13: تطبيق Blynk

تطبيق Blynk
تطبيق Blynk
تطبيق Blynk
تطبيق Blynk
تطبيق Blynk
تطبيق Blynk

Blynk عبارة عن نظام أساسي لإنترنت الأشياء قائم على السحابة يسمح بتطوير التطبيقات بسرعة. إنه مجاني للاستخدام الشخصي ولديه خيار تشغيل خادم Blynk الخاص بك.

أنا (كما قد تكون خمنت بالفعل) أقوم بتشغيل خادم Blynk الخاص بي ، ولكن قد يكون من الأسهل بالنسبة لك استخدام الإصدار السحابي. قم بتثبيت تطبيق Blynk iOS أو Android ، واتبع الصور أدناه لإعادة إنشاء التطبيق على هاتفك.

ستحتاج إلى تقديم Blynk Auth UUID الخاص بك للتطبيق للعمل مع التطبيق الخاص بك. هذا هو سبب استخدامي لملفات التكوين. ومع ذلك ، بالنسبة لمشروع لمرة واحدة ، ستعمل القيمة المضمنة بشكل جيد.

هام: يرجى التأكد من تعيين مشروع Blynk الخاص بك على إعلام الأجهزة عند توصيل التطبيق.

ملاحظة على أداة دفق الفيديو: في بعض الأحيان لا يبدأ الفيديو. لا يبدو أنها مشكلة في ESP32 ، بل مشكلة في أداة الفيديو لتطبيق Blynk. حاول إغلاق التطبيق وإعادة فتحه أو إيقاف / بدء المشروع مرة أخرى. في النهاية ، يبدأ بالفعل. لا يبدو أن هذه المشكلة موجودة في المتصفح أو مشغل VLC (على سبيل المثال).

الخطوة 14: استمتع

لقد كان من الممتع جدًا بناء هذا وإثبات أن جهازًا بحجم ختم البريد مثل ESP32 يمكنه فعل أكثر بكثير من مجرد دفق الفيديو. يمكن إعادة استخدام الكثير من المفاهيم من هذا المشروع في تطبيقات أخرى.

الخطوة 15: المكتبات والكود

المكتبات:

  • خادم Blynk
  • مكتبة EspBootstrap
  • مكتبة TaskScheduler
  • مكتبة القاموس
  • مكتبة مصفوفة LED
  • مكتبة لعرض نص مصفوفة LED التمرير المعياري

المستودع الفعلي:

Minecraft Interactive لا تدخل السيف / الإشارة (ESP32-CAM)

موصى به: