فهرست مطالب:
تصویری: Flappy Bird در ATtiny85 و OLED Display SSD1306: 6 مرحله (همراه با تصاویر)
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:55
هی همه،
امروز من قصد دارم یک کلون اصلی پرنده شل و ول که من ایجاد کرده ام را به شما نشان دهم ، و چگونه می توانید یک بازی مشابه انجام دهید. من اساساً کد خود را با شما مرور می کنم و نحوه عملکرد آن را در هر مرحله توضیح می دهم. این بازی برای اجرا بر روی ATtiny85 با فرکانس 1 مگاهرتز و صفحه نمایش I2C OLED ساخته شده است. به جلو!
مرحله 1: سخت افزار
اگر علاقه ای به ساختن یک مدار برای بازی ندارید ، اما نظریه پشت آن را درک می کنید ، می توانید از این مرحله بگذرید.
بازی من به دو دکمه ، یک ATtiny85 ، یک صفحه نمایش I2C OLED 128x64px و مقداری منبع تغذیه نیاز دارد. کارت ویزیت آموزشی من/کنسول بازی: ATtiny85 و صفحه نمایش OLED به شما نشان می دهد که چگونه یک تخته بسازید که همه چیز مورد نیاز را روی آن داشته باشد! اگر به ساخت تابلو من علاقه مند نیستید ، تخته نان را بیرون بیاورید و من مشخصات آن را به شما می گویم. می توانید از هر نوع ATtiny85 استفاده کنید. من صفحه نمایش های OLED مانند این را توصیه می کنم.
- یک طرف دو دکمه فشاری را به پین 2 و 3 در ATtiny85 خود وصل کنید. روی این سیم ها ، یک مقاومت 10k اهم متصل به زمین (مقاومت کششی) نیز اضافه کنید.
- طرف دیگر این دکمه های فشار را به ولتاژ وصل کنید. وقتی دکمه فشرده نشود ، حالت پین کم می شود. هنگامی که فشار داده می شود ، حالت پین بالا خواهد بود.
- پین 7 را به پین SCL روی صفحه نمایش خود و پین 5 را به پین SDA در صفحه نمایش خود وصل کنید. بر این اساس پین های برق (VCC و GND) را روی صفحه سیم بندی کنید.
- در نهایت ، پایه 4 را در ATtiny به زمین و پایه 8 را به ولتاژ وصل کنید.
مرحله 2: نرم افزار
در اینجا یک پوشه با تمام فایل های مورد نیاز برای اجرای بازی ضمیمه شده است. دو فایل ، FlappyBird.ino و WallFunctions.h ، برای خواندن شما بسیار خوب توضیح داده شده است. می توانید طرح FlappyBird.ino را در ATtiny85 خود (با فرکانس 1 مگاهرتز) بارگذاری کرده و دور بازی کنید! اگر یادگیری تئوری پشت این بازی به شما علاقه دارد یا می خواهید بازی خود را بسازید ، ادامه مطلب را بخوانید!
هنوز چند مشکل در بازی من وجود دارد. I2C بهترین راه برای انتقال داده ها به هیچ وجه نیست. بر اساس این پست ، صفحه نمایش فقط می تواند داده های حدود 100 کیلوهرتز را بپذیرد ، بنابراین حتی اگر سرعت ساعت ATtiny را به 8 مگاهرتز برسانیم ، کانال I2C همچنان تنگنا خواهد بود. حداکثر صفحه نمایش می تواند حدود 10 فریم بر ثانیه خروجی داشته باشد. هرچه تصاویر مجزا برای کشیدن صفحه نیاز داشته باشند ، کل روند کندتر است. بنابراین ، بازی من بسیار آسان است زیرا نمی توانید دیوارها را با سرعت زیادی روی صفحه حرکت دهید! در صورتی که فکر می کنید وظیفه خود را به خوبی انجام داده اید ، در زیر برخی از چالش ها برای شما آمده است:
- برای سخت تر کردن بازی ، ببینید آیا می توانید فاصله بین دیوارها را به جای 4 به 2 برسانید. هنگامی که بفهمید برنامه من چگونه کار می کند نباید خیلی سخت باشد:). لطفاً اگر می توانید کار کنید ، در نظرات بنویسید!
- نکته دیگری که بازی من فاقد آن است ، سیستم نمره دهی و راهی برای نمایش نمره و ذخیره آن است. ببینید آیا می توانید یکی را پیاده سازی کنید!
- در نهایت ، به جای اینکه دیوارها یک ستون را به طور همزمان حرکت دهند ، سعی کنید هر دیوار را برای حرکت روان تر یک پیکسل در یک زمان حرکت دهید.
مرحله 3: Flappy Bird ATtiny85: نظریه
حتی اگر صفحه نمایش مورد استفاده ما دارای 64 پیکسل ارتفاع برای استفاده برای بازی باشد ، تنها امکان قرار دادن عناصر در بلوک های 8 پیکسلی وجود دارد. بنابراین ، تنها 8 مختصات y ممکن وجود دارد. برای سهولت کار ، در نرم افزار تمام صفحه را به این ترتیب تقسیم کردم و یک شبکه 16 بلوکی در 8 بلوک ایجاد کردم ، که در آن هر بلوک 8x8 پیکسل است. برای پر کردن هر بلوک ، هر Sprite در بازی 8x8 پیکسل است. این باعث می شود همه چیز بسیار آسان تر مدیریت شود. اگر به تصویر بالا نگاه کنید ، می بینید که چگونه صفحه را تقسیم کرده ام. هر دیوار از 6 بلوک تشکیل شده است ، با یک سوراخ 2 بلوک در ارتفاع ، و ارتفاع کل هر دیوار 8 بلوک است.
در برنامه ، هر دیوار به عنوان یک ساختار ، به نام دیوار نشان داده شده است. هر ساختار دیوار دارای دو ویژگی است: holePosition و ستون. "holePosition" یک عدد 0-6 است ، زیرا تنها 7 موقعیت ممکن در یک دیوار 8 بلوکی برای یک سوراخ 2 بلوکی وجود دارد. "ستون" یک عدد 0-15 است ، زیرا 16 ستون بلوک بر روی صفحه وجود دارد.
توصیه شده:
پرنده Flappy Bird با ماهیچه: 9 مرحله (همراه با تصاویر)
پرنده فلپی با عضله: ممکن است به یاد داشته باشید که Flappy Bird جهان را تحت تاثیر قرار داد و در نهایت محبوبیت زیادی پیدا کرد ، سازنده آن را از فروشگاه های برنامه حذف کرد تا از تبلیغات ناخواسته جلوگیری کند. این Flappy Bird است که تا به حال ندیده اید ؛ با ترکیب چند قطعه از قفسه
ساعت و برنامه نویسی فعالیتهای ارتعاشی پوشیدنی ATtiny85 ATtiny85 با Arduino Uno: 4 مرحله (همراه با تصاویر)
سازمان دیده بان و برنامه نویسی فعالیتهای ارتعاشی پوشیدنی ATtiny85 ATtiny85 با Arduino Uno: چگونه ساعت ردیابی فعالیت های پوشیدنی را بسازیم؟ این یک ابزار پوشیدنی است که هنگام تشخیص رکود برای ارتعاش طراحی شده است. آیا بیشتر وقت خود را مثل من در کامپیوتر می گذرانید؟ آیا ساعت ها بدون این که بدانید نشسته اید؟ سپس این دستگاه f
Pocket Flappy Bird ماشین بازی: 5 مرحله
Pocket Flappy Bird Game Machine: این یک کنسول بازی مبتنی بر میکروکنترلر nodemcu esp8266 است که می تواند flappy bird و بسیاری دیگر از بازی ها را اجرا کند. این دستگاه همچنین می تواند برای ایجاد Deauther بر اساس کد spacehuhns در https://github.com/SpacehuhnTech/esp8266_deauther
گرافیک روی صفحه نمایش SSD1306 I2C OLED 128x64 با مدار Python با استفاده از Itsybitsy M4 Express: 13 مرحله (همراه با تصاویر)
گرافیک روی صفحه نمایش SSD1306 I2C OLED 128x64 با مدار Python با استفاده از Itsybitsy M4 Express: صفحه نمایش OLED SSD1306 یک صفحه نمایش گرافیکی کوچک (0.96 & quot؛ ارزان ، به طور گسترده ، I2C ، 128x64 پیکسل است که به راحتی قابل رابط است (فقط 4 سیم) به تخته های توسعه ریزپردازنده مانند Raspberry Pi ، Arduino یا
کارت ویزیت/کنسول بازی: ATtiny85 و صفحه OLED: 5 مرحله (همراه با تصاویر)
کارت ویزیت/کنسول بازی: ATtiny85 و صفحه OLED: سلام به همه! امروز من قصد دارم به شما نشان دهم که چگونه می توانید کارت ویزیت/کنسول بازی خود را بسازید/هر چیزی را که می توانید تصور کنید که دارای صفحه نمایش ILEC OLED با نور پس زمینه و ریزپردازنده ATtiny85 است. در این دستورالعمل به شما می گویم چگونه یک PCB که من طراحی کردم