لقد حظيت لعبة Snake بشعبية كبيرة منذ بداية الهواتف المحمولة. في البداية كانت متوفرة في الهواتف المحمولة بالأبيض والأسود ، وسرعان ما أصبحت مشهورة جدًا. ثم مع تقدم الهواتف المحمولة ، تغيرت هذه اللعبة أيضًا كثيرًا ، والآن تتوفر العديد من الإصدارات الرسومية والملونة من هذه اللعبة.
أصبحت لعبة Snake أيضًا مشروع DIY مشهور جدًا لهواة الإلكترونيات والطلاب. لذلك سنقوم اليوم باستعراض لعبة Arduino Snake ، بكل وظائفها الأساسية ، مع إبقائها بسيطة في نفس الوقت.
المكونات المستخدمة:
- اردوينو UNO
- شاشة 8x8 LED مصفوفة نقطية
- سجل التحول 74HC595
- 16x2 LCD
- وعاء 1 كيلو
- أزرار الدفع
- توصيل الأسلاك
- مجلس الخبز
- مزود الطاقة
شرح العمل:
هذه لعبة معقدة بعض الشيء للبناء. ولكن في هذا البرنامج التعليمي ، قمنا بتسهيل الأمر عليك. للقيام بهذا المشروع ، استخدمنا شاشة عرض نقطية ملونة باللون الأحمر مقاس 8 × 8 لعرض الثعبان ونقطة الطعام الخاصة به ، وشاشة LCD لعرض النقاط أو النتيجة ، و 5 أزرار ضغط لإعطاء الاتجاهات وبدء اللعبة وأخيراً Arduino UNO للتحكم العملية برمتها. تم تقديم رسم تخطيطي لشاشة 8x8 LED Dot Matrix بصورتها الأصلية أدناه:
عندما نقوم بتشغيل الدائرة ، نعرض أولاً رسالة ترحيب ثم تلميح "اضغط ابدأ للتشغيل" على شاشة LCD. بعد ذلك ، تظهر شاشة LCD النتيجة على أنها صفر وعرض مصفوفة نقطية تظهر نقطتين على شكل ثعبان ونقطة واحدة كطعام.
يحتاج المستخدم الآن إلى الضغط على الزر الأوسط لبدء اللعبة ويبدأ الثعبان في التحرك في الاتجاه التصاعدي افتراضيًا. ثم يحتاج المستخدم إلى إعطاء التوجيه للثعبان بالضغط على "مفاتيح الاتجاه" حول الزر الأوسط. استخدمنا هنا خمسة مفاتيح (أزرار ضغط) وهي المفتاح الأيسر والمفتاح الأيمن والمفتاح الأعلى ومفتاح الأسفل ومفتاح البدء. عندما يصل الثعبان إلى نقطة الطعام أو يأكل الطعام ، تزداد النتيجة بمقدار 5 نقاط في كل مرة ويزداد طول الثعبان بنقطة واحدة (LED) في كل مرة ، كما تصبح سرعة الثعبان أسرع من ذي قبل. وكلما ضرب ثعبان أي جدار أو وصل إلى نهاية مصفوفة LED ، فإنه سينهي اللعبة ("انتهت اللعبة"). ثم يحتاج المستخدم لبدء اللعبة مرة أخرى بالضغط على مفتاح البدء.
شرح الدائرة:
حلبة مشروع لعبة الأفعى هذا معقدة بعض الشيء. هنا قمنا بتوصيل شاشة عرض نقطية باستخدام Shift Register 74HC595. هنا يتم استخدام اثنين من سجلات التحول ، أحدهما لقيادة الأعمدة والثاني لقيادة الصفوف. دبابيس التحكم في كل من السجلات ، وسجل إزاحة العمود وسجل إزاحة الصف (SH ، ST) ،متصلة مباشرة برقم التعريف الشخصي الخاص بـ Arduino 14 و 16 على التوالي. ويرتبط دبوس DS من سجل تحويل العمود وسجل تحويل الصف مباشرة بالرقم السري 15 و 17 من Arduino. زر البدء لبدء اللعبة متصل برقم التعريف 3 وزر الاتجاه الأيسر في الدبوس 4 وزر الاتجاه الأيمن عند الطرف 6 وزر الاتجاه لأعلى في الدبوس 2 وزر الاتجاه السفلي عند الطرف 5. كما تم توصيل شاشة LCD في أجهزتنا بـ تظهر النتيجة. يتم توصيل دبابيس RS و EN مباشرة في الدبوس 13 و 12. يتم تأريض دبوس RW مباشرة. وترتبط دبابيس البيانات d4-d7 في دبوس 11 و 10 و 9 و 8 من Arduino. يتم عرض باقي الاتصال في مخطط الدائرة.
شرح البرمجة:
لكتابة رمز لعبة Arduino snake ، نقوم أولاً بتضمين ملفات الرأس وتحديد دبابيس لشاشات الكريستال السائل. ثم حدد بعض المسامير لأزرار الاتجاه ودبوس البيانات لسجلات التحول.
#تضمن
ثم نقوم بتهيئة كل الأشياء التي استخدمناها في البرنامج. في وظيفة الإعداد ، نقوم بتهيئة شاشة LCD ، وإعطاء توجيه لدبابيس الإخراج ، وسحب البتات وإظهار رسالة ترحيب على شاشة LCD.
إعداد باطل () {lcd.begin (16،2) ؛ pinMode (ds_col ، الإخراج) ؛ pinMode (sh_col ، الإخراج) ؛ pinMode (st_col ، الإخراج) ؛ pinMode (ds_row ، الإخراج) ؛ pinMode (البدء ، الإدخال) ؛……………
ثم نبدأ اللعبة في وظيفة الحلقة .
void show_snake (int temp) {for (int n = 0؛ n
هنا استخدمنا الوظيفة أدناه لقراءة اتجاه الإدخال من زر الضغط.
read_button () باطل {if (! digitalRead (يسار)) {move_r = 0 ؛ move_c! = - 1؟ move_c = -1: move_c = 1 ؛ بينما (! digitalRead (يسار)) ؛……………
تحقق من كود C الكامل للعبة Snake أدناه.