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

Arduino ստեղնաշարի Joystick Extender Box և ձայնային կարգավորիչ Deej- ի միջոցով. 8 քայլ
Arduino ստեղնաշարի Joystick Extender Box և ձայնային կարգավորիչ Deej- ի միջոցով. 8 քայլ

Video: Arduino ստեղնաշարի Joystick Extender Box և ձայնային կարգավորիչ Deej- ի միջոցով. 8 քայլ

Video: Arduino ստեղնաշարի Joystick Extender Box և ձայնային կարգավորիչ Deej- ի միջոցով. 8 քայլ
Video: Joystick Demo in Arduino 2024, Նոյեմբեր
Anonim
Arduino ստեղնաշարի Joystick Extender Box և ձայնային կարգավորիչ ՝ օգտագործելով Deej
Arduino ստեղնաշարի Joystick Extender Box և ձայնային կարգավորիչ ՝ օգտագործելով Deej

Tinkercad նախագծեր »

Ինչու

Որոշ ժամանակ ես ցանկանում էի իմ ստեղնաշարի վրա մի փոքր ջիստիկ ավելացնել `ինտերֆեյսի տարրերը վերահսկելու կամ խաղերի և սիմուլյատորների այլ փոքր առաջադրանքներ (MS Flight Sim, Elite: Dangerous, Star Wars: Squadrons և այլն):

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

Windows- ի ներկառուցված աղբյուրի խառնիչը «լավ» է, բայց ցավ է առաջացնում խաղի մեջ էկրաններ և մկնիկով կառավարող սահիկներ փոխելու համար: Ստեղծված ստեղնաշարի կառավարման տուփ ունենալը ճանապարհ էր թվում: Deej- ը իմ գտած լուծումն է:

Ինչպես

Վերջերս ես սովորեցի Arduino- ի մասին, և reddit- ում հանդիպեցի deej նախագծին: Կարծես թե այս երկու խնդիրներն էլ կլուծեր մեկ հարմար փաթեթում: Եվ դա թույլ կտար նախագծել և տպել հիանալի 3D պատյան:

Ի՞նչ է դեժը:

(կայքից) deej- ը ** բաց կոդով ապարատային ծավալի խառնիչ է Windows և Linux համակարգիչների համար: Այն թույլ է տալիս օգտագործել իրական կյանքի սահիչներ (ինչպես DJ- ը) ՝ ** աննշանորեն վերահսկելու տարբեր ծրագրերի ձայնը ** (օրինակ ՝ երաժշտական նվագարկիչ, խաղ, որը խաղում եք և ձայնային զրույցի նիստ), առանց դադարեցնելու դու անում ես.

Իմ տարբերակը

Տուփը փոքր պահելու համար ես ընտրեցի բռնակներ (պտտվող գծային պոտենցիոմետր (կաթսաներ = դիմադրիչներ)), այլ ոչ թե սահիչներ: Ֆունկցիոնալ առումով նրանք աշխատում են նույնը: Ներկայիս և հանրաճանաչ deej նմուշները չեն ներառում ջոյստիկ, ուստի սա մի փոքր դիզայնի հիբրիդ կլինի: Հակառակ դեպքում, դա բավականին ուղիղ կառուցվածք է:

Դեյը կաշխատի Arduino Nano- ի, Pro Micro- ի կամ Uno- ի հետ, սակայն Nano- ն և Pro Micro- ն «պաշտոնապես առաջարկվում են» մշակողի կողմից: Ես ընտրեցի Arduino Pro Micro- ն, քանի որ ցանկանում էի ջոյսթիկը, իսկ Arduino Joystick Library- ն աջակցում է դրան: Ես կարող եմ նաև օգտագործել Arduino ստեղնաշարի գրադարանը, երբ ցանկանում եմ օգտագործել մեդիա ստեղնաշարի անջատման գործառույթը (այլ ոչ թե «փափուկ ձայնը») ջոյսթիկի կոճակով, բայց դա ճանապարհից ավելի հեռու է:

Քայլ 1: Պաշարներ

Պարագաներ
Պարագաներ
Պարագաներ
Պարագաներ
Պարագաներ
Պարագաներ

Տուփը

Ներբեռնեք STL ֆայլերը (նախագծված են Tinkercad- ում).

  • Փակ ֆայլեր Prusa- ում (https://www.prusaprinters.org/)
  • Thingiverse (շուտով)

Սարքավորումներ (արտադրական միավոր)

  • 1x Arduino Pro Micro
  • 4x 10k պտտվող (կոճակ) պոտենցիոմետրեր (ոչ պտտվող կարգավորիչներ, օգտագործեք ամաններ)
  • 1x Arduino KY-023 Joystick
  • 5 ֆտ գրություն cat5 ցանցի մալուխ
  • 1x USB A- ից USB B միկրո մալուխ (USB A- ն մեծ քառակուսի միակցիչն է, USB B micro- ն այն է, ինչ Arduino Pro Micro- ում է)
  • 1x 5 մմ կարմիր LED
  • 1x 220 ohm դիմադրություն

Ես ունեի մի քանի լրացուցիչ մասեր, այնպես որ ես մտածեցի, որ ես կառուցելու եմ զարգացման միավոր `իրերը փորձարկելու համար: Ուղղակի իրերը տախտակի վրա միացնելը դյուրին դարձրեց վերջնական բանը պատկերացնելը:

  • 1x Arduino Pro Micro
  • 4x 10k պտտվող (կոճակ) պոտենցիոմետրեր (ոչ պտտվող կարգավորիչներ, օգտագործեք կաթսաներ)
  • 1x ակնթարթային կոճակի անջատիչ (կոշտ վերակայման անջատիչ)
  • 1x USB A- ից USB B միկրո մալուխ (USB A- ն մեծ քառակուսի միակցիչն է, USB B micro- ն այն է, ինչ Arduino Pro Micro- ում է)
  • ցատկող լարերի տեսականի
  • տախտակ
  • 1x 5 մմ կարմիր LED
  • 1x 220 ohm դիմադրություն

Քայլ 2: Շրջանակը

Պարիսպը
Պարիսպը
Պարիսպը
Պարիսպը
Պարիսպը
Պարիսպը
Պարիսպը
Պարիսպը

Դիզայնը

Ինձ դուր եկան deej համայնքի պատկերասրահում նկարագրված որոշ այլ նմուշներ, ուստի իմը դուր եկած առանձնահատկությունների հիման վրա:

  • Հեշտ է նախագծել և տպել
  • Չխանգարել իմ աշխատասեղանի մյուս ծայրամասային սարքերի վրա
  • Մի օգտագործեք պտուտակներ կամ ամրացումներ պարիսպը ամրացնելու համար
  • Նմանատիպ դիզայնի գեղագիտություն ստեղնաշարի հետ

Ես նախագծել և տպել եմ երկու նախատիպ, նախքան այս վերջնական դիզայնին լուծելը: Ինձ դուր է գալիս ունենալ ֆիզիկական տարբերակ, որի հետ ես կարող եմ խաղալ այն տարածքում, որտեղ ես այն օգտագործում եմ, քանի որ դա ինձ ավելի լավ պատկերացում է տալիս, թե ինչպես է աշխատելու վերջնական օբյեկտը:

Ես կարճ ժամանակով սկսեցի նախագծել Fusion360- ում, բայց չգիտեմ դա, ինչպես Tinkercad- ը, այնպես որ անցավ ու աշխատեց այնտեղ:

Քանի որ ես ուզում էի առանց պտուտակների դիզայն, ես ստեղծեցի բնադրման տուփ: Առաջին նախատիպն ուներ բարակ կափարիչ և խորը տուփ ամեն ինչի համար: Երկրորդ դիզայնը փոխեց այն խորը կափարիչով և մակերեսային ներքևի տուփով: Այն պետք է պահեր միայն Arduino Pro Mini- ն, այնպես որ իսկապես մեծ լինելու կարիք չուներ: Ներառում էր նաև դաջված պատկերակները:

Երրորդ դիզայնը փոխվեց այնպես, որ տեղավորվի իմ ստեղնաշարի կողքին գտնվող տարածության մեջ:

Տպագրությունը

Ես տուփը տպեցի PLA- ում ՝ ծրագրավորելով թել / շերտ փոխանակում Սևից Կարմիր կափարիչի համար, որտեղ պատկերակները պարզապես կսկսեին տեսանելի լինել, և նորից կվերադառնամ Սև ՝ կափարիչի մնացորդին:

Մի խնդիր

Այս ամբողջ ընթացքում ջոյսթիքերի տեղադրումը խնդիր էր: Նույնիսկ երրորդ նախագծում, փայտը մի տեղում բախվում է ամրակներին: Հաջորդ կրկնությունը կունենա ավելի լավ բացեր: Ես կարող էի ավելի շատ աշխատել դիզայնի վրա, բայց ցանկանում էի անցնել հաջորդ փուլին ՝ տեղադրմանը:

Քայլ 3: Շղթան

The Circuit
The Circuit
The Circuit
The Circuit
The Circuit
The Circuit

Էլեկտրամոնտաժման ամենավատ աշխատանքը

Լավ, սա իմ առաջին լիարժեք Arduino նախագիծն է: Այո, ես նախկինում ինչ -որ բաներ եմ արել գրատախտակների վրա և օգտագործում եմ մեկը `դրա զարգացման տարբերակը կառուցելու համար, բայց ինչ վերաբերում է իրականում սարքելուն և հավաքելուն, սա իմ առաջինն է: Այսպիսով, իմ էլեկտրագծերը նման են խայտառակության: Ահա, դա ճանապարհից դուրս է:)

Թարմացում. Այդ ժամանակից ի վեր ես կառուցել եմ ևս մեկը, և այնտեղ էլեկտրագծերը շատ ավելի գեղեցիկ են: Դիտեք նկարները:)

Արտադրական միավոր - Ի՞նչ է կատարվում ուր

Arduino Pro Micro- ն փոքրիկ տախտակ է և տեղավորվելու է հիմքի կաղապարված հատվածում: Կափարիչները և բռնակները տեղավորվում են կափարիչի համապատասխան անցքերում: Բայց ոչինչ մի ամրացրեք, քանի դեռ չեք ստացել եռակցման մրցույթը:

Հաղորդալարեր

Ես չունեի որևէ պատշաճ միացման մետաղալար, բայց ունեի կոշտ միջուկի cat5 ցանցի մալուխի մնացորդային գլան, ուստի դա այն էր, ինչ ես օգտագործեցի: Դա մի փոքր ավելի կոշտ և գուցե ավելի փխրուն է, քան շղթայական լարերը, բայց այն աշխատում է:

Բաղադրիչները տեղադրելով իրենց վերջին ամրացման դիրքի մոտավորությամբ, ես գնահատեցի հեռավորությունը յուրաքանչյուր մետաղալարերի համար, մի փոքր ավելացրեցի թուլության և այլնի համար, այնուհետև կտրեցի և կտրեցի մետաղալարը: Ես շատ թուլություն թողեցի:

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

Անհատական զամբյուղ: անալոգային գծերը (դեղին) անցնում էին A0 - A3 կապումներին: Joystick տողերը (նարնջագույն), որոնք նույնպես անալոգային են, անցել են 8 և 9. I/O կապերին: Դրանք պետք է նշանակվեն որպես անալոգ Arduino ծածկագրում `որպես A8 և A9:

Joyոյսթիկի անջատիչի քորոցը (Կապույտ) վազեց դեպի 7 -րդ կապը: Սա կոդի թվային փին կլինի:

Մեկուսացում

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

Երկրորդ տարբերակ

Վերը նշված վերջին երկու պատկերները ցույց են տալիս հաջորդ արկղը, որը ես կառուցում եմ: Այս մեկը կունենա 5 բռնակ և մեկ ակնթարթային սեղմիչ `համրերի համար: Ոչ մի ջիստիկ: Նույն չափի տուփ:

Քայլ 4: Սարքաշարի ավարտում

Սարքաշարի ավարտում
Սարքաշարի ավարտում

Մինչև Joystick- ը տեղադրելը, ես հասկացա, որ դրա տախտակի և Pro Micro- ի վրա թողած կապում վերնագրերի միջև մեծ հեռավորություն չկա:

Քորոցների վերնագրերի մի փոքր զգույշ թեքումից և տաք հալվող սոսինձի (մեկուսացման համար) կրկին կիրառելուց հետո պարիսպը պատշաճ կերպով փակվեց:

Կաթսաների տեղադրումը կատարվեց առանց խոչընդոտների:

Կրկին լարերով

Պինդ միջուկի լարերը մի փոքր կոշտ են, և դրանք շատ անգամ ճկվելու դեպքում կարող են փխրուն լինել, ուստի դրանք զգուշորեն ծալեք (առանց սուր անկյունների) առկա տարածության մեջ: Իմից մի քանիսը չափազանց երկար էին և պահանջում էին մի փոքր լրացուցիչ ծալք:

Երբ ամեն ինչ իր տեղը դնի, պարզապես տեղադրեք հիմքը գագաթին, և դուք կավարտեք ապարատը…:

Բայց սպասեք, դեռ ավելին կա

Իհարկե, մի քանի շաբաթ օգտագործելուց հետո ես որոշեցի, որ ինձ անհրաժեշտ է ցուցիչ, որը թույլ կտա ինձ իմանալ, թե ինչ կարգավիճակում է փափուկ ծածկագրված MUTE գործառույթը:

LED ֆունկցիոնալությունը ավելացնելու համար ծածկագիրը խմբագրելուց հետո (տե՛ս հաջորդ բաժինը), ես արագորեն զոդեցի LED- ն / լարերը / ռեզիստորը և միացրեցի դրանք տախտակին:

Ես ավելի շատ ժամանակ անցկացրեցի պատյանի վերևի հատվածը փորելու համար, քանի որ չէի ցանկանում փչացնել վերին հատվածը: Ես նշեցի կենտրոնական կետը, փորեցի այն, այնուհետև ձեռքով պտտեցի փորվածք ՝ փոսը պատրաստելու համար:

Լրացուցիչ մանրակրկիտ զետեղումը մաքրեց փոսը և ապահովեց գեղեցիկ սեղմված սեղմում `ապահովելու համար, որ LED- ը շատ դուրս չի ցցվում վերին մակերևույթից:

Քայլ 5: Theրագրակազմ

Րագրակազմը
Րագրակազմը
Րագրակազմը
Րագրակազմը
Րագրակազմը
Րագրակազմը

Ակնարկ

Այսպիսով, սա երկու մասից բաղկացած գործընթաց է:

  1. Ստացեք և հասկացեք, թե ինչպես է աշխատում Deej- ը և խմբագրեք Config.yaml ֆայլը
  2. Խմբագրեք Arduino ծածկագիրը ՝ համապատասխան սարքավորումներին և ցանկալի հատկություններին
  3. Ձեռք բերեք Arduino Joystick գրադարանը

Իմ դեպքում ես ուզում էի այս հատկությունները.

  • Բռնակներ, որոնք վերահսկում են մակարդակները (խոսափող և ելք)
  • Անջատիչ անջատիչ
  • Axisրագրի օգտագործման համար Windows- ի կողմից ճանաչված 2 առանցքային ջոյստիկ

Մակարդակներ

Deej- ն գրեթե հոգ է տանում առաջին կետի մասին, երբ այն գալիս է: Ես չեմ շտկել այս գործառույթը

Անջատիչ անջատիչ

Ես վաղուց էի որոշել, որ պատրաստվում եմ Joystick- ում սեղմիչ/անջատիչ օգտագործել որպես ֆունկցիոնալ անջատման կոճակ:

Երբ ուսումնասիրեք ծածկագիրը, կտեսնեք, որ ես ընտրել եմ (սկզբնապես) «փափուկ» ձայնը օգտագործելու համար. Երբ կոճակը սեղմված է, MIC- ի ձայնը զրոյի է հասցվում (և LED- ը լուսավորված է): Երբ այն նորից սեղմվում է, MIC- ի ձայնը վերադառնում է իր նախկին կարգավորմանը և LED- ն մարում է:

Ի վերջո, ես կանդրադառնամ Arduino- ի ստեղնաշարի գրադարանի իրականացմանը `երկարաձգված մեդիա ստեղնաշարի ծածկագրի միջոցով Անջատելու կարգավիճակը փոխարկելու համար:

Jոյստիկի իրականացում

Սա պահանջում է օգտագործել Arduino Joystick գրադարանը `ապահովելու համար, որ ջոյսթիկը Windows- ի և, հետևաբար, ցանկացած խաղի/հավելվածի կողմից ճանաչվի որպես HID սարք:

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

Մնում էր նույնականացնել X/Y կապանքները, կարդալ դրանց վիճակը և ուղարկել այն Joystick գրադարանին: Arduino- ն Windows- ում հայտնվեց որպես Լեոնարդո և պատշաճ կերպով կազմաձևված էր որպես Joystick սարք:

Ես կարողացա այն տեղադրել Elite Dangerous- ում, իմ առկա HOTAS- ի կարգավորման հետ մեկտեղ, և Joystick- ը պատշաճ կերպով վերահսկի իրերը և չհակասի HOTAS- ի հետ: Այն լավ է աշխատում նաև «Աստղային պատերազմներ. Ջոկատներ» ֆիլմում:

Իմ Joystick կարգավորմամբ աշխատող ֆայլերը

Ես վերբեռնել եմ իմ ընթացիկ (հոկտ. 2020) ֆայլերը Codepile:

  • Arduino կոդը (.ino ֆայլ)
  • Deej config.yaml

Քայլ 6: Վերջ

Վերջ
Վերջ

Դե, այս մեկն ավարտված է: Այն աշխատում է, և ես բավականին գոհ եմ, թե ինչպես է այն միավորվել: Եվ ես մի փոքր ավելին սովորեցի ապարատային դիզայնի, ինտեգրման և Arduino ծրագրավորման մասին:

Քայլ 7: Լրացում..թում..թում

Լրացում..դում..դում
Լրացում..դում..դում

VLC - այդ հիանալի աուդիո և վիդեո նվագարկիչն ունի մի փոքր տարօրինակություն, որտեղ ձայնի մակարդակը, երբ արտաքին վերահսկվում է, ցատկում է 0% -ից մինչև 27%: Դա տեղի չի ունենում, երբ մակարդակը ճշգրտվում է ներծրագրային ինտերֆեյսի ձայնի հսկողության միջոցով, միայն Deej- ի նման արտաքին վերահսկիչներով:

Deej մշակողը արագ գտավ In-VLC լուծում, որը կատարում է աշխատանքը, տես վերևի պատկերը.

«… Եթե ցանկանում եք անջատել այս« Հետագծում »վարքագիծը, կարող եք դա անել ՝ փոխելով VLC- ի աուդիո ելքի մոդուլը: Ես այստեղ օգտագործել եմ DirectX- ը: Փոփոխությունն ուժի մեջ մտնելու համար պետք է վերագործարկել VLC- ն: (դեռ ունենալ Windows- ի աուդիո նիստ և կարողանալ վերահսկել այն deej- ի միջոցով, սա պարզապես կկանխի VLC- ի ձայնի սանդղակի տեղափոխումը դրա հետ)"

Քայլ 8: Լրացուցիչ ռեսուրսներ

Լրացուցիչ ռեսուրսներ
Լրացուցիչ ռեսուրսներ

Գտնվել է հզոր Goog- ի միջոցով, որը նշված չէ հատուկ կարգով…

  • Arduino Joystick Library (v2) - անհրաժեշտ է ջոյսթիկը ինտեգրելու համար
  • Sparkfun Pro Micro կապի ուղեցույց - լավ ռեսուրս այս Arduino- ի մասին
  • deej - կոճակները քշող ծրագրակազմ
  • USB միակցիչների տեսակները. Ո՞վ գիտեր, որ այդքան շատ տարբերակներ կան:
  • Arduino Pro միկրո անալոգային Pinouts
  • Arduino Leonardo Gaming Joystick - Լեոնարդոն նման է Pro Micro- ին, միայն ավելի մեծ
  • Arduino Pro Micro (Clone) նավահանգիստը չի հայտնաբերվել (լուծում). Երբ ձեր Micro Pro- ն աղյուս եք դնում (ես դա արեցի)
  • Arduino Leonardo/Micro as a Game Controller/Joystick
  • Մուլտիմեդիա ստեղն օգտագործելու օրինակ `անջատելու համար` օգտագործելով HID Project գրադարանը
  • HID libraryրագրի գրադարանի օրինակ կոդ ՝ մեդիան դադարեցնելու / նվագարկելու համար
  • Մեկ այլ կոդի օրինակ, որը ցույց է տալիս gamepad վերահսկիչը:
  • ArduinoGamingController_updated - Joystick գրադարանի օգտագործման լավ ծածկագրի նկարագրություն
  • LED Resistor հաշվիչ իրեր - պարզելու համար, թե որքան մեծ ռեզիստոր է անհրաժեշտ ձեր նախագծում
  • Սրբապատկերների գրադարան - flaticon.com - բռնակների վերևում օգտագործված պատկերների աղբյուր
  • Մեկ այլ Resistor Color Decoder - կտտացրեք գույնի և ալտի վրա:

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