اجرای بازی

اجرای بازی "تی-رکس" یا "دینو" مرورگر کروم روی آردوینو و lcd کاراکتری همراه با صدا

اجرای بازی
اجرای بازی

از زمانی که آردوینو به وجود آمد، پروژه‌های بسیار زیادی برای آن به‌صورت متن باز و رایگان منتشر شد. آردوینو این قابلیت را به افراد می‌دهد تا با کمترین دانش برنامه نویسی و بدون درگیر شدن با موضوعات مختلف الکترونیکی ایده‌های خودشان را با کمترین هزینه و دردسر پیاده سازی کنند. همین امر باعث علاقه‌مندی افراد زیادی به الکترونیک می‌شود. یکی از این ایده‌ها می‌تواند ایده‌ی ساخت بازی به‌وسیله این برد محبوب باشد. اما چطور می‌توان تنها با استفاده از آردوینو و بدون استفاده از آی سی جانبی یک بازی جذاب همراه با افکت‌های صوتی ساخت؟ در این پروژه قصد داریم تا به‌وسیله برد آردوینو و ال سی دی کاراکتری 2*16 بازی دینو یا T-rex را به همراه افکت‌های صوتی، در کمتر از 5 دقیقه راه اندازی کنیم. بازی دینو یا تی-رکس T-rex همان بازی است که شرکت گوگل در مرورگر کروم و در مواقع قطعی اینترنت آن را نمایش می‌دهد.

در ادامه با سیسوگ همراه باشید.

بازی دینو (تی-رکس)

گوگل در مرورگر کروم خود به‌صورت مخفی بازی دایناسوری را قرار داده است که تنها هنگام آفلاین بودن اینترنت نمایش داده می‌شود. در مواقعی که ارتباط اینترنتی شما برقرار نباشد، کروم عبارت unable to connect to the internet را برای شما نمایش می‌دهد. در این صفحه یک دایناسور سیاه و سفید پیکسلی قابل مشاهده است. اگر شما دکمه‌ی Space را از روی کیبرد فشار دهید، وارد بازی می‌شوید. حال شما یک دایناسور را می‌بینید که در حال دویدن در یک بیابان است! به محض اینکه یک کاکتوس به سمت شما نزدیک شد، با فشار دادن مجدد دکمه Space باید از روی آن بپرید. در غیر این صورت با کاکتوس برخورد کرده و شما می‌بازید! بازی بسیار ساده، ولی در عین حال اعتیاد آور و جذاب است. اگر مرورگر کروم ندارید، می‌توانید از اینجا آنلاین بازی کنید.

بازی تی-رکس دینو کروم

 

خب، برویم سراغ ساخت بازی:

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

  1. برد آردوینو UNO یا NANO
  2. برد بورد
  3. نمایشگر کاراکتری 2×16
  4. کلید فشاری یا میکرو – یک عدد
  5. مقداری سیم یا جامپر وایر (برای بردبرد)
  6. بازر یا بیزر ( از نوع پسیو)
  7. مقاومت متغیر 5 کیلو اهم (پتانسیومتر) – جهت تنظیم وضوح صفحه نمایش

ممکن است هنگامی که شما این بازی را می‌سازید، به قطعاتی کمتر و یا بیشتر نیاز داشته باشید.

 

شماتیک مدار بازی تیرکس روی آردوینو و LCD کاراکتری

شماتیک مداری بازی تیرکس آردوینو

کدنویسی بازی تیرکس

در خطوط اولیه برنامه، نحوه اتصالات و سیم کشی مدار مشخص شده است. شما می‌توانید بسته به نیاز خود، سیم کشی های ال سی دی، شماره پین آردوینو مربوط به دکمه بازی و خروجی صدا را تغییر دهید.

کد ها‌ی مربوط به راه‌اندازی نمایشگر کاراکتری:

 

قسمت کد مربوط به تعریف کلید بازی و پین ملودی

توجه داشته باشید که برای تولید ملودی، باید از پایه‌ای استفاده کنید که قابلیت تولید امواج pwm را داشته باشد.

 

نحوه تولید صدا

