Բովանդակություն:

Flappy Bird ATtiny85- ի և OLED Display SSD1306- ի վրա. 6 քայլ (նկարներով)
Flappy Bird ATtiny85- ի և OLED Display SSD1306- ի վրա. 6 քայլ (նկարներով)

Video: Flappy Bird ATtiny85- ի և OLED Display SSD1306- ի վրա. 6 քայլ (նկարներով)

Video: Flappy Bird ATtiny85- ի և OLED Display SSD1306- ի վրա. 6 քայլ (նկարներով)
Video: Flappy Bird ATtiny85 OLED Display 2024, Սեպտեմբեր
Anonim
Image
Image
Սարքավորումը
Սարքավորումը

Բարեւ բոլորին, Այսօր ես ձեզ ցույց կտամ իմ ստեղծած թռչունների հիմնական կլոնը, և թե ինչպես կարող եք նման խաղ պատրաստել: Ես ըստ էության ձեզ հետ կանցնեմ իմ ծածկագրով և կբացատրեմ, թե ինչպես է այն աշխատում ամեն քայլափոխի: Այս խաղը կառուցված է 1 ՄՀց հաճախականությամբ ATtiny85- ի վրա աշխատելու համար, I2C OLED էկրանով: Առաջ!

Քայլ 1: Սարքավորումը

Եթե ձեզ չի հետաքրքրում խաղի համար շրջան կառուցելը, բայց դրա հիմքում ընկած տեսությունը հասկանալը, կարող եք բաց թողնել այս քայլը:

Իմ խաղը պահանջում է երկու կոճակ ՝ ATtiny85, I2C OLED 128x64px էկրան և էներգիայի որոշ աղբյուր: Իմ հրահանգելի այցեքարտը/խաղային վահանակը. ATtiny85 և OLED էկրանը ցույց է տալիս, թե ինչպես կառուցել տախտակ, որի վրա կա ամեն ինչ, ինչ ձեզ հարկավոր է: Եթե դուք հետաքրքրված չեք իմ տախտակը պատրաստելով, դուրս եկեք ձեր տախտակից, և ես ձեզ կասեմ բնութագրերը: Դուք կարող եք օգտագործել ATtiny85- ի ցանկացած տարբերակ: Ես խորհուրդ եմ տալիս այսպիսի OLED էկրաններ ունենալ:

  1. Երկու AT կոճակների մի կողմը միացրեք ձեր ATtiny85- ի 2 և 3 կապումներին: Այս լարերի վրա ավելացրեք նաև 10k ohm դիմադրություն, որը միացված է գետնին (ձգվող դիմադրություն):
  2. Միացրեք այս կոճակների մյուս կողմը լարման: Երբ կոճակը սեղմված չէ, քորոցային վիճակը ցածր կլինի: Երբ այն սեղմված է, քորոցային վիճակը բարձր կլինի:
  3. Միացրեք 7 -րդ կապը ձեր էկրանին SCL կապին և 5 -րդը ՝ ձեր էկրանին SDA կապին: Համապատասխանաբար լարեք էկրանի էլեկտրական կապերը (VCC և GND):
  4. Վերջապես, ATtiny- ի 4 -րդ կապը միացրեք գետնին, իսկ 8 -ը `լարման:

Քայլ 2: Softwareրագրակազմ:

Theրագրային ապահովում
Theրագրային ապահովում

Այստեղ կցված է թղթապանակ `բոլոր ֆայլերով, որոնք անհրաժեշտ են խաղը գործարկելու համար: Ֆայլերից երկուսը ՝ FlappyBird.ino- ն և WallFunctions.h- ը, շատ լավ մեկնաբանված են ձեր ընթերցանության հաճույքի համար: Դուք կարող եք FlappyBird.ino էսքիզը վերբեռնել ձեր ATtiny85 (1 ՄՀց հաճախականությամբ) և խաղալ հեռու: Եթե ձեզ հետաքրքրում է այս խաղի հիմքում ընկած տեսությունը, կամ ցանկանում եք պատրաստել ձեր սեփական խաղը, ապա կարդացեք:

