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

Lapcade Arcade Controller: 6 քայլ (նկարներով)
Lapcade Arcade Controller: 6 քայլ (նկարներով)

Video: Lapcade Arcade Controller: 6 քայլ (նկարներով)

Video: Lapcade Arcade Controller: 6 քայլ (նկարներով)
Video: 07 29 81 2024, Սեպտեմբեր
Anonim
Lapcade Arcade Controller
Lapcade Arcade Controller

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

Անցել են Արկադի օրերը, բայց դուք դեռ կարող եք դասական արկադային խաղի զգացում ունենալ հենց ձեր սեփական հյուրասենյակում: Այսպիսով, այստեղ ես ձեզ եմ ներկայացնում Lapcade- ը: Եթե դուք ինձ նման եք և ավելի շատ հաճույք եք ստանում իրեր կառուցելուց, քան խաղալը, գուցե ձեզ դուր գա այս կառուցվածքը: Եթե ունեք հարցեր կամ առաջարկություններ, որոնք ներառված չեն «գաղափարներ տարբերակի համար 2» բաժնում, խնդրում ենք թողնել մեկնաբանություն:

Քայլ 1: Ակնարկ

Ակնարկ
Ակնարկ
Ակնարկ
Ակնարկ

Սա ի՞նչ բան է:

Նախ, խնդրում ենք նկատի ունենալ, թե ինչ չէ Lapcade- ը.

  • Դա խաղային վահանակ չէ:
  • Այն չունի խաղեր և չունի խաղեր բեռնելու և խաղալու ունակություն:
  • Այն չի միանում հեռուստացույցին կամ մոնիտորին:

Lapcade- ը Bluetooth ստեղնաշար է: Ոչ ավել, ոչ պակաս:

Ես բերում եմ սա, քանի որ այս կետի շուրջ որոշակի խառնաշփոթ է առաջացել: Ես շատ հարցեր ունեի այն մասին, թե ինչ խաղեր կարող են բեռնվել դրա վրա և ինչ տեսաֆիլմերի ինտերֆեյս է այն օգտագործում. Դա չի կարող և չի արվում: Այն ամբողջությամբ կախված է այն համակարգչից, որին միացնում եք այն, և այդ առումով երկինքը սահմանն է: Եթե ձեր սարքը կարող է ընդունել Bluetooth ստեղնաշար, ապա Lapcade- ը պետք է աշխատի դրա հետ: Ես չեմ փորձել այն, բայց ես տեսել եմ այլ նախագծեր, որոնք օգտագործել են EZ-Key- ը (նկարագրված է ստորև) `կապված ձեռքի սարքերի հետ: Այսպիսով, տեսականորեն, դուք կարող եք միացնել այս սարքը Windows, Linux, ChromeOS, MAC և այլն աշխատող ցանկացած համակարգչի, ինչպես նաև Raspberry Pi- ի, Android- ի, iOS- ի և այլոց, որոնք ապահովում են Bluetooth v2.1: Այնուամենայնիվ, կարող է պահանջվել հիմնաբառերի փոփոխություն:

Նախնական տարբերակ 1

Ի սկզբանե, ես գտա մի ապրանք, որը կոչվում էր Adafruit Bluefruit EZ -Key bluetooth HID (Մարդու ինտերֆեյսի սարք - մտածեք ստեղնաշար), որը թույլ կտար ինձ միացնել ծանոթ սեղմող կոճակները և ստեղնաշարի պես ուղարկել ստեղնաշարի հարվածներ: Երբ ես առաջին անգամ կառուցեցի EZ-Key- ի հիման վրա վերահսկիչ, ես հետևեցի մի շարք հրահանգների `պարզ և ուղիղ առաջ վերահսկիչ կառուցելու համար, և այն հիանալի աշխատեց: Ես վերահսկիչն օգտագործեցի ծանր փայտե շրջանակի մեջ, առանց որևէ խնդրի մի քանի ամիս: Այնուամենայնիվ, դուք սահմանափակված եք 12 մուտքագրմամբ, և չկա որևէ կերպ փոխելու սարքի փոխանցած ստեղնաշարի ծածկագիրը ՝ առանց EZ-Key- ի մուտքային կապերի վերածրագրավորման:

Երբ ես օգտագործում էի իմ Kodi մեդիակենտրոնը տեղադրված խաղերը ցուցադրելու համար, ես ուզում էի անցնել մեդիա կենտրոնի և խաղախաղի վերահսկման միջև ՝ առանց մի քանի վերահսկիչ / հեռակառավարման վահանակ օգտագործելու: Նաև ցանկանում էի, որ սարքը կարգավորվի, որպեսզի ձախլիկ որդիս կարողանա օգտագործել այն, ինչպես ցանկանում է:

Ես նաև օգտագործում էի 4 AA մարտկոց ՝ սարքը սնուցելու համար, և արկղից այն կարծես ցածր էներգիայի ռեժիմ չուներ: Մարտկոցները չորանում են մեկ -երկու օրվա ընթացքում, նույնիսկ եթե դրանք չօգտագործվեն:

Այսպիսով, իմ ընկերոջ հորդորով ես որոշեցի կառուցել միևնույն վերահսկիչի ծրագրավորվող տարբերակ, որն ուներ ռեժիմի արագ փոփոխություններ, ինչը թույլ կտար ինձ օգտագործել միևնույն սարքը `բազմաթիվ ծրագրեր կառավարելու համար, ինչպես նաև կարող էր« շրջվել »ձախ ձեռքի համար: օգտագործել և գտնվում էր նոութբուքի պատյանում, որը շատ ավելի քիչ էր, քան իմ ներկա 10 ֆունտանոց լուծումը:

Արդիականացման ժամանակն էր:

Տարբերակ 1 Դիզայն Նախագծի նպատակները.

  • Ճկուն
  • Վերալիցքավորվող
  • Ձախլիկների և աջերի համար
  • Լարեր չկան
  • Թեթև

Ես ուզում էի, որ այս նոր դիզայնը ճկուն լիներ: Հսկիչ սարքերը պետք է փոփոխելի լինեն, առանց բաղադրիչների վերակազմավորման ամեն անգամ, երբ անհրաժեշտ է կատարել փորձարկում կամ փոփոխություն: Սա նշանակում էր, որ վերահսկիչի վրա պետք է լինի ինտերֆեյս `աշխատանքի« ռեժիմներ »ընտրելու համար: Յուրաքանչյուր կոճակի և ջոյսթիկի դիրքի համար անհրաժեշտ է ունենալ դրա հետ կապված տարբեր բանալիների կոդեր: Նույն վերահսկողությունները նույնպես պետք է օգտագործվեն տարբեր ռեժիմներ ընտրելու համար:

EZ-Key- ը իրական ժամանակում ծրագրավորվող չէր, ուստի հաջորդ լուծումը կլինի Arduino- ի նման վերահսկիչի օգտագործումը `ֆունկցիոնալությունը կառավարելու համար: EZ-Key- ը կօգտագործվի միայն Bluetooth- ով ստեղնաշարի համակարգչին փոխանցելու համար: Ես ընտրեցի Arduino Pro Mini- ն ՝ UNO- ի հետ անմիջական համատեղելիության պատճառով (որի հետ ես արդեն փորձ ունեի) և դրա կոմպակտ չափի պատճառով:

Ես չէի ուզում այս նոր տուփով մարտկոցներով զբաղվել, ինչպես դա արել էի Lapcade- ի նախորդի հետ, ուստի ես նախընտրեցի օգտագործել լիթիում պոլիմերային լիցքավորվող մարտկոց և լիցքավորիչ/մատակարարման տախտակ: Սա նշանակում էր, որ ես կարող էի պարզապես օգտագործել սովորական USB լիցքավորիչ: Դա նաև նշանակում էր, որ ես ստիպված չեմ լինի ամեն անգամ բացել պատյանը, երբ մարտկոցները մարում են: EZ-Key- ը և PowerBoost 500C- ն երկուսն էլ ունեն ցուցիչներ, որոնք անհրաժեշտ էր փոխանցել վերահսկիչի վերև ՝ զուգավորման կարգավիճակի և մարտկոցի թույլ նշման համար: Դիզայնին ավելացրի մի քանի LED, որպեսզի շահագործման ընթացքում կարողանամ օգտվողին արտացոլել այս հարմար կարգավիճակի ցուցանիշները:

Երբ իմ դիզայնի փորձարկումները հասունացան, ես պարզեցի, որ իմ մի քանի օրիգինալ գաղափարներն այնպիսին չէին, ինչպիսին ես սպասում էի: Օրինակ, PowerBoost- ի LBO ցուցիչը չի գործում այնպես, ինչպես սպասվում էր, երբ միացված է միկրոկոնտրոլերին: Այն թույլ կտա հոսանքը մարտկոցից անցնել ընդհանուր գետնի միջով, մինչ սարքը «անջատված» է կամ անջատված է, LBO լույսը լուսավորվելու և լուսավորված է մնալու: Ադաֆրուտի ֆորումի մյուս անդամները նույնպես բախվել էին այս խնդրին և առաջարկել էին ավելի լավ լուծում մարտկոցի լարման նմուշառումը անմիջապես անալոգային մուտքի վրա: Երբ լարումը նվազում է որոշակի մակարդակի, ժամանակն է օգտագործողին տեղեկացնել, որ մարտկոցը մոտ ժամանակներս կփակվի:

Քայլ 2: Այն, ինչ ձեզ հարկավոր է

Էլեկտրոնային մասերի ցուցակ

Սա վերածվեց բավականին բարդ կառուցվածքի: Պետք չէ օգտագործել նույն մասերը, ինչ ես օգտագործել եմ, բայց եթե փոխարինող մաս եք օգտագործում, համոզվեք, որ հասկանում եք, թե ինչպես է այն փոխազդելու մյուս սխեմաների և կոդի հետ: Թեև ես ուրախ եմ առաջարկներ առաջարկել, բայց ես չեմ կարող օգնել տարբեր կոնֆիգուրացիաների ծածկագրերի կամ խնդիրների լուծմանը:

1 Arduino Pro Mini 5V - Ինձ դուր է գալիս Pro- ն, քանի որ այն կոմպակտ է: Դուք կարող եք օգտագործել Uno- ի ցանկացած քորոց/ընդհատել համատեղելի տախտակ `տրամադրված ծածկագրով

1 Adafruit Bluefruit EZ -Key bluetooth HID - Ինչպես նկարագրված է վերևում, սա bluetooth HID- ն է, որը թույլ է տալիս ստեղնաշարի կոդերը փոխանցել ընդունող համակարգչին:

1 MCP23017 - i2c 16 մուտքի/ելքի նավահանգստի ընդլայնիչ - Այս չիպը օգտագործվում է Arduino- ին 16 լրացուցիչ մուտք ավելացնելու համար I2C հաղորդակցության արձանագրության միջոցով

1 Adafruit PowerBoost 500 + լիցքավորիչ - Սա Lapcade- ը սնուցելու և LiPo- ն լիցքավորելու էներգիայի կառավարման տախտակ է:

1 լիթիում պոլիմերային մարտկոց (ես օգտագործել եմ 2500 մԱ / ժ, բայց դուք կարող եք օգտագործել ավելի բարձր / ցածր հզորություն)

1 8 -Way Arcade Joystick - Խնդրում ենք տե՛ս ստորև բերված «մտքերը 2 -րդ տարբերակի համար» բաժինը `կապված ջոյստիկների հետ

9 Արկադային կոճակներ - գույների և էկրանի տարբեր տեսականի

2 լուսավորված ակնթարթային կոճակներ - ես օգտագործել եմ այս 2 կոճակները Կենտրոն 4 և 5 կոճակների համար և Adafruit- ից են ՝ կարմիր (կենտրոն 4), կապույտ (կենտրոն 5)

1 Լուսավորվող կողպեքի կոճակ Ես դա օգտագործել եմ Adafruit- ի հոսանքի կոճակի համար. Կանաչ

2 լուսադիոդներ, որոնք օգտագործվում են զուգավորման ազդանշանի և մարտկոցի լիցքավորման համար: Ես օգտագործել եմ երկու RadioShack մաս ՝ 2760270 և 2760271

1 16 x 2 LCD էկրան

1 I2C/SPI LCD ուսապարկ - Օգտագործվում է 16x2 էկրանին I2C հաղորդակցության համար:

1 Panel Mount USB երկարացման մալուխ - Օգտագործվում է PowerBoost- ի micro -b USB միակցիչը կաբինետի պատին երկարացնելու համար:

1 Adafruit Perma-Proto Լայն չափի Breadboard PCB-Անհրաժեշտ չէ, բայց շատ ավելի հեշտ է դարձնում մշտական տեղադրումը:

5 220 Օմ դիմադրություն

7 1K Ohm դիմադրիչներ

2 2.2K Օմ դիմադրիչներ

1 4.7K Օմ դիմադրություն

18 #10 Իգական բահի միակցիչներ - Արկադային կոճակների կոնտակտներին միանալու համար: Խորհուրդ է տրվում զոդման համար, քանի որ կոճակները վերջնականապես մաշվելու են:

22 չափիչ կապող մետաղալար - ես օգտագործել եմ ամուր միացման մետաղալար, այլ ոչ թե խրված, որպեսզի կարողանամ ազատ կանգնած մետաղալարեր կառավարել: Սա զուտ ցուցադրական նպատակներով էր և խորհուրդ չի տրվում, քանի որ պինդ մետաղալարերը փխրուն են և հակված են կոտրվելու:

Հետևյալ տարրերը չեն պահանջվում, բայց կդարձնեն հեգնանքն ավելի պարզ և, եթե բաղադրատոմսի վրա կենաց պատրաստեք, ավելի հեշտ կդարձնեն փոխարինումը.

  • IC վարդակից `28 պինանի 0.3" չիպերի համար
  • IC վարդակից `28 պինանի 0.6" չիպսերի համար
  • 0.1 "Իգական վերնագիր (առնվազն 1 36 փին վերնագիր)

Կաբինետի մասեր.

  • 3 12 x 24 1/8 դյույմանոց կեչու վահանակներ
  • 1 12 x 24 1/8 -րդ դյույմ հստակ ակրիլային վահանակ

Ֆայլեր:

  • Lapcade V1.xlsx - Ստորև նշված աղյուսակը, որն ունի միացման միացումներ:
  • LapcadeV1-code.zip - այս նախագծի համար գրված Arduino ծածկագիրը պարունակող փոստային ֆայլ:
  • Lapcade_v1.zip - պահարանի համար svg գծագրեր պարունակող ZIP ֆայլ:
  • LapcadeV1-Circuit_Diagram_Large.zip - ZIP ֆայլ, որը պարունակում է ստորև ներկայացված ցրտաշունչ սխեմայի բարձր լուծման տարբերակ:

Հղումներ դեպի ավելի շատ ռեսուրսներ

  • Adafruit Bluefruit EZ-Key Փաստաթղթեր
  • Adafruit PowerBoost 500 + Փաստաթղթեր
  • I2C/SPI LCD Ուսապարկի փաստաթղթավորում
  • MCP23017 I2C նավահանգստի ընդլայնման փաստաթղթավորում
  • Adafruit MCP23017 Arduino գրադարան

Քայլ 3. Վեհաժողով - Կառավարություն

Համագումար - Կառավարություն
Համագումար - Կառավարություն
Համագումար - Կառավարություն
Համագումար - Կառավարություն
Համագումար - Կառավարություն
Համագումար - Կառավարություն
Համագումար - Կառավարություն
Համագումար - Կառավարություն

Ես ուզում էի ունենալ շատ թեթև քաշի տուփ, որը նույնպես կարող էր ծեծի ենթարկել: Առանց նյութերի չափազանց էկզոտիկ լինելու, թեթև քաշը հավասար է բարակ և բարակ սովորաբար հավասար է փխրուն: Lapcade- ի հիմնական օգտվողը, ամենայն հավանականությամբ, կլինի իմ երիտասարդ որդին, ով սիրում է «սեղմել» կոճակները և ծայրահեղ ոգևորությամբ «նավարկել» ջոյսթիկը: Չնայած նրան, որ նա լավ չի կարողանում իրերը գցել, նա, այնուամենայնիվ, հասցրեց մի քանի ամսվա ընթացքում մաշել արդյունաբերական միկրո անջատիչները մեկ ջոյսթիկի մեջ:

Այս խնդիրը հաղթահարելու համար, և քանի որ Lapcade- ն ունի 20 դյույմ լայնություն, իմ դիզայնը ավելացրեց երկու ուղղահայաց կողիկներ, որոնք ամրացնում են վերևը և ձախը և աջ կողմերը: Չոր տեղադրման ժամանակ դիզայնը կարողացավ դիմակայել դրա վրա տեղադրված 70 կգ գրքեր: Սոսնձվելուց հետո, տուփը դարձավ նույնիսկ ավելի դիմացկուն: Կտրված նյութերը ստանալուց հետո ես սկզբում չամրացրեցի բոլոր վահանակները, որպեսզի համոզվեմ, որ դրանք աշխատում են: Հետո թեթև հղկեցի դրանք և փոշուց մաքրեցի օդը: Փայտի սոսինձ օգտագործեցի `կտորները միացնելու համար:

Ստորև բերված լուսանկարների գրքերը տեղադրված են եղել ՝ նոր սոսնձված կտորների վրա ճնշում գործադրելու համար, մինչև դրանք ամրացվեն: Երբ սոսինձը բուժվեց, ես եզրերը հարթեցի ավազով: Իմ դիզայնը միտումնավոր փոխհատուցեց վահանակները, որպեսզի դրանք մի փոքր կպչեն անկյուններում: Սա թույլ կտա ինձ հղկել հղկման ընթացքում `առանց հոդի մեջ շատ մտնելու:

Մակերևույթները մաքրելուց հետո ես կիրառեցի պոլիուրեթանային մի քանի շերտ ՝ թույլ տալով բուժվել վերարկուների միջև: Արդյունքում ստացվեց թեթև փայտե տուփ `ակրիլային ներքևի ծածկով: Սկզբում ես ամբողջովին թափանցիկ տուփ էի ուզում, բայց երբ նա ինձ ուղարկեց կեչիի «փորձարկման» մասերը, ես անմիջապես փոխեցի իմ կարծիքը: Դա ոչ միայն ավելի թեթև էր, այլև գեղեցիկ նետում դեպի կաբինետային խաղերի գաղափարը: Svg ֆայլերը ստորև են:

Խնդրում ենք նկատի ունենալ. Սա բազմաշերտ նկար է և յուրաքանչյուր շերտ ներկայացնում է մեկ կտոր նյութի կտրվածքների մեկ փաթեթ: Ձեր կտրիչին տպագիր ուղարկելիս համոզվեք, որ կտրելուց առաջ մնացած բոլոր շերտերը թաքնված են:

Մեկ այլ նշում. Երբ ես կազմեցի LCD էկրանին վերաբերող տարածքը, ես չափումներ կատարելու համար օգտագործեցի ձեռքի տակ գտնվող դիսփլեյը: Գծանկարը կազմելուց և հետագայում պատյանում մասերի տեղադրման միջև ընկած ժամանակահատվածում ես օգտագործել էի բնօրինակ LCD- ն մեկ այլ նախագծում և պատվիրել էի փոխարինել: Ինչպես պարզվեց, երկրորդի ամրացման անցքերը մի փոքր տարբերվում էին բնօրինակից և փաթաթվում էին ՝ չհաստատվելով: Այսպիսով, ձեր նյութը կտրելուց առաջ զգույշ եղեք, որ կրկնակի ստուգեք, որ ձեր ունեցած մասերը տեղավորվում են գծագրի անցքերին:

Երրորդ նշում. Ես USB լիցքավորման լարի անջատումը չեմ ներառել սկզբնական գծագրում, պարզապես այն պատճառով, որ վստահ չէի, թե որտեղ եմ ուզում տեղադրել այն, որպեսզի այն չխանգարի օգտագործմանը: Ես հետագայում կտրեցի դրա անցքերը ձախ կողմում, շատ մոտ, որտեղ ներքևում պատկերներում տեսնում եք «Lapcade» բառը: Տարբերակ 2 -ում լիցքավորման նավահանգիստը կլինի այլ դիրքում::)

Քայլ 4. Հավաքում - Էլեկտրոնիկա

Մոնտաժ - էլեկտրոնիկա
Մոնտաժ - էլեկտրոնիկա
Մոնտաժ - էլեկտրոնիկա
Մոնտաժ - էլեկտրոնիկա
Մոնտաժ - Էլեկտրոնիկա
Մոնտաժ - Էլեկտրոնիկա
Մոնտաժ - էլեկտրոնիկա
Մոնտաժ - էլեկտրոնիկա

Նախ եկեք նայենք վերևում ներկայացված միացման սխեմային:

Առաջին բանը, որ պետք է նշել այստեղ, այն է, որ հացահատիկի հզորությունն ու գրունտային ռելսերը: Կապույտ գծով ռելսերը հիմնավորված են (-), իսկ կարմիր գծով ռելսերը `հզորություն (+): Սա ստանդարտ է, բայց ես դա նշում եմ, քանի որ ջոյսթիկի (սև մետաղալարերի) ընդհանուր գիծը միացված է հոսանքին և ոչ թե գետնին: Ֆրիտզինգում ես ավելի շատ օգտագործեցի ջոյսթիկի մետաղալարերի գույնը, քան պայմանական գույնը և մտածեցի, որ դա կարող է որոշակի խառնաշփոթ առաջացնել, ուստի ամենալավն այն պարզապես հեռացնելն է:

Բաղադրիչի միացումներ

Փոխանակ փորձեմ այստեղ ամեն մի կապ երկար ձևով արտահայտել (Arduino- ի անալոգային կապը 0 անցնում է 220 ohm դիմադրիչով PowerBoost Bat քորոցին), ես ստեղծեցի աղյուսակ, որը պարունակում է բոլոր կապերը բաղադրիչի տեսանկյունից: Այսպիսով, աղյուսակի Arduino ներդիրում կտեսնեք APM A0 -> 2.2K OHM -> PB Bat և PowerBoost ներդիրում կտեսնեք PB BAT -> 2.2K OHM -> APM A0: Խնդրում ենք տե՛ս ստորև բերված ռեսուրսների բաժինը այս նախագծի հետ կապված բոլոր ֆայլերի համար:

Աղյուսակի վերաբերյալ մեկ այլ նշում այն է, որ որոշ սարքեր ցույց են տալիս միացման երկու սյունակ: Սա պետք է ցույց տա մեկից ավելի կապ կապի հետ: Օրինակ, ջոյսթիկի միացումներից յուրաքանչյուրը, բացի սովորական մետաղալարից, օգտագործում է ձգվող դիմադրություն `ապահովելու համար, որ նավահանգիստը երկարացնող սարքը ստանում է բարձր կամ ցածր պինդ ազդանշան: Jոյսթիք 2 -ի համար սա ցույց տալու համար դուք կտեսնեք երկու սյուն `մի մասը ջոյսթիք մետաղալարով MCP 21 փինին միացնելու համար, իսկ մյուսը` 21 քորոցից `դիմադրիչի միջոցով դեպի գետնին միացման համար: Համոզված եմ, որ սա ավելի լավ ձևեր կան փաստաթղթավորելու համար, բայց ես վախենում եմ, որ դուք խրված եք իմ այս եղանակով ինչ -որ բաներ անելու եղանակների վրա::)

Արկադային կոճակներից յուրաքանչյուրն ունի ընդհանուր (com), սովորաբար բաց (ոչ) և սովորաբար փակ (nc) կոնտակտ: Այս կոճակներից յուրաքանչյուրի համար ես օգտագործում եմ com և nc կապեր:

Քայլ 5: Կոդ

Կոդ
Կոդ

Առաջին հերթին, ես պետք է վարկ տամ այնտեղ, որտեղ պետք է: Լապկադը ծածկագրելու համար ես մեծապես ապավինեցի հետևյալ հոդվածին.

learn.adafruit.com/convert-your-model-m-keyboard-to-bluetooth-with-bluefruit-ez-key-hid Հատուկ շնորհակալություն Բենջամին Գուլդին լավ գրված և փաստաթղթավորված նախագծի համար:

Այսպիսով, այս նախագծի հիմքում ստեղնաշարն է: ԱՀ-ի տեսանկյունից Lapcade- ը պարզապես ստեղնաշար է, որը միացված է bluetooth- ով, ինչում էլ EZ-Key- ն այդքան լավ է: Այն վերցնում է բարդ Bluetooth արձանագրությունները, ժամկետները և ծածկագրերը և ներառում դրանք այնպես, որ arduino- ի հետ ինձ անհրաժեշտ է միայն այն ուղարկել հիմնական կոդերը: Դա անելու համար ես օգտագործեցի վերը նշված նախագծի ծածկագրերի քարտեզները և իմ սեփական զանգվածները `գործառնական ռեժիմներ ստեղծելու համար: Յուրաքանչյուր ռեժիմ փոխում է այն, ինչ նույն կոճակները սեղմում են Lapcade- ում և այն, ինչ ուղարկվում է համակարգչին: Կան երեք «ներկառուցված» գործառնական ռեժիմներ և դրանցից հետո բոլոր ռեժիմները կիրառման ռեժիմներ են:

Գործառնական ռեժիմներ

Հետևյալը ամփոփում է Lapcade- ի գործառնական ռեժիմները.

  1. Գործարկում - Այս ռեժիմը ստուգում է համակարգչի հետ կապը և սահմանում գործարկման փոփոխականներ: Եթե EZ-Key- ը զուգակցված չէ ԱՀ-ի հետ, այն փոխվում է iringուգավորման ռեժիմի
  2. Iringուգավորում - Այս ռեժիմում EZ- բանալին սպասում է համակարգչին զուգակցվելուն:
  3. Ռեժիմի ընտրություն - Այս ռեժիմը թույլ է տալիս օգտագործողին ընտրել, թե որ կիրառման ռեժիմն օգտագործի: Այս ռեժիմում համակարգչին հիմնական կոդեր չեն ուղարկվում: Կան նաև արագ ռեժիմների ընտրություն ՝ հիմնված նախորդ կիրառման ռեժիմի վրա: Օրինակ ՝ սեղմելով ռեժիմը, այնուհետև նվագարկիչ երկու կոճակը, երբ Mame player 1 ռեժիմում եք, պարզապես փոխում է ռեժիմը ՝ առանց էկրանին որոնելու և ընտրելու Mame Player 2:

Դիմումի ռեժիմներ

Դիմումի ռեժիմներն օգտագործվում են համակարգչին համապատասխան ստեղնային կոդեր ուղարկելու համար ՝ հիմնվելով այն բանի վրա, թե որ ծրագրում է օգտվողը: Օրինակ ՝ Kodi ռեժիմում գործողության 2 ստեղնը ուղարկում է «P», որը դադար է: Mame- ում նույն կոճակն ուղարկում է ձախ Alt ստեղնը: Եթե մեկը ցանկանում է օգտագործել վերահսկիչը Minecraft- ը համակարգչի համար խաղալու համար, ապա այն ամենը, ինչ պետք է արվի, ավելացնել համապատասխան զանգվածների քարտեզները:

Յուրաքանչյուր ծրագիր պետք է սահմանվի տվյալների 4 զանգվածներում:

  • ռեժիմ - Այս զանգվածը պարունակում է տեքստ, որը էկրանին կներկայացվի յուրաքանչյուր ռեժիմի համար: Էկրանի երկրորդ տողը օգտագործելու համար պարզապես զանգվածում տեղադրեք ~ որպես տողի ընդմիջում:
  • keyModes [14] - Այս մատրիցային զանգվածը պարունակում է համակարգչին ուղարկված հիմնական կոդերը: 14 տարրերից բաղկացած յուրաքանչյուր տող ներկայացնում է ստեղնաշարի քարտեզագրման առանձին կոճակներ:
  • keyModifiers [14] - Այս մատրիցային զանգվածը պարունակում է ստեղնաշարի կոդի փոփոխիչներ յուրաքանչյուր ստեղնաշարի համար, ինչպիսիք են ՝ հերթափոխի ստեղնը պահելը:
  • quickMode [3] - Այս մատրիցային զանգվածը պարունակում է ընթացիկ ռեժիմի արագ ռեժիմի ընտրության օրինակը:

Հիմնական գործողություն

Երբ համակարգը միացված է, այն անցնում է գործարկման ռեժիմի, որտեղ Bluetooth կապի կարգավիճակը ստուգվում և ցուցադրվում է օգտագործողին: Arduino- ն EZ-Key- ի կարգավիճակը ստանում է EZ-Key- ի L1 կապից իմպուլսները հաշվելուց և ժամանակավորելուց: Գործարկման ռեժիմի համար կան չորս ենթատեքստեր.

  • Paուգավորում - EZ- բանալին ակտիվ զուգավորման ռեժիմում է, որը սպասում է սարքին միանալուն:
  • Paուգտկված, բայց միացված չէ. EZ- բանալին նախկինում զուգակցվել է, բայց ներկայումս միացված չէ հյուրընկալող սարքին:
  • Iredուգտկված և միացված - EZ- բանալին զուգավորված է, և կապը հաստատվել է տանտիրոջ հետ: Այս պահին համակարգը կանցնի ռեժիմի ընտրությանը:
  • Անհայտ կարգավիճակ - EZ- բանալին վերադարձնում է անհայտ ծածկագիր կամ կա ազդանշանի միջամտություն, որն արտադրում է անհայտ ազդանշանի օրինակ: Համակարգը կպահի և կտեղեկացնի օգտագործողին: Պետք է վերագործարկել, եթե դա տեղի ունենա:

Եթե համակարգը զուգակցված է, բայց չի կարող միանալ ԱՀ -ին, ապա գործարկման ռեժիմում համակարգը կմնա միացման վիճակում: Եթե օգտագործողը սարքը միացնելիս պահում է փախուստի կոճակը, այն բաց կթողնի Bluetooth կապի ստուգումը և կանցնի ռեժիմի ընտրության:

Եթե համակարգը նախկինում չի զուգակցվել, ապա գործարկման ռեժիմին կհաջորդի զուգավորման ռեժիմը: Այս վիճակում համակարգը կհեռարձակի, որ այն հասանելի է զուգավորման համար: Երբ այն հայտնաբերվի և կցվի հյուրընկալողի կողմից, այն կանցնի ռեժիմի ընտրությանը: Ռեժիմի ընտրության մեջ սարքը կարող է անհամատեղելի լինել ՝ սեղմելով Գործողություն 1 կոճակը:

Ռեժիմի ընտրության ժամանակ վերև և ներքևի ջոյսթիկի գործողությունները ձեզ կտեղափոխեն LCD էկրանին առկա կիրառական ռեժիմների միջով: Ռեժիմներից մեկը ընտրելու համար սեղմեք մուտքագրման կոճակը (կենտրոն 5):

Կիրառման ռեժիմում հայտնվելուց հետո կոճակներից յուրաքանչյուրը և ջոստիկը կուղարկեն ստեղնաշարի կոդեր ՝ չորս զանգվածներում նշված ստեղնաշարի վրա, ինչպես նկարագրված է վերևում:

Արագ ռեժիմներ

Երբ կիրառման ռեժիմն ընտրված է, դրա արագ ռեժիմի սահմանումը սահմանվում է: Պարզ ասած ՝ Արագ ռեժիմներն այն Կիրառման ռեժիմներն են, որոնք ընտրվում են առաջին երեք կենտրոնական կոճակներով (Կենտրոն 1-3): Այս երեք կոճակները համապատասխանում են մատրիցի միջով գտնվող զանգվածի տարրին:

Օրինակ, ընթացիկ կազմաձևում, Mame- ը նվագարկիչ 1 ռեժիմում օգտագործելիս (ռեժիմ 4 կամ հինգերորդ ռեժիմը սահմանված է), այնուհետև սեղմելով ռեժիմի կոճակը, այնուհետև նվագարկիչի երկու կոճակը բեռնում է արագաչափ [4] [1] զանգվածի տարրը (Arduino- ն օգտագործում է 0 բազային զանգվածների ինդեքսավորում), որը 5. է, այնուհետ համակարգը անցնում է Application Mode 5 -ին, որը Mame, նվագարկիչ 2 է:

Քայլ 6: Գաղափարներ 2 -րդ տարբերակի համար

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

4-Way vs 8-Way Joystick-Մեկ այլ բան, որը պարզ դարձավ այն բանից հետո, երբ ես սկսեցի օգտագործել ջոյսթիկը, այն էր, որ հին խաղերը նախատեսված չէին օգտագործել 8 ուղղությամբ ջոյստիկներ: Օրինակն pac-man- ն է: Այս հսկիչը կառուցելուց ի վեր ես գտա, որ այնտեղ կան ջիստիկներ, որոնք ունակ են մեխանիկականորեն փոխվել 4-ից 8-ի: Այո, այդ մեկը ցուցակում է, և եթե պլանավորում եք դասական արկադային խաղեր խաղալ, ապա պարզապես բաց թողեք մեկը, որը փոփոխական է: Իհարկե, համոզվեք, որ դուք հաշվի եք առնում էլեկտրագծերի և ծրագրավորման փոփոխությունները ՝ հիմնվելով այն ջոյսթիկի վրա, որը դուք ավարտում եք: Ահա դասական արկադային կառավարման տարրերի մի քանի մատակարարներ.

  • https://www.ultimarc.com/controls.html
  • https://groovygamegear.com/webstore/index.php?main…

Աջ և ձախ «Flipper» կոճակներ - 2 -րդ տարբերակը հաստատապես մեկական կոճակ կավելացնի պահարանի ձախ և աջ կողմերում: Հնարավոր օգտագործումը կդառնա փինփլփ ֆլիպերների համար:

Այլ վերահսկիչներ. Քանի որ EZ-Key- ն ունակ է փոխանցել մկնիկի կոորդինատները, դա չպետք է չափազանց դժվար լինի:

Ներքին ծրագրավորում - Հաջորդ տարբերակը պետք է ունենա նոր կոնֆիգուրացիաներ ավելացնելու հնարավորություն ՝ առանց պատյանը բացելու: Ես ուզում էի սա ավելացնել 1 -ին տարբերակին, բայց դա պահանջում էր ավելի շատ ժամանակ և միջոցներ, քան ես ունեի:

Անլար մրցույթ
Անլար մրցույթ
Անլար մրցույթ
Անլար մրցույթ

Երկրորդ մրցանակ անլար մրցույթում

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