Kazalo:

Arduino PS/2 vmesnik USB: 7 korakov (s slikami)
Arduino PS/2 vmesnik USB: 7 korakov (s slikami)

Video: Arduino PS/2 vmesnik USB: 7 korakov (s slikami)

Video: Arduino PS/2 vmesnik USB: 7 korakov (s slikami)
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Julij
Anonim
Arduino PS/2 vmesnik USB
Arduino PS/2 vmesnik USB
Arduino PS/2 vmesnik USB
Arduino PS/2 vmesnik USB

Ste kdaj želeli uporabiti svojo staro tipkovnico PS/2 s prenosnikom ali novim namiznim računalnikom in ugotovili, da nimajo več vrat PS/2? In potem, namesto da bi šel kupiti poceni adapter PS/2 na USB, kot bi to naredil navaden človek, bi želel svoj Arduino uporabiti kot adapter PS/2 na USB. Potem ste prišli na pravo mesto:)

Pošteno opozorilo, preden se lotimo tega. Ko uporabljate svoj UNO/Mega kot napravo USB-HID (ni omejena na tipkovnico, lahko je celo miška, krmilna palica itd.), Boste začasno izgubili njene funkcije kot Arduino. S tem mislim, da ne morete uporabljati serijske komunikacije in je ne morete ponovno programirati prek USB -ja. To je zato, ker bomo vdelano programsko opremo preveč pisali na njen vmesniški čip USB (fant blizu vrat USB Atmega8U2 in 16U2, odvisno od revizije). Ampak ne skrbite, da svojega UNO/Mega dejansko ne morete zgraditi, saj je to vedno razveljavljivo.

Tudi slučajno, če imate Arduino, ki že ima zmožnost USB-HID (Arduino Pro Micro ali Leonardo itd. Poiščite Google), lahko pozabite, da je ta navodila kdaj obstajala, pojdite neposredno sem, da se rešite iz sveta težav, samo hecam se!

Zaloge

  • Strojna oprema
    • Arduino UNO ali Mega
    • Tipkovnica PS/2
    • Po želji vam bo morda prišel še dodaten Arduino ali kateri koli USB programer (USBasp itd.).
  • Programska oprema
    • Atmel FLIP
    • Napredna knjižnica PS2Key za Arduino IDE

1. korak: Ožičenje in nastavitev

Ožičenje in nastavitev
Ožičenje in nastavitev
Ožičenje in nastavitev
Ožičenje in nastavitev
Ožičenje in nastavitev
Ožičenje in nastavitev
Ožičenje in nastavitev
Ožičenje in nastavitev

Odvisno od situacije lahko poiščete prekinitveno ploščo ali rešite stara vrata z matične plošče (moj drugi poskus) ali če se počutite še posebej muhasto, lahko celo popolnoma odrežete vijolično vtičnico in izpostavite 4 žice (moj prvi poskus) in jih povežite z UNO.

Tipkovnica _ Arduino

+5V (VCC) _+5V

OSNOVA _GND

URA _ PIN 2 **

PODATKI _ PIN3*

*Zatič DATA lahko spremenite tako, kot želite, vendar ne pozabite posodobiti skice.

** URA mora biti povezana s prekinitvenim zatičem na Arduinu, ki je lahko samo PIN 2 ali 3 (ne pozabite posodobiti skice) na UNO. Za več informacij in različne konfiguracije plošč si oglejte razdelek s komentarji v primerih knjižnice PS2KeyAdvanced.

2. korak: Preizkusite tipkovnico

Preden greste na palubo, se prepričajte, da vse deluje na tipkovnici in knjižnici.

Tukaj sem priložil spremenjeno različico SimpleTest.ino iz PS2KeyAdvanced primerov knjižnice s posodobljenimi zatiči ure in podatkov ter predstavitvijo "make" in "break". Tukaj je nekaj razlag za izhod.

  • Ta "make" in "break" sistem skeniranja in "Code", ki je izolirana (c & 0xFF) koda skeniranja pri pritisku tipke ali sprostitvi tipke, igrata pomembno vlogo pri pretvorbi PS/2 v USB, zato vam priporočam, da preučite druga 2 primera, ki jih dobite s knjižnico, za boljše razumevanje, če nameravate izboljšati ali spremeniti (prerazporediti ključe v različne postavitve) končno skico. Prav tako lahko v knjižnici dobite celoten seznam kod za skeniranje PS/2, tako da odprete datoteke 'PS2KeyAdvanced.h' ali 'PS2KeyCode.h' iz '\ Documents / Arduino / libraries / PS2KeyAdvanced / src \'
  • "Stanje bitov" se nanaša na modifikacijske tipke (Ctrl, Alt, Windows, Shift/Caps) in videli boste, da se pri vsakem dodatnem modifikacijskem ključu ta vrednost spreminja, medtem ko je glavna "koda" običajne (ne-modifikacijske) tipke nespremenjena. Toda v zadnji skici sem zanemaril to metodo in te modifikacijske tipke implementiral kot preproste pritiske tipk (videli boste, da imajo tudi te modifikacijske tipke "make" in "break" scancode, neodvisno od običajnih tipk, ne glede na to, ali je pritisnjenih več tipk.) ker olajša delo s protokolom USB-HID.

3. korak: Predogled pretvorbe PS/2 v USB

Preden posodobimo Atmega8U2 ali 16U2 (UNO Rev3) za identifikacijo našega Arduina kot tipkovnice USB, se moramo prepričati, da vse stvari za pretvorbo delujejo pravilno in da je naložena končna skica, sicer bo velika težava, če boste še naprej pisali vedno znova vdelana programska oprema med izvirnimi in šestnajstiškimi datotekami na tipkovnici USB, da lahko naložite pravilno skico. To še posebej velja, če za ponudnika internetnih storitev nimate zunanjega programerja, kot je USBasp ali drug Arduino. Tako bomo tukaj naložili "DEBUG" različico končne skice s človeško berljivim izhodom (skozi serijski monitor), da preizkusimo stvari.

Izhod, ki ga vidite, bo oblikovan tako, ko spustite vsak ključ, 00 00 00 00 00 00 00 00

Tu je osnovna razlaga za pričakovani rezultat,

Za vsak nov pritisk na tipko z več modifikatorji bi morali dobiti novo vrstico z različnimi vrednostmi za 'xx'. Ko spustite vse modifikacijske tipke, mora 'xx' postati 00

xx 00 00 00 00 00 00 00

Pri vsakem novem večkratnem normalnem pritisku tipk (na primer pritisnemo tako hipotetično tipko a, tipko b in tipko c z vrednostmi 'xx', 'yy' in 'zz' v tem vrstnem redu) morate imeti neprekinjeno (ni obvezno) nove vrstice, kot je ta,

00 00 xx yy zz 00 00 00

ko spustite samo tipko b, se mora izhod spremeniti v,

00 00 xx 00 zz 00 00 00

in če pritisnete novo tipko d z vrednostjo 'nn', ne da bi sprostili tipko a ali tipko b, se mora vaš izhod spremeniti v,

00 00 xx nn zz 00 00 00

in se končno vrnite k temu, ko izpustite vsak ključ,

00 00 00 00 00 00 00 00

in nazadnje, če pritisnete Caps Lock, Num Lock ali Scroll Lock, bi morali dobiti nekaj takega z več vrsticami hkrati,

00 00 xx 00 00 00 00 00

00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00

Če se tukaj vse zgodi, ste zlati, da nadaljujete!

4. korak: Tehnična razlaga

Tehnična razlaga
Tehnična razlaga
Tehnična razlaga
Tehnična razlaga

Če želite, lahko ta korak preskočite. To je samo razlaga za prejšnje rezultate. Izhodna 8-bajtna matrika, ki ste jo videli, je oblikovana v skladu z zgornjo sliko 1. Več o tem in tudi o tem, kako je bajt statusa tipk modifikatorjev zapisan iz tega wikija o USB-HID-u, lahko izveste veliko več. V bistvu moja koda naredi vsakič, ko pritisnete novo tipko (protokol PS/2 to imenuje "naredi"), preide skozi zadnjih 6 bajtov matrike, ki se uporabljajo za običajne pritiske tipk, in izpolnite prvo prazen bajt, ki ga najde z ustrezno "HID skenirno kodo" (prikazano kot na sliki 2. Celoten seznam najdete tudi v priloženem PDF -ju) za prejeto "skenirno kodo PS/2". In končno, ko se sprosti ustrezen ključ (protokol PS/2 to imenuje "prelom"), bo koda krožila po trenutnem nizu bajtov in počistila le ustrezen bajt.

Če ste sledili do tukaj in tudi, če ste prebrali wiki stran, boste videli, da je pri tej metodi majhna težava, običajno pri sprostitvi ključa, se v protokolu HID preostali bajti preuredijo tako, da se znebite praznih bajtov med preostalimi bajti, ki niso prazni. Toda iz nekega razloga, ne glede na to, na koliko načinov sem poskusil, mi ni uspelo, da bi deloval po predvidevanjih, ne da bi pomotoma počistil neželene bajte tudi za pritisnjene tipke. Če lahko to izboljšate, da bo delovalo, pustite komentar. Čeprav konec koncev ta težava ne vpliva na funkcionalnost tipkovnice, dokler Arduino še vedno beleži vsak pritisk tipke ne glede na njihov pritisnjeni vrstni red (kar v praksi ne vpliva na nič).

5. korak: Nalaganje končne skice

Torej, preden končno posodobite vdelano programsko opremo Atmega8U2 ali 16U2 (UNO Rev3), da naš Arduino prepoznate kot tipkovnico USB, moramo naložiti Final Sketch. Ko naložite to, če greste na serijski monitor, boste videli, da z vsakim pritiskom na novo tipko natisne smeti, je to dober znak, da vse deluje, kot je predvideno, in lahko nadaljujemo do zadnjega koraka. JUHU!!!

6. korak: Posodobitev vdelane programske opreme

Nazadnje lahko posodobite vdelano programsko opremo vašega Arduina, da jo registrirate kot tipkovnico USB. Za to se ne bom spuščal v veliko podrobnosti, saj bo zaradi tega pouk predolg.

  1. Upoštevajte ta priročnik iz arduino.cc o "Posodabljanju Atmega8U2 in 16U2 na Uno ali Mega2560 z uporabo DFU", namesto da bi uporabljali "Arduino-usbserial-uno.hex", uporabite "Arduino-keyboard-0.3.hex"
  2. V FLIP -u ne pozabite izbrati ciljne naprave kot Atmega8U2 ali 16U2, odvisno od vas Arduino, med izbiro komunikacijskega medija izberite USB in na koncu naložite pravilno šestnajstiško datoteko, preden izberete zagon.
  3. Če ste naleteli na napako gonilnika, pojdite v upravitelj naprav Windows in izberite, da poiščete neznanega gonilnika v namestitvenem imeniku programa FLIP '\ Program Files (x86) Atmel \'
  4. Če ste pri večkratnem posodabljanju vdelane programske opreme iz FLIP -a naleteli na napake, zaprite FLIP in v meniju Start / FLIP / zaženite 'Ponastavi nastavitve', nato pa znova zaženite FLIP in izvedite korake konfiguracije, preden poskusite znova, to običajno deluje zame.
  5. Če želite obnoviti Arduino v prvotno stanje, sledite zgornjemu vodiču arduino.cc do črke, ne da bi uporabili to šestnajstiško datoteko.

7. korak: Uživajte ……

Uživajte ……
Uživajte ……

Zdaj pa uživajte v novo pretvorjeni tipkovnici PS/2 v USB…. P. S. Ta Instructable je bil v celoti napisan z zunanje tipkovnice PS/2, povezane z mojim prenosnikom prek Arduina:)

Priporočena: