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

Arduino PS/2 դեպի USB ադապտեր. 7 քայլ (նկարներով)
Arduino PS/2 դեպի USB ադապտեր. 7 քայլ (նկարներով)

Video: Arduino PS/2 դեպի USB ադապտեր. 7 քայլ (նկարներով)

Video: Arduino PS/2 դեպի USB ադապտեր. 7 քայլ (նկարներով)
Video: Ինչպե՞ս PS4- ը միացնել նոութբուքի համակարգչին: HDMI- ից USB 2024, Նոյեմբեր
Anonim
Arduino PS/2 USB ադապտեր
Arduino PS/2 USB ադապտեր
Arduino PS/2 USB ադապտեր
Arduino PS/2 USB ադապտեր

Երբևէ ցանկացե՞լ եք օգտագործել ձեր հին PS/2 ստեղնաշարը ձեր նոութբուքի կամ նոր աշխատասեղանի հետ և պարզել եք, որ դրանք այլևս չունեն PS/2 նավահանգիստներ: Եվ հետո, ոչ թե գնեք էժան PS/2 USB ադապտեր գնելու, ինչպես սովորական մարդը, ցանկանում էր օգտագործել ձեր Arduino- ն որպես PS/2 USB USB ադապտեր: Հետո ճիշտ տեղում ես եկել:)

Արդար նախազգուշացում նախքան դրա մեջ մտնելը: Երբ դուք օգտագործում եք ձեր UNO/Mega- ն որպես USB-HID սարք (Չսահմանափակվելով ստեղնաշարով, այն կարող է լինել նաև մկնիկ, ջիշտիք և այլն), ժամանակավորապես կկորցնեք նրա գործառույթները որպես Arduino: Դրանով ես նկատի ունեմ, որ դուք չեք կարող օգտագործել սերիական հաղորդակցությունները և չեք կարող այն ծրագրավորել USB- ի միջոցով: Դա պայմանավորված է նրանով, որ մենք ավելորդ գրելու ենք որոնվածը նրա USB ինտերֆեյսի չիպի վրա (փոքրիկ տղան ՝ USB պորտի մոտ ՝ Atmega8U2 և 16U2 ՝ կախված վերանայումից): Բայց մի անհանգստացեք, որ դա իրականում չեք կարող աղյուսացնել ձեր UNO/Mega- ին ՝ դա անելով միշտ շրջելի:

Նաև պատահականորեն, եթե ունեք Arduino, որն արդեն ունի USB-HID հնարավորություն (Arduino Pro Micro կամ Լեոնարդո և այլն, Google- ում որոնեք), կարող եք մոռանալ, որ երբևէ գոյություն ունեցող այս ուսանելի ծրագիրը գնացեք անմիջապես այստեղ ՝ ձեզ փրկելու դժվարություններից: կատակ!

Պարագաներ

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

    • Arduino UNO կամ Mega
    • PS/2 Ստեղնաշար
    • Անկության դեպքում լրացուցիչ Arduino կամ ցանկացած տեսակի USB ծրագրավորող (USBasp և այլն) կարող է օգտակար լինել:
  • Ծրագրային ապահովում

    • Atmel FLIP
    • PS2KeyAd Advanced գրադարան Arduino IDE- ի համար

Քայլ 1: Լարերի տեղադրում և կարգավորում

Հաղորդալարերի տեղադրում և տեղադրում
Հաղորդալարերի տեղադրում և տեղադրում
Հաղորդալարերի տեղադրում և տեղադրում
Հաղորդալարերի տեղադրում և տեղադրում
Հաղորդալարերի տեղադրում և տեղադրում
Հաղորդալարերի տեղադրում և տեղադրում
Հաղորդալարերի տեղադրում և տեղադրում
Հաղորդալարերի տեղադրում և տեղադրում

Կախված իրավիճակից, դուք կարող եք կամ ճեղքման տախտակ գտնել, կամ մայր տախտակից փրկել հին նավահանգիստը (իմ երկրորդ փորձը), կամ եթե հատկապես տրամադրված եք, կարող եք ընդհանրապես կտրել մանուշակագույն վարդակը և մերկացնել 4 լարերը (առաջին փորձս) և միացրեք դրանք ՄԱԿ -ին:

Ստեղնաշար _Արդուինո

+5V (VCC) _+5V

ՀՈROՈՎ _ ԳՆԴ

CLԱՄԱՈ_Յ_ _ 2 **

ՏՎՅԱԼՆԵՐ _ PIN3*

*Դուք կարող եք փոխել ՏՎՅԱԼՆԵՐԻ քորոցը այն, ինչ ցանկանում եք, բայց հիշեք, որ թարմացնեք ուրվագիծը:

** CLԱՄԱՈՅԸ պետք է միացված լինի Arduino- ի ընդհատման քորոցին, որը կարող է լինել կամ PIN 2 կամ 3 (հիշեք, որ էսքիզը թարմացվի) UNO- ում: Լրացուցիչ տեղեկությունների և տախտակի տարբեր կազմաձևերի համար կարող եք ստուգել PS2KeyAd Advanced գրադարանի օրինակների մեկնաբանությունների բաժինը:

Քայլ 2: Ստեղնաշարի փորձարկում

Նախքան տախտակամածը ձեռքի տակ մտնելը, նախ համոզվեք, որ ամեն ինչ աշխատում է ստեղնաշարի և գրադարանի վրա:

Այստեղ ես կցել եմ SimpleTest.ino- ի փոփոխված տարբերակը PS2KeyAd Advanced գրադարանի օրինակներից `ժամացույցի և տվյալների կապի թարմացմամբ, ինչպես նաև« կատարել »և« ընդմիջում »ներկայացում: Ահա ելքի որոշ բացատրություններ:

  • Այս «դարձնել» և «կոտրել» սկան կոդերի համակարգը և «Կոդ» -ը, որը հանդիսանում է ստեղնաշարի կամ ստեղնաշարի մեկուսացված (c & 0xFF) սկան կոդը, կարևոր դեր է խաղում PS/2-ի USB փոխակերպման մեջ, և ես խորհուրդ եմ տալիս ձեզ ուսումնասիրել մյուս 2 օրինակները, որոնք գալիս են գրադարանին ՝ ավելի լավ հասկանալու համար, եթե մտադիր եք բարելավել կամ փոխել (տարբեր դասավորության բանալիների վերափոխումը) վերջնական ուրվագիծը: Բացի այդ, գրադարանից կարող եք ստանալ PS/2 սկաների ամբողջական ցուցակ ՝ բացելով «PS2KeyAdvanced.h» կամ «PS2KeyCode.h» ֆայլերը «\ Documents / Arduino / libraries / PS2KeyAdvanced / src \» - ից:
  • «Կարգավիճակի բիթեր» -ը վերաբերում է փոփոխիչ ստեղներին (Ctrl, Alt, Windows, Shift/Caps) և կտեսնեք, որ յուրաքանչյուր լրացուցիչ փոփոխիչ ստեղնով այս արժեքը փոխվում է, մինչդեռ նորմալ (չփոխվող) ստեղնի հիմնական «Կոդը» անփոփոխ է: Բայց վերջնական ուրվագծում ես անտեսեցի այս մեթոդը և կիրառեցի այս փոփոխիչ ստեղները որպես պարզ ստեղներ (դուք կտեսնեք, որ այս փոփոխիչ ստեղները նաև ունեն «դարձնելու» և «կոտրելու» սկան կոդ անկախ սովորական ստեղներից, անկախ նրանից, թե սեղմված են մի քանի ստեղներ): քանի որ դա հեշտացնում է գործերը USB-HID արձանագրության միջոցով:

Քայլ 3: PS/2 դեպի USB փոխակերպման նախադիտում

Մինչև Atmega8U2 կամ 16U2 (UNO Rev3) թարմացնելը ՝ մեր Arduino- ն որպես USB ստեղնաշար ճանաչելու համար, մենք պետք է համոզվենք, որ փոխակերպման բոլոր նյութերը ճիշտ են աշխատում, և վերջնական վերջնական ուրվագիծը բեռնված է, այլապես դա մեծ ցավ կլինի որոնվածը կրկին ու կրկին Original և USB- ստեղնաշարի վեցանկյուն ֆայլերի միջև, որպեսզի կարողանաք վերբեռնել ճիշտ ուրվագիծը: Սա հատկապես ճշմարիտ է դառնում, եթե դուք չունեք որևէ արտաքին ծրագրավորող, ինչպիսին է USBasp- ը կամ մեկ այլ Arduino- ն ՝ որպես մատակարար: Այսպիսով, այստեղ մենք կբեռնենք «DEBUG» - ի վերջնական ուրվագծի տարբերակը `մարդկային ընթեռնելի ելքով (սերիական մոնիտորի միջոցով)` իրերը ստուգելու համար:

Ձեր տեսած ելքը կձևակերպվի այսպես, երբ բացվի յուրաքանչյուր բանալին, 00 00 00 00 00 00 00 00

Ահա ակնկալվող արդյունքի հիմնական բացատրությունը,

Յուրաքանչյուր նոր բազմակի փոփոխիչ ստեղնի համար պետք է ստանաք «xx»-ի տարբեր արժեքներով նոր տող: Վերջապես, երբ թողնում եք բոլոր փոփոխիչ ստեղները, «xx» - ը պետք է դառնա 00:

xx 00 00 00 00 00 00 00 00

Յուրաքանչյուր նոր բազմակի նորմալ ստեղնաշարի համար (օրինակ ՝ մենք կտտացնենք և՛ հիպոթետիկ ստեղնը, և՛ բ – ն, և՛ բ – ն ՝ «xx», «yy» և «zz» արժեքներով այդ հաջորդականությամբ) դուք պետք է անընդհատ ստանաք (ոչ պարտադիր) այսպիսի նոր տողեր,

00 00 xx yy zz 00 00 00

երբ բաց եք թողնում միայն բ բանալին, ելքը պետք է փոխվի,

00 00 xx 00 zz 00 00 00

և եթե սեղմում եք «nn» արժեքով նոր բանալին ՝ առանց բանալին a կամ բ բաց թողնելու, ձեր ելքը պետք է փոխվի,

00 00 xx nn zz 00 00 00

և վերջապես վերադառնալ դրան, երբ բացվի յուրաքանչյուր բանալին,

00 00 00 00 00 00 00 00

և վերջապես, եթե սեղմեք Caps Lock, Num Lock կամ Scroll Lock, դուք պետք է նման բան ստանաք միաժամանակ մի քանի տողերով,

00 00 xx 00 00 00 00 00

00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00

Եթե այստեղ ամեն ինչ պատահի, դուք ոսկի եք շարունակելու:

Քայլ 4: Տեխնիկական բացատրություն

Տեխնիկական բացատրություն
Տեխնիկական բացատրություն
Տեխնիկական բացատրություն
Տեխնիկական բացատրություն

Եթե ցանկանում եք, կարող եք բաց թողնել այս քայլը: Սա պարզապես բացատրություն է նախորդ արդյունքների համար: Ձեր տեսած ելքային 8 բայթ զանգվածը ձևաչափված է ըստ վերը նշված նկ. 1-ի: Դուք կարող եք շատ ավելին իմանալ այս մասին, ինչպես նաև այն մասին, թե ինչպես է ստեղնային բայթ ստեղնաշարի բայթը գրված այս վիքիից USB-HID- ի մասին: Հիմնականում այն, ինչ անում է իմ կոդը, այն է, որ ամեն անգամ նոր բանալին սեղմելիս (PS/2 արձանագրությունը դա նշանակում է «դարձնել») այն անցնում է զանգվածի վերջին 6 բայթերով, որոնք օգտագործվում են սովորական ստեղնաշարի համար և լրացնում է առաջինը: դատարկ բայթ այն գտնում է համապատասխան «HID scancode» - ով (ownուցադրված է նկ. 2 -ում: Նաև կարող եք գտնել ամբողջական ցանկը կցված PDF- ից) ստացված «PS/2 սկան կոդի» համար: Եվ վերջապես, երբ բացվի համապատասխան բանալին (PS/2 արձանագրությունը դա վերաբերում է որպես «ընդմիջում»), ծածկագիրը կշրջվի ընթացիկ բայթերի զանգվածի միջով և կջնջի միայն համապատասխան բայթը:

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

Քայլ 5: Վերջնական ուրվագծի վերբեռնում

Այսպիսով, նախքան Atmega8U2 կամ 16U2 (UNO Rev3) որոնվածը վերջնականապես թարմացնելը `մեր Arduino- ն որպես USB ստեղնաշար ճանաչելու համար մենք պետք է վերբեռնենք Վերջնական ուրվագիծը: Սա վերբեռնելուց հետո, եթե գնաք սերիական մոնիտոր, կտեսնեք, որ այն տպում է աղբը ՝ սեղմելով յուրաքանչյուր նոր բանալին, սա լավ նախանշան է, որ ամեն ինչ աշխատում է ըստ նախատեսվածի, և մենք կարող ենք անցնել վերջին քայլին: ԱՅՈ !!!

Քայլ 6: Թարմացրեք որոնվածը

Ի վերջո, դուք կարող եք թարմացնել ձեր Arduino- ի որոնվածը `այն գրանցելու որպես USB ստեղնաշար: Դրա համար ես չեմ պատրաստվում շատ մանրամասների մեջ մտնել, քանի որ դա շատ երկար կդարձնի ուսանելի:

  1. Հետևեք arduino.cc- ի այս ուղեցույցին «Atmega8U2- ի և 16U2- ի Uno- ում կամ Mega2560- ում DFU- ի միջոցով թարմացնելու» մասին, այլ ոչ թե «Arduino-usbserial-uno.hex»-ի օգտագործման դեպքում օգտագործեք կցված «Arduino-keyboard-0.3.hex»-ը:
  2. FLIP- ում հիշեք, որ թիրախային սարքը պետք է ընտրվի որպես Atmega8U2 կամ 16U2 ՝ կախված ձեզանից Arduino- ից, իսկ հաղորդակցման միջավայրից ընտրեք USB և վերջապես բեռնեք ճիշտ վեցանկյուն ֆայլը ՝ գործարկումն ընտրելուց առաջ:
  3. Եթե վարորդի սխալ եք հանդիպել, գնացեք Windows սարքի կառավարիչ և ընտրեք ՝ FLIP '\ Program Files (x86) Atmel \' տեղադրման գրացուցակում անհայտ վարորդին որոնելու համար:
  4. Եթե սխալներ եք ունեցել FLIP- ից որոնվածը մի քանի անգամ թարմացնելիս, փակեք FLIP- ը և գործարկեք «Վերականգնել նախապատվությունները» «Սկսել ընտրացանկից / FLIP \» - ից, այնուհետև վերագործարկեք FLIP- ը և կատարեք կազմաձևման քայլերը ՝ նորից փորձելուց առաջ, սա սովորաբար ինձ մոտ է աշխատում:
  5. Եթե ցանկանում եք վերականգնել ձեր Arduino- ն իր սկզբնական վիճակին, պարզապես հետևեք նամակի վերը նշված arduino.cc ուղեցույցին ՝ առանց այս վեցանկյուն ֆայլը օգտագործելու:

Քայլ 7: Վայելեք ……

Վայելեք ……
Վայելեք ……

Այժմ վայելեք ձեր նոր փոխարկված PS/2 -ը USB ստեղնաշարը… Պ. Ս. Այս Instructable- ը ամբողջությամբ գրված է արտաքին PS/2 ստեղնաշարից, որը միացված է իմ համակարգչին Arduino- ի միջոցով:)

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