جدول المحتويات:
- الخطوة 1: نظرة عامة
- الخطوة 2: المواد
- الخطوة الثالثة: صنع اللعبة
- الخطوة 4: عرض النتيجة
- الخطوة 5: وضع كل ذلك معًا
- الخطوة 6: التعديلات المستقبلية
- الخطوة 7: الخاتمة
فيديو: لعبة الكويكب FPGA: 7 خطوات (بالصور)
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:41
بالنسبة لمشروعنا النهائي CPE 133 ، قررنا إنشاء لعبة كويكبات على FPGA باستخدام مفتاحي ضغط وشاشة عرض من 7 أجزاء. تعمل اللعبة بحيث يولد كويكب في واحد من ثلاثة صفوف تم اختيارها عشوائيًا ، ويأتي سريعًا نحو السفينة على الجانب الآخر من شاشة العرض المكونة من 7 أجزاء. يمكن استخدام الزر العلوي والزر السفلي لتحريك سفينتك بعيدًا عن طريق الكويكب. عند عدم القيام بذلك ، تقرأ الشاشة "BAnG" للحظة ثم تعيد تشغيل اللعبة بسرعة حتى يتمكن المستخدم من المحاولة مرة أخرى. فيما يلي وصف موجز لكيفية تنفيذ المشروع بحيث يمكن لأي مستخدم تكرار تصميمنا أو تحسينه.
الخطوة 1: نظرة عامة
يتكون المشروع إلى حد كبير من آلات الحالة المحدودة (FSMs) ، والتي تستخدم المنطق لنقل FPGA بين الدول التي تخزن وتعرض قيمًا مختلفة لمواقع السفن والصخور. الوحدتان الرئيسيتان هما لعبة FSMs للصخرة والسفينة ، ووحدة فك ترميز العرض الثنائية إلى 7 أجزاء FSM ، والتي يتم دمجها معًا باستخدام نموذج هيكلي بسيط للغاية في VHDL.
تم إنشاء ولايات ميكرونيزيا الموحدة لموقع السفينة ، وموقع الصخرة ، وجهاز فك التشفير المكون من 7 أجزاء. الغرض من FSM للسفينة هو أن تتحرك السفينة إلى الموضع الصحيح عندما يضغط اللاعب على زر لأعلى أو لأسفل. هناك حاجة إلى ولايات ميكرونيزيا الموحدة لأنها تحتاج إلى تذكر الموضع الأخير الذي كانت فيه من أجل الانتقال إلى الموضع الصحيح.
الغرض من FSM للصخرة هو نقل الصخرة إلى الموضع الصحيح بناءً على الصف الذي توجد فيه والموضع الأخير في ذلك الصف. بالإضافة إلى ذلك ، فإنه يتتبع موضع الوحدة التي ستعرضه ويختار بشكل عشوائي صفًا جديدًا ليظهر في المرة التالية.
تم استخدام FSM لوحدة فك ترميز العرض ذات الأجزاء السبعة ليس فقط لعرض السفينة والصخور ولكن أيضًا لعرض "BAnG" عندما يكون موضع السفينة وموضع الصخور متماثلين.
الخطوة 2: المواد
المواد المستخدمة في المشروع هي:
- مجلس تطوير Basys3 من Digilent، Inc.
- جناح تصميم فيفادو
- sseg_dec.vhd (تم توفير هذا الملف لنا على Polylearn وكتبه براين ميلي)
- Clk_div.vhd (تم توفير هذا الملف لنا على Polylearn وكتبه براين ميلي)
- ثلاث آلات حالة محدودة (FSMs)
الخطوة الثالثة: صنع اللعبة
تم إنشاء وحدة اللعبة باستخدام النمذجة السلوكية لوصف حالة السفينة والصخور في ولايات ميكرونيزيا الموحدة الخاصة بها. وتتمثل ميزة هذا في أنه من الأسهل بكثير نمذجة الدائرة بشكل سلوكي من خلال وصف ما تفعله بدلاً من معرفة جميع المكونات اللازمة لتصميم الأجهزة.
تم إجراء حالات الصخور باستخدام مولد رقم عشوائي زائف للموضع الأول للصخرة. لتحقيق ذلك ، أعطينا المولد ساعته الخاصة التي كانت سريعة للغاية بالنسبة لسرعة اللعبة. على كل حافة صاعدة ، يتم زيادة رقم مكون من ثلاث بتات ، وتتوافق جميع قيمه مع واحدة من ثلاث حالات بداية للسفينة. لذلك ، تتوافق ثلاث قيم مع الموضع 3 (أعلى اليمين) ، وتتوافق ثلاث قيم مع الموضع 7 (المركز) ، واثنتان تقابل الموضع 11 (أسفل اليمين).
بمجرد حدوث التوليد العشوائي وإعطاء الكويكب حالة أولية ، فإنه يتدفق أفقيًا نحو السفينة دون انقطاع.
0 ← 1 ← 2 ← 3
4 ← 5 ← 6 ← 7
11 ← 10 ← 9 ← 8
تتحكم الساعة المستخدمة لمنطق الحالة التالية للروك في سرعة اللعبة ؛ وجدنا من خلال التجربة والخطأ أن 9999999 قيمة جيدة لأقصى عدد لها.
يعمل منطق السفينة من خلال التهيئة إلى الوضع المركزي (الموضع 4) في أقصى الجانب الأيسر. إذا تم الضغط على الزر العلوي أو السفلي ، فسوف تتحرك السفينة لأعلى ولأسفل إلى الموضعين 0 و 11 المقابل للزر الذي تم الضغط عليه.
من أجل أن تكون حركة السفينة جيدة للمستخدم ، لم نجعل حركتها غير متزامنة. استخدمنا ساعة لتغيير حالتها ، واستخدمنا عددًا أقصى يبلغ 5555555.
الخطوة 4: عرض النتيجة
يأخذ مفكك الشفرة الثنائي إلى 7 مقاطع متغيرات الموضع ذات 4 بتات للسفينة والكويكب ويعرض الصورة المناسبة (إما السفينة والصخرة أو الرسالة "BAnG").
يتم ذلك عن طريق التحقق أولاً مما إذا كان الاثنان متساويين ثم عرض الرسالة "BAnG" إذا كان الشيك يعود إلى القيمة الصحيحة.
إذا لم يكن صحيحًا ، فسيعرض جهاز فك التشفير السفينة والصخرة عن طريق التبديل بينهما بتردد ساعة مرتفع للغاية وخداع العين لرؤيتهما كما لو أنهما معروضان في نفس الوقت.
الخطوة 5: وضع كل ذلك معًا
لقد قمنا بتضمين FSM للسفينة والصخور في FSM واحد كبير قمنا بتوصيله بعرض FSM. مدخلات اللعبة هي الزر العلوي والزر السفلي على لوحة BASYS3 وساعة النظام. النواتج هي المقطع ومتجهات الأنود سبعة شرائح العرض.
ستظهر هذه المدخلات والمخرجات في ملف القيود حيث يتم تعيين المنفذ لها.
الخطوة 6: التعديلات المستقبلية
في المستقبل ، ستكون إضافة المزيد من وظائف حركة السفن إلى المشروع بمثابة تحسين. يمكن تحقيق ذلك ببساطة عن طريق إعطاء مدخلين إضافيين للزر والسماح للسفينة باتخاذ مواقف (حالات) غير 0 و 4 و 8. يمكن أن يكون التعديل الآخر المحتمل هو التحكم في توقيت الحالة التالية للكويكب بحيث يبدأ ببطء ويزيد السرعة بمقدار 1.5 مرة في كل مرة تفقد فيها السفينة حتى تحصل على ضربة ، حيث ستعيد تشغيلها وتصبح بطيئة مرة أخرى. سيزيد ذلك من صعوبة اللعبة ويجعلها أكثر إمتاعًا للمستخدم إذا تم تنفيذها ، ويمكن القيام بذلك عن طريق إنشاء متغير للعدد الأقصى لساعة الحالة التالية للصخرة ، وضرب هذا المتغير في 1.5 في كل مرة لا يفعل فيها الكويكب. لم يضرب ، وأعد ضبطه على قيمته الأولية في كل مرة تضرب فيها الصخرة.
الخطوة 7: الخاتمة
لقد ساعدنا هذا المشروع على فهم أفضل لآلات الحالة المحدودة والساعات والعرض التفاعلي على شاشات العرض المكونة من سبعة أجزاء.
أهم شيء في آلات الحالة المحدودة هو أنه من المهم معرفة (تذكر) الحالة التي أنت عليها حاليًا من أجل الانتقال إلى الحالة التالية المرغوبة. ومن المفارقات أن نصائح الحياة الجيدة ؛ يجب أن تعرف أين أنت لتعرف إلى أين أنت ذاهب.
من خلال التلاعب في حالات مختلفة من الساعات ، تمكنا من إنشاء أرقام عشوائيًا ، ونقل الصخرة إلى الموضع التالي ، وإدارة عرض رسالة السفينة والصخرة ونهاية اللعبة.
علمنا أنه لا يمكن عرض أكثر من أنود في نفس الوقت. استفادت الوحدة المعطاة لنا من أن العين البشرية يمكنها فقط رؤية الفرق حتى تردد معين. لذلك تم اختيار تردد أعلى لتبديل الأنودات. إن رؤية السفينة والصخرة في نفس الوقت هي في الواقع إشارة لأن كل منهما يتم عرضهما على حدة ، ولكن بسرعة كبيرة. تم تطبيق هذا المفهوم لعرض حركة السفينة والصخرة ورسالة "BAnG".
موصى به:
لعبة Soft Toy Bluetooth Dice وتطوير لعبة Android مع مخترع تطبيق MIT: 22 خطوة (مع صور)
لعبة Soft Toy Bluetooth Dice وتطوير لعبة Android مع MIT App Inventor: لعب لعبة النرد له طريقة مختلفة 1) اللعب التقليدي بالنرد الخشبي أو النحاسي. العب النرد جسديًا وحرك العملة في الهاتف المحمول أو الكمبيوتر الشخصي
لعبة سيمون - لعبة ممتعة: 5 خطوات
Simon Game - Fun Game !: المرجع: بعد عطلة نهاية أسبوع طويلة ، يجب أن تحاول جاهدًا إكمال جميع المهام والعمل الذي تتحمل مسؤوليته. حان الوقت لتدريب عقولنا ، أليس كذلك؟ إلى جانب تلك الألعاب المملة والتي لا معنى لها ، هناك لعبة تسمى Simon Game
Aruduino LED لعبة النقر السريع لعبة لاعبين: 8 خطوات
Aruduino LED Game Fast Clicking Two Player Game: هذا المشروع مستوحى منHassonAlkeim. إذا كنت على استعداد لإلقاء نظرة عميقة ، هنا رابط يمكنك التحقق من https://www.instructables.com/id/Arduino-Two-Player-Fast-Button-Clicking-Game/. هذه اللعبة هي نسخة محسنة من Alkeim. إنها
لعبة مينيون كوبيكرافت (لعبة مصباح يدوي): 4 خطوات
لعبة Minion Cubecraft (لعبة مصباح يدوي): منذ فترة طويلة كنت أرغب في صنع شعلة لاستخدامها في الظلام ، لكن فكرة وجود كائن أسطواني الشكل بمفتاح تشغيل وإيقاف فقط جعلتني أقاوم عدم القيام بذلك. لقد كان سائدًا جدًا. ثم في أحد الأيام أحضر أخي قطعة صغيرة من ثنائي الفينيل متعدد الكلور
لعبة رد فعل FPGA: 10 خطوات
لعبة رد فعل FPGA: بواسطة Summer Rutherford و Regita Soetandar