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

blog
۱۳۹۸-۰۹-۰۴
5 دقیقه

از زمانی که آردوینو به وجود آمد، پروژه‌های بسیار زیادی برای آن به‌صورت متن باز و رایگان منتشر شد. آردوینو این قابلیت را به افراد می‌دهد تا با کمترین دانش برنامه نویسی و بدون درگیر شدن با موضوعات مختلف الکترونیکی ایده‌های خودشان را با کمترین هزینه و دردسر پیاده سازی کنند. همین امر باعث علاقه‌مندی افراد زیادی به الکترونیک می‌شود. یکی از این ایده‌ها می‌تواند ایده‌ی ساخت بازی به‌وسیله این برد محبوب باشد. اما چطور می‌توان تنها با استفاده از آردوینو و بدون استفاده از آی سی جانبی یک بازی جذاب همراه با افکت‌های صوتی ساخت؟ در این قسمت از پروژه های آردوینو قصد داریم تا به‌وسیله برد آردوینو و ال سی دی کاراکتری 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 در انتهای مطلب به‌صورت رایگان قابل دانلود می‌باشد.

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

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

اطلاعات
6
0
لینک و اشتراک
profile

Digi Boy

متخصص الکترونیک

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

مقالات بیشتر
slide

پالت | بازار خرید و فروش قطعات الکترونیک

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

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد. جستجو در آیسی
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
خانواده سیسوگ

پالت | بازار خرید و فروش قطعات الکترونیک

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

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد.
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند.
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

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

دیدگاه ها

profile
رشیدی گفت :
۱۴۰۲-۰۵-۲۰ ۱۰:۲۳

این پروژه رو برای برد UNOبزازید

profile
امیرحسین مرادیان گفت :
۱۳۹۸-۰۹-۲۵ ۲۲:۴۷

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

profile
Digi Boy گفت :
۱۳۹۸-۱۰-۰۲ ۱۲:۳۸

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

profile
Digi Boy گفت :
۱۳۹۸-۰۹-۲۷ ۱۰:۳۱

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

profile
محمود گفت :
۱۳۹۸-۰۹-۰۶ ۲۳:۵۳

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

profile
کامبیز گفت :
۱۳۹۸-۰۹-۰۶ ۲۱:۴۷

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

become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله