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

لعبة اردوينو صخور الفضاء: 3 خطوات
لعبة اردوينو صخور الفضاء: 3 خطوات

فيديو: لعبة اردوينو صخور الفضاء: 3 خطوات

فيديو: لعبة اردوينو صخور الفضاء: 3 خطوات
فيديو: شاهد ماذا حدث عندما قام رائد فضاء بفرك منشفته ف الفضاء #shorts 2024, يوليو
Anonim
لعبة اردوينو صخور الفضاء
لعبة اردوينو صخور الفضاء

سواء تم لعبها على جهاز كمبيوتر أو هاتف أو على وحدة تحكم ألعاب أو على صندوق مستقل ، فإن الكثير من ألعاب الفيديو تتضمن عنصر تجنب العقبات. بالتأكيد ، قد يتم منح نقاط مقابل جمع الرموز أو العثور على طريقك عبر متاهة ، ولكن كن مطمئنًا أنه من المحتمل أن يكون هناك شيء ما في اللعبة يتمثل هدفه الوحيد في منعك من القيام بذلك. كانت أول لعبة فيديو هي لعبة بونج ، ولكن بعد ذلك كانت أكثر الألعاب شيوعًا هي ألعاب مثل "Asteroids" أو "Pac-Man". من الأشكال الأكثر حداثة هي لعبة "Flappy Birds" البسيطة ولكنها تسبب الإدمان.

لقد رأيت مؤخرًا أن شخصًا ما قد صنع نسخة بسيطة من مستويين من "Flappy Bird" والتي تم تشغيلها على شاشة LCD مشتركة 1602. اعتقدت أن هذا سيكون شيئًا قد يحبه الأحفاد ، لذلك قررت أن أقوم بتغييراتي الخاصة من الصفر. يحتوي الإصدار 1602 على مستويين فقط ، لذلك قررت استخدام شاشة LCD 2004 (20 × 4) بدلاً من ذلك لزيادة صعوبة اللعب قليلاً. اخترت أيضًا جعلها أشبه بـ "الكويكبات" من خلال جعل اللاعب يقود "سفينة" عبر متاهة من "الصخور الفضائية". حتى إذا لم تكن مهتمًا ببناء اللعبة ، فقد تكون هناك بعض عناصر البرنامج التي يمكنك استخدامها في أحد مشاريعك الخاصة.

الخطوة 1: الأجهزة

المعدات
المعدات
المعدات
المعدات
المعدات
المعدات

يمكن أن يعتمد الجهاز على أي إصدار من Arduino إلى حد كبير. لقد قمت بعمل النماذج الأولية باستخدام Nano ثم قمت بنسخ الكود في شريحة ATMega328. هذه هي نفس الشريحة المستخدمة في Nano ولكن استخدامها بمفردها يسمح ببناء أكثر إحكاما واستهلاك أقل للطاقة. كما ترون ، لقد بنيت الدائرة على لوح تجارب صغير يتم وضعه على ظهر وحدة LCD. الجانب الآخر المختلف هو أن Nano يعمل بسرعة 16 ميجاهرتز باستخدام بلورة خارجية ولكني اخترت استخدام مذبذب 8 ميجاهرتز المدمج لشريحة ATMega328. هذا يوفر الأجزاء والطاقة.

واجهات LCD لعام 2004 مع Arduino بنفس طريقة شاشة 1602 LCD. الاختلاف المثير للاهتمام هو عنونة مواقع العرض. من الواضح أن هناك فرقًا لأن هناك أربعة أسطر بدلاً من سطرين ، ولكن في عام 2004 ، يمثل السطر الثالث امتدادًا للخط الأول والخط الرابع امتدادًا للخط الثاني. بمعنى آخر ، إذا كان لديك برنامج اختبار أرسل للتو سلسلة من الأحرف إلى شاشة LCD ، فسيظهر الحرف الحادي والعشرون في بداية السطر الثالث ويلتف الحرف الحادي والأربعون مرة أخرى إلى بداية السطر الأول. أستخدم هذه الخاصية في البرنامج لمضاعفة طول المتاهة بشكل فعال.

