پروژه الکترونیکپروژه های آردوینوپروژه های بازی و سرگرمی

پروژه آردوینو مار بازی (آموزش کامل ساخت بازی Snake با Arduino)

سلام. پروژه آردوینو مار بازی (آموزش کامل ساخت بازی Snake با Arduino) را آماده کردیم. در این پروژه ما یک بازی با آردوینو میسازیم. فیلم عملکرد مدار رو از دست ندید !

پروژه آردوینو مار بازی

پروژه مار بازی آردوینو
پروژه مار بازی آردوینو

مار بازی در گذشته و تلفن های ساده بسیار محبوب بود (بنده که معتادش بودم 🙂 ). در ابتدا این بازی در تلفن های سیاه و سفید منتشر شد و خیلی سریع مشهور و معروف شد. با پیشرفت تکنولوژی ها این بازی با گرافیک بالا و طرح های مختلف موجود شدند. درست است که خیلی بازی هایی آمده اند که حجم بالایی دارند ولی هنوز هم این بازی طرفدار های خاص خودش را دارد.

آموزش کامل ساخت بازی Snake با Arduino

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

ساخت این بازی بسیار پیچیده است ، اما در این آموزش بسیار ساده شده است. برای ساخت این پروژه ما از یک ماتریس 8*8 قرمز برای نمایش مار و نقطه های غذا استفاده کردیم. یک ال سی دی کاراکتری برای نمایش نقاط یا امتیاز ها و 5 دکمه برای شروع بازی و تغییر مسیر. و از یک برد آردوینو UNO برای کنترل کل فرآیند استفاده کردیم.

نحوه کار پروژه

وقتی ما مدار رو روشن میکنیم ، ابتدا یک پیام خوش آمد گویی نمایش داده میشود. سپس روی دکمه وسط کلیک میکنیم و بازی شروع میشود و روی ال سی دی امتیاز نشان داده میشود. در ابتدا در ماتریس دو نقطه به عنوان مار و یک نقطه به عنوان غذا وجود داره. با راندن مار به سمت غذا و خوردن هر غذا یک نقطه به مار اضافه میشود. با هر بار خوردن غذا 5 نمره به امتیاز افزوده میشود و همچنین سرعت مار نیز افزایش می یابد.

حتما ببینید :  ساخت دماسنج بدون تماس با آردوینو (مخصوص کرونا و ثبت در فرمت اکسل)

ال ای دی ماتریسی چیست ؟

ال ای دی ماتریسی 8*8
ال ای دی ماتریسی 8*8
این ال ای دی ماتریسی شامل 64 ال ای دی است که به صورت آماده مرتب شده اند(شما میتوانید تک تک ال ای دی ها را به هم وصل کنید ولی وقت گیر است و خرید ماژول آماده راحت تر است). این ماژول ها در رنگ ها و اندازه ها مختلف در دسترس اند. این ماژول ها هزینه کمی دارند و فرقی با خرید 64 ال ای دی ندارند، و میشه گفت برای سرگرمی خیلی مناسبت و ساده هستند.

همچنین ببینید : پروژه آردوینو سوت زدن برای روشن کردن لامپ یا هرچیزی

قطعات مورد نیاز این پروژه آردوینو

  • برد آردوینو 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)); // تا زمانی که راست آخرین فشار داده شده باشد.
 }

فیلم عملکرد مدار : کلیک کنید !

موارد موجود در فایل : شماتیک کامل ، فایل Hex ، فایل آردوینو ، و …
برای دانلود فایل های پروژه ثبت نام کنید، تنها چند ثانیه زمان لازم است. از طریق فرم زیر اقدام کنید.

نظرتان را در مورد این مطلب با ستاره دادن اعلام کنید امیدوارم این مطلب برای شما مفید بوده باشد. نظرات ، مشکلات و پیشنهادات خود را در پایین صفحه اعلام کنید

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید)

2 نظر

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا