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

Arduino Battleship խաղ. 3 քայլ
Arduino Battleship խաղ. 3 քայլ

Video: Arduino Battleship խաղ. 3 քայլ

Video: Arduino Battleship խաղ. 3 քայլ
Video: We built an LED battleship game box in a week 2024, Նոյեմբեր
Anonim
Arduino Battleship խաղ
Arduino Battleship խաղ

Հիշում եմ, որ փոքր ժամանակ խաղում էի Battleship Game- ի թղթե և մատիտ տարբերակով: Իրականում, այն գոյություն ունի 1 -ին համաշխարհային պատերազմից սկսած: Ես նաև 1960 -ականների սկզբին ունեի «էլեկտրոնային» տարբերակ, որը կոչվում էր «Sonar Sub Hunt», որն ուներ լույսեր և ձայներ և թաքնված ականներ: Այսօրվա տեսախաղերի չափանիշներով Battleship- ը բավականին ձանձրալի է, բայց ես մտածեցի, որ ամեն դեպքում այն պատրաստելու եմ միայն տեսնելու համար, թե ինչ են մտածում թոռները դրա մասին: Ի վերջո, երբեմն ռետրո կարող է լինել թույն:

Այս նախագծի որոշ հատվածներ կան, որոնք օգտակար կլինեն այլուր, նույնիսկ եթե դուք շահագրգռված չեք Battleship խաղը պատրաստելով: Այն ունի 4-բիթանոց 1602 LCD պարզ 4-բիթ ինտերֆեյս, որը ներառում է որոշակի նիշերի գտնվելու վայրը սահմանելու ռեժիմ: Կա նաև 4x4 անջատիչ մատրիցի վերծանման ինտերֆեյս: Այս երկու ինտերֆեյսերը հասանելի են որպես առանձին ներառված ֆայլեր, այնպես որ դրանք հեշտությամբ փոխադրելի են: Խաղն ունի նաև ձայնային էֆեկտների տարբեր ռեժիմներ և մեկ տրանզիստորային աուդիո ուժեղացուցիչի պարզ միացում:

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

Սարքավորումներ
Սարքավորումներ
Սարքավորումներ
Սարքավորումներ

Այստեղ ներկայացված սխեման մեկ խաղացողի համար է, այնպես որ երկու միավոր պետք է պատրաստվեն: Ստորաբաժանումները շփվում են 3 լարային ինտերֆեյսի միջոցով, որը ներառում է UART TX և RX գծերը և հողալար: Ես ընտրեցի օգտագործել ստանդարտ ստերեո ականջակալների 1/8 դյույմանոց ստանդարտ մալուխ և երկու ծայրերում արական խրոցակներ: RX- ը մեկ տուփից անցնում է մյուս տուփի TX- ին և հակառակը: Դուք կարող եք դա անել ՝ փոխելով տուփի ներսում ականջակալների խցիկին միացված լարերը կամ դրանք կառուցելիս փոխելով տպատախտակին:

Դասական խաղը դրված էր որպես մատրիցա, բայց ես որոշեցի մի պարզ իրականացում կատարել `ցուցադրման համար 1602 LCD- ով: Առաջին տողը ցույց է տալիս խաղացողի նավի գտնվելու վայրը և հակառակորդի հարվածները: Երկրորդ տողը ցույց է տալիս խաղացողի հարվածները և հակառակորդի նավերին ցանկացած հարված: Դա ապահովում է նավերի 16 հնարավոր վայրերը: Նավերի քանակը սահմանվում է ծրագրաշարի մեջ, և ես կամայականորեն ընտրեցի 5 -ը:

Նավի 16 տեղերը հիանալի տեղավորվում են անջատիչի պահանջների հետ, քանի որ այն թույլ է տալիս 4x4 մատրիցա: Առկա են 4x4 մատրիցային անջատիչների բարձիկներ, բայց ես ընտրեցի օգտագործել առանձին անջատիչներ մեկ տողում ՝ գծային ցուցադրմանը համապատասխանելու համար: Այնուամենայնիվ, ես անջատիչները միացրեցի որպես 4x4 մատրիցա, որպեսզի անհրաժեշտ լինի միայն Arduino- ի ութ կապում: Անդրադառնալ անջատիչի էլեկտրագծերի դիագրամին և սխեմային `համապատասխան միացումների համար:

