طراحی بازی مار یا snake game با آردوینو

0
490
طراحی بازی مار

در این پروژه می خواهم بازی مار (snake game) را با استفاده از نمایشگر ماتریسی ال ای دی ۸*۸ ، تعدادی تک سوئیچ ، میکروکنترلر ATmega328 و آردوینو UNO برای کنترل حرکت مار طراحی کنم.

Snake یک بازی قدیمی است که خاطرات کودکی ما را زنده می کند. آن زمان نمایشگرها تعداد پیکسل کمی داشتند ولی با این حال امکان اجرای بازی را داشتند. امروزه کارتهای گرافیک و پردازنده ها بسیار قوی هستند و اینگونه بازی ها در صنعت بازی جزو دسته بازیهای کلاسیک به حساب می آیند.

بازی مار یا snake چگونه است؟

بازی مار بسیار سرگرم کننده است و بر روی نمایشگر ماتریسی ال ای دی ۸*۸ ساخته شده که توسط میکروکنترلر ATmega328P کنترل می شود. سطرها و ستونهای نمایشگر ماتریسی با استفاده از شیفت رجیستر ۷۴hc595 کنترل می شود. به این ترتیب نیاز کمتری به استفاده از سیم برای روشن کردن ال ای دی ها می باشد. همچنین چهار تک سوئیچ را به میکروکنترلر لحیم کردم تا بتوان مسیر حرکت مار را تغییر داد. کل مدار با استفاده از یک منبع تغذیه ۵ ولت تأمین می شود.

ساخت نمایشگر ماتریسی ال ای دی ۸*۸

نمایشگر ماتریسی ال ای دی 8*8

طراحی های زیادی برای ساخت نمایشگر ماتریسی ال ای دی ۸*۸ وجود دارد. نمایشگری که من طراحی کردم به صورت زیر است:

اتصال شیفت رجیستر به میکروکنتر در مدار بازی مار

میکروکنترلر آردوینو UNO تنها ۱۳ پین دیجیتالی دارد، اما برای روشن کردن نمایشگر ماتریسی ال ای دی به ۱۶ پین نیاز است. به همین دلیل از روش مالتی پلکس استفاده می کنم. برای پیاده سازی این روش، از شیفت رجیسترها استفاده می کنم. شیفت رجیسترها اغلب برای تبدیل داده های سریال به موازی به کار می روند. من از شیفت رجیستر ۷۴hc595 استفاده می کنم. این شیفت رجیستر می تواند به هشت خط موازی وصل شود و دارای پین داده، کلاک و چفت (Latch) برای کنترل می باشد. به همین دلیل به ۲ شیفت رجیستر نیاز است، یکی برای پین هایی که در سطر قرار دارند و دیگری برای پین هایی که در ستون هستند. من قصد دارم که اتصالات پین های داده، چفت و کلاک را در هر دو شیفت رجیستر کوتاه کنم. شماتیک مدار به شکل زیر است:

اتصال شیفت رجیستر به میکروکنتر در مدار بازی مار

ویدیوی پیاده سازی اتصال ال ای دی ها به شیفت رجیسترها

پس از اینکه نمایشگر ماتریسی ال ای دی ها آماده شدند، حال نوبت به طراحی برد کنترلر که حاوی تک سوئیچ ها و کنترلر است، می باشد.

طراحی برد کنترلر بازی مار

در این قسمت دیاگرام مدار را قرار داده ام که در آن تک سوئیچ ها و ال ای دی ها به آردوینو متصل شده اند.

دیاگرام برد کنترلر بازی مار

تصویر زیر دیاگرام مدار برد کنترلر که شامل میکروکنترلر ATMega328p به همراه تک سوئیچ ها می باشد را نشان می دهد.

دیاگرام برد کنترلر بازی مار

ویدیوی عملکرد مدار بازی مار

پین های VCC و GND برد کنترلر با استفاده از آردوینو Uno متصل شده است.

نتیجه گیری

در این پروژه نحوه اتصال ۶۴ ال ای دی و تشکیل یک ماتریس ۸*۸ با استفاده از شیفت رجیستر برای اعمال روش مالتی پلکس نشان داده شده است.

برنامه نویسی پروژه بازی مار

برنامه نویسی پروژه بازی مار

دانلود کد ماتریس ال ای دی

دانلود کد کل پروژه

شماتیک مدار

شماتیک زیر نحوه اتصال ۶۴ ال ای دی با شیفت رجیسترها و آردوینو را نشان می دهد که چگونه یک نمایشگر ماتریسی با ال ای دی عمل می کند.

قطعات مورد نیاز

  • ۶۴x 5mm LED: Red
  • 2x Shift Register     
  • 1x Vero Board        
  • 4x DFRobot Gravity:Digital Push Button (Yellow)    
  • 1x Microchip Technology ATmega328
  • 1x Arduino UNO & Genuino UNO         
  • 30x Jumper wires (generic)

ارسال یک پاسخ

لطفا دیدگاه خود را وارد کنید!
لطفا نام خود را در اینجا وارد کنید