در مورد نحوه تولید ملودی و صدا در آردوینو به‌وسیله بازر، قبلاً مطلبی در سیسوگ منتشر کرده‌ایم. در این مقاله همچنین روش‌های معمول تولید صدا در مدار را بررسی کرده‌ایم. به همین خاطر مطالعه این مقاله را به شما حتماً توصیه می‌کنیم. در این بازی فرکانس نت‌ها درون فایل pitches.h قرار گرفته‌اند. ملودی و تمپو ها نیز درون فایل melody.h ذخیره شده‌اند.

 

نحوه تعریف کاراکتر دلخواه برای ال سی دی

LCD های کاراکتری، حافظه‌ای به نام CGRAM دارند که شما می‌توانید در آن تنها 8 کاراکتر دلخواه تعریف نمایید. برای این کار ابتدا می‌بایست به‌وسیله نرم افزار LCD custom character کاراکتر دلخواه خود را طراحی کرده، سپس کد آن را خروجی گرفته و به‌وسیله آردوینو به ال سی دی معرفی کنید. این نرم افزار در انتهای مطلب به‌صورت رایگان قابل دانلود می‌باشد.

تولید کاراکتر دلخواه (دایناسور) برای lcd کاراکتری

کاراکتر کاکتوس برای ال سی دی کاراکتری

در قسمت سمت راست تصویر بالا، یک قسمت شطرنجی سبز وجود دارد. با کلیک کردن داخل هر مربع می‌توانید آن‌ها را خاموش و روشن نمایید. در نهایت و پس از ساخته شدن کاراکتر دلخواه شما، با فشردن دکمه GENERATE کاراکتر به‌صورت آرایه‌ای از اعداد و در سه زبان C، پاسکال و بیسیک به شما تحویل داده می‌شود. شما به کدهای قسمت C و آرایه‌ی آن نیاز دارید. در فایل bitmaps.h کاراکترهای لازم برای این بازی (dino، cacti، bird و block) تعریف شده‌اند.

در setup اولیه آردوینو این کاراکترها به ال سی دی معرفی می‌شوند. همان‌طور که پیش‌تر هم اشاره شد، شما تنها می‌توانید 8 کاراکتر را به ال سی دی خود معرفی کنید. این 8 خانه، از خانه صفر تا هفتم توسط تابع lcd.createChar(num, data) در آردوینو قابل دسترسی هستند.

 

در ابتدای شروع بازی، تابع ()showCrashScreen صدا زده می‌شود تا آهنگ و متن‌های اولیه را مشاهده کنید. سپس در این تابع، برنامه منتظر زدن دکمه شروع بازی توسط کاربر می‌ماند. بعد از زدن کلید شروع توسط کاربر، وارد حلقه‌ی اصلی برنامه یعنی loop می‌شویم. سپس الگوریتم برنامه با استفاده از توابع مختلفی که تعریف شده است، بازی را هدایت می‌کند. برای مثال:

یک کاراکتر را به‌صورت تصادفی روی صفحه نمایش ظاهر می‌کند.

امتیاز کسب شده تا این لحظه را در وسط خط اول نمایشگر چاپ می‌کند.

 

هنگامی که کاربر بازی را می‌بازد، این تابع روی صفحه پیام “!Game Over” را نشان داده و ملودی سوختن بازی را پخش می‌نماید. سپس امتیاز کسب شده و بهترین امتیاز را روی صفحه نشان می‌دهد.

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

نحوه نصب و اجرای بازی

تنها کافی ست پس از بستن مدار مطابق سیم کشی‌های تعریف شده، کابل آردوینو را به کامپیوتر متصل کرده و کد را به‌وسیله نرم افزار آردوینو روی آن آپلود کنید! کد آردوینو و نرم افزار Custom character در انتهای مطلب به‌صورت رایگان قابل دانلود می‌باشد.

تبریک، هم اکنون می‌توانید بازی کنید!

دانلود سورس برنامه

حمایت از Digi Boy

خوشحال میشیم برای تداوم و کیفیت ما رو حمایت کنید.

0 نفر

پــــســنــدیـده انـد

توجه

Digi Boy
Digi Boy

به دانش فزای و به یزدان گرای، که او باد جان تو را رهنمای (فردوسی)

دیدگاه ها

5 دیدگاه

  • امیرحسین مرادیان
    ۲۵ آذر ۱۳۹۸

    باسلام و خسته نباشید خدمت تیم زحمتکش سیسوگ
    برنامه ای که قرار دادید دارای یک باگ اساسی هست به این صورت که اگر کلید بازی را رها نکنیم با وجودی که دایناسور پایین میاد اما بازیکن نمیبازه.
    برقرار باشید.🌹🌹

    • Digi Boy
      Digi Boy
      ۲۷ آذر ۱۳۹۸

      سلام.
      ممنون از توجهتون، بررسی می کنم.

    • Digi Boy
      Digi Boy
      ۲ دی ۱۳۹۸

      سلام.
      ایراد برطرف گردید.

  • محمود
    ۶ آذر ۱۳۹۸

    ایول خییلی باحال بووود تا حالا بازی رو اردوینو نریخته بودم

  • کامبیز
    ۶ آذر ۱۳۹۸

    خیلی با مزه بود ممنون

پر بحث ترین ها

مسابقه دوم : چالش برنامه نویسی به زبان C

مسابقه اول سیسوگ (مسابقه اول: درک سخت افزار) انتقادهای زیادی رو در پی داشت تا جایی که حتی خودمم به نتیجه مسابقه...

Zeus ‌ Zeus ‌
  • 2 سال پیش

راه اندازی LCD گرافیکی Nokia 1661 و دانلود کتابخانه آن

LCD گرافیکی یکی از مهم ترین پارامترهای موجود در طراحی انواع مدارات الکترونیکی پیچیده و حتی ساده است ، نمایش وضعیت و...

Zeus ‌ Zeus ‌
  • 4 سال پیش

ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

ریموت کنترل امروزه کاربرد زیادی پیدا کرده است؛ از ریموت‌های درب بازکن تا ریموت‌های دزدگیر و کنترل روشنایی همه از یک اصول اولیه پیروی می‌کنند و آن‌هم ارسال اطلاعات به‌صورت بی‌سیم است....

Zeus ‌ Zeus ‌
  • 5 سال پیش

همه چیز درباره ریموت کنترل‌های هاپینگ

امنیت همیشه و در همه‌ی اعصار، مقوله‌ی مهم و قابل‌توجه‌ ای بوده و همیشه نوع بشر به دنبال امنیت بیشتر، دست به ابداعات و اختراعات گوناگونی زده است. ریموت کنترل یکی از این اختراعات است. در این مقاله، به بررسی امنیت انواع ریموت‌های کنترل خواهیم پرداخت....

Zeus ‌ Zeus ‌
  • 5 سال پیش

مسابقه سوم: استخراج داده از رشته ها در زبان C

نزدیک به 5 ماه از مسابقه دوم سیسوگ می‌گذره و فکر کردم که بد نیست یک چالش جدید داشته باشیم! البته چالش‌ها...

Zeus ‌ Zeus ‌
  • 2 سال پیش

مسابقه ششم: بزن میکروکنترلر را بسوزون!

بزنم میکروکنترلر را بسوزونم اونم تو  این شرایط!، طراحی مسابقه از اون چیزی که به نظر می‌رسه سخت‌تر است، باید حواست باشه...

Zeus ‌ Zeus ‌
  • 10 ماه پیش

آموزش قدم به قدم راه اندازی +NRF24L01

آموزش قدم به قدم راه اندازی +NRF24L01  با کتابخانه سازگار با انواع میکروکنترلرها و کامپایلرها قبل از اینکه قسمت بشه با ماژول...

رسول خواجوی بجستانی رسول خواجوی بجستانی
  • 3 سال پیش

ساخت ماینر با FPGA و ARM

چند ماهی هست که تب بیت کوین و ارزهای دیجیتال خیلی بالا رفته! چه شد که این پست را نوشتم همانطور که...

Zeus ‌ Zeus ‌
  • 3 سال پیش

کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

در قسمت اول به یکسری اطلاعات کلی ماژول mc60 پرداختیم، با نرم افزار QNavigator کار کردیم و یک هدربرد هم برای کار...

Mahdi.h   Mahdi.h  
  • 3 سال پیش

مسابقه چهارم: کدام حلقه سریع‌تر است؟

حدود ۷ ماه پیش، مسابقه سوم سیسوگ رو برگزار کردیم و کلی نکته در مورد خواندن رشته‌های ورودی را بررسی کردیم. فکر...

Zeus ‌ Zeus ‌
  • 1 سال پیش
سیـــســـوگ

مرجع متن باز آموزش الکترونیک