LCD էկրանը միացված է 4-բիթանոց ինտերֆեյսի համար: Ես նաև արտաքին լուսադիոդ ավելացրեցի D13 կապում ՝ նշելու, թե որ խաղացողը պետք է նկարահանի: Սկզբում խաղացողները որոշում են, թե ով է կատարում առաջին կրակոցը, այնուհետև ծրագրաշարը ինքնաբերաբար վերահսկում է խաղի ետ և առաջ:

Ես ուզում էի ավելացնել պարզ ձայնային էֆեկտներ կադրի, պայթյունների, խաղի պատրաստի և հաղթողի/պարտվողի համար: Ես փորձեցի օգտագործել պարզ պիեզո ազդանշան, բայց փոխարենը հայտնվեցի փոքր բարձրախոսով: Բարձրախոսի պահանջած հոսանքը գերազանցում է այն, ինչ Arduino- ն կարող է կարգավորել, ուստի ավելացվել է պարզ տրանզիստորային ուժեղացուցիչ: Ձայնը դեռ հիանալի չէ, բայց ավելի լավ է, քան բզզոցով: Իմ բարձրախոսը 4 օմ է, բայց եթե ունեք 8 օմ, ապա սխեմատիկ դիմադրության դիմադրությունը փոխեք 39 օմից մինչև 33 օմ: Եթե դուք օգտագործում եք պիեզո ազդանշան, ապա պետք է կարողանաք այն քշել անմիջապես Arduino- ի քորոցից, իսկ ահազանգի մյուս կողմը միացված է գետնին:

Ներառված է նաև արտաքին զրոյական անջատիչ և միացված է Arduino- ի գրունտի և «վերակայման» կապի միջև: Դա ապահովում է խաղը վերսկսելու միջոցները:

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

Theրագրային ապահովումն ունի ներառող ֆայլ ՝ իմ LCD ինտերֆեյսի համար, և ես նաև ստեղծեցի ներառման ֆայլ ՝ 4x4 անջատիչի մատրիցային սկանավորման համար: Նախաստորագրումը ստիպում է խաղացողին ընտրել իր նավերի տեղերը, այնուհետև անցնում է «Պատրաստ» վիճակին: Երբ երկու խաղացողներն էլ պատրաստ լինեն, նրանցից մեկը խաղը սկսում է սեղմելով անջատիչը:

Հրաձգության վայրը UART- ի միջոցով փոխանցվում է մյուս խաղացողին, իսկ համապատասխան արդյունքը փոխանցվում է այն կրակողին: Ինչպես արդեն նշվեց, առաջին կադրն անելուց հետո ծրագրակազմը վերահսկում է, թե ով է կատարում հաջորդ կադրը: Նախքան կրակոց փոխանցելը, այն ստուգվում է նախորդ կադրերի վայրերի համեմատ: Եթե այդ վայրն արդեն օգտագործվել է, ապա կրակոցը չի փոխանցվի: «My_Shot» LED- ը որոշում է, թե ում հերթն է: Կա նաև կրակոցի ձայն, որը գեներացվում է վավեր ընտրության համար և պայթյունի ձայն, եթե նավը խփվում է: Ձայնային էֆեկտները բխում են առցանց հայտնաբերված օրինակներից ՝ խաղին համապատասխան փոփոխություններով:

Երբ հակառակորդի նավերը բոլորը խոցված են, յուրաքանչյուր LCD- ում ցուցադրվում է հաղորդագրություն `մեկը` որպես հաղթող, և մեկը `որպես պարտվող: Հաղորդագրության մեջ նշվում է նաև, որ խաղը կարող է վերագործարկվել ՝ սեղմելով վերակայման կոճակը: Կան նաև առանձին ձայնային էֆեկտներ հաղթողի և պարտվողի համար:

Քայլ 3: Էկրանի նկարահանումներ

Էկրանի նկարահանումներ
Էկրանի նկարահանումներ
Էկրանի նկարահանումներ
Էկրանի նկարահանումներ
Էկրանի նկարահանումներ
Էկրանի նկարահանումներ
Էկրանի նկարահանումներ
Էկրանի նկարահանումներ

Ահա մի քանի էկրանի կադրեր խաղից: Ահա այս գրառման համար: Ստուգեք իմ մյուս հրահանգները և նաև իմ կայքը ՝ www.boomerrules.wordpress.com

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