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

Mրագրավորվող ստեղնաշար. 5 քայլ (նկարներով)
Mրագրավորվող ստեղնաշար. 5 քայլ (նկարներով)

Video: Mրագրավորվող ստեղնաշար. 5 քայլ (նկարներով)

Video: Mրագրավորվող ստեղնաշար. 5 քայլ (նկարներով)
Video: 📺 SAMSUNG UE55RU7300UXUA ԿՈՒԵԼ Էկրանի հեռուստացույց / 55 դյույմ 2024, Հուլիսի
Anonim
Programրագրավորվող ստեղնաշար
Programրագրավորվող ստեղնաշար
Programրագրավորվող ստեղնաշար
Programրագրավորվող ստեղնաշար

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

Այս ստեղնաշարը հայտնաբերվում է որպես ստեղնաշար բոլոր հիմնական ՕՀ -ում, լրացուցիչ վարորդների կարիք չկա:

Պարագաներ

  • Պտտվող կոդավորիչ:
  • Շատ (կախված է ձեր կարիքներից) սեղմման կոճակներ:
  • Arduino Pro Micro, Arduino Leonardo կամ ցանկացած այլ dev board ՝ Atmega32U4 MCU- ով:
  • Հաղորդալար, զոդ, զոդող երկաթ և այլն:
  • (Ըստ ցանկության) Ստեղնաշարը սահելուց խուսափելու համար ինչ -որ ծանր հիմք կա, ես օգտագործում եմ հին 3.5 դյույմանոց սկավառակ

Քայլ 1: Էլեկտրական միացում

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

Ես ընտրեցի օգտագործել Arduino Pro Micro dev տախտակը Atmega32U4 MCU- ով, որն ունի 18 օգտագործելի թվային կապում:

