پروژه مار بازی با آردوینو (ساخت بازی Snake)
سلام. پروژه آردوینو مار بازی (آموزش کامل ساخت بازی Snake با Arduino) را آماده کردیم. در این پروژه ما یک بازی با آردوینو میسازیم. فیلم عملکرد مدار رو از دست ندید !
محتویات
پروژه آردوینو مار بازی
مار بازی در گذشته و تلفن های ساده بسیار محبوب بود (بنده که معتادش بودم 🙂 ). در ابتدا این بازی در تلفن های سیاه و سفید منتشر شد و خیلی سریع مشهور و معروف شد. با پیشرفت تکنولوژی ها این بازی با گرافیک بالا و طرح های مختلف موجود شدند. درست است که خیلی بازی هایی آمده اند که حجم بالایی دارند ولی هنوز هم این بازی طرفدار های خاص خودش را دارد.
آموزش کامل ساخت بازی Snake با Arduino
این پروژه برای علاقه مندان و دانش آموزان و دانش جویان الکترونیک بسیار محبوب است. ما در این پروژه آردوینو میخواهیم ماربازی را با استفاده از یک برد آردوینو و ال ای دی ماتریسی و ال سی دی کاراکتری راه اندازی کنیم.
ساخت این بازی بسیار پیچیده است ، اما در این آموزش بسیار ساده شده است. برای ساخت این پروژه ما از یک ماتریس 8*8 قرمز برای نمایش مار و نقطه های غذا استفاده کردیم. یک ال سی دی کاراکتری برای نمایش نقاط یا امتیاز ها و 5 دکمه برای شروع بازی و تغییر مسیر. و از یک برد آردوینو UNO برای کنترل کل فرآیند استفاده کردیم.
نحوه کار پروژه
وقتی ما مدار رو روشن میکنیم ، ابتدا یک پیام خوش آمد گویی نمایش داده میشود. سپس روی دکمه وسط کلیک میکنیم و بازی شروع میشود و روی ال سی دی امتیاز نشان داده میشود. در ابتدا در ماتریس دو نقطه به عنوان مار و یک نقطه به عنوان غذا وجود داره. با راندن مار به سمت غذا و خوردن هر غذا یک نقطه به مار اضافه میشود. با هر بار خوردن غذا 5 نمره به امتیاز افزوده میشود و همچنین سرعت مار نیز افزایش می یابد.
همچنین اگر میخواهید الکترونیک را با فیلم های آموزشی یاد بگیرید، روی دوره آموزش الکترونیک کلیک کنید.
ال ای دی ماتریسی چیست ؟
همچنین ببینید : پروژه آردوینو سوت زدن برای روشن کردن لامپ یا هرچیزی
قطعات مورد نیاز این پروژه آردوینو
- برد آردوینو Uno
- ال ای دی ماتریسی نقطه ای 8*8
- شیفت رجیستر 74HC595
- ال سی دی کاراکتری 16*2
- پتانسیومتر 1 کیلو اهم
- دکمه (پنج عدد)
- کامپایلر آردوینو : دانلود آردوینو
توضیحات کد پروژه
در ابتدای کد ما کتابخانه ال سی دی کاراکتری را فراخوانی میکنیم. سپس پین های ال سی دی را مشخص میکنیم. در قسمت بعد پین های داده شیفت رجیستر مشخص میشوند و در قسمت بعد پین دکمه های جهت مشخص میشوند.
#include<LiquidCrystal.h> // کتابخانه ال سی دی کاراکتری LiquidCrystal lcd(13,12,11,10,9,8); // پین های ال سی دی کاراکتری #define ds_col 15 // پین های داده شیفت رجیستر #define sh_col 16 // پین های داده شیفت رجیستر #define st_col 14 // پین های داده شیفت رجیستر #define ds_row 17 // پین های داده شیفت رجیستر #define start 3 // دکمه شروع #define up 2 // دکمه بالا #define down 5 // دکمه پایین #define left 4 // دکمه چپ #define right 6 // دکمه راست
سپس باید نوع پین ها را مشخص کنیم.
pinMode(ds_col, OUTPUT); // تنظیم پین های شیفت رجیستر به عنوان خروجی pinMode(sh_col, OUTPUT); // تنظیم پین های شیفت رجیستر به عنوان خروجی pinMode(st_col, OUTPUT); // تنظیم پین های شیفت رجیستر به عنوان خروجی pinMode(ds_row, OUTPUT); // تنظیم پین های شیفت رجیستر به عنوان خروجی pinMode(start, INPUT); // تنظیم پین دکمه ها به عنوان ورودی pinMode(up, INPUT); // تنظیم پین دکمه ها به عنوان ورودی pinMode(down, INPUT); // تنظیم پین دکمه ها به عنوان ورودی pinMode(left, INPUT); // تنظیم پین دکمه ها به عنوان ورودی pinMode(right, INPUT); // تنظیم پین دکمه ها به عنوان ورودی
سپس در این قسمت بازی را با تابع حلقه شروع میکنیم
void show_snake(int temp) { for(int n=0;n<temp;n++) { int r,c; for(int k=0;k<21;k++) { ...
برای مثال ما وقتی دکمه راست را فشار دهیم این قسمت کد اجرا میشود، کد کامل در فایل دانلودی قرار داده شده است.
if(!digitalRead(right)) // دکمه راست فشار داده شود { move_r=0; // کد ثابت move_c!=1 ? move_c=1 : move_c=-1; // تعریف حرکت به راست while(!digitalRead(right)); // تا زمانی که راست آخرین فشار داده شده باشد. }
عالی بود.ممنون
بازم ممنون هرچی بگم کمه😁