قررت أن أجعل الإصدار الخاص بي يعمل بالبطارية ، لذلك استخدمت بطارية Li-ion شائعة 18650 ، وبطارية 3.6 فولت. يتطلب ذلك أن أقوم بإضافة لوحة صغيرة للسماح بإعادة شحن USB ولوحة صغيرة أخرى لزيادة جهد البطارية إلى 5 فولت لشاشة LCD وشريحة ATMega. تُظهر الصور الوحدات النمطية التي استخدمتها ولكن هناك أيضًا وحدات شاملة تقوم بكلتا الوظيفتين.

الخطوة 2: البرمجيات

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

كما ذكرنا سابقًا ، يشكل السطران 1 و 3 قائمة انتظار دائرية والخطان 2 و 4 كذلك. هذا يعني أنه بعد 20 نوبة ، يتم تبديل الخطين 1 و 3 ويتم تبديل الخطين 2 و 4. بعد 40 نوبة ، تعود الخطوط إلى مواقعها الأصلية. بسبب هذا السلوك ، تصبح المتاهة الأصلية المكونة من 20 حرفًا مختلفة تمامًا عند تبديل الخطوط. جعل ذلك الحياة ممتعة عندما حاولت تكوين متاهة. أخيرًا فتحت للتو جدول بيانات Excel حتى أتمكن من رسم المسار دون الحاجة إلى تغيير البرنامج باستمرار. يحتوي البرنامج المقدم هنا على نسختين من المتاهة (تم التعليق على أحدهما) حتى تتمكن من اختيار الإصدار الذي تريده أو إنشاء نسختك الخاصة.

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

بخلاف تعديل معدل التحول ، فإن المنطق الأساسي في البرنامج هو تحريك "السفينة" وتحديد ما إذا كانت "السفينة" قد اصطدمت "بحجر". تستفيد هذه الوظائف من مجموعة "الصخور / الفضاء" المحددة وكذلك المصفوفة التي تحدد مواقع الذاكرة في الشاشة. يتوافق عدد الإزاحة مع طول خط شاشة LCD (0-19) ويستخدم كمؤشر في هذه المصفوفات. المنطق معقد إلى حد ما بسبب حقيقة أن الخطوط تتبادل كل 20 نوبة. يتم استخدام منطق مماثل لتحديد موقع "السفينة" الذي يمكن أن يكون على أي من الخطوط الأربعة.

النتيجة لكل مسرحية هي ببساطة عدد التحولات التي حدثت ويتم حفظ الدرجة العالية في EEROM الداخلي لوحدة التحكم الدقيقة. تُستخدم مكتبة EEPROM للقيام بالقراءة والكتابة لهذه الذاكرة. تسمح الإجراءات المتاحة بقراءة / كتابة بايت واحد وقراءة / كتابة قيم الفاصلة العائمة. يتم تخزين قيمة 0xA5 في موقع EEROM الأول للإشارة إلى حفظ درجة عالية. إذا كانت هذه القيمة موجودة عند زيادة الطاقة ، فسيتم قراءة قيمة النقطة العائمة للدرجة العالية وعرضها. في حالة عدم وجود قيمة 0xA5 ، يتم استدعاء إجراء لتهيئة الدرجة العالية إلى قيمة 1. يتم استدعاء هذا الروتين نفسه إذا كان المطلوب إعادة تعيين الدرجة العالية. يتم إرجاع الدرجة العالية إلى القيمة 1 عن طريق الضغط باستمرار على أحد أزرار أعلى / أسفل ثم الضغط لحظياً على زر إعادة الضبط.

الخطوة الثالثة: لعب اللعبة

لعب اللعبة
لعب اللعبة
لعب اللعبة
لعب اللعبة

عند تطبيق الطاقة ، يتم عرض الدرجة العالية الحالية. بعد عرض النتيجة العالية ، يتم عرض متاهة "الصخور" و "السفينة" ثم تبدأ اللعبة بعد ثوانٍ قليلة. عندما تصطدم "السفينة" بـ "صخرة" ، تومض رسالة "CRASH AND BURN" عدة مرات قبل عرض نتيجة اللعبة. إذا تم تسجيل درجة عالية جديدة ، فسيتم عرض هذه الرسالة أيضًا. تبدأ لعبة جديدة بالضغط على زر إعادة الضبط.

موصى به: