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

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

سلام. پروژه آردوینو مار بازی (آموزش کامل ساخت بازی 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 نظر

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

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