Կոճակները և պտտվող կոդավորիչը միացնելու համար կապումներն ընտրվել են առանց որևէ հատուկ կարգի, սակայն որոշ բաներ պետք է նշել.

  1. Բոլոր թվային ընթերցման ունակությամբ կապումներն ունեն ներքին քաշքշուկներ, ինչը թույլ է տալիս մեղմել արտաքին քաշվող դիմադրիչները: Իհարկե, կոդը պետք է համապատասխանաբար թարմացվի, քանի որ այն ակնկալում է, որ կոճակները սեղմելիս քորոցի վիճակը ցածրից բարձրանում է:
  2. Encoder.h գրադարանի օրինակում նշվում է, որ կոդավորիչի լավագույն կատարումը հասնում է, երբ MCU- ին միացված երկու կապում ընդհատում են ընդունակ կապերը: Atmega32U4- ի անալոգային կապումներից շատերն ընդհատելու հնարավորություն չունեն:
  3. Resistշգրիտ քաշվող դիմադրության արժեքները մեծ նշանակություն չունեն, 1 կՎմ-ից մինչև 100 կՄ ինչ-որ բան լավ կաշխատի: Ավելի մեծ դիմադրության արժեքները թույլ են տալիս ավելի փոքր էներգիայի ցրում, բայց հանգեցնում են լարման փոփոխություններին դանդաղ քորոց արձագանքի: Պարզապես ընտրեք ինչ արժեքի դիմադրիչներ ունեք:
  4. Մեխանիկական կոդավորողներն ամենահուսալի բաները չեն `շփման մաշվածության և ցատկման պատճառով: Այդ իսկ պատճառով անհրաժեշտ է լավ դեբոնացման լուծում: Իմ ընտրած կոնդենսատորի արժեքները և ծածկագրերի հետաձգման ժամանակները, հավանաբար, լավագույն արդյունքները չեն ապահովի ձեզ համար: Այսպիսով, մի փոքր փորձեր են պետք: Կամ անցեք օպտիկական կոդավորիչի նման մի բանի, սակայն դրա գինը զգալիորեն ավելի բարձր է:

Քայլ 2: Հավաքում

Ժողով
Ժողով
Ժողով
Ժողով
Ժողով
Ժողով
Ժողով
Ժողով

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

Ես գտա հին 3.5 դյույմանոց սկավառակ, որն օգտագործվում էր որպես ստեղնաշարի հիմք, այն բավականին ծանր է և թույլ չի տալիս, որ աշխատասեղանը աշխատի սեղանի վրայով սահելիս (հակասայթաքող բարձիկները նույնպես օգնում են): Այն նաև ունի հարմար 3 մմ պտուտակավոր անցքեր, որոնցում ես պտուտակված պղնձի ամրացումներ և ամրացրեց տախտակը փոքր անկյան տակ:

Քայլ 3: Programրագրավորում

Կոդը գրված է Arduino IDE- ով: Ձեզ հարկավոր է տեղադրել 2 գրադարան.

  • Կոդավորող ՝ Պոլ Ստոֆրեգեն
  • Ստեղնաշար ՝ Arduino- ի կողմից

Atmega32U4- ի համար կազմելու համար պետք է նաև տեղադրել Arduino Pro Micro տախտակի ֆայլը, Sparkfun- ն ունի հիանալի ձեռնարկ, թե ինչպես դա անել:

Նախապես պետք է նշել մի բան ՝ զգույշ լինել ՝ ձեր կոդի մեջ «սեղմված ստեղները» չթողնելու համար: Դա պատահեց ինձ հետ, և MCU- ն անընդհատ սպամ էր ուղարկում մամուլի մի քանի հիմնական համադրություն: Միակ ճանապարհը, որտեղ ես տեղյակ եմ, թե ինչպես դա շտկել, բեռնիչ-բեռնիչը կրկին այրելն է MCU- ին: Եթե դուք ինձ նման ավարտվեք, կարող եք հետևել այս ուղեցույցին ՝ բեռնախցիկն այրելու համար, ձեզ հարկավոր կլինի մեկ այլ arduino տախտակ ՝ որպես ծրագրավորող օգտագործելու համար:

Հիմնական հանգույցում MCU- ն նախ կարդում է յուրաքանչյուր կոճակի վիճակը, եթե հայտնաբերվում է LOW- ից HIGH- ի փոփոխություն, ապա կատարվում է keyboard_shortcut (i) գործառույթը: I փոփոխականը i- ն է սեղմված կոճակի id- ն, սեղմման կոճակի ընդհանուր թիվը սահմանվում է ALL_BUTTONS- ով (իմ դեպքում `15): Երբ կատարվում է, keyboard_shortcut (i) ուղարկում է CTRL+SHIFT և այնուհետև նամակ, որը քարտեզագրված է կոճակի id- ում: արդեն լռելյայն օգտագործվում է Windows10- ում (այս դեպքում ՝ նոր թղթապանակ ստեղծելու համար): Ահա Windows- ի բոլոր կանխադրված դյուրանցումների ցանկը: Կարճ ուշացումից հետո MCU- ն ազդանշան է ուղարկում ՝ արձակելու բոլոր ստեղները և գործառույթը դուրս է գալիս հիմնական հանգույց:

Բոլոր կոճակները ստուգելուց հետո MCU- ն ստուգում է, արդյոք պտտվող կոդավորողի դիրքը փոխվել է, և եթե այն փոխվում է, keyboard_shortcut (i) - ն կատարվում է եզակի id- ով:

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

Եթե debugFlag- ը սահմանել է 1 վրիպազերծման հաղորդագրություն, UART- ի միջոցով ուղարկվում է սերիական մոնիտոր:

Քայլ 4: Դյուրանցումների կազմաձևում

Դյուրանցումների կազմաձևում
Դյուրանցումների կազմաձևում
Դյուրանցումների կազմաձևում
Դյուրանցումների կազմաձևում

Այն, ինչ անում է յուրաքանչյուր դյուրանցում, կախված է նաև ձեզանից, մենք բոլորս ունենք տարբեր նախասիրություններ: Ես կներկայացնեմ այն դյուրանցումները, որոնք ես ինքս ինձ համար կարգավորել եմ որպես օրինակ: Ես օգտագործում եմ Linux Mint 19.3 xfce4 աշխատասեղանի կառավարիչով, այնպես որ իմ օրինակները հիմնականում ներառում են bash սցենարներ, բայց ես ցույց կտամ մի քանի հիմնական օրինակներ նաև Windows 10 -ի համար:

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

Ներքևի ավելի փոքր 6 կոճակները նախատեսված են այնպիսի ծրագրեր սկսելու համար, ինչպիսիք են վեբ զննարկիչը կամ ֆայլերի կառավարիչը: Այս ծրագրերից մի քանիսը կոչվում են start_only_one_app.sh սցենարից, որը ստանում է բոլոր սկսած ծրագրերի անունները և որոնում այն ծրագիրը, որը ցանկանում եք սկսել: Եթե ծրագրի պատուհանն արդեն գոյություն ունի, այն կենտրոնանում է, այլապես հայտի նոր օրինակ է սկսվում:

Այլ սցենարներ.

  • 2nd_display_control.sh - միացնում/անջատում է երկրորդ մոնիտորը:
  • moon_lamp.sh - միացնում/անջատում է Լուսնի լամպս:
  • pc_load.sh - ստեղծում է ծանուցման փուչիկ ընթացիկ պրոցեսորի և գրաֆիկական պրոցեսորի օգտագործման և ջերմաստիճանի հետ:
  • shutdown.sh - համակարգչային անջատումը սկզբնավորում է 1 րոպե ուշացումով և ստեղծում է ծանուցման փուչիկ, որի մեջ ցուցադրվում է մնացած ժամանակը:
  • spec_vpn.sh - միանում է OpenVPN- ի որոշակի սերվերին կամ եթե արդեն գոյություն ունի կապ, անջատվում է սերվերից:
  • shortcut_controll.sh - ընդունում է հրամանը (գումարած, մինուս, ներդիր, փակում) որպես փաստարկ, հայտնաբերում է այն պատուհանը, որն այժմ կենտրոնացած է, և եթե կոնկրետ ծրագիր ակտիվ է գտնում, կատարում է հսկողության գործողություն: Օրինակ ՝ տեքստային խմբագրիչում նոր ներդիր բացելու համար կանխադրված դյուրանցումը «CTRL+N» է, իսկ xfce տերմինալում ՝ «CTRL+T», ուստի այս սցենարը թույլ է տալիս բացել նոր ներդիր վեհ և տերմինալում ՝ միևնույն կոճակով:

Պտտվող կոդավորիչի առաջին գործառույթը ձայնի վերահսկումն է, երկրորդը `պատուհանի ակտիվ մեծացումը վերահսկել shortcut_controll.sh- ի միջոցով:

Windows OS- ի համար կարող եք ծրագրերի դյուրանցումները քարտեզագրել ծրագրի հատկությունների պատուհանի միջոցով, ինչպես ցույց է տրված երկրորդ նկարում: Ուրիշ որևէ բանի համար կցանկանաք օգտագործել AutoHotkey- ը: Դա Windows- ի համար ավտոմատ գրելու լեզու է:

AHK շարահյուսության մի քանի պարզ օրինակ.

Volավալի հսկողություն

^+t:: Ուղարկել {Volume_Up}

վերադարձ

^+v:: Ուղարկել {Volume_Down}

վերադարձ

Փակել ակտիվ պատուհանը

^+ը:: WinGetTitle, Title, A

PostMessage, 0x112, 0xF060,,, %Title %

վերադարձ

; Անջատիչ համակարգիչ

^+b:: Գործարկել անջատումը /ներ

Քայլ 5: Բարելավումներ

Բարելավումներ
Բարելավումներ

Որոշ հնարավոր բարելավումներ.

  • Ավելի լավ որակի սեղմիչ կոճակներ:
  • PCB- ի նախատիպը բավականին ճկվում է, երբ սեղմվում են կոճակները:
  • RGB լուսավորությունը փոխում է գույնը ՝ կախված այն բանից, թե որ գործառույթին է դրված պտտվող կոդավորիչը:
  • Ավելի շատ կոճակներ (օգտագործեք IO ընդլայնիչ IC):
  • Ավելի լավ պտտվող կոդավորիչ (կամ ավելի լավ հեռացման լուծում):

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