جدول المحتويات:
فيديو: Flappy Bird على ATtiny85 وشاشة OLED SSD1306: 6 خطوات (بالصور)
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:39
مرحبا جميعا،
سأريكم اليوم استنساخًا أساسيًا للطيور المفلطحة التي قمت بإنشائها ، وكيف يمكنك المضي قدمًا في صنع لعبة مماثلة. سأقوم بشكل أساسي بتشغيل الكود الخاص بي معك وأشرح كيف يعمل في كل خطوة على الطريق. تم تصميم هذه اللعبة لتعمل على ATtiny85 مسجلاً بسرعة 1 ميجاهرتز ، مع شاشة I2C OLED. فصاعدا!
الخطوة 1: الأجهزة
إذا لم تكن مهتمًا بالفعل ببناء دائرة للعبة ولكنك تفهم النظرية الكامنة وراءها ، فيمكنك تخطي هذه الخطوة.
تتطلب لعبتي زرين ، شاشة ATtiny85 وشاشة I2C OLED بحجم 128 × 64 بكسل وبعض مصادر الطاقة. بطاقة العمل / وحدة التحكم في الألعاب: ATtiny85 وشاشة OLED توضح لك كيفية إنشاء لوحة بها كل ما تحتاجه! إذا لم تكن مهتمًا بصنع لوحي ، فاخرج لوح التجارب وسأخبرك بالمواصفات. يمكنك استخدام أي نوع مختلف من ATtiny85. أوصي بشاشات OLED مثل هذه.
- قم بتوصيل جانب واحد من اثنين من الأزرار الانضغاطية بالدبابيس 2 و 3 على ATtiny85. على هذه الأسلاك ، أضف أيضًا مقاومًا بقوة 10 كيلو أوم متصل بالأرض (مقاوم منسدل).
- قم بتوصيل الجانب الآخر من هذه الأزرار بالجهد. عندما لا يتم الضغط على الزر ، ستكون حالة الدبوس منخفضة. عند الضغط عليه ، ستكون حالة الدبوس عالية.
- قم بتوصيل السن 7 بمسمار SCL على شاشتك ، ثم قم بتوصيل الطرف 5 بمسمار SDA على شاشتك. قم بتوصيل دبابيس الطاقة (VCC و GND) على الشاشة وفقًا لذلك.
- أخيرًا ، قم بتوصيل دبوس 4 على ATtiny بالأرض ودبوس 8 بالجهد.
الخطوة الثانية: البرنامج
مرفق هنا مجلد يحتوي على جميع الملفات التي تحتاجها لتشغيل اللعبة. تم التعليق جيدًا على اثنين من الملفات ، FlappyBird.ino و WallFunctions.h ، من أجل متعة القراءة. يمكنك تحميل رسم FlappyBird.ino إلى ATtiny85 (بسرعة 1 ميجا هرتز) واللعب بعيدًا! إذا كنت مهتمًا بتعلم النظرية الكامنة وراء هذه اللعبة ، أو كنت تريد إنشاء لعبتك الخاصة ، فتابع القراءة!
لا تزال هناك بعض المشاكل في لعبتي. I2C ليست أفضل طريقة لنقل البيانات بأي وسيلة. وفقًا لهذا المنشور ، لا يمكن للشاشة قبول البيانات إلا عند حوالي 100 كيلو هرتز ، لذلك حتى لو قمنا بزيادة سرعة الساعة ATtiny إلى 8 ميجا هرتز ، فستظل قناة I2C هي عنق الزجاجة. يمكن أن تنتج الشاشة حوالي 10 إطارات في الثانية كحد أقصى. كلما زادت الحاجة إلى رسم صور منفصلة ، كانت العملية برمتها أبطأ. وبالتالي ، فإن لعبتي سهلة للغاية حيث لا يمكنك جعل الجدران تتحرك بسرعة كبيرة عبر الشاشة! فيما يلي بعض التحديات التي تواجهك إذا كنت تعتقد أنك على مستوى المهمة:
- لجعل اللعبة أكثر صعوبة ، تحقق مما إذا كان يمكنك جعل التباعد بين الجدران 2 بدلاً من 4. لن يكون الأمر صعبًا للغاية بمجرد فهم كيفية عمل برنامجي:). يرجى نشر في التعليقات إذا كنت تستطيع أن تجعلها تعمل!
- شيء آخر تفتقر إليه لعبتي هو نظام النقاط وطريقة لعرض النتيجة وحفظها. انظر إذا كان يمكنك تنفيذ واحد!
- أخيرًا ، بدلاً من جعل الجدران تتحرك عمودًا واحدًا في كل مرة ، حاول جعل كل جدار يتحرك بكسل واحدًا في كل مرة للحصول على حركة أكثر سلاسة.
الخطوة 3: Flappy Bird ATtiny85: النظرية
على الرغم من أن الشاشة التي نستخدمها بها ارتفاع 64 بكسل لاستخدامها في اللعبة ، فمن الممكن فقط وضع العناصر في كتل من 8 بكسل. وبالتالي ، لا يوجد سوى 8 إحداثيات y ممكنة. لتسهيل الأمور ، قمت في البرنامج بتقسيم الشاشة بأكملها بهذه الطريقة ، مما جعل شبكة من 16 كتلة في 8 كتل ، حيث تكون كل كتلة 8x8 بكسل. لملء كل كتلة ، يبلغ حجم كل كائن في اللعبة 8x8 بكسل. هذا يجعل كل شيء أسهل بكثير في الإدارة. إذا نظرت إلى الصورة أعلاه ، يمكنك أن ترى كيف قسمت الشاشة. يتكون كل جدار من 6 كتل ، مع فتحة بارتفاع 2 كتلتين ، مما يجعل الارتفاع الكلي لكل جدار 8 كتل.
في البرنامج ، يتم تمثيل كل جدار على شكل هيكل يسمى الجدار. كل هيكل جدار له خاصيتان - موضع الثقب والعمود. "وضع الثقب" هو رقم من 0 إلى 6 ، حيث لا يوجد سوى 7 مواضع محتملة في جدار مكون من 8 كتل لثقب بارتفاع كتلتين. "العمود" هو رقم من 0 إلى 15 ، حيث يمكن عرض 16 عمودًا من الكتل على الشاشة.
موصى به:
Arduino للتحكم في سرعة محرك التيار المستمر والاتجاه باستخدام مقياس الجهد وشاشة OLED والأزرار: 6 خطوات
Arduino Control DC Motor Speed and Direction باستخدام مقياس الجهد وشاشة OLED والأزرار: في هذا البرنامج التعليمي سوف نتعلم كيفية استخدام محرك L298N DC MOTOR CONTROL ومقياس جهد للتحكم في سرعة واتجاه محرك التيار المستمر بزرين وعرض قيمة مقياس الجهد على شاشة OLED. شاهد فيديو توضيحي
بدء تشغيل محرك DC بسلاسة وسرعة واتجاه باستخدام مقياس الجهد وشاشة OLED والأزرار: 6 خطوات
بداية سلسة لمحرك التيار المستمر وسرعته واتجاهه باستخدام مقياس الجهد وشاشة OLED والأزرار: في هذا البرنامج التعليمي سوف نتعلم كيفية استخدام محرك L298N DC MOTOR CONTROL ومقياس جهد للتحكم في محرك DC بسلاسة في البداية والسرعة والاتجاه باستخدام زرين و اعرض قيمة مقياس الجهد على شاشة OLED. شاهد فيديو توضيحي
لعب لعبة Flappy Bird مع لوحة التطوير M5stick C القائمة على M5stack Esp32: 5 خطوات
لعب لعبة Flappy Bird مع لوحة التطوير M5stick C المستندة إلى M5stack Esp32: مرحبًا يا رفاق ، سنتعلم اليوم كيفية تحميل رمز لعبة flappy Bird إلى لوحة تطوير m5stick c المقدمة من m5stack. بالنسبة لهذا المشروع الصغير ، ستحتاج إلى اتباع شيئين: m5stick-c لوحة التطوير: https://www.utsource.net/itm/p/8663561.h
العب لعبة PONG مع Arduino Uno وشاشة OLED 0.96 SSD1306: 6 خطوات
العب لعبة PONG مع Arduino Uno وشاشة OLED 0.96 SSD1306: مرحبًا يا رفاق ، سنقوم اليوم بصنع لعبة PONG باستخدام Arduino. سنستخدم شاشة OLED 0.96 من Adafruit لعرض اللعبة وأمبير. اضغط على الأزرار للتحكم في اللعبة
بطاقة العمل / وحدة التحكم في الألعاب: ATtiny85 وشاشة OLED: 5 خطوات (بالصور)
بطاقة العمل / وحدة التحكم في الألعاب: ATtiny85 وشاشة OLED: مرحبًا بالجميع! سأوضح لك اليوم كيف يمكنك بناء بطاقة العمل / وحدة التحكم في الألعاب / كل ما يمكنك تخيله والذي يتميز بإضاءة خلفية I2C OLED ومعالج ATtiny85. في هذا الدليل ، سأخبرك كيف أن ثنائي الفينيل متعدد الكلور الذي أصممه