Իմ խաղի հետ կապված դեռ մի քանի խնդիրներ կան: I2C- ը ոչ մի կերպ տվյալները փոխանցելու լավագույն միջոցը չէ: Այս գրառման համաձայն ՝ էկրանը կարող է ընդունել միայն 100 ԿՀց հաճախականությամբ տվյալներ, այնպես որ, նույնիսկ եթե ATtiny ժամացույցի արագությունը հասցնենք 8 ՄՀց -ի, I2C ալիքը, այնուամենայնիվ, կլինի խոչընդոտ: Էկրանը կարող է թողնել առավելագույնը 10 կ / վ արագություն: Որքան ավելի շատ առանձին պատկերներ պետք է նկարեն, այնքան դանդաղ է ամբողջ գործընթացը: Այսպիսով, իմ խաղը բավականին հեշտ է, քանի որ դուք չեք կարող ստիպել, որ պատերը շատ արագ շարժվեն էկրանի վրայով: Ստորև բերված են որոշ մարտահրավերներ ձեզ համար, եթե կարծում եք, որ դուք կատարել եք առաջադրանքը.

  • Խաղը բարդացնելու համար տեսեք, թե արդյոք պատերի միջև եղած տարածությունը 4 -ի փոխարեն կարող է լինել 2 -ը: Այն չպետք է չափազանց դժվար լինի, երբ հասկանաք, թե ինչպես է աշխատում իմ ծրագիրը:): Խնդրում ենք տեղադրել մեկնաբանություններում, եթե կարողանաք այն աշխատել:
  • Մեկ այլ բան, որ իմ խաղը բացակայում է, հաշիվների համակարգն է և հաշիվը ցուցադրելու և պահպանելու միջոց: Տեսեք ՝ կարո՞ղ եք մեկին իրականացնել:
  • Վերջապես, ոչ թե պատերը միաժամանակ մեկ սյուն շարժեն, այլ ամեն շարժում ավելի սահուն փորձեք այնպես անել, որ յուրաքանչյուր պատ շարժի մեկ պիքսել:

Քայլ 3. Flappy Bird ATtiny85. Տեսություն

Flappy Bird ATtiny85. Տեսություն
Flappy Bird ATtiny85. Տեսություն

Չնայած այն բանին, որ մեր օգտագործած էկրանը 64 պիքսել բարձրություն ունի խաղի համար օգտագործելու համար, հնարավոր է միայն տարրերը տեղադրել 8 պիքսելանոց բլոկներում: Այսպիսով, կան ընդամենը 8 հնարավոր y- կոորդինատներ: Ամեն ինչ ավելի հեշտ դարձնելու համար ծրագրային ապահովման մեջ ես ամբողջ էկրանը բաժանեցի այսպես ՝ կազմելով 16 բլոկի ցանց 8 բլոկով, որտեղ յուրաքանչյուր բլոկը 8x8 պիքսել է: Յուրաքանչյուր բլոկ լրացնելու համար խաղի յուրաքանչյուր սպրայթ 8x8 պիքսել է: Սա հեշտացնում է ամեն ինչ շատ ավելի հեշտ կառավարել: Եթե նայեք վերևի պատկերին, կտեսնեք, թե ինչպես եմ ես բաժանել էկրանը: Յուրաքանչյուր պատ բաղկացած է 6 բլոկներից, 2 բլոկ բարձրության անցքով, յուրաքանչյուր պատի ընդհանուր բարձրությունը դարձնելով 8 բլոկ:

Րագրում յուրաքանչյուր պատ ներկայացվում է որպես ստրուկտ, որը կոչվում է Պատ: Յուրաքանչյուր պատի կառուցվածք ունի երկու հատկություն `holePosition և սյունակ: «holePosition»-ը 0-6 թիվն է, քանի որ 8 բլոկից բաղկացած պատի մեջ ընդամենը 7 հնարավոր դիրք կա `2 բլոկ բարձրության համար: «սյունակը» 0-15 թիվն է, քանի որ էկրանին հնարավոր է բլոկների 16 սյունակ:

Խորհուրդ ենք տալիս: