از زمانیکه آردوینو بهوجود آمد، پروژههای بسیار زیادی برای آن بهصورت متنباز و رایگان منتشر شد. آردوینو این قابلیت را به افراد میدهد تا با کمترین دانش برنامهنویسی و بدوندرگیرشدن با موضوعات مختلف الکترونیکی ایدههای خودشان را با کمترین هزینه و دردسر پیادهسازی کنند. همین امر باعث علاقهمندی افراد زیادی به الکترونیک میشود. یکیاز این ایدهها میتواند ایدهی ساخت بازی بهوسیله این برد محبوب باشد. اما چطور میتوان تنها بااستفادهاز آردوینو و بدوناستفادهاز آیسی جانبی یک بازی جذاب همراه با افکتهای صوتی ساخت؟ در این پروژه قصد داریم تا بهوسیله برد آردوینو و السیدی کاراکتری ۲*۱۶ بازی دینو یا T-rex را بههمراه افکتهای صوتی، در کمتر از ۵دقیقه راهاندازی کنیم. بازی دینو یا تی-رکس T-rex همان بازی است که شرکت گوگل در مرورگر کروم و درمواقع قطعی اینترنت آنرا نمایش میدهد. در ادامه با ما همراه باشید.
بازی دینو (تی-رکس)
گوگل در مرورگر کروم خود بهصورت مخفی بازی دایناسوری را قراردادهاست که تنها هنگام آفلاینبودن اینترنت نمایش داده میشود. در مواقعیکه ارتباط اینترنتی شما برقرار نباشد، کروم عبارت unable to connect to the internet را برای شما نمایش میدهد. در این صفحه یک دایناسور سیاه و سفید پیکسلی قابلمشاهده است. اگر شما دکمهی Space را از روی کیبورد فشار دهید، وارد بازی میشوید. حال شما یک دایناسور را میبینید که درحال دویدن در یک بیابان است! به محضاینکه یک کاکتوس به سمت شما نزدیک شد، با فشاردادن مجدد دکمه Space باید از روی آن بپرید. در غیر اینصورت با کاکتوس برخورد کرده و شما میبازید! بازی بسیارساده، ولی درعینحال اعتیاد آور و جذاب است. اگر مرورگر کروم ندارید، میتوانید از اینجا آنلاین بازی کنید.
خب، برویم سراغ ساخت بازی:
قطعات مورد نیاز
- برد آردوینو UNO یا NANO
- برد بورد
- نمایشگر کاراکتری ۲×۱۶
- کلید فشاری یا میکرو – یک عدد
- مقداری سیم یا جامپر وایر (برای بردبرد)
- بازر یا بیزر(از نوع پسیو)
- مقاومت متغیر ۵کیلو اهم(پتانسیومتر) – جهت تنظیم وضوح صفحه نمایش
ممکناست هنگامیکه شما این بازی را میسازید، به قطعاتی کمتر و یا بیشتر نیاز داشتهباشید.
شماتیک مدار بازی تیرکس روی آردوینو و LCD کاراکتری
کدنویسی بازی تیرکس
در خطوط اولیه برنامه، نحوه اتصالات و سیمکشی مدار مشخصشدهاست. شما میتوانید بسته به نیاز خود، سیمکشیهای السیدی، شماره پین آردوینو مربوط به دکمه بازی و خروجی صدا را تغییر دهید.
کد های مربوط به راهاندازی نمایشگر کاراکتری:
#include <LiquidCrystal.h> const int rs = 8, en = 7, d4 = 6, d5 = 5, d6 = 4, d7 = 3; LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
قسمت کد مربوط به تعریف کلید بازی و پین ملودی:
#define MELODY_PIN 9 #define PIN_BTN 10
توجهداشتهباشید که برای تولید ملودی، باید از پایهای استفادهکنید که قابلیت تولید امواج pwm را داشتهباشد.
نحوه تولید صدا
درمورد نحوه تولید ملودی و صدا در آردوینو بهوسیله بازر، قبلاً مطلبی منتشر کردهایم. در این مقاله همچنین روشهای معمول تولید صدا در مدار را بررسی کردهایم. به همین خاطر مطالعه این مقاله را به شما حتماً توصیه میکنیم. در این بازی فرکانس نتها درون فایل pitches.h قرار گرفتهاند. ملودی و تمپوها نیز درون فایل melody.h ذخیره شدهاند.
نحوه تعریف کاراکتر دلخواه برای السیدی
LCDهای کاراکتری، حافظهای به نام CGRAM دارند که شما میتوانید در آن تنها ۸ کاراکتر دلخواه تعریف نمایید. برای این کار ابتدا میبایست بهوسیله نرمافزار LCD custom character کاراکتر دلخواه خود را طراحیکرده، سپس کد آنرا خروجی گرفته و بهوسیله آردوینو به السیدی معرفیکنید. این نرمافزار در انتهای مطلب بهصورترایگان قابل دانلود میباشد.
تولید کاراکتر دلخواه (دایناسور) برای lcd کاراکتری
در قسمت سمت راست تصویربالا، یک قسمت شطرنجی سبز وجود دارد. با کلیککردن داخل هر مربع میتوانید آنها را خاموش و روشن نمایید. درنهایت و پساز ساختهشدن کاراکتر دلخواه شما، با فشردن دکمه GENERATE کاراکتر بهصورت آرایهای از اعداد و در سه زبان C، پاسکال و بیسیک به شما تحویل داده میشود. شما به کدهای قسمت C و آرایهی آن نیاز دارید. در فایل bitmaps.h کاراکترهای لازم برای این بازی(dino، cacti، bird و block) تعریفشدهاند. در setup اولیه آردوینو این کاراکترها به السیدی معرفی میشوند. همانطورکه پیشتر هم اشارهشد، شما تنها میتوانید ۸ کاراکتر را به السیدی خود معرفیکنید. این ۸ خانه، از خانه صفر تا هفتم توسط تابع lcd.createChar(num, data) در آردوینو قابلدسترسی هستند.
lcd.createChar(0, dino); lcd.createChar(1, cacti); lcd.createChar(2, bird); lcd.createChar(3, block);
در ابتدای شروع بازی، تابع ()showCrashScreen صدا زده میشود تا آهنگ و متنهای اولیه را مشاهدهکنید. سپس در این تابع، برنامه منتظر زدن دکمه شروع بازی توسط کاربر میماند. بعداز زدن کلید شروع توسط کاربر، وارد حلقهی اصلی برنامه یعنی loop میشویم. سپس الگوریتم برنامه بااستفادهاز توابع مختلفی که تعریفشدهاست، بازی را هدایت میکند. برای مثال:
drawRandChar()
یک کاراکتر را بهصورت تصادفی روی صفحه نمایش ظاهر میکند.
printScore()
امتیاز کسبشده تا این لحظه را در وسط خط اول نمایشگر چاپ میکند.
showCrashScreen()
هنگامیکه کاربر بازی را میبازد، این تابع روی صفحه پیام “!Game Over” را نشانداده و ملودی سوختن بازی را پخش مینماید. سپس امتیاز کسبشده و بهترین امتیاز را روی صفحه نشان میدهد. روند اجرای بازی به این صورت است که با ایجاد اشکال تصادفی روی صفحه و سپس شیفتدادن آنها به سمت چپ، بازی به جریان افتاده و ازطریق محاسبهی مدت زمان پرش و موقعیت فعلی تی-رکس، برخورد با اجسام تشخیص داده میشود.
نحوه نصب و اجرای بازی
تنها کافیست پس از بستن مدار مطابق سیم کشیهای تعریفشده، کابل آردوینو را به کامپیوتر متصلکرده و کد را بهوسیله نرم افزار آردوینو روی آن آپلود کنید! کد آردوینو و نرم افزار Custom character در انتهای مطلب بهصورت رایگان قابل دانلود میباشد. تبریک، هماکنون میتوانید بازیکنید!
دانلود سورس برنامه
لینکهای دانلود
اسم فایل
Arduino-Chrome-dino-T-rex-Game+custom-char-Sisoog.com-digi-boy.zip