ورکشاپ آموزشی - آیسی مدار
رفتن به محتوا

با آردوینو و یک ال‌سی‌دی ساده برای خودت بازی بساز

آموزش و الکترونیک
۰ نظر
۸۸ نفر
کد ۴۳۴۲

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

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

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

  • یک عدد برد آردوینو مدل UNO
  • یک عدد نمایشگر ال‌سی‌دی کاراکتری 16 در 2
  • یک عدد بردبورد الکترونیکی
  • یک عدد مقاومت 220 اهم
  • یک عدد دکمه فشاری (پوش‌باتن)
  • مقداری سیم جامپر یا استخوانی
  • کابل اتصال USB
مرحله ۱

سرهم کردن مدار و سیم‌کشی‌ها

خب بریم سراغ بخش جذاب سخت‌افزار! اول از همه یادت باشه که کابل یو‌اس‌بی اصلا نباید به آردوینو وصل باشه. تغذیه دادن به مدار بمونه برای زمانی که می‌خوایم کدها رو آپلود کنیم و بازی رو تست کنیم. یک سیم جامپر بلند بردار و پین 5 ولت آردوینو رو به اولین سوراخ ردیف مثبت (قرمز رنگ) در بالای بردبورد وصل کن.

با یک سیم جامپر دیگه، پین GND آردوینو رو هم به ردیف منفی (مشکی یا آبی رنگ) بالای بردبورد متصل کن تا خطوط تغذیه اصلی مدارت شکل بگیره.

حالا نوبت نمایشگر ال‌سی‌دیه. این ماژول یک ردیف 16 پینی در قسمت پایینش داره. پایه‌هاش رو با دقت روی بردبورد فشار بده تا جا بره.

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

  1. پین GND برای اتصال به زمین مدار
  2. پین VCC برای اتصال به ولتاژ مثبت
  3. پین V0 برای تنظیم کنتراست صفحه
  4. پین RS برای انتخاب رجیسترها
  5. پین R/W برای انتخاب حالت خواندن یا نوشتن
  6. پین E برای فعال‌سازی عملیات
  7. پین DB0 یا دیتای صفر (اینجا استفاده نمی‌شه)
  8. پین DB1 یا دیتای یک (اینجا استفاده نمی‌شه)
  9. پین DB2 یا دیتای دو (اینجا استفاده نمی‌شه)
  10. پین DB3 یا دیتای سه (اینجا استفاده نمی‌شه)
  11. پین DB4 یا پایه دیتای چهار
  12. پین DB5 یا پایه دیتای پنج
  13. پین DB6 یا پایه دیتای شش
  14. پین DB7 یا پایه دیتای هفت
  15. پین ال‌ای‌دی+ برای قطب مثبت نور پس‌زمینه
  16. پین ال‌ای‌دی- برای قطب منفی نور پس‌زمینه

حالا با استفاده از سیم‌های جامپر کوتاه، پایه‌های GND (پین 1) و ال‌ای‌دی- (پین 16) رو به ردیف منفی بردبورد وصل کن. به همین شکل، پایه VCC (پین 2) رو هم به ردیف مثبت متصل کن.

پایه‌های مقاومت 220 اهم رو خم کن و اون رو بین پین ال‌ای‌دی+ و ردیف مثبت بردبورد قرار بده تا جریان نور پس‌زمینه محدود بشه. حالا باید سیم‌های طولانی‌تری برداری تا ارتباط بین ال‌سی‌دی و آردوینو رو طبق لیست زیر برقرار کنی:

  • پین DB7 رو به پین 3 آردوینو وصل کن
  • پین DB6 رو به پین 4 آردوینو متصل کن
  • پین DB5 رو به پین 5 آردوینو وصل کن
  • پین DB4 رو به پین 6 آردوینو متصل کن
  • پین E رو به پین 9 آردوینو ببر
  • پین R/W رو به پین 10 آردوینو (یا مستقیم به ردیف منفی بردبورد) وصل کن
  • پین RS رو به پین 11 آردوینو متصل کن
  • پین V0 رو به پین 12 آردوینو (یا مستقیم به ردیف منفی بردبورد) وصل کن

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

مرحله ۲

آپلود کدها و راه‌اندازی بازی

به همین راحتی کار سخت‌افزار تموم شد و حالا وقتشه به مدارمون جون بدیم! مطمئن شو که نرم‌افزار آردوینو روی سیستمت نصب باشه. باید کدهای مربوط به بازی رو که معمولا با فرمت ino هستن دانلود کنی و توی محیط نرم‌افزار بازشون کنی. از منوی Tools بخش Board، حتما چک کن که گزینه برد روی Arduino UNO تنظیم شده باشه تا موقع آپلود ارور نگیری.

حالا با همون کابل یو‌اس‌بی، آردوینو رو به کامپیوترت وصل کن. به محض اتصال، برق وارد مدار می‌شه و باید ببینی که نور پس‌زمینه نمایشگرت روشن می‌شه. الان همه‌چیز برای آپلود برنامه آماده‌ست.

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

اگه همه‌چیز رو درست انجام داده باشی و سیم‌کشی‌ها دقیق باشه، بلافاصله بعد از آپلود کد، صفحه شروع بازی روی نمایشگرت ظاهر می‌شه و می‌تونی از نتیجه کارت لذت ببری!

مرحله ۳

شخصی‌سازی بازی و توسعه سخت‌افزار

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

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

اگه از این بازی خوشت اومد و خواستی روی همین بردبورد گسترشش بدی، می‌تونی سنسورها یا دکمه‌های دیگه‌ای هم بهش اضافه کنی و کدهای مربوطه‌شون رو بنویسی. مثلا اضافه کردن یک بازر (Buzzer) می‌تونه صدای پرش و باخت رو به بازیت اضافه کنه و جذابیتش رو صد برابر کنه.

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

اگه دوست داری کارت حرفه‌ای‌تر بشه، طراحی یک شیلد اختصاصی روی فیبر مدار چاپی رو حتما امتحان کن. این کار باعث می‌شه بتونی این مدار رو به عنوان یک کاردستی خفن به دوستات نشون بدی یا حتی به عنوان پروژه عملی ارائه‌ش بدی.

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

فایل‌های پیوست

INO LCD_Game.ino

تو میتونی اولین سازنده باشی!

اگه پروژه رو ساختی به اشتراک بزار و اعتبار هدیه بگیر

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

آموزش‌های مشابه

گفتگو‌های کاربران

هنوز نظری ثبت نشده؛ تو شروع کن!