Sisukord:

Arduino PS/2 USB -adapter: 7 sammu (piltidega)
Arduino PS/2 USB -adapter: 7 sammu (piltidega)

Video: Arduino PS/2 USB -adapter: 7 sammu (piltidega)

Video: Arduino PS/2 USB -adapter: 7 sammu (piltidega)
Video: Как подключить старую клавиатуру с PS2 портом к компьютеру по USB. 2024, November
Anonim
Arduino PS/2 USB -adapter
Arduino PS/2 USB -adapter
Arduino PS/2 USB -adapter
Arduino PS/2 USB -adapter

Kas olete kunagi tahtnud kasutada oma vana PS/2 klaviatuuri sülearvuti või uue lauaarvutiga ja avastanud, et neil pole enam PS/2 porte? Ja siis selle asemel, et minna odavat PS/2 -USB -adapterit ostma nagu tavaline inimene, sooviks ta kasutada teie Arduinot PS/2 -USB -adapterina. Siis olete jõudnud õigesse kohta:)

Õiglane hoiatus enne, kui me sellesse asume. Kui kasutate UNO/Mega USB-HID-seadmena (mitte ainult klaviatuur, see võib olla isegi hiir, juhtkang jne), kaotate ajutiselt selle funktsioonid Arduino-na. Selle all pean silmas, et te ei saa kasutada jadaühendust ja te ei saa seda USB kaudu ümber programmeerida. Selle põhjuseks on asjaolu, et me kirjutame püsivara üle selle USB-liidese kiibile (väike tüüp USB-pordi Atmega8U2 ja 16U2 lähedal, sõltuvalt versioonist). Kuid ärge muretsege, et te ei saa oma UNO/Mega tegelikult tellida, sest see on alati pöörduv.

Samuti, kui teil on Arduino, millel on juba USB-HID-funktsioon (Arduino Pro Micro või Leonardo jne, tehke google'i otsing), võite juhuslikult unustada, et see kunagi olemas olnud juhis on olemas ja minge otse siia, et päästa end probleemide maailmast. nalja!

Tarvikud

  • Riistvara
    • Arduino UNO või Mega
    • PS/2 klaviatuur
    • Soovi korral võib abiks olla täiendav Arduino või mis tahes USB -programmeerija (USBasp jne).
  • Tarkvara
    • Atmel FLIP
    • PS2KeyAdvanced raamatukogu Arduino IDE jaoks

Samm: juhtmestik ja seadistamine

Juhtmestik ja seadistamine
Juhtmestik ja seadistamine
Juhtmestik ja seadistamine
Juhtmestik ja seadistamine
Juhtmestik ja seadistamine
Juhtmestik ja seadistamine
Juhtmestik ja seadistamine
Juhtmestik ja seadistamine

Sõltuvalt olukorrast võite leida väljalülituslaua või päästa vana pordi emaplaadilt (minu teine katse) või kui tunnete end eriti tujukana, võite isegi lilla pesa täielikult katkestada ja 4 juhtmest paljastada (minu esimene katse) ja ühendage need UNO -ga.

Klaviatuur_Arduino

+5V (VCC) _+5V

GROUND_GND

KELL _ 2 PIN **

ANDMED _ PIN3*

*Saate muuta DATA tihvti sooviks, kuid ärge unustage visandit värskendada.

** CLOCK peab olema ühendatud Arduino katkestusnõelaga, mis UNO -l saab olla ainult PIN 2 või 3 (ärge unustage visandit värskendada). Lisateavet ja tahvli erinevaid konfiguratsioone leiate PS2KeyAdvanced raamatukogu näidete kommentaaride jaotisest.

2. samm. Klaviatuuri testimine

Enne kui kõik tekil käed lähevad, veenduge, et klaviatuuril ja raamatukogul töötab kõik.

Siin olen lisanud PS2KeyAdvanced raamatukogu näidete SimpleTest.ino muudetud versiooni, millel on värskendatud kella ja andmete nööpnõelad ning ka "make" ja "break" esitus. Siin on mõned väljundi selgitused.

  • Sellel "tee" ja "murda" skaneerimiskoodi süsteemil ja "koodil", mis on klahvivajutuse või võtme vabastamise isoleeritud (c & 0xFF) skaneerimiskood, on oluline osa PS/2 USB-muundamisel ja soovitan teil uurida ülejäänud kaks näidet, mis on raamatukoguga kaasas, et paremini mõista, kas kavatsete lõplikku visandit parandada või muuta (klahvide ümberpaigutamine erinevatele paigutustele). Samuti saate raamatukogust PS/2 skaneerimiskoodide täieliku loendi, avades failid „PS2KeyAdvanced.h” või „PS2KeyCode.h” kaustast „\ Documents / Arduino / libraries / PS2KeyAdvanced / src \”
  • "Olekubittid" viitavad muutmisklahvidele (Ctrl, Alt, Windows, Shift/Caps) ja näete, et iga täiendava muutmisklahvi korral muutub see väärtus, samal ajal kui tavalise (mitte-modifitseeriva) võtme peamine "kood" on muutumatu. Kuid viimases visandis olen ma seda meetodit eiranud ja rakendanud neid muutmisvõtmeid lihtsate klahvivajutustena (näete, et nendel muutmisklahvidel on ka "make" ja "break" skaneerimiskood tavalistest klahvidest sõltumata, olenemata sellest, kas mitut klahvi vajutatakse või mitte.) sest see muudab USB-HID-protokolli abil asjad lihtsamaks.

Samm: PS/2 USB -konversiooni eelvaade

Enne Atmega8U2 või 16U2 (UNO Rev3) värskendamist, et tuvastada meie Arduino USB-klaviatuurina, peaksime veenduma, et kõik teisendusmaterjalid töötavad õigesti ja lõplik eskiis on üles laaditud või muidu on valus üle kirjutada. püsivara ikka ja jälle algse ja USB-klaviatuuri hex-failide vahel, et saaksite üles laadida õige visandi. See kehtib eriti siis, kui teil pole Interneti -teenuse pakkujana ühtegi välist programmeerijat, nagu USBasp või mõni muu Arduino. Nii et siin laadime asjade testimiseks üles lõpliku visandi 'DEBUG' versiooni, mis on inimesele loetav.

Näete väljundit vormindatakse niimoodi, kui iga võti vabastatakse, 00 00 00 00 00 00 00 00

Siin on põhiline seletus oodatava väljundi kohta,

Iga uue mitme modifikaatori klahvivajutuse korral peaksite saama uue rea, millel on erinevad xx väärtused. Lõpuks, kui vabastate kõik muutmisnupud, peaks xx saama 00

xx 00 00 00 00 00 00 00

Iga uue mitme tavalise klahvivajutuse korral (näiteks vajutame nii hüpoteetilist klahvi a, klahvi b kui ka klahvi c väärtustega 'xx', 'yy' ja 'zz' selles järjekorras) peaksite saama pideva (pole kohustuslik) sellised uued read,

00 00 x x yy zz 00 00 00

kui vabastate ainult klahvi b, peaks väljund muutuma,

00 00 x x 00 zz 00 00 00

ja kui vajutate uut klahvi d väärtusega nn, ilma klahvi a või klahvi b vabastamata, peaks väljund muutuma,

00 00 xx nn zz 00 00 00

ja pöörduge lõpuks selle juurde tagasi, kui iga võti vabastatakse,

00 00 00 00 00 00 00 00

ja lõpuks, kui vajutate kas Caps Locki, Num Locki või Scroll Locki, peaksite saama midagi sellist mitme reaga korraga,

00 00 x x 00 00 00 00 00

00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00

Kui kõik siin juhtub, siis on kuldne jätkata!

4. samm: tehniline selgitus

Tehniline selgitus
Tehniline selgitus
Tehniline selgitus
Tehniline selgitus

Kui soovite, võite selle sammu vahele jätta. See on lihtsalt eelmiste väljundite selgitus. Väljund 8 baiti massiiv, mida nägite, on vormindatud ülaltoodud joonise 1 järgi. Selle kohta saate palju rohkem teada saada ja ka seda, kuidas modifitseerimisklahvide olekubait kirjutatakse sellest wikist USB-HID kohta. Põhimõtteliselt teeb minu kood iga kord, kui vajutatakse uut klahvi (PS/2 protokoll viitab sellele kui "make"), see liigub läbi massiivi viimased 6 baiti, mida kasutatakse tavaliste klahvivajutuste jaoks, ja täidab esimese tühi bait, mille ta leiab vastava 'HID skaneerimiskoodiga' (näidatud nagu joonisel 2. Täieliku loendi leiate ka lisatud PDF -ist) vastuvõetud 'PS/2 skaneerimiskoodi' kohta. Ja lõpuks, kui asjakohane võti vabastatakse (PS/2 protokoll viitab sellele kui "katkestusele"), käib kood praegusest baidimassiivist läbi ja tühjendab ainult asjakohase baidi.

Kui järgisite siiani ja ka wiki lehte lugedes näete, et selles meetodis on väike probleem, tavaliselt võtme vabastamisel, HID-protokollis muudavad ülejäänud baidid ümber nii, et vabaneda tühjadest baitidest ülejäänud tühjade baitide vahel. Kuid mingil põhjusel, olenemata sellest, kui palju ma proovisin, ei saanud ma mingil põhjusel toimida ettenähtud viisil, ilma et oleksin kogemata eemaldanud soovitud baidid ka vajutatud klahvide jaoks. Kui saate seda toimivuse parandamiseks parandada, jätke kommentaar. Kuigi päeva lõpuks ei mõjuta see probleem klaviatuuri funktsionaalsust seni, kuni Arduino registreerib endiselt iga klahvivajutuse olenemata nende vajutamise järjekorrast (mis praktilises kasutuses midagi ei mõjuta).

Samm: lõpliku eskiisi üleslaadimine

Nii et enne kui Atmega8U2 või 16U2 (UNO Rev3) püsivara lõpuks värskendate, et tuvastada meie Arduino USB -klaviatuurina, peame üles laadima lõpliku visandi. Kui olete selle üles laadinud, näete jadamonitori juurde minnes, et see prindib prügi iga uue klahvi vajutamisega, see on hea märk, et kõik töötab ettenähtud viisil ja saame jätkata viimase sammuga. JAH !!!

Samm: püsivara värskendamine

Lõpuks saate oma Arduino püsivara värskendada, et see USB -klaviatuurina registreerida. Selleks ei hakka ma väga üksikasjadesse laskuma, sest see muudab selle juhendi liiga pikaks.

  1. Järgige seda arduino.cc juhendit „Atmega8U2 ja 16U2 värskendamine Uno või Mega2560-l, kasutades DFU-d”, kuid mitte „Arduino-usbserial-uno.hex” asemel kasutage lisatud „Arduino-keyboard-0.3.hex”
  2. FLIP -i puhul pidage meeles, et olenevalt teie Arduino'st valige sihtseade Atmega8U2 või 16U2 ja valige kommunikatsioonivahendi hulgast USB ja lõpuks laadige õige käsk -fail enne käivitamist.
  3. Kui teil tekkis draiveri viga, minge Windowsi seadmehaldurisse ja valige otsida tundmatut draiverit FLIP '\ Program Files (x86) Atmel \' installikataloogist
  4. Kui FLIP -i püsivara mitu korda värskendades tekkisid vead, sulgege FLIP ja käivitage menüüst Start / FLIP / käsk Reset Preferences, seejärel taaskäivitage FLIP ja tehke enne uuesti proovimist konfigureerimistoimingud.
  5. Kui soovite Arduino oma algsesse olekusse taastada, järgige ülaltoodud kirja arduino.cc juhendit, ilma seda hex -faili kasutamata.

Samm: nautige ……

Naudi ……
Naudi ……

Nüüd nautige oma äsja teisendatud PS/2 USB -klaviatuuri … P. S. See juhend oli täielikult kirjutatud välisest PS/2 klaviatuurist, mis on ühendatud minu sülearvutiga Arduino kaudu:)

Soovitan: