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

وحدة تحكم اردوينو بونج المحمولة: 6 خطوات (مع صور)
وحدة تحكم اردوينو بونج المحمولة: 6 خطوات (مع صور)

فيديو: وحدة تحكم اردوينو بونج المحمولة: 6 خطوات (مع صور)

فيديو: وحدة تحكم اردوينو بونج المحمولة: 6 خطوات (مع صور)
فيديو: PixelPaddle: Creating a DIY Arduino Pong Game on a Tiny 1.3-Inch OLED Display ! @cubityt 2024, يونيو
Anonim
وحدة تحكم اردوينو بونج المحمولة
وحدة تحكم اردوينو بونج المحمولة

تواصلت DFRobot معي مؤخرًا ، حيث أرادت مني استخدام لوحة Arduino Nano الخاصة و OLED. في البداية كنت أرغب في إنشاء دراجة ذكية ، وقمت ببنائها بالكامل. لكن لسوء الحظ ، كان جهاز Nano أضعف من أن يعمل ويخزن الرسم الضخم المطلوب. لذلك قررت إعادة النظر في أحد مشاريعي السابقة ، مصفوفة Neopixel التي تدير لعبة بونج. كنت أرغب في جعله قابلاً للنقل بدلاً من ذلك ، ومن شأن شاشة OLED مقاس 1.7 بوصة أن تقدم عرضًا مثاليًا.

قائمة الأجزاء:

  • اردوينو نانو
  • OLED
  • مكبر الصوت

الخطوة 1: الفيديو

Image
Image

الخطوة الثانية: تصميم اللعبة

تصميم اللعبة
تصميم اللعبة

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

الخطوة الثالثة: تصميم جهاز الألعاب

تصميم جهاز الألعاب
تصميم جهاز الألعاب
تصميم جهاز الألعاب
تصميم جهاز الألعاب
تصميم جهاز الألعاب
تصميم جهاز الألعاب
تصميم جهاز الألعاب
تصميم جهاز الألعاب

برنامج go-to CAD الخاص بي هو Fusion 360 ، لذلك قررت استخدامه لتصميم جهاز ألعاب pong. بدأت بتصميم كل مكون مستخدم: OLED و Arduino Nano ومكبر صوت ، وبهذه الطريقة يمكنني أن أرى بالضبط أين وكيف يجب أن يتناسب كل مكون داخل العلبة. ثم أضع Nano و PCB في الجزء الخلفي من العلبة ، و OLED فوقه. بعد ذلك كان السؤال عن مكان وضع السماعة والأزرار. قررت أن مكبر الصوت 3W يمكن أن ينتقل أسفل الشاشة مباشرة (ينظر إليه من الأعلى) ، وهذا يتطلب أيضًا وضع "شواية" فوق السماعة حتى لا يكون الصوت مكتومًا. أخيرًا ، أضفت زرين على الجانب الأيسر لإضافة عناصر تحكم.

الخطوة 4: بناء الجهاز

بناء الجهاز
بناء الجهاز
بناء الجهاز
بناء الجهاز
بناء الجهاز
بناء الجهاز

لقد بدأت بطباعة ثلاثية الأبعاد لكل جزء ، يتكون من النصف السفلي والنصف العلوي وزرين. بعد ذلك ، قمت بلحام رأس أنثى إلى 4x6 سم وربطته بالنانو. هذا لا يسمح فقط بإزالة OLED بسهولة ، ولكنه يرفعها أيضًا فوق Arduino Nano. تحقق من التخطيطي للحصول على معلومات الأسلاك. ثم قمت بتوصيل الزرين ، جنبًا إلى جنب مع لوحة اختراق USB صغيرة بسيطة للطاقة. تم إرفاق مكبر الصوت أيضًا ووضعه في موضعه الصحيح. يسمح تصميم My Fusion 360 لبراغي الماكينة مقاس 3 مم بالضغط على OLED ومكبر الصوت وتوصيل نصفي الجهاز. لكن ، كان عليّ أن أجعلها دقيقة ، لذلك استخدمت مكبس الحفر لتحمل 8 ثقوب: 2 للسماعة ، و 2 للشاشة ، و 4 تحتها. يمكنك زيارة رابط Thingiverse للملفات.

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

كان استخدام واجهة بسيطة أمرًا حيويًا للحفاظ على البرنامج صغيرًا. لقد بدأت بإضافة عدة مكتبات: Adafruit_GFX و Adafruit_SSD1351 ومكتبة Arduino Timer. بعد ذلك ، حددت دبابيس وألوان ، مثل دبابيس OLED وتعريفات الألوان 16 بت. يوجد في الكود الخاص بي أيضًا 4 طرق لتغيير طريقة لعب اللعبة ، مثل تغيير أبعاد المضرب ومدى سرعة تحرك الكرة. ثم يوجد قسم حيث يتم تحديد كل متغير ، بما في ذلك الدرجة والإحداثيات المختلفة. عندما يتم تشغيل الجهاز على صورة كرة ويظهر بعض النص على الشاشة ، جنبًا إلى جنب مع أغنية صغيرة تم تحديدها مسبقًا في الكود. بمجرد أن تبدأ اللعبة ، يتم إنشاء مؤقتين ، أحدهما يقوم بتحديث المضرب ، والآخر يقوم بتحديث الكرة. في كل مرة يقوم فيها موقع الكرة بتحديث إحداثياتها ، يتم فحص إحداثياتها للتأكد من أنها لا تتجاوز حدود الشاشة أو إذا كانت تلامس مجدافًا. في كل مرة يرتد فيها ، يتم عكس محوره x أو y ويتم تشغيل نغمة صغيرة. شاهد الفيديو في بداية هذه الكتابة لترى كيف تلعب اللعبة.

الخطوة 6: لعب بونج

لعب بونغ!
لعب بونغ!
لعب بونغ!
لعب بونغ!
لعب بونغ!
لعب بونغ!
لعب بونغ!
لعب بونغ!

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

موصى به: