Total Recall یک بازی مبتنی بر سیمون برای آردوینو است. بازی اصلی آردوینو سایمون شما شامل 4 دکمه، 4 ال ای دی، یک آردوینو، مقداری کد و شاید بلندگو و جلوه های صوتی است. Total Recall با افزودن یک صفحه نمایش LCD و ارائه حالت های بازی 1 و 2 بازیکن، همه چیز را یک قدم جلوتر می برد.
بازی 1 Player بازی اصلی Simon شما است. من 4 سطح دشواری را با دادن گزینه هایی به شما برای چند دور بازی اضافه کردم. سپس دنباله ای از چراغ های چشمک زن برای تقلید به شما داده می شود. هر دور یک فلاش اضافی به دنباله اضافه می کند. اگر بتوانید تعداد نوبت ها را کامل کنید برنده می شوید.
بازی 2 Player شما را در مقابل یک دوست قرار می دهد. بازی با وارد کردن اولین دکمه در سکانس توسط بازیکن اول شروع می شود. سپس Sequence پخش می شود تا بازیکن 2 ببیند. سپس بازیکن 2 می تواند دنباله را تقلید کند. اگر او آن را درست دریافت کند، این فرصت را پیدا می کند که یک دکمه به دنباله اضافه کند. سپس پلیر 1 پخش را دوباره دریافت می کند و سعی می کند دنباله را تقلید کند. بازی به این صورت به عقب و جلو می رود و دنباله آن به طور فزاینده ای طولانی تر می شود تا زمانی که یک بازیکن اشتباه می کند یا به 99 دور می رسید که در این صورت حداکثر طول سکانس را زده اید و بازی مساوی می شود.
مواد مورد نیاز:
- آردوینو (من از Nove استفاده کردم)
- تخته نان
- سیم های جامپر/کابل های روبان
- ال ای دی های قرمز، زرد، سبز و آبی
- مقاومت 4×100 اهم
- 4 عدد دکمه فشاری
- بلندگوی کوچک
- ال سی دی 16×2 مبتنی بر هیتاچی HD44780
- پتانسیومتر 5K
مرحله 1: پس زمینه
پس از ارسال آردوینو Simon Says شروع به دریافت ایده هایی برای راه هایی برای بهبود بازی کردم. هر زمان که ممکن است من دوست دارم کد خود را ساده کنم تا مقدار حافظه استفاده شده را کاهش دهم. یکی از چیزهایی که واقعاً حافظه را در طرح آردوینو می خورد، استفاده از رابط سریال است. از آنجایی که هدف نهایی این است که این بازی را بر روی PCB خودش قرار دهید و آن را به یک بازی قابل حمل واقعی تبدیل کنید، پیوند آن به رایانه برای ردیابی پیشرفت شما، گزینه ای نخواهد بود. با حذف دستورات سریال از بازی، 2004 بایت از کد کامپایل شده حذف شد. بنابراین برای کمک به من برای رسیدن به هدفم از قابلیت حمل، تصمیم گرفتم یک صفحه نمایش LCD به بازی اضافه کنم.
سپس به این فکر کردم که چگونه می توانم بازی را حتی بهتر کنم. و چه راه بهتری برای سرگرم کننده تر کردن یک بازی از بازی با یک دوست چیست. بنابراین من باید یک سیستم منو پیدا کنم که به شما امکان می دهد بین 2 نوع بازی انتخاب کنید. همچنین میخواستم بازی اصلی Simon را نیز جذابتر کنم. بنابراین تصمیم گرفتم که خوب است به مردم این گزینه را بدهم که برای چند دور می توانند تیراندازی کنند. هیچ چیز مثل گل دادن به مردم برای شوت زدن برای جالب تر کردن چیزها نیست.
حالا چک لیستی از ایده ها شروع به جمع شدن کرده بود.
- اضافه کردن صفحه نمایش LCD
- گزینه های دشواری را برای بازی تک نفره ایجاد کنید
- ایجاد بازی 2 نفره
همه این ایده ها سوالات زیادی را ایجاد کردند.
مرحله 2: اضافه کردن LCD
قبل از انجام هر کاری، میخواستم ظروف سیمها را کمی در پروژه تمیز کنم. بنابراین من سه کابل روبانی به طول حدود 12 اینچ از یک کابل IDE قدیمی 40 سیمی ایجاد کردم. من کابل را به 3 نوار شش سیم تقسیم کردم و پین های هدر را به هر انتها لحیم کردم. در یک سر هر کدام، هدرها را به پین های جداگانه بریدم و سیم ها را حدود 2 یا 3 اینچ به بالا تقسیم کردم. انتهای متصل به آردوینو به خوبی مینشیند، در حالی که انتهای دوشاخه به من این آزادی را میدهد تا به اجزایی که نیاز دارم برسم. وقتی همه متصل هستند، فقط پین های ورودی/خروجی دیجیتال 0 و 1 بدون هیچ چیز متصل باقی می مانند. من مدت زیادی است که به این موضوع فکر می کنم.
![مدار بازی آردوینو Total Recall](https://duino4projects.com/wp-content/uploads/2013/04/Arduino-Total-Recall-Game-circuit.jpg)
حالا من آماده بودم که بفهمم ال سی دی خود را کجا وصل کنم. با در نظر گرفتن بیشتر پینهای ورودی/خروجی دیجیتالی که گرفته شدهاند، باید بفهمم که کجا LCD را وصل کنم. من می خواستم تا آنجا که ممکن است سیم های LCD را نزدیک به هم نگه دارم. این باعث می شود که عیب یابی هر مشکلی کمی آسان تر شود. من همچنین نمی خواستم LED ها و دکمه ها را جابجا کنم. این فقط به دردسر به روز رسانی کد اضافه می کند. بنابراین تصمیم گرفتم LCD را روی پین های آنالوگ در قرار دهم. پین های آنالوگ را می توان به عنوان پین دیجیتال ورودی/خروجی استفاده کرد. به شرح زیر تعیین می شوند:
- آنالوگ 0 = دیجیتال 14
- آنالوگ 1 = دیجیتال 15
- آنالوگ 2 = دیجیتال 16
- آنالوگ 3 = دیجیتال 17
- آنالوگ 4 = دیجیتال 18
- آنالوگ 5 = دیجیتال 19
من نتوانستم تمام پینهای LCD را روی پات آنالوگ قرار دهم زیرا هنوز برای تصادفی کردن بازی تک نفره به پین آنالوگ 0 نیاز دارم. بنابراین LCD به صورت زیر متصل می شود:
- پین RS به D13
- پین E به D12
- پین D4 به D16
- پین D5 به D17
- پین D6 به D18
- پین D7 به D19
- V0 برای کنترل روشنایی به گلدان گره خورده است
- Grd و R/W به زمین گره خورده اند
- Vcc به +5V
در مورد راه اندازی بقیه سخت افزار می توانید به Arduino Simon Says Instructable مراجعه کنید . تنها تغییری که انجام شد انتقال بلندگو به پین 6 بود. امیدوارم تصویر Fritzing به رفع هرگونه ابهام در سیم کشی کمک کند. من ادامه دادم و فایل Fritzing را پیوست کردم اگر نیاز به بررسی بهتر نمودار دارید. همچنین می توانید برای اطلاعات بیشتر در مورد راه اندازی ال سی دی 16×2 مبتنی بر Hitachi HD44780 در آردوینو به قلم بزرگ سفارشی من برای LCDهای 16×2 مراجعه کنید .
![](https://www.instructables.com/static/defaultIMG/file.TINY.gif)
Total Recall.fzz 29 KB
- آردوینو (من از Nove استفاده کردم)
- تخته نان
- سیم های جامپر/کابل های روبان