فهرست مطالب:
- مرحله 1: مرور کلی
- مرحله 2: مواد
- مرحله 3: ساخت بازی
- مرحله 4: نمایش نتیجه
- مرحله 5: همه چیز را با هم ترکیب کنید
- مرحله 6: اصلاحات آینده
- مرحله 7: نتیجه گیری
تصویری: بازی سیارک FPGA: 7 مرحله (همراه با تصاویر)
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:57
برای پروژه نهایی CPE 133 ، تصمیم گرفتیم با استفاده از دو کلید فشاری و صفحه نمایش 7 قسمتی یک بازی سیارک ها در FPGA خود ایجاد کنیم. این بازی به گونه ای عمل می کند که یک سیارک در یکی از سه ردیف انتخاب شده به طور تصادفی تخم ریزی می کند و به سمت کشتی در طرف دیگر صفحه نمایش 7 قسمتی حرکت می کند. از دکمه بالا و دکمه پایین می توان برای حرکت کشتی شما خارج از سیارک استفاده کرد. در صورت عدم انجام این کار ، صفحه نمایش برای یک لحظه "BAnG" را می خواند و سپس بازی را به سرعت راه اندازی می کند تا کاربر دوباره امتحان کند. آنچه در زیر می آید شرح مختصری از نحوه ساخت پروژه است تا هر کاربری بتواند طرح ما را تکرار یا بهبود بخشد.
مرحله 1: مرور کلی
این پروژه عمدتا شامل ماشینهای حالت محدود (FSM) است که از منطق برای انتقال FPGA بین حالتهایی که مقادیر مختلف موقعیت کشتی و سنگ را ذخیره و نمایش می دهند ، استفاده می کند. دو ماژول اصلی عبارتند از بازی FSM برای سنگ و کشتی ، و رمزگشای صفحه نمایش دوتایی تا 7 بخش FSM ، که با استفاده از یک مدل ساختاری بسیار ساده در VHDL با هم ادغام شده اند.
FSM ها برای موقعیت کشتی ، موقعیت سنگ و رمزگشای 7 بخش ایجاد شده اند. هدف FSM کشتی این است که کشتی بتواند هنگامی که بازیکن دکمه بالا یا پایین را فشار می دهد به موقعیت مناسب حرکت کند. FSM مورد نیاز است زیرا باید به خاطر داشته باشد که آخرین موقعیت در کدام موقعیت بوده است تا به موقعیت صحیح برسد.
هدف FSM سنگ انتقال سنگ به موقعیت صحیح بر اساس ردیف و آخرین موقعیت آن ردیف است. علاوه بر این ، موقعیت ماژول را که نمایش داده می شود پیگیری می کند و به طور تصادفی یک ردیف جدید را انتخاب می کند تا در بعدی ظاهر شود.
FSM برای رمزگشای صفحه نمایش 7 قسمتی نه تنها برای نمایش کشتی و صخره بلکه برای نمایش "BAnG" هنگامی که موقعیت کشتی و موقعیت سنگ یکسان بود استفاده شد.
مرحله 2: مواد
مواد مورد استفاده در پروژه عبارت بودند از:
- هیئت توسعه Basys3 از Digilent، Inc.
- مجموعه طراحی ویوادو
- sseg_dec.vhd (این فایل در Polylearn در اختیار ما قرار گرفته و توسط برایان میلی نوشته شده است)
- Clk_div.vhd (این فایل در Polylearn در اختیار ما قرار گرفته و توسط برایان میلی نوشته شده است)
- سه ماشین حالت محدود (FSM)
مرحله 3: ساخت بازی
ماژول بازی با استفاده از مدل سازی رفتاری برای توصیف حالات کشتی و سنگ برای FSM های مربوطه ایجاد شد. مزیت این امر این است که مدلسازی رفتاری مدار با توصیف آنچه انجام می دهد بسیار ساده تر از تشخیص تمام اجزای مورد نیاز برای طراحی سخت افزار است.
حالتهای سنگ با استفاده از یک شبه عدد تصادفی مولد برای اولین موقعیت سنگ انجام شد. برای دستیابی به این هدف ، ما به ژنراتور ساعت مخصوص خود را دادیم که نسبت به سرعت بازی بسیار سریع بود. در هر لبه در حال افزایش ، یک عدد سه بیت افزایش می یابد و همه مقادیر آن مربوط به یکی از سه حالت شروع کشتی است. بنابراین ، سه مقدار مربوط به موقعیت 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: اصلاحات آینده
در آینده ، افزودن قابلیت حرکت بیشتر کشتی به پروژه یک پیشرفت است. این را می توان به سادگی با دادن 2 ورودی دکمه دیگر و اجازه دادن به کشتی برای گرفتن موقعیت (حالت) غیر از 0 ، 4 و 8 ، انجام داد. تغییر احتمالی دیگر می تواند کنترل زمان بندی بعدی وضعیت سیارک باشد به طوری که به آرامی شروع به کار کرده و سرعت آن را افزایش دهد. 1.5 بار هر بار که کشتی را از دست می دهد تا زمانی که ضربه می خورد ، در آنجا دوباره راه اندازی می شود و دوباره کند می شود. این کار سختی بازی را افزایش می دهد و در صورت اجرا برای کاربر سرگرم کننده تر می شود و می توان با ایجاد یک متغیر برای حداکثر تعداد ساعت بعدی سنگ ، این متغیر را در هر بار که سیارک انجام نمی دهد در 1.5 ضرب کرد. ضربه نزنید ، و هربار که صخره برخورد می کند آن را به مقدار اولیه بازگردانید.
مرحله 7: نتیجه گیری
این پروژه به ما در درک بهتر ماشین های حالت محدود ، ساعت ها و نمایش تعاملی نمایشگرهای هفت قسمتی کمک کرده است.
بزرگترین نکته در مورد ماشینهای حالت محدود این است که بدانید (به یاد داشته باشید) در چه وضعیتی هستید تا بتوانید به حالت دلخواه بعدی بروید. از قضا ، توصیه های خوب زندگی ؛ باید بدانید کجا هستید تا بدانید کجا می روید.
با دستکاری نمونه های مختلف ساعت ، ما توانستیم به طور تصادفی اعداد تولید کنیم ، سنگ را به موقعیت بعدی منتقل کنیم و نمایش کشتی ، سنگ و پیام پایان بازی را مدیریت کنیم.
ما آموختیم که بیش از یک آند نمی تواند همزمان نمایش داده شود. ماژولی که به ما داده شد از این نکته استفاده کرد که چشم انسان فقط می تواند تفاوت را تا یک فرکانس مشخص ببیند. بنابراین فرکانس بالاتری از تغییر آندها انتخاب شد. مشاهده کشتی و صخره به طور همزمان در واقع یک کنایه است زیرا هر یک به طور جداگانه نمایش داده می شوند ، اما بسیار سریع. این مفهوم برای نمایش حرکت کشتی ، صخره و پیام "BAnG" به کار گرفته شد.
توصیه شده:
نرم اسباب بازی بلوتوث تاس و توسعه بازی Android با MIT App Inventor: 22 مرحله (همراه با تصاویر)
نرم اسباب بازی بلوتوث تاس و توسعه بازی Android با MIT App مخترع: بازی تاس روش متفاوتی دارد 1) بازی سنتی با تاس چوبی یا برنجی. 2) بازی در موبایل یا رایانه با مقدار تاس که به طور تصادفی توسط تلفن همراه یا رایانه ایجاد شده است. در این روش متفاوت تاس را به صورت فیزیکی بازی کنید و سکه را در تلفن همراه یا رایانه جابجا کنید
کنترل کننده بازی مبتنی بر آردوینو - کنترل کننده بازی Arduino PS2 - بازی Tekken With DIY Arduino Gamepad: 7 مرحله
کنترل کننده بازی مبتنی بر آردوینو | کنترل کننده بازی Arduino PS2 | بازی Tekken With DIY Arduino Gamepad: سلام بچه ها ، بازی کردن همیشه سرگرم کننده است اما بازی با کنترلر بازی سفارشی DIY خود سرگرم کننده تر است. بنابراین ما در این دستورالعمل یک کنترلر بازی با استفاده از arduino pro micro ایجاد می کنیم
کابینت بازی 4 نفره پایه بازی برای MAME: 32 مرحله (همراه با تصاویر)
کابینت بازی 4 نفره پایه برای MAME: این به شما نشان می دهد که چگونه من کابینت پایه 4 بازیکن MAME خود را ساختم. موارد زیادی وجود دارد که ممکن است بخواهید آن را به دلخواه خود سفارشی کنید. من به شما نشان خواهم داد که چگونه من را ساخته ام ، شما می توانید با خیال راحت آن را به دلخواه خود تغییر دهید. این پنجره استاندارد را در خود جای داده است
پدهای حساس به فشار بازی (برای زمین های بازی دیجیتال - و بیشتر): 11 مرحله (همراه با تصاویر)
پدهای حساس به فشار بازیگوش (برای زمین های بازی دیجیتال - و بیشتر): این یک دستورالعمل است که به شما نشان می دهد چگونه یک پد حساس به فشار بسازید - که می تواند برای ایجاد اسباب بازی ها یا بازی های دیجیتالی استفاده شود. می توان از آن به عنوان یک مقاومت حساس به نیرو در مقیاس بزرگ استفاده کرد ، و اگرچه بازیگوش است ، اما می تواند برای پروژه های جدی تر مورد استفاده قرار گیرد
هک سخت افزاری اسباب بازی شکسته اسباب بازی: 12 مرحله (همراه با تصاویر)
هک سخت افزاری Broken Toy Drone: در این مقاله آموزشی ، من به شما نشان می دهم که چگونه تقریباً هر پهپاد اسباب بازی شکسته ای که دارای چراغ های کنترل از راه دور است را به یک جفت دستگاه همه کاره تبدیل کنید. اولین دستگاه ساخته شده از کنترل از راه دور قدیمی با استفاده از یک ماژول سنسور چیزی را تشخیص می دهد