فهرست مطالب:

کنسول Arduino VGA با پنج بازی: 4 مرحله
کنسول Arduino VGA با پنج بازی: 4 مرحله

تصویری: کنسول Arduino VGA با پنج بازی: 4 مرحله

تصویری: کنسول Arduino VGA با پنج بازی: 4 مرحله
تصویری: کنسول ps4 به مانیتور وصل کن ! آنباکس تبدیل HDMI به VGA با ایرانو پلی 2024, جولای
Anonim
Image
Image
کنسول Arduino VGA با پنج بازی
کنسول Arduino VGA با پنج بازی
کنسول Arduino VGA با پنج بازی
کنسول Arduino VGA با پنج بازی

در دستورالعمل های قبلی خود ، من نسخه های ساده شده برخی از محبوب ترین بازی های کلاسیک را به کمک آردوینو برهنه و چند جزء دیگر بازسازی کرده ام. بعداً پنج نفر از آنها را در یک طرح واحد به هم پیوستم. در اینجا نشان خواهم داد که چگونه می توانید یک کنسول ساده بسازید که بتواند برای بازی Pong ، Breakout ، Bomber ، Tetris و یک اسباب بازی نقاشی با الهام از Etch-a-Sketch استفاده کند. این کنسول همچنین می تواند برای بازی Snake و دو بازی دیگر نوشته شده توسط نویسندگان دیگر استفاده شود: Bit Ninja توسط Sandro Maffiodo معروف به "Smaffer" و Stacker توسط Nikita Kurylev.

ویژگی اصلی تولید سیگنال VGA است ، به لطف کتابخانه VGAx ، بنابراین کنسول به مانیتور VGA نیاز دارد. هدف من ، طبق معمول ، اجتناب از هرگونه "م componentلفه ویژه" برای ساخت آن است ، پس از آن نیازی به هیچ IC پشتیبانی یا سپر ندارید! تنها اجزای آن دو پتانسیومتر ، پنج دکمه ، چند مقاومت و یک کانکتور DSUB15 (VGA) است. بلندگوی پیزو اختیاری است. در تصاویر این صفحه می توانید ظاهر این بازی ها را مشاهده کنید.

کتابخانه VGAx اجازه می دهد تا از چهار رنگ با وضوح 120 60 60 پیکسل استفاده کنید ، نه چندان زیاد اما برای این کنسول یکپارچهسازی با سیستمعامل کافی است. گرافیک خام است ، اما به لطف استفاده از پتانسیومترها ، بازی ها بدون مشکل اجرا می شوند. جلوه های صوتی ساده نیز موجود است.

مرحله 1: چگونه کنسول Arduino VGA خود را بسازید

چگونه کنسول Arduino VGA خود را بسازید
چگونه کنسول Arduino VGA خود را بسازید
چگونه کنسول Arduino VGA خود را بسازید
چگونه کنسول Arduino VGA خود را بسازید

ابتدا کدهای ArduinoVGAgame.ino و/یا Snake.ino را در انتهای این صفحه بارگیری کرده و آنها را در رایانه خود در یک فهرست با همین نام کپی کنید. کتابخانه VGAx را از این پیوند در GitHub بارگیری کنید. ساده ترین راه این است که آن را در زیر پوشه نرم افزار Arduino با نام "libraries" کپی کنید تا بلافاصله شناسایی شود.

مهم: این کتابخانه برای Arduno IDE 1.6.4 کار می کند اما با نسخه های قدیمی تر یا جدیدتر کاملاً سازگار نیست.

کد را در برد Arduino خود بارگذاری کنید (من هم Uno و هم نانو را آزمایش کردم). هشدار برای حافظه کم موجود طبیعی است. اگر خطاهای دیگر ندارید همه چیز خوب است و می توانید بلافاصله شروع به ساختن کنسول خود کنید.

برای این شما نیاز دارید:

  • Arduino Uno Rev. 3 یا Arduino Nano 3.x (ATmega328)
  • اتصال DSUB15 ، یعنی اتصال زن VGA یا کابل VGA که باید قطع شود.
  • مقاومتها: 2 68 68 اهم و 2 4 470 اهم و 5 1 1 تا 2 کیلو اهم
  • دو پتانسیومتر خطی 10 کیلو اهم (مقادیر مشابه نیز خوب است)
  • پنج دکمه
  • مقداری کابل
  • یک یا دو جعبه زیبا برای قرار دادن همه اجزاء.

تسهیلاتی:

  • یک تخته نان یا یک تخته نوار
  • یک بلندگوی پیزو

شماتیک در بالای این مرحله همراه با نمونه ای از "کنسول" تمام شده گزارش شده است.

شماتیک نحوه اتصال دکمه و پتانسیومتر را نشان می دهد. به طور خاص ، شما باید پنج دکمه را به ترتیب به پین 5 ، 10 ، 11 ، 12 و 13 متصل کنید. عملکرد انجام شده توسط هر دکمه در جدول بالا سمت راست در شماتیک شرح داده شده است. در سمت چپ نحوه اتصال پتانسیومتر نشان داده شده است (برای پین A1 و A2 به دو پتانسیومتر نیاز دارید). بلندگو باید به پین آنالوگ A0 متصل باشد.

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

اگر این اسباب بازی را دوست دارید و تصمیم دارید آن را تکثیر کنید ، ممنون می شوم اگر نظری بنویسید یا تصویری در قسمت نظرات زیر ارسال کنید.

مرحله 2: بازیهای نویسندگان دیگر

ساندرو مافیودو اخیراً بازی BitNinja را منتشر کرده است. شما می توانید اطلاعات بیشتری را در اینجا پیدا کنید و کد را از اینجا بارگیری کنید.

برای استفاده از کنسول من ، فقط باید دکمه کد او را به صورت زیر تغییر دهید:

#تعریف BTN_UP 11 (به جای 13)

#تعریف BTN_LEFT 10 (به جای 12)

#تعریف BTN_RIGHT 12 (به جای 11)

استکر ، از نیکیتا کوریلف ، در اینجا موجود است. اطلاعات بیشتر اینجا.

دوباره ، شما باید یک دکمه را در قسمت های مختلف کد تغییر دهید: فقط digitalRead (2) را با digitalRead (13) جایگزین کنید.

مرحله 3: پیوست 1: جزئیات بیشتر در مورد نحوه ساخت کنترلرها

پیوست 1: جزئیات بیشتر در مورد نحوه ساخت کنترلرها
پیوست 1: جزئیات بیشتر در مورد نحوه ساخت کنترلرها
پیوست 1: جزئیات بیشتر در مورد نحوه ساخت کنترلرها
پیوست 1: جزئیات بیشتر در مورد نحوه ساخت کنترلرها
پیوست 1: جزئیات بیشتر در مورد نحوه ساخت کنترلرها
پیوست 1: جزئیات بیشتر در مورد نحوه ساخت کنترلرها
پیوست 1: جزئیات بیشتر در مورد نحوه ساخت کنترلرها
پیوست 1: جزئیات بیشتر در مورد نحوه ساخت کنترلرها

بسته به مواد موجود و سلیقه شما ، می توانید کنترل کننده را به روش های مختلف متوجه شوید.

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

ابتدا توصیه می کنم پورت VGA را وصل کنید. در تصاویر اول و دوم می توانید جزئیاتی را مشاهده کنید: به دو مقاومت 470 اهم برای قرمز و سبز که به ترتیب به پایه های 6 و 7 متصل شده اند و دو سیگنال 68 اهم به پایه های 3 و 9 برای سیگنال همگام سازی افقی و عمودی توجه کنید.

بسته به پین هایی که روی کانکتور VGA DSUB15 وصل می کنید ، می توانید ترکیب رنگ های متفاوتی را انتخاب کنید ، پایه های 1 ، 2 و 3 به ترتیب قرمز ، سبز ، آبی (RGB) را نشان می دهند. من پین 1 و 2 را وصل کردم ، بنابراین ترکیب رنگ زیر را دارم: (0 ، 0) = سیاه ؛ (1 ، 0) = قرمز ؛ (0 ، 1) = سبز ؛ (1 ، 1) = زرد

برای همه امکانات مختلف ، پیشنهاد می کنم در صفحه ای که کتابخانه های VGAx را بارگیری می کنید ، جزئیات را مطالعه کنید.

به محض آماده شدن اتصال VGA ، می توانید تمام کابل های دیگر را برای دکمه ها ، چرخ ها و بلندگو آماده کنید (تصویر 2 را ببینید).

اکنون فقط همه چیز را کنار هم قرار دهید: به یاد داشته باشید که هر پایه دکمه باید از طریق مقاومت 1 یا 2 کیلو اهم به زمین متصل شود ، در غیر این صورت وقتی دکمه باز است ممکن است وضعیت پین تعریف نشده باشد. این بدان معناست که اگر پین قطع شود می توانید یک ولتاژ تصادفی (استاتیک) روی آن داشته باشید که می تواند آن را فعال کند. برای اطلاعات بیشتر به طرحواره در مرحله دوم این دستورالعمل مراجعه کنید.

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

مرحله 4: ضمیمه 2: برخی ملاحظات درباره محدودیت های حافظه

شگفت انگیز است که یک آردوینو ساده قادر است سیگنال VGA و همه این بازی ها را با هم تولید کند. گردن بطری واقعی عدم وجود SRAM است. میکروکنترلر AVR فقط 2048 بایت برای ذخیره و دستکاری متغیرها در اختیار دارد و کتابخانه VGAx متغیرهای صفحه را در یک فریم بافر 120 در 60 پیکسل ذخیره می کند که هر پیکسل به 2 بیت (4 رنگ) ، در مجموع 1800 بایت نیاز دارد. این بدان معناست که فقط 248 بایت برای متغیرهای طرح باقی مانده است. علاوه بر این ، در تجربه من ، برای جلوگیری از بی ثباتی ، باید حداقل 100 بایت آزاد بگذارید. با استفاده از بیش از 1950 بایت حافظه پویا ، میکروکنترلر شروع به نشان دادن رفتارهای عجیب و غیرقابل پیش بینی می کند.

این بدان معناست که همه متغیرها باید بین بازی های مختلف به اشتراک گذاشته شوند ، و این باعث می شود کد کاملاً ناخوانا باشد و اشکال زدایی سخت باشد. فقط موضوع "افزودن یک بازی جدید" به طرح قبلی نیست ، بلکه تمام کد باید عمیقا اصلاح و بهینه شود.

علاوه بر این ، من باید از حداقل فرمت متغیر ممکن استفاده کنم: به عنوان مثال ، برای همه مختصات باید از "byte" به جای "int" استفاده می کردم یا در موارد دیگر ، من باید "int" را به جای "float" ترجیح می دادم.

سرانجام ، شناخت من به ساندرو مافیودو معروف به اسمافر ، خالق کتابخانه VGAx و بازی فوق العاده BitNinja می رسد. بدون این کتابخانه ، این پروژه محقق نمی شد.

همچنین از نیکیتا کوریلف برای بازی ساده اما خنده دار Stacker تشکر می کنم.

توصیه شده: