Sisällysluettelo:

Arduino PS/2 - USB -sovitin: 7 vaihetta (kuvilla)
Arduino PS/2 - USB -sovitin: 7 vaihetta (kuvilla)

Video: Arduino PS/2 - USB -sovitin: 7 vaihetta (kuvilla)

Video: Arduino PS/2 - USB -sovitin: 7 vaihetta (kuvilla)
Video: [PS2] FREE MC BOOT ЗАПУСК ИГР БЕЗ ПРОШИВКИ БЕЗ ДИСКА ИГРЫ С ФЛЕШКИ ЖЕСТКОГО ДИСКА 2024, Marraskuu
Anonim
Arduino PS/2 - USB -sovitin
Arduino PS/2 - USB -sovitin
Arduino PS/2 - USB -sovitin
Arduino PS/2 - USB -sovitin

Oletko koskaan halunnut käyttää vanhaa PS/2 -näppäimistöäsi kannettavan tietokoneen tai uuden pöytätietokoneen kanssa ja huomannut, että niissä ei ole enää PS/2 -portteja? Ja sen sijaan, että menisit ostamaan halpaa PS/2 -USB -sovitinta, kuten tavallinen ihminen tekisi, halusi käyttää Arduinoa PS/2 -USB -sovittimena. Sitten olet tullut oikeaan paikkaan:)

Oikea varoitus ennen kuin ryhdymme siihen. Kun käytät UNO/Mega -laitettasi USB-HID-laitteena (ei rajoitu näppäimistöön, se voi olla jopa hiiri, ohjaussauva jne.), Menetät väliaikaisesti sen toiminnot Arduinona. Tällä tarkoitan, ettet voi käyttää sarjaliikennettä etkä voi ohjelmoida sitä uudelleen USB: n kautta. Tämä johtuu siitä, että kirjoitamme liikaa laiteohjelmiston sen USB-liitäntäpiiriin (pieni kaveri lähellä USB-porttia Atmega8U2 ja 16U2 tarkistuksesta riippuen). Mutta älä huoli, ettet voi todellakaan tiilittää UNO/Mega -laitettasi tekemällä tämä aina palautuvaksi.

Myös jos sinulla on Arduino, jolla on jo USB-HID-ominaisuus (Arduino Pro Micro tai Leonardo jne. Tee google-haku), voit unohtaa tämän opastettavan koskaan olemassa olleen menemällä suoraan tänne pelastaaksesi ongelman maailmasta, vain vitsi!

Tarvikkeet

  • Laitteisto

    • Arduino UNO tai Mega
    • PS/2 -näppäimistö
    • Lisävarusteena voi tulla ylimääräinen Arduino tai mikä tahansa USB -ohjelmoija (USBasp jne.).
  • Ohjelmisto

    • Atmel FLIP
    • PS2KeyAdvanced -kirjasto Arduino IDE: lle

Vaihe 1: Johdotus ja asennus

Johdotus ja asennus
Johdotus ja asennus
Johdotus ja asennus
Johdotus ja asennus
Johdotus ja asennus
Johdotus ja asennus
Johdotus ja asennus
Johdotus ja asennus

Tilanteesta riippuen voit joko löytää murtokortin tai pelastaa vanhan portin emolevystä (toinen kokeiluni) tai jos tunnet olosi erityisen tuuliseksi, voit jopa katkaista violetin liittimen kokonaan ja paljastaa 4 johtoa (ensimmäinen yritys) ja yhdistä ne UNO: hon.

Näppäimistö Arduino

+5V (VCC) _+5V

GROUND_GND

KELLO _ 2 PIN **

TIEDOT _ PIN3*

*Voit muuttaa DATA -nastan haluamaksesi, mutta muista päivittää luonnos.

** CLOCK on kytkettävä Arduinon keskeytystappiin, joka voi olla vain PIN 2 tai 3 (muista päivittää luonnos) UNO: ssa. Lisätietoja ja erilaisia kortin kokoonpanoja löydät PS2KeyAdvanced -kirjastoesimerkkien kommenttiosasta.

Vaihe 2: Näppäimistön testaaminen

Ennen kuin lähdet kannelle, varmista, että kaikki toimii näppäimistöllä ja kirjastolla.

Tässä olen liittänyt PS2KeyAdvanced -kirjastoesimerkkien muokatun version SimpleTest.ino -ohjelmasta, jossa on päivitetyt kello- ja datanastat sekä "make" ja "break" -esitys. Tässä hieman selitystä tuotokselle.

  • Tällä "tee" ja "tauko" skannauskoodijärjestelmällä ja "koodilla", joka on joko näppäimen painalluksen tai avaimen vapautuksen (c & 0xFF) skannauskoodi, on tärkeä osa PS/2-USB-muunnoksessa, ja suosittelen, että tutustut muut kaksi esimerkkiä, jotka toimitetaan kirjaston mukana, jotta saat paremman käsityksen siitä, aiotko parantaa tai muuttaa lopullista luonnosta (muuttaa näppäimiä eri asetteluihin). Voit myös saada täydellisen luettelon PS/2 -skannauskoodeista kirjastosta avaamalla joko 'PS2KeyAdvanced.h' tai 'PS2KeyCode.h' tiedostot kohdasta / Documents / Arduino / libraries / PS2KeyAdvanced / src / '
  • "Statusbitit" viittaa muokkausnäppäimiin (Ctrl, Alt, Windows, Shift/Caps), ja huomaat, että jokaisen lisämuokkainavaimen yhteydessä tämä arvo muuttuu, kun taas normaalin (ei-muokkaava) -näppäimen pääkoodi on muuttumaton. Mutta lopullisessa luonnoksessa olen jättänyt tämän menetelmän huomiotta ja toteuttanut nämä muokkausavaimet yksinkertaisina näppäinten painalluksina (Näet, että näillä muokkausavaimilla on myös "make" ja "break" skannauskoodi riippumatta normaaleista näppäimistä riippumatta siitä, painetaanko useita näppäimiä vai ei.) koska se helpottaa asioita USB-HID-protokollan avulla.

Vaihe 3: PS/2 - USB -muunnoksen esikatselu

Ennen kuin päivitämme Atmega8U2 tai 16U2 (UNO Rev3) tunnistaaksemme Arduinomme USB-näppäimistönä, meidän on varmistettava, että kaikki muunnokset toimivat oikein ja lopullinen luonnos ladataan, tai muuten on suuri kipu jatkaa kirjoittamista laiteohjelmisto uudestaan ja uudestaan alkuperäisen ja USB-näppäimistön heksatiedostojen välillä, jotta voit ladata oikean luonnoksen. Tästä tulee erityisen totta, jos sinulla ei ole ulkoista ohjelmoijaa, kuten USBasp tai muu Arduino käytettäväksi Internet -palveluntarjoajana. Joten tässä lataamme lopullisen luonnoksen "DEBUG" -version ihmisen luettavalla ulostulolla (sarjamonitorin kautta) testataksesi asioita.

Näkymäsi tuloste muotoillaan näin, kun jokainen avain vapautetaan, 00 00 00 00 00 00 00 00

Tässä on perus selitys odotetulle tuotokselle,

Jokaiselle uudelle usean modifikaattorin näppäimen painallukselle saat uuden rivin, jolla on eri arvot xx: lle. Lopuksi, kun vapautat kaikki muokkausavaimet, "xx" pitäisi olla 00

xx 00 00 00 00 00 00 00

Jokaisesta uudesta useasta normaalista näppäimen painalluksesta (esimerkiksi painamme sekä hypoteettista näppäintä a, näppäintä b että näppäintä c, joiden arvot ovat "xx", "yy" ja "zz" tässä järjestyksessä), sinun pitäisi saada jatkuva (ei pakollinen) tällaiset uudet rivit,

00 00 x x yy zz 00 00 00

kun vapautat vain näppäimen b, ulostulon pitäisi muuttua,

00 00 x x 00 zz 00 00 00

ja jos painat uutta näppäintä d, jonka arvo on nn, vapauttamatta näppäintä a tai näppäintä b, tulosteen pitäisi muuttua,

00 00 xx nn zz 00 00 00

ja palaa lopuksi tähän, kun jokainen avain vapautetaan,

00 00 00 00 00 00 00 00

ja lopuksi, jos painat joko Caps Lock, Num Lock tai Scroll Lock, sinun pitäisi saada jotain tällaista, jossa on useita rivejä samanaikaisesti,

00 00 xx 00 00 00 00 00

00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00

Jos kaikki tapahtuu, olet kultainen jatkamaan!

Vaihe 4: Tekninen selitys

Tekninen selitys
Tekninen selitys
Tekninen selitys
Tekninen selitys

Jos haluat, voit ohittaa tämän vaiheen. Tämä on vain selitys aiemmille tuotoksille. Näkemäsi 8-tavuinen matriisi on muotoiltu yllä olevan kuvan 1 mukaisesti. Voit oppia paljon enemmän tästä ja myös siitä, kuinka muokkausavainten tila-tavu kirjoitetaan tästä wikistä USB-HID: stä. Pohjimmiltaan koodini tekee joka kerta, kun uutta näppäintä painetaan (PS/2-protokolla viittaa tähän nimellä 'make'), se selaa matriisin viimeisten 6 tavun läpi, joita käytetään normaaliin näppäinpainallukseen, ja täytä ensimmäinen tyhjä tavu, jonka se löytää asianomaisella 'HID -skannauskoodilla' (näkyy kuvassa 2. Löydät myös täydellisen luettelon liitteenä olevasta PDF -tiedostosta) vastaanotetulle 'PS/2 -skannauskoodille'. Ja lopuksi, kun asiaankuuluva avain vapautetaan (PS/2 -protokolla viittaa tähän 'tauko'), koodi kiertää nykyisen tavutaulukon läpi ja tyhjentää vain asianmukaisen tavun.

Jos seurasit tähän asti ja myös lukiessasi wikisivua, huomaat, että tässä menetelmässä on pieni ongelma, tavallisesti avaimen vapautuksen jälkeen, HID-protokollassa jäljellä olevat tavut järjestetään uudelleen tyhjien tavujen poistamiseksi jäljellä olevien tyhjien tavujen välillä. Mutta jostain syystä riippumatta siitä, kuinka monella tavalla yritin, en saanut sitä toimimaan suunnitellusti poistamatta vahingossa myös ei -toivottuja tavuja painetuille näppäimille. Jos voit parantaa tätä saadaksesi sen toimimaan, jätä kommentti. Vaikka päivän päätteeksi tämä ongelma ei vaikuta näppäimistön toimivuuteen niin kauan kuin Arduino rekisteröi jokaisen painetun näppäimen painamisjärjestyksestä riippumatta (mikä ei vaikuta käytännön käyttöön millään tavalla).

Vaihe 5: Lopullisen luonnoksen lataaminen

Joten ennen kuin päivität vihdoin Atmega8U2- tai 16U2 -laiteohjelmiston (UNO Rev3) tunnistaaksesi Arduinomme USB -näppäimistönä, meidän on ladattava lopullinen luonnos. Kun olet ladannut tämän, jos siirryt sarjamonitoriin, näet, että se tulostaa roskaa jokaisen uuden näppäimen painamisen jälkeen, tämä on hyvä merkki siitä, että kaikki toimii suunnitellulla tavalla ja voimme jatkaa viimeiseen vaiheeseen. JEE!!!

Vaihe 6: Laiteohjelmiston päivittäminen

Lopuksi voit päivittää Arduinon laiteohjelmiston rekisteröimään sen USB -näppäimistöksi. Tätä varten en aio mennä yksityiskohtiin, koska se tekee tästä ohjeesta liian pitkän.

  1. Noudata tätä arduino.cc: n opasta aiheesta "Atmega8U2: n ja 16U2: n päivittäminen Uno: lla tai Mega2560: lla DFU: ta käyttäen", mutta sen sijaan, että käytät "Arduino-usbserial-uno.hex", käytä oheista "Arduino-keyboard-0.3.hex"
  2. Muista valita FLIP -ohjelmassa kohdelaite Atmega8U2 tai 16U2 riippuen Arduinosta ja valitse viestintävälineestä USB ja lopuksi Lataa oikea heksatiedosto ennen suorituksen valitsemista.
  3. Jos törmäsit ohjainvirheeseen, siirry Windowsin laitehallintaan ja valitse etsiäksesi tuntematon ohjain FLIP '\ Program Files (x86) Atmel \' asennushakemistosta
  4. Jos törmäsit virheisiin päivittäessäsi laiteohjelmiston FLIP -ohjelmasta useita kertoja, sulje FLIP ja suorita Reset Preferences valikosta Käynnistä -valikko / FLIP / ja käynnistä sitten FLIP uudelleen ja suorita määritysvaiheet ennen kuin yrität uudelleen. Tämä yleensä toimii minulle.
  5. Jos haluat palauttaa Arduinon alkuperäiseen tilaansa, noudata yllä olevaa arduino.cc -opasta kirjeeseen käyttämättä tätä heksatiedostoa.

Vaihe 7: Nauti ……

Nauttia……
Nauttia……

Nauti nyt vastikään muunnetusta PS/2: sta USB -näppäimistöön…. P. S. Tämä Instructable on kirjoitettu kokonaan ulkoisesta PS/2 -näppäimistöstä, joka on kytketty kannettavaan tietokoneeseen Arduinon kautta:)

Suositeltava: