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

ESP8266 VGA Pong: 5 خطوات (بالصور)
ESP8266 VGA Pong: 5 خطوات (بالصور)

فيديو: ESP8266 VGA Pong: 5 خطوات (بالصور)

فيديو: ESP8266 VGA Pong: 5 خطوات (بالصور)
فيديو: ESP8266 VGA Pong 2024, شهر نوفمبر
Anonim
Image
Image
قائمة المواد
قائمة المواد

سأوضح في هذه التعليمات كيفية إنشاء نسخة من اللعبة الكلاسيكية Pong لشاشة VGA ، باستخدام ESP8266 وبعض المكونات الأخرى.

أصبحت هذه اللعبة ممكنة بفضل مكتبة EspVGAx التي تم نشرها مؤخرًا على GitHub بواسطة Sandro Maffiodo (المعروف أيضًا باسم Smaffer) ، وبقدر ما أعرف ، هذه هي اللعبة الأولى التي تستغلها.

تنفذ المكتبة دقة 512 × 480 بكسل ، مخزنة في حافظة إطارات داخل ذاكرة الوصول العشوائي ، والتي تتطلب 30720 بايت. الدقة ضخمة بالمقارنة مع Arduino TVout أو VGAx (128 × 96 و 120 × 60 بكسل على التوالي). آمل أن تلهم هذه اللعبة المبرمجين الآخرين لتطوير أو إعادة إنتاج ألعاب أكثر تعقيدًا.

الخطوة 1: قائمة المواد

تتطلب مكتبة EspVGAx ESP8266 مع تعرض كل GPIO ، مثل لوحة ESP-12E أو NodeMCU-12E أو أي لوحة تعرض GPIO5 (D1) و GPIO4 (D2) و GPIO13 (D7)

على وجه الخصوص ، استخدمت:

  • و ESP8266 NodeMCU-12E (الرابط هنا)
  • موصل DSUB15 (أي موصل أنثى VGA)
  • 330 أوم المقاوم
  • مقاوم آخر (حوالي 1 إلى 3 كيلو أوم)
  • اثنين من مقاييس الجهد 10 كيلو أوم
  • زر ضغط (n.o.)
  • اثنان من الثنائيات (مثل 1N4007)
  • لوح التجارب
  • الأسلاك

حصلت على موصل DSUB15 من لوحة VGA للكمبيوتر الشخصي قديمة. بدلاً من ذلك ، يمكنك أيضًا قطع كابل VGA قديم وتوصيل الأسلاك مباشرة بلوحة التجارب.

الخطوة 2: المكتبة وتحميل الرسم التخطيطي

المكتبة وتحميل الرسم التخطيطي
المكتبة وتحميل الرسم التخطيطي

هناك طرق مختلفة للبرمجة و ESP8266 ؛ لقد استخدمت Arduino IDE لكتابة Pong وتحميل الكود.

يرجى ملاحظة أن مكتبة EspVGAx تعمل مع Arduino IDE 1.8.1. إذا كان لديك إصدارات أخرى ، فإن الأفضل هو تنزيل ملفات.zip وإلغاء ضغطها في مجلد مخصص. إصدار Windows هنا. إصدارات أنظمة التشغيل الأخرى هنا.

بعد ذلك ، يجب عليك تنزيل مكتبة EspVGAx من صفحة GithHub هنا (الرابط المباشر للإصدار المضغوط هنا) ، وإلغاء ضغطها في مكتبات المجلدات في برنامج Arduino.

ملاحظة: يوجد خطأ بسيط في الملف espvgax_draw.h. لتصحيحه ، ما عليك سوى استبدال السطر 17:

بينما (x0٪ 32) {مع while (x0٪ 32 && sw> 32) {

أخيرًا يمكنك تنزيل ESP8266_Pong.rar في نهاية هذه الخطوة.

بمجرد فك الضغط ، لتحميله على ESP8266 ، تحتاج إلى تكوين Arduino IDE.

إذا لم تكن قد فعلت ذلك من قبل ، فيمكنك العثور على جميع التعليمات المطلوبة في هذه التعليمات ، على وجه الخصوص في الخطوة 2.

بمجرد تكوين كل شيء ، يجب أن تبدو إعدادات ESP8266 مثل تلك الموضحة في الصورة أعلاه.

إذا كان بإمكانك تحميل الكود بدون أخطاء ، يمكنك البدء في تجميع الأجزاء.

الخطوة 3: توصيل الأجزاء: موصل VGA

توصيل الأجزاء: موصل VGA
توصيل الأجزاء: موصل VGA
توصيل الأجزاء: موصل VGA
توصيل الأجزاء: موصل VGA
توصيل الأجزاء: موصل VGA
توصيل الأجزاء: موصل VGA

أوصي بتوصيل منفذ VGA أولاً ، كما هو موضح في الصور أعلاه. يرجى ملاحظة أنه من خلال توصيل الدبابيس الثلاثة باللون الأحمر والأخضر والأزرق معًا (أي الدبابيس 1 و 2 و 3 على موصل DSUB15) ، ستحصل على صورة بالأبيض والأسود على شاشتك. يمكنك أيضًا الحصول على مجموعة ألوان مختلفة. اطلع على التفاصيل في صفحة Library GitHub.

علاوة على ذلك ، يجب عليك توصيل المقاوم 330 أوم بين دبابيس RGB و D7 (GPIO13) على ESP8266. أعطاني هذا صورة رمادية قليلاً على شاشتي ، وبالتالي ، بعد عدة محاولات ، قررت التخلص منها على الإطلاق.

في هذه المرحلة ، إذا كان كل شيء يعمل بشكل صحيح ، يمكنك بالفعل توصيل الشاشة ورؤية شاشة بداية اللعبة ، مع شعار "ESP8266 VGAx Pong".

الخطوة 4: توصيل الأجزاء: مقاييس الجهد والزر

توصيل الأجزاء: مقاييس الجهد والزر
توصيل الأجزاء: مقاييس الجهد والزر

يجب توصيل الزر بين 3.3 فولت والدبوس D0 (GPIO16). قم أيضًا بتوصيل المقاوم 1 إلى 3 kOhm من D0 إلى الأرض. هذا يتجنب أن يكون D0 في حالة غير محددة عندما يكون الزر مفتوحًا.

الاتصال بين مقياسي فرق الجهد أقل أهمية ، في واقع الأمر ، فإن ESP8266 لا يحتوي إلا على منفذ إدخال تناظري A0 (ADC0)! الحيلة هي توصيل كل من مخرجات pot.s بنفس المنفذ ، و "Multlex" لهم. يعني مضاعفة الإرسال ببساطة أنك ستقوم بتشغيل مقياس الجهد ، وقراءته ، ثم إيقاف تشغيله والانتقال إلى الثاني.

إذا كنت تريد معرفة المزيد حول هذه الطريقة ، فيمكنك قراءة هذا Instructable.

قم بتوصيل أحد مقاييس الجهد القصوى بـ GND ، والطرف الآخر بـ D5 لمقياس جهد اللاعب الأيسر و D6 للاعب الأيمن.

يجب توصيل كل دبوس مركزي لمقياس الجهد بصمام ثنائي فردي ، ويجب توصيل الجوانب الأخرى من الصمامات الثنائية بـ A0 (ADC0) ، مع القطبية الموضحة في الصورة أعلاه.

الخطوة 5: الخلاصة والشكر والتقدير

أنا ممتن لساندرو مافيودو - SMAFFER - لمكتبة ESPVGAX. هذه اللعبة لن تكون ممكنة بدونها.

آمل أن يكون هذا Instructable مصدر إلهام للمبرمجين الآخرين لعمل نسخ من ألعاب أركيد كلاسيكية أكثر تعقيدًا باستخدام ESP8266 ، والتي لديها قيود أقل بكثير من Arduino.

أخيرًا ، كتبت هذا Instructable لإرساله إلى مسابقة Toys: إذا كنت ترغب في ذلك أو أعد إنتاجه ، فالرجاء تخصيص بعض الوقت للتصويت عليه!

موصى به: