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

وحدة تحكم Arduino VGA مع خمس ألعاب: 4 خطوات
وحدة تحكم Arduino VGA مع خمس ألعاب: 4 خطوات

فيديو: وحدة تحكم Arduino VGA مع خمس ألعاب: 4 خطوات

فيديو: وحدة تحكم Arduino VGA مع خمس ألعاب: 4 خطوات
فيديو: أعلى مستوى وصلتوا في البرمجة 2024, يوليو
Anonim
Image
Image
وحدة تحكم Arduino VGA مع خمس ألعاب
وحدة تحكم Arduino VGA مع خمس ألعاب
وحدة تحكم Arduino VGA مع خمس ألعاب
وحدة تحكم Arduino VGA مع خمس ألعاب

في Instructables السابقة الخاصة بي ، قمت بإعادة إنتاج نسخ مبسطة لبعض ألعاب الأركيد الكلاسيكية الأكثر شيوعًا ، عن طريق Arduino عارية وبعض المكونات الأخرى. لاحقًا انضممت إلى خمسة منهم معًا في رسم تخطيطي واحد. سأوضح هنا كيف يمكنك بناء وحدة تحكم بسيطة يمكنها لعب Pong و Breakout و Bomber و Tetris ولعبة رسم مستوحاة من Etch-a-Sketch. يمكن استخدام وحدة التحكم هذه أيضًا للعب Snake ، ولعبتين أخريين كتبهما مؤلفون آخرون: Bit Ninja بواسطة Sandro Maffiodo المعروف أيضًا باسم "Smaffer" و Stacker بواسطة Nikita Kurylev.

الميزة الرئيسية هي توليد إشارة VGA ، بفضل مكتبة VGAx ، وبالتالي تحتاج وحدة التحكم إلى شاشة VGA. هدفي ، كالعادة ، هو تجنب أي "مكون خاص" لبنائه ، فأنت لا تحتاج بعد ذلك إلى أي دعم أو دروع! المكونات الوحيدة هي مقياسان للجهد وخمسة أزرار وقليل من المقاومات وموصل DSUB15 (VGA). مكبر الصوت بيزو اختياري. يمكنك أن ترى كيف تبدو هذه الألعاب في الصور الموجودة في هذه الصفحة.

تسمح مكتبة VGAx باستخدام أربعة ألوان بدقة 120 × 60 بكسل ، وهي ليست كثيرة ولكنها كافية لوحدة التحكم في الألعاب القديمة هذه. الرسم خام ولكن بفضل استخدام مقاييس الجهد ، تعمل الألعاب بسلاسة. تتوفر مؤثرات صوتية بسيطة أيضًا.

الخطوة 1: كيفية بناء وحدة تحكم Arduino VGA الخاصة بك

كيفية بناء وحدة تحكم Arduino VGA الخاصة بك
كيفية بناء وحدة تحكم Arduino VGA الخاصة بك
كيفية بناء وحدة تحكم Arduino VGA الخاصة بك
كيفية بناء وحدة تحكم Arduino VGA الخاصة بك

قم أولاً بتنزيل رموز ArduinoVGAgame.ino و / أو Snake.ino في أسفل هذه الصفحة وانسخها على جهاز الكمبيوتر الخاص بك في دليل يحمل نفس الاسم. قم بتنزيل مكتبة VGAx من هذا الرابط على GitHub. أسهل طريقة هي نسخه في المجلد الفرعي لبرنامج Arduino المسمى "مكتبات" ، ليتم التعرف عليه على الفور.

هام: تعمل هذه المكتبة مع Arduno IDE 1.6.4 ولكنها غير متوافقة تمامًا مع الإصدارات القديمة أو الأحدث.

قم بتحميل الكود في لوحة Arduino (لقد اختبرت كل من Uno و Nano). تحذير من انخفاض الذاكرة المتاحة أمر طبيعي. إذا لم يكن لديك أخطاء أخرى ، فكل شيء على ما يرام ويمكنك البدء على الفور في إنشاء وحدة التحكم الخاصة بك.

لهذا تحتاج:

  • Arduino Uno Rev.3 أو Arduino Nano 3.x (ATmega328)
  • موصل DSUB15 ، أي موصل VGA أنثى أو كابل VGA ليتم قطعه.
  • المقاومات: 2 × 68 أوم و 2 × 470 أوم و 5 × 1 إلى 2 كيلو أوم
  • اثنان من مقاييس الجهد الخطي 10 كيلو أوم (القيم المماثلة جيدة أيضًا)
  • خمسة أزرار
  • قطعة من الكابلات
  • واحد أو اثنين من الصناديق الجميلة لوضع جميع المكونات.

إختياري:

  • لوح أو لوح شريطي
  • مكبر صوت بيزو

تم الإبلاغ عن التخطيطي في الجزء العلوي من هذه الخطوة ، جنبًا إلى جنب مع مثال على "وحدة التحكم" النهائية.

يوضح التخطيطي كيفية توصيل زر ومقياس الجهد. بشكل أكثر تحديدًا ، تحتاج إلى توصيل خمسة أزرار بالدبابيس 5 و 10 و 11 و 12 و 13 على التوالي. يتم وصف الإجراء الذي يتم تنفيذه بواسطة كل زر في الجدول العلوي الأيمن في التخطيطي. يظهر على اليسار كيفية توصيل مقياس الجهد (تحتاج إلى مقياسين للجهد إلى المسامير A1 و A2). يجب توصيل مكبر الصوت بالدبوس التناظري A0.

لقد وضعت لوحة Arduino مع موصل VGA في صندوق خشبي ، والذي يحمل أيضًا مقياس جهد المشغل الأول وأربعة أزرار ، بينما يوجد مقياس جهد المشغل الثاني وزر بدء التشغيل في صندوق منفصل وأصغر.

إذا كنت تحب هذه اللعبة وقررت إعادة إنتاجها ، فأنا أقدر إذا كتبت تعليقًا أو أرسلت صورة في قسم التعليقات أدناه.

الخطوة 2: ألعاب من مؤلفين آخرين

قام Sandro Maffiodo مؤخرًا بنشر لعبة BitNinja. يمكنك العثور على مزيد من المعلومات هنا وتنزيل الكود هنا.

لاستخدام وحدة التحكم الخاصة بي ، عليك فقط إعادة تعيين الزر الموجود في الكود الخاص به على النحو التالي:

#define BTN_UP 11 (بدلاً من 13)

#define BTN_LEFT 10 (بدلاً من 12)

#define BTN_RIGHT 12 (بدلاً من 11)

مكدس ، من نيكيتا كوريليف ، متاح هنا. مزيد من المعلومات هنا.

مرة أخرى ، عليك إعادة تعيين زر واحد ، في جزء مختلف من الكود: فقط استبدل digitalRead (2) بـ digitalRead (13)

الخطوة 3: الملحق 1: مزيد من التفاصيل حول كيفية بناء وحدات التحكم

الملحق 1: مزيد من التفاصيل حول كيفية بناء وحدات التحكم
الملحق 1: مزيد من التفاصيل حول كيفية بناء وحدات التحكم
الملحق 1: مزيد من التفاصيل حول كيفية بناء وحدات التحكم
الملحق 1: مزيد من التفاصيل حول كيفية بناء وحدات التحكم
الملحق 1: مزيد من التفاصيل حول كيفية بناء وحدات التحكم
الملحق 1: مزيد من التفاصيل حول كيفية بناء وحدات التحكم
الملحق 1: مزيد من التفاصيل حول كيفية بناء وحدات التحكم
الملحق 1: مزيد من التفاصيل حول كيفية بناء وحدات التحكم

يمكنك إدراك وحدة التحكم بعدة طرق مختلفة ، اعتمادًا على المواد المتاحة وذوقك.

أحب أن أدركها بصناديق خشبية (انظر الصور في هذه الصفحة). صندوق رئيسي لـ Arduino وموصل VGA وأزرار المشغل الأول ومقياس الجهد ؛ واحدة ثانية (أصغر) فقط لزر وعجلة المشغل الثاني (مطلوبان لبونج ولعبة الرسم). الاحتمال الآخر هو وضع كل شيء في صندوق واحد أكبر.

أولاً أوصيك بتوصيل منفذ VGA. في الصورتين الأولى والثانية ، يمكنك رؤية بعض التفاصيل: لاحظ وجود مقاومين 470 أوم للأحمر والأخضر متصلان بالدبابيس 6 و 7 على التوالي ، واثنان 68 أوم إلى الدبابيس 3 و 9 لإشارة التزامن الأفقي والرأسي.

يمكنك اختيار مجموعات ألوان مختلفة اعتمادًا على أي دبابيس تقوم بتوصيلها بموصل VGA DSUB15 ، حيث تمثل الدبابيس 1 و 2 و 3 الأحمر والأخضر والأزرق (RGB) على التوالي. لقد قمت بتوصيل الدبابيس 1 و 2 ، وبالتالي لدي تركيبة الألوان التالية: (0 ، 0) = أسود ؛ (1 ، 0) = أحمر ؛ (0 ، 1) = أخضر ؛ (1 ، 1) = أصفر.

لجميع الاحتمالات المختلفة ، أقترح قراءة التفاصيل في الصفحة حيث تقوم بتنزيل مكتبات VGAx.

بمجرد أن يصبح موصل VGA جاهزًا ، يمكنك تجهيز جميع الكابلات الأخرى للأزرار والعجلات ومكبر الصوت (انظر الصورة 2).

الآن فقط ضع كل شيء معًا: تذكر أن كل دبوس زر يحتاج إلى توصيله بالأرض من خلال مقاوم 1 أو 2 كيلو أوم ، وإلا عندما يكون الزر مفتوحًا ، فقد تكون حالة الدبوس غير محددة. هذا يعني أنه في حالة ترك الدبوس مفصولًا ، يمكن أن يكون لديك جهد عشوائي (ثابت) يمكنه تنشيطه. انظر لمزيد من يكتشف التخطيطي في الخطوة الثانية من هذا التدريب.

الخطوة الأخيرة هي إصلاح كل شيء في مكانه. لقد استخدمت مسدس الغراء الساخن ، لكن يمكنك استخدام طريقتك المفضلة.

الخطوة 4: الملحق 2: بعض الاعتبارات حول حدود الذاكرة

إنه لأمر مدهش أن Arduino البسيط قادر على توليد إشارة VGA وجميع هذه الألعاب معًا. عنق الزجاجة الحقيقي هو عدم وجود SRAM. يحتوي متحكم AVR على 2048 بايت فقط متاحًا لتخزين المتغيرات ومعالجتها ، وتخزن مكتبة VGAx متغيرات الشاشة في مخزن إطارات 120 × 60 بكسل حيث يحتاج كل بكسل إلى 2 بت (4 ألوان) ، بإجمالي 1800 بايت. هذا يعني أنه لم يتبق سوى 248 بايت لمتغيرات الرسم التخطيطي. علاوة على ذلك ، في تجربتي ، يجب على المرء أن يترك 100 بايت على الأقل مجانًا لتجنب عدم الاستقرار. باستخدام ما يزيد عن 1950 بايت من الذاكرة الديناميكية ، يبدأ المتحكم الدقيق في إظهار سلوك غريب وغير متوقع.

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

علاوة على ذلك ، كان علي استخدام الحد الأدنى من تنسيق المتغير الممكن: على سبيل المثال ، بالنسبة لجميع الإحداثيات ، كان علي استخدام "بايت" بدلاً من "int" أو ، في حالات أخرى ، كان علي أن أفضل "int" بدلاً من "float".

أخيرًا ، إعلامي يذهب إلى Sandro Maffiodo المعروف أيضًا باسم Smaffer ، مبتكر مكتبة VGAx ولعبة BitNinja الرائعة. بدون هذه المكتبة ، لم يكن من الممكن تحقيق هذا المشروع.

شكرًا لك أيضًا على Nikita Kurylev على لعبة Stacker البسيطة والمضحكة.

موصى به: