فهرست مطالب:
- مرحله 1: به چه چیزی نیاز دارید؟
- مرحله 2: نمونه سازی سریع
- مرحله 3: ساخت قاب
- مرحله 4: ساخت ماتریس LED
- مرحله 5: نوشتن کدهای بازی و اشکال زدایی سخت افزار
- مرحله ششم: همه چیز را کنار هم قرار دهید
تصویری: Stackers Arcade Game: 6 مرحله (همراه با تصاویر)
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:55
سلام بچه ها ، امروز می خواهم این بازی شگفت انگیز را با شما به اشتراک بگذارم که می توانید با یک دسته LED های Ws2812b و یک میکروکنترلر/FPGA بسازید. ببین Stack Overflow - پیاده سازی سخت افزاری ما از یک بازی کلاسیک. آنچه که به عنوان یک پروژه مدرسه شروع شد ، به سرعت تبدیل به کار عشق شد زیرا ما زمان بیشتری را برای توسعه بازی خود و یادگیری بیشتر از آن (و غفلت از مطالعات خود در فرایند xD) شروع کردیم. در نهایت ، بازی ما آنقدر خوب ساخته شد و مورد استقبال خوب مدرسه قرار گرفت که توقیف شد (به عنوان مواد نمایشی برای دسته بعدی دانش آموزان). خوب ، ما همیشه می توانیم دومی را بسازیم. بیایید شروع کنیم!
نسخه آنلاین بازی:
مرحله 1: به چه چیزی نیاز دارید؟
مواد:
1. میکروکنترلر/میکرو کامپیوتر/FPGA - FPGA برای پیاده سازی منطق بازی ما استفاده می شود. برد خود را انتخاب کنید ، برای پروژه ما باید از برد Mojo FPGA استفاده کنیم. برای افراد ناآگاه ، یک نوع برد است که از سخت افزار برای پیاده سازی عملکردهای خود استفاده می کند تا کد. بنابراین ، من می گویم سطح آن نسبتاً پایین است و کاملاً متفاوت از زمانی است که از آردوینو یا Pi استفاده می کنید. اگر از تخته های دیگر استفاده می کنید ، باید کد خود را بنویسید ، اما کدگذاری این بازی بسیار آسان است و هی! حالا شما می توانید برنامه نویسی را نیز یاد بگیرید!
2. LED های Ws2812b - در اینجا ما از LED ها برای ساختن صفحه نمایش بازی خود استفاده می کنیم. اگر قبل از xD Ws2812b را لمس نکرده اید ، نمی توانید سازنده باشید. این آدرس واحد است به این معنی که می توانید LED های جداگانه را قطع کرده و آنها را به هر شکل دلخواه بچسبانید. و RGB به این معنی است که می توانید هر رنگی را که دوست دارید خروجی دهید. علاوه بر این ، FastLED - کتابخانه Arduino برای کنترل Ws2812b بسیار خوب توسعه یافته است. من به افراد توصیه می کنم در صورت نداشتن FPGA از آردوینو استفاده کنند. شما می توانید LED ها را از Taobao/Amazon خریداری کنید ، اما ما LED خود را از برج Sim Lim در سنگاپور خریداری کردیم.
3. چوب-برای پوشش خارجی ما از تخته سه لا ضخامت 1 سانتی متر و برای ماتریس LED از تخته سه لا ضخامت 0.3 سانتی متر استفاده کردیم. ما چوب قراضه خود را از آزمایشگاه فابریک مدرسه خود پیدا کردیم.
4. اکریلیک پخش کننده نور - برای صفحه نمایش ما ، انواع مختلفی از اکریلیک را امتحان کردیم و این اکریلیک مات به نام PL -422 را پیدا کردیم که برای پخش نور بسیار مناسب است. اگر مدل دقیق آن را پیدا نکردید ، به دنبال اکریلیک های مات باشید. ما کالای خود را در Dama Plastics در سنگاپور خریداری کردیم.
5. صفحه فوم - به منظور جدا کردن هر پیکسل نور ، ما به یک ساختار شبکه ای نیاز داشتیم و این فوم ماده ایده آل برای این کار است. ما از کتابفروشی مدرسه خود تخته فوم به ضخامت 0.5 سانتیمتر خریدیم.
6. دکمه قرمز بزرگ - خوب ، لازم نیست که ما یک دکمه قرمز بزرگ داشته باشیم ، اما داشتن یک دکمه برای زدن افراد خوب است! xD ما آن را در برج Sim Lim در سنگاپور خریداری کردیم.
ابزارها:
1. چسب چوب
2. آهن لحیم کاری
3. لحیم کاری
4. سیم. اگر سیمهای نرم نسبت به سیمهای سفت تر دارید بهتر است. و تک هسته ای در مقایسه با چند هسته ای.
5. استریپر سیمی
6. سیم برش
7. با مته های 1 میلی متری مته کنید
8. اره اسکرول
9. اره باند
اشکال زدایی:
1. واحد منبع تغذیه متغیر
2. اسیلوسکوپ
مرحله 2: نمونه سازی سریع
برای پروژه خود ، ما از نمونه سازی سریع قبل از ساخت ماتریس LED و برنامه نویسی بازی خود استفاده کردیم. دلیل این کار این است که ما نمی خواهیم ماتریس LED بسازیم فقط برای این که بدانیم کدهای ما کار نمی کند یا منطق بازی ما به نوعی معیوب است.
از نظر سخت افزاری ، در مرحله اول ما منطق خود را در تغییر الگوهای نور در ماتریس LED ساده خود آزمایش کردیم. هنگامی که آزمایش کردیم که منطق خوب کار می کند ، سپس به دنبال نوارهای 5 LED Ws2812b بودیم تا منطق بازی خود را با ردیف های مختلف آزمایش کنیم. پس از انجام این کار ، ما به ساخت ماتریس LED در مقیاس کامل ادامه می دهیم.
ما همچنین نمونه های مختلف اکریلیک را با LED قبل از استقرار برای PL-422 به عنوان بهترین پخش کننده نور آزمایش کردیم. و برای ساختار جداکننده نیز ارتفاع های مختلف را آزمایش کردیم تا LED کاملاً پخش شود. در پایان ما 3cm*3cm مربع با ارتفاع 4cm متوجه شدیم که برای انتشار بهترین است. بر اساس این اندازه مطلوب ، ما همچنین با گذاشتن فاصله 0.5 سانتی متری فوم بین مربع ها تصمیم گرفتیم اندازه تخته سه لا برای یک ماتریس LED 5 * 11 چقدر باشد.
از نظر نرم افزاری ، ما سعی می کنیم تا حد ممکن مدولار باشیم - ابتدا آزمایش می کنیم که آیا LED ها می توانند قبل از افزودن تابع shift و سپس سایر موارد روشن شوند. اگر این کار را نکنید ، نتایج می تواند فاجعه بار باشد. ما این را به سختی آموختیم زیرا سعی کردیم کل بازی را در یک تکه بزرگ برنامه نویسی کنیم قبل از اینکه متوجه شویم نمی توانیم آن را اشکال زدایی کنیم. آخ!
مرحله 3: ساخت قاب
برای پوشش خود ، ما با ظاهر و ظاهر ماشین بازی های کلاسیک رفتیم. ابتدا ، ما چند تخته سه لا نازک را برش می دهیم تا به سرعت نمونه اولیه را ایجاد کنیم ، زیرا برش و آزمایش تخته سه لا نازک آسان تر و سریعتر است. هنگامی که از ابعاد و شکل خود راضی بودیم ، از تخته سه لا ضخیم تری برای ساخت پوشش استفاده کردیم. ما از یک اره نواری برای بریدن تخته سه لا ضخیم تر و یک اره اسکرول برای برش نازک تر استفاده کردیم. پس از آن ، ما از چسب چوب برای چسباندن آنها به یکدیگر استفاده کردیم.
برای پشت تخته سه لا ، ما می خواستیم به راحتی به وسایل الکترونیکی داخل دسترسی داشته باشیم ، بنابراین ما آن را به یک قطعه قفل دار تبدیل کردیم که می توانید هر زمان که بخواهید به راحتی آن را بردارید.
برای اتصال دکمه ، ابتدا دایره ای به اندازه قطر میکروسوئیچ دکمه (قسمت طولانی پایین دکمه) رسم کردیم. سپس سوراخی را در نزدیکی لبه ایجاد کردیم و از اره طومار برای دیدن یک دایره استفاده کردیم. سپس دکمه را قرار دادیم و آن را پیچ کردیم.
ما همچنین یک تکه نازک از تخته سه لا را به عنوان پایه ماتریس LED خود بر اساس اندازه هایی که قبلاً محاسبه کرده ایم برش می دهیم.
توجه: عذرخواهی می کنم به دلیل عدم انجام مراحل مرحله به مرحله. ما مراحل را در تمام طول مسیر ثبت نکردیم و وقتی متوجه شدیم که باید مراحل را مستند کنیم ، پوشش از قبل انجام شده است. نمودار همچنین ابعاد نهایی نیست.
مرحله 4: ساخت ماتریس LED
با استفاده از قطعه نازکی که قبلاً بریده بودیم ، ابتدا موقعیت هر LED را با کشیدن یک مربع بر اساس ساختار فوم خود و کشیدن یک صلیب در وسط مربع به عنوان مکانی که باید LED را در آن بچسبانیم ، مشخص می کنیم. سپس 3 سوراخ کوچک در هر طرف LED ایجاد می کنیم تا سیم ها از بین بروند و آنها را به هر LED لحیم می کنیم.
هر ردیف LED را با پین Data In و Data Out آنها زنجیره می کنیم و هر GND و VCC را به سیم مشترک لحیم می کنیم. Data In پیشرو الگوهای نوری را برای هر ردیف ایجاد می کند و ما آن را به پینوت میکروکنترلر/FPGA متصل می کنیم. همچنین می توانید آخرین Data Out از یک ردیف را به Data In اصلی یک ردیف دیگر لحیم کنید. نحوه عملکرد LED Ws2812b به این صورت است که هر LED شامل یک IC است که داده های مورد نیاز را از سیم گرفته و بقیه را از زنجیره عبور می دهد. ما LED خود را بر اساس دستورالعمل فوق العاده دیگری قرار دادیم (در واقع ، ما دقیقاً آن را کپی کردیم! xD)
در اینجا ما همچنین می خواهیم بر اهمیت استفاده از سیم های نرم تأکید کنیم. اگر از سیم های سفت و سخت برای Data Inin پیشرو استفاده می کنید ، هر اتفاقی می افتد این است که هر بار سیم را بکشید ، ممکن است روکش مسی Ws2812b شما را بیرون بکشد که آن را خراب می کند. در این پروژه ، قبل از تغییر سیم های نرم ، در مجموع 40 LED را از بین بردیم که 1/3 LED های مورد نیاز پروژه ما است.
قابل آموزش:
مرحله 5: نوشتن کدهای بازی و اشکال زدایی سخت افزار
Mojo از Lucid HDL استفاده می کند ، که محبوب ترین زبان موجود نیست. ما نمی توانیم هیچ کتابخانه LED Ws2812b در Lucid پیدا کنیم ، بنابراین ما به نوشتن کتابخانه خود متوسل شدیم ، که یک تجربه بسیار جالب است. برای انجام این کار ، ما ابتدا سیگنالی را که با استفاده از کتابخانه FastLED آردوینو از بین می رود تجزیه و تحلیل کرده و کدهایی را برای تکرار آن نوشتیم. در اینجا یک ترفند اشکال زدایی سخت افزار آمده است ، اسیلوسکوپ برای تجزیه و تحلیل سیگنالها بسیار بسیار مفید است ، خواه اشکال زدایی سیگنال شخصی شما که از آن مطمئن نیستید یا سایر سیگنالها را بررسی و کپی کنید.
پس از نوشتن کتابخانه برای Ws2812b ، سپس به کد بازی می پردازیم ، از توابع Bit shift برای حرکت هر بلوک به چپ و راست استفاده می کنیم و از مربع های Bitwise AND به AND هر سطر به ردیف قبلی استفاده می کنیم. همچنین می توانید به اجرای آن در آردوینو فکر کنید ، که نباید چندان سخت باشد. ما حتی برای لذت بردن از آن صفحه نمایش بازی را کد کردیم!
بازی ما دارای 2 سطح بود ، که بازی انباشته قابل مشاهده (سبز) و سطح دوم بازی انباشته نامرئی (آبی) است.
حتی پس از داشتن کدهای کاری و ماتریس LED کار ، گاهی اوقات هنوز با مشکلاتی مانند چشمک زدن چراغ ها یا روشن شدن چراغ ها در صورت عدم مواجهه مواجه می شویم. این مشکل معمولاً به دلیل اتصال زمین نامناسب ، سطح منبع تغذیه یا تداخل است. این جایی است که شما به ابزارهای دیگر اشکال زدایی سخت افزار مانند منبع تغذیه متغیر نیاز دارید تا بررسی کنید که منبع تغذیه Mojo/Arduino کافی است یا خیلی زیاد. طبق تجربه من ، Ws2812b دارای طیف وسیعی از ولتاژهای کاری از 2.8v - 5v است. در اینجا من یک ویدئو دارم که نشان می دهد چراغها بعد از افزایش قدرت همه دیوانه می شوند.
با این حال ، با بررسی بیشتر مشخص شد که مقداری لحیم نادرست داریم ، پس از لحیم کاری مجدد آنها ، مشکل ما حل شد. همچنین ممکن است مشکلی در تداخل یا صحبت متقابل وجود داشته باشد ، اما خوشبختانه ما هرگز با هیچ یک از آنها روبرو نشدیم.
کدهای Github:
Arduino Bitwise Shift:
Arduino Bitwise AND:
مرحله ششم: همه چیز را کنار هم قرار دهید
بدنه و ماتریس LED را دارید. اکنون وقت آن است که همه چیز را کنار هم قرار دهیم. ابتدا فوم را در جلو و ماتریس LED را در پشت آن قرار می دهیم و موقعیت را تنظیم می کنیم. از آنجا که فوم اصطکاک بسیار بالایی دارد ، فقط اصطکاک نصب می شود در حالی که ماتریس LED به صورت گرم در محل خود چسبیده است. پس از آن صفحه را جلوی شبکه قرار دادیم. سپس پین هر ردیف را به میکروکنترلر وصل کردیم و شروع به بازی کردیم!: D
چیزی که من در این پروژه دوست دارم انعطاف پذیری آن است ، شما همیشه می توانید میکروکنترلر را طوری برنامه ریزی کنید که بخشی از بازی دیگری باشد و کاری مانند ساختن انیمیشن یا یک بازی عکس العمل را امتحان کنید. امیدوارم بچه ها از ساختن آن لذت ببرید و برای ساختن آن چیزی بیاموزید. GgEz!
توصیه شده:
کابینت بازی Bubble Bobble Arcade (Bartop): 14 مرحله (همراه با تصاویر)
کابینت بازی Bubble Bobble Arcade (Bartop): باز هم یک راهنمای دیگر برای ساخت کابینت؟ خوب ، من کابینت خود را با استفاده از قالب Starcade کهکشانی به عنوان یک الگو ساختم ، اما در حین انجام آن چند تغییر ایجاد کردم که احساس می کنم ، در آینده ، هر دو را بهبود می بخشم. سهولت نصب برخی از قطعات و بهبود زیبایی
Mini Bartop Arcade: 8 مرحله (همراه با تصاویر)
Mini Bartop Arcade: این بار ، من می خواهم نسخه قدیمی بازی خود را با استفاده از Raspberry Pi Zero ، بر اساس Picade Desktop Retro Arcade Machini ، که در این سایت مشاهده شده است ، به شما نشان دهم: https: //howchoo.com/g/mji2odbmytj/picade -review-ra … هدف از این پروژه ساخت یک نسخه یکپارچهسازی با سیستمعامل
Platformer با سطوح بی نهایت در GameGo With Makecode Arcade: 5 مرحله (همراه با تصاویر)
Platformer با سطوح بی نهایت در GameGo With Makecode Arcade: GameGo یک کنسول قابل حمل یکپارچهسازی با سیستمعامل سازگار با Microsoft Makecode است که توسط آموزش TinkerGen STEM توسعه یافته است. بر اساس تراشه STM32F401RET6 ARM Cortex M4 ساخته شده است و برای مربیان STEM یا فقط افرادی که دوست دارند از ایجاد یک بازی ویدیویی یکپارچهسازی با سیستمعامل لذت ببرند ساخته شده است
تطبیق یک گوشی تلفن همراه با تلفن همراه: 7 مرحله (همراه با تصاویر)
انطباق یک گوشی تلفن همراه با یک تلفن همراه: توسط بیل ریو ([email protected]) اقتباس شده برای دستورالعمل ها توسط موس ([email protected]) سلب مسئولیت: روش شرح داده شده در اینجا ممکن است برای شما کارساز نباشد گرفتن. اگر کار نمی کند ، یا اگر چیزی را خراب می کنید ، m نیست
Arcade Game Machine With Raspberry Pi: 7 Step (همراه با تصاویر)
Arcade Game Machine With Raspberry Pi: Making story: Arcade game game with retro pi (raspberry pi3)