Բովանդակություն:
- Քայլ 1: Ի՞նչ է ձեզ անհրաժեշտ:
- Քայլ 2: Արագ նախատիպերի պատրաստում
- Քայլ 3: Պատյան պատրաստելը
- Քայլ 4: LED մատրիցայի պատրաստում
- Քայլ 5. Խաղի կոդերի գրառում և սարքաշարերի կարգաբերում
- Քայլ 6: Ամեն ինչ միասին հավաքելը
Video: Stackers Arcade Game: 6 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
Բարև տղերք, այսօր ես ուզում եմ ձեզ հետ կիսվել այս զարմանալի արկադային խաղով, որը կարող եք պատրաստել մի փունջ Ws2812b LED- ների և միկրոկոնտրոլերի/FPGA- ի միջոցով: Ահա Stack Overflow - դասական արկադային խաղի մեր ապարատային իրականացումը: Այն, ինչ սկսվեց որպես դպրոցական ծրագիր, արագ դարձավ սիրո աշխատանք, երբ մենք սկսեցինք ավելի ու ավելի շատ ժամանակ տրամադրել մեր խաղը զարգացնելու և դրանից ավելին սովորելու համար (և անտեսելով մեր ուսումնասիրությունները գործընթացում xD): Ի վերջո, մեր խաղը այնքան լավ կառուցվեց և լավ ընդունվեց մեր դպրոցի կողմից, որ առգրավվեց (որպես ցուցադրական նյութ աշակերտների հաջորդ խմբաքանակի համար): Դե, մենք միշտ կարող ենք կառուցել երկրորդը: Եկեք սկսենք!
Խաղի առցանց տարբերակը ՝
Քայլ 1: Ի՞նչ է ձեզ անհրաժեշտ:
Նյութեր:
1. միկրոկառավարիչ/միկրոհամակարգիչ/FPGA - FPGA- ն օգտագործվում է մեր խաղի տրամաբանությունը կյանքի կոչելու համար: Ընտրեք ձեր խորհուրդը, մեր նախագծի համար մեզանից պահանջվում է օգտագործել Mojo FPGA տախտակը: Անհայտների համար դա տախտակի մի տեսակ է, որն օգտագործում է ապարատային սարքավորումներ `իր գործառույթներն իրականացնելու համար, այլ ոչ թե ծածկագրեր: Հետևաբար, ես կասեի, որ այն բավականին ցածր մակարդակ է և բոլորովին այլ է, քան եթե դուք օգտագործում եք Arduino կամ Pi: Եթե դուք օգտագործում եք այլ տախտակներ, դուք պետք է գրեք ձեր սեփական կոդը, բայց այս խաղը բավականին հեշտ է կոդավորել և հե! Այժմ դուք կարող եք սովորել նաև կոդավորումը:
2. Ws2812b LED- եր - Այստեղ մենք օգտագործում ենք LED- ները `մեր խաղի ցուցադրումը կառուցելու համար: Չի կարող լինել արտադրող, եթե դուք չեք դիպչել Ws2812b- ին xD- ից առաջ: Դա մեկ հասցեական նշանակություն ունի, ինչը նշանակում է, որ դուք կարող եք անջատել միայնակ լուսադիոդային լուսադիոդները և դրանք տեղադրել ցանկացած ձևավորման մեջ, որը Ձեզ դուր է գալիս: Եվ դա RGB նշանակում է, որ դուք կարող եք թողարկել ցանկացած գույն, որը ցանկանում եք: Ավելին, FastLED - Ws2812b- ի վերահսկման Arduino գրադարանը շատ լավ զարգացած է: Ես խորհուրդ կտայի մարդկանց օգտագործել Arduino- ն FPGA- ի փոխարեն, եթե այն չունեք: Դուք կարող եք LED- ները գնել Taobao/Amazon- ից, բայց մենք մերը գնել ենք Սինգապուրի Sim Lim աշտարակից:
3. Փայտ-արտաքին պատյանների համար մենք օգտագործել ենք 1 սմ հաստությամբ նրբատախտակ, իսկ LED մատրիցի համար `0.3 սմ հաստությամբ նրբատախտակ: Մենք գտանք մեր դպրոցի փայտի լաբորատորիայի ջարդոնի պաշարը:
4. Լույսի ցրող ակրիլ. Եթե չեք գտնում ճշգրիտ մոդելը, փորձեք փնտրել ցրտաշունչ ակրիլներ: Մենք մերը գնել ենք Սինգապուրի Dama Plastics- ում:
5. Փրփուր տախտակ - Լույսի յուրաքանչյուր պիքսել առանձնացնելու համար մեզ անհրաժեշտ էր ցանցի կառուցվածք, և դա պատրաստելու համար իդեալական նյութ է: Մենք մեր դպրոցի գրախանութից գնել ենք 0.5 սմ հաստությամբ փրփուր տախտակ:
6. Մեծ կարմիր կոճակ - Լավ, պարտադիր չէ, որ մենք ունենանք այդքան մեծ կարմիր կոճակ, բայց միշտ լավ է ունենալ կոճակ, որը կարող է մարդկանց հարվածել: xD Մենք այն գնել ենք Սինգապուրի Sim Lim աշտարակում:
Գործիքներ:
1. Փայտի սոսինձ
2. oldոդման երկաթ
3. Sոդող
4. Հաղորդալարեր: Ավելի լավ է, եթե դուք ունեք ավելի ամուր լարերի համեմատ փափուկ լարեր: Եվ մեկ միջուկը `համեմատած բազմաբնույթ:
5. Հաղորդալար մերկապարուհի
6. Լարի կտրիչ
7. Հորատեք 1 մմ տրամագծով փորվածքներով
8. Ոլորման սղոց
9. նվագախմբի սղոց
Վրիպազերծում
1. Փոփոխական էներգիայի մատակարարման միավոր
2. Օսցիլոսկոպ
Քայլ 2: Արագ նախատիպերի պատրաստում
Մեր նախագծի համար մենք կիրառեցինք արագ նախատիպերի պատրաստում ՝ նախքան մեր LED մատրիցան կառուցելը և մեր խաղը ծրագրավորելը: Դա անելու պատճառն այն է, որ մենք չենք ցանկանում LED մատրիցա կառուցել պարզապես հասկանալու համար, որ մեր ծածկագրերը չեն աշխատում, կամ մեր խաղային տրամաբանությունը ինչ -որ կերպ թերի է:
Սարքավորման տեսանկյունից, առաջին փուլում մենք պարզապես փորձեցինք մեր տրամաբանությունը ՝ մեր սեփական պարզ LED մատրիցի վրա լուսարձակները փոխելու վրա: Երբ մենք ստուգեցինք, որ տրամաբանությունը լավ է աշխատում, այնուհետև մենք դուրս եկանք ՝ կտրելու 5 Ws2812b LED- ների 5 շերտեր, պարզապես փորձարկելու մեր խաղային տրամաբանությունը տարբեր տողերով: Երբ դա ստացվի, մենք շարունակում ենք LED մատրիցայի պատրաստումը ամբողջ մասշտաբով:
Մենք նաև փորձարկեցինք տարբեր ակրիլային նմուշներ LED- ով ՝ նախքան PL-422- ի հետ լուծվելը որպես լավագույն լույսի դիֆուզոր: Իսկ անջատիչի կառուցվածքի համար մենք փորձարկեցինք նաև տարբեր բարձրություններ, որպեսզի լուսադիոդն ամբողջությամբ ցրվի: Ի վերջո, մենք հասկացանք, որ 3 սմ*3 սմ քառակուսի 4 սմ բարձրությամբ լավագույնն է դիֆուզիոն: Այս օպտիմալ չափի հիման վրա մենք որոշեցինք նաև, թե որքան է նրբատախտակի չափը, որն անհրաժեշտ է 5 x 11 LED մատրիցի համար ՝ քառակուսիների միջև փրփուրի համար թողնելով 0,5 սմ բացվածք:
Softwareրագրային ապահովման կողմից մենք փորձում ենք հնարավորինս մոդուլային լինել. Մենք նախ ստուգում ենք, թե արդյոք LED- ները կարող են լուսավորվել, նախքան հերթափոխի գործառույթը ավելացնելը, այնուհետև մյուսները: Արդյունքները կարող են աղետալի լինել, եթե դա չանեք: Մենք դա սովորեցինք դժվարին ճանապարհով, երբ փորձեցինք ամբողջ խաղը կոդավորել մեծ կտորով ՝ նախքան հասկանալը, որ չենք կարող այն կարգաբերել: Օuհ
Քայլ 3: Պատյան պատրաստելը
Մեր պատյանների համար մենք գնացինք դասական արկադային մեքենայի զգացումներով և տեսքով: Նախ, մենք կտրեցինք մի քանի բարակ նրբատախտակ ՝ ձևը արագ նախատիպավորելու համար, քանի որ ավելի հեշտ և արագ կտրել բարակ նրբատախտակն ու փորձարկել: Երբ մենք բավարարվեցինք մեր չափերով և ձևով, մենք սկսեցինք ավելի հաստ նրբատախտակ օգտագործել պատյան կառուցելու համար: Մենք օգտագործեցինք ժապավենային սղոց `ավելի հաստ նրբատախտակը կտրելու համար, իսկ ոլորման սղոցը` ավելի բարակերը կտրելու համար: Դրանից հետո մենք փայտի սոսինձ օգտագործեցինք դրանք սոսնձելու համար:
Նրբատախտակի հետևի մասում մենք ցանկանում էինք հեշտությամբ մուտք գործել էլեկտրոնիկա ներսում, ուստի այն վերածեցինք կողպեքի կտորի, որը կարող եք հեշտությամբ հեռացնել, երբ ցանկանաք:
Կոճակը ամրացնելու համար մենք նախ նկարեցինք կոճակի միկրոփոխարկիչի տրամագծի չափ շրջանակ (կոճակի ներքևի երկար հատված): Այնուհետև մենք եզր բացեցինք անցքի մոտով և ոլորվող սղոցով ՝ շրջան տեսնելով: Հետո մենք տեղադրեցինք կոճակը և պտուտակեցինք այն:
Մենք նաև կտրեցինք նրբատախտակի մի բարակ կտոր ՝ որպես մեր LED մատրիցի հիմք ՝ նախկինում մեր հաշվարկած չափերի համաձայն:
Նշում. Ես ներողություն եմ խնդրում քայլ առ քայլ գործընթացի բացակայության համար: Մենք ամբողջովին չենք փաստաթղթավորել քայլերը, և երբ հասկացանք, որ քայլերը պետք է փաստաթղթավորենք, պատյանը արդեն պատրաստ էր: Դիագրամը նույնպես վերջնական չափերը չեն:
Քայլ 4: LED մատրիցայի պատրաստում
Օգտագործելով այն բարակ կտորը, որը մենք կտրել էինք ավելի վաղ, մենք նախ նշում ենք յուրաքանչյուր LED- ի դիրքը ՝ գծելով մեր փրփուրի կառուցվածքի հիման վրա քառակուսի և հրապարակի մեջտեղում խաչ քաշելով, որպես այն տեղը, որտեղ մենք պետք է կպցնենք LED- ը: Այնուհետև մենք LED- ի յուրաքանչյուր կողմում 3 փոքր անցք ենք բացում, որպեսզի լարերը դուրս գան և դրանք կպցնենք յուրաքանչյուր LED- ի:
Մենք LED- ի յուրաքանչյուր տող կապում ենք իրենց Data In և Data Out կապումներով և յուրաքանչյուր GND և VCC զոդում ընդհանուր մետաղալարով: Առաջատար Data In- ը յուրաքանչյուր տողի համար կստեղծի լուսային նախշեր, և մենք դրանք միացրեցինք միկրոկառավարիչի/FPGA- ի pinout- ին: Կարող եք նաև մեկ տողից վերջին տվյալները զոդել մեկ այլ տողի առաջատար Data In- ին: Ws2812b LED- ի աշխատելու եղանակն այն է, որ յուրաքանչյուր LED պարունակում է IC, որը մետաղալարից կվերցնի անհրաժեշտ տվյալները և մնացածը կանցնի շղթայով: Մենք հիմնեցինք մեր LED- ի վրա մեկ այլ ֆանտաստիկ հրահանգների վրա (ըստ էության, մենք այն ճիշտ պատճենեցինք! XD)
Այստեղ մենք կցանկանայինք նաև շեշտել փափուկ լարերի օգտագործման կարևորությունը: Եթե դուք օգտագործում եք կոշտ, կոշտ լարեր առաջատար Data In pin- ի համար, ապա այն, ինչ տեղի է ունենում, ամեն անգամ մետաղալարը քաշելիս այն կարող է դուրս բերել ձեր Ws2812b- ի պղնձե ծածկոցը, որը կկործանի այն: Այս նախագծում, նախքան փափուկ լարերի անցնելը, մենք ոչնչացրեցինք ընդհանուր առմամբ 40 LED, ինչը մեր նախագծի համար անհրաժեշտ LED- ների 1/3 -ն է:
Ուսուցիչ ՝
Քայլ 5. Խաղի կոդերի գրառում և սարքաշարերի կարգաբերում
Mojo- ն աշխատում է Lucid HDL- ով, որը ամենատարածված լեզուն չէ: Մենք չենք կարող գտնել Ws2812b LED գրադարաններ Lucid- ում, ուստի մենք դիմեցինք գրելու մեր սեփական գրադարանը, ինչը շատ հետաքրքիր փորձ է: Դա անելու համար մենք նախ վերլուծեցինք ազդանշանը, որն անցնում է Arduino- ի FastLED գրադարանի միջոցով և գրեցինք դրա կրկնօրինակման կոդեր: Ահա ապարատային կարգաբերման հնարք, օսլիլոսկոպը շատ, շատ օգտակար է ազդանշանները վերլուծելու համար, լինի դա սեփական ազդանշանի կարգաբերում, որը վստահ չեք կամ ստուգում և պատճենում եք այլ ազդանշաններ:
Ws2812b- ի համար գրադարանը գրելուց հետո մենք անցնում ենք խաղի կոդավորմանը, մենք օգտագործում ենք Bit shift գործառույթները ՝ յուրաքանչյուր բլոկ ձախ և աջ տեղափոխելու համար և օգտագործում ենք յուրաքանչյուր տողի Bitwise AND to AND նախորդ տողի քառակուսիները: Կարող եք նաև մտածել դա իրականացնել Arduino- ում, որը չպետք է այդքան դժվար լինի: Մենք նույնիսկ կոդավորեցինք խաղային էկրաններ `զվարճանալու համար:
Մեր խաղն ուներ 2 մակարդակ, որը տեսանելի խաղադրույքների խաղն է (Կանաչ) և երկրորդ մակարդակի անտեսանելի հավաքման խաղը (Կապույտ):
Նույնիսկ այն բանից հետո, երբ մենք ունեինք աշխատանքային ծածկագրեր և աշխատող LED մատրիցա, երբեմն մենք դեռ բախվում ենք այնպիսի խնդիրների, ինչպիսիք են թրթռացող լույսերը կամ լույսերը, երբ դրանք չպետք է: Խնդիրը սովորաբար պայմանավորված է ոչ պատշաճ հիմնավորմամբ, սնուցման մակարդակով կամ միջամտությամբ: Սա այն է, որտեղ ձեզ հարկավոր կլինեն ապարատային կարգաբերման այլ գործիքներ, ինչպիսիք են փոփոխական էներգիայի մատակարարման միավորը `ստուգելու համար, թե արդյոք Mojo/Arduino- ի սնուցման աղբյուրը բավարար է կամ չափազանց բարձր: Ըստ իմ փորձի, Ws2812b- ն ունի աշխատանքային լարման բավականին լայն տեսականի `2.8v - 5v- ից: Այստեղ ես ունեմ մի տեսանյութ, որը ցույց է տալիս, որ լույսերը խելագարվում են, երբ ես մեծացնում եմ էներգիան:
Այնուամենայնիվ, հետագա ստուգումից պարզվեց, որ մենք ունեինք ոչ պատշաճ զոդում, ևս մեկ անգամ դրանք նորից զոդելուց հետո մեր խնդիրը լուծվեց: Կարող է լինել նաև միջամտության կամ խաչասերման խնդիր, բայց, բարեբախտաբար, մենք երբեք նրանցից ոչ մեկի հետ չենք բախվել:
Github կոդերը ՝
Arduino Bitwise Shift ՝
Arduino Bitwise AND:
Քայլ 6: Ամեն ինչ միասին հավաքելը
Դուք ունեք պատյան և LED մատրիցա: Itամանակն է ամեն ինչ համատեղել: Սկզբում մենք փրփուրը տեղադրում ենք առջևի մասում, իսկ LED մատրիցը ՝ դրա հետևում և հարմարեցնում դիրքը: Քանի որ փրփուրը շատ բարձր շփում ունի, այն պարզապես շփում էր, մինչդեռ LED մատրիցը տաք սոսնձված է տեղում: Դրանից հետո մենք էկրանը տեղադրեցինք ցանցի դիմաց: Հետո մենք միացրեցինք յուրաքանչյուր տողի կապը միկրոկոնտրոլերի վրա և սկսեցինք խաղալ:: D
Այս նախագծում ինձ մի բան է դուր գալիս `դրա ճկունությունը: Դուք միշտ կարող եք միկրոկոնտրոլերը վերագրանցել` այլ խաղի մաս կազմելու և ինչ -որ բան անելու համար, օրինակ `անիմացիա կամ ռեակցիա խաղ պատրաստելը: Հուսով եմ, որ դուք հաճույք կստանաք դրա պատրաստումից և ինչ -որ բան կսովորեք դրա պատրաստման համար: GgEz!
Խորհուրդ ենք տալիս:
Bubble Bobble Arcade Cabinet (Bartop). 14 քայլ (նկարներով)
Bubble Bobble Arcade Cabinet (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 … Այս նախագծի նպատակն է կառուցել ռետրո
Arduino Game Controller + Unity Game: 5 քայլ
Arduino Game Controller + Unity Game. Այս ուսանելի ծրագրում ես ձեզ ցույց կտամ, թե ինչպես կառուցել/ծրագրավորել arduino խաղի վերահսկիչ, որը կարող է միանալ միասնությանը:
Arduino Game Controller With Lights Responding Your Unity Game :: 24 քայլ
Arduino Game Controller With Lights Responding Your Unity Game :: Առաջին հերթին ես սա գրեցի բառով: Սա առաջին անգամն է, երբ ես օգտագործում եմ խրատելի, այնպես որ ամեն անգամ, երբ ասում եմ, գրեք կոդը այնպես, որ իմանաք, որ ես նկատի ունեմ այդ քայլի վերևի պատկերը: Այս նախագծում ես օգտագործում եմ 2 arduino- ի 2 առանձին բիթ
Arduino Pocket Game Console + A -Maze - Maze Game: 6 քայլ (նկարներով)
Arduino Pocket Game Console + A -Maze - Maze Game. Բարի գալուստ իմ առաջին ուսանելի: Նախագիծը, որը ես ուզում եմ այսօր կիսել ձեզ հետ, Arduino լաբիրինթոս խաղն է, որը դարձավ գրպանի մխիթարիչ, նույնքան ունակ, որքան Arduboy- ն և Arduino- ի վրա հիմնված նման կոնսուլները: Այն կարող է շողշողալ իմ (կամ ձեր) ապագա խաղերով ՝ շնորհիվ ցուցահանդեսի