Sadržaj:

Arduino PS/2 na USB adapter: 7 koraka (sa slikama)
Arduino PS/2 na USB adapter: 7 koraka (sa slikama)

Video: Arduino PS/2 na USB adapter: 7 koraka (sa slikama)

Video: Arduino PS/2 na USB adapter: 7 koraka (sa slikama)
Video: SKR Pro V1.1 - A4988 stepper driver install 2024, Studeni
Anonim
Arduino PS/2 na USB adapter
Arduino PS/2 na USB adapter
Arduino PS/2 na USB adapter
Arduino PS/2 na USB adapter

Jeste li ikada poželjeli koristiti staru PS/2 tipkovnicu s prijenosnim računalom ili novim stolnim računalom i saznali da više nemaju PS/2 priključke? Umjesto da idete kupiti jeftini PS/2 na USB adapter kao što bi to učinila normalna osoba, htio je koristiti vaš Arduino kao PS/2 na USB adapter. Onda ste došli na pravo mjesto:)

Pošteno upozorenje prije nego što krenemo u to. Kad koristite svoj UNO/Mega kao USB-HID uređaj (ne ograničavajući se samo na tipkovnicu, čak može biti miš, joystick itd.), Privremeno ćete izgubiti njegove funkcije kao Arduino. Pod time mislim da ne možete koristiti serijsku komunikaciju i ne možete je reprogramirati putem USB -a. To je zato što ćemo pretjerano pisati firmver na njegovom čipu USB sučelja (dječačić u blizini USB priključka Atmega8U2 i 16U2 ovisno o reviziji). Ali ne brinite, ne možete zidati svoj UNO/Mega ako to učinite uvijek je moguće poništiti.

Također, kojim slučajem, ako imate Arduino koji već ima USB-HID sposobnost (Arduino Pro Micro ili Leonardo, itd. Pretražite Google), možete zaboraviti da je ova instrukcija ikada postojala, idite izravno ovdje kako biste se spasili od svijeta nevolja, samo šalim se!

Pribor

  • Hardver

    • Arduino UNO ili Mega
    • PS/2 tipkovnica
    • Opcijski, može vam dobro doći dodatni Arduino ili bilo koji USB programator (USBasp itd.).
  • Softver

    • Atmel FLIP
    • PS2KeyAdvanced biblioteka za Arduino IDE

Korak 1: Ožičenje i postavljanje

Ožičenje i postavljanje
Ožičenje i postavljanje
Ožičenje i postavljanje
Ožičenje i postavljanje
Ožičenje i postavljanje
Ožičenje i postavljanje
Ožičenje i postavljanje
Ožičenje i postavljanje

Ovisno o situaciji, možete pronaći probojnu ploču ili spasiti stari priključak s matične ploče (moj drugi pokušaj) ili ako se osjećate posebno neraspoložen, možete čak i potpuno izrezati ljubičastu utičnicu i izložiti 4 žice (prvi pokušaj) i spojite ih na UNO.

Tipkovnica_ Arduino

+5V (VCC) _+5V

ZEMLJA _GND

SAT _ PIN 2 **

PODACI _ PIN3*

*DATA pin možete promijeniti na ono što želite, ali ne zaboravite ažurirati skicu.

** SAT mora biti spojen na pin za prekid na Arduinu koji može biti samo PIN 2 ili 3 (ne zaboravite ažurirati skicu) na UNO -u. Za više informacija i različite konfiguracije ploče možete provjeriti odjeljak komentara primjera biblioteke PS2KeyAdvanced.

Korak 2: Testiranje tipkovnice

Prije nego prijeđete na palubu, provjerite radi li sve o tipkovnici i biblioteci.

Ovdje sam priložio izmijenjenu verziju SimpleTest.ino -a iz PS2KeyAdvanced primjera biblioteke s ažuriranim iglama sata i podataka, kao i prikazom "make" i "break". Evo nekoliko objašnjenja za izlaz.

  • Ovaj "make" i "break" sustav skeniranja i "Code" koji je izolirani (c & 0xFF) kod skeniranja bilo pritiskom na tipku ili otpuštanjem ključa igra važnu ulogu u konverziji PS/2 u USB i preporučujem vam da proučite druga 2 primjera koja dolaze s knjižnicom za bolje razumijevanje planirate li poboljšati ili promijeniti (preslikavanje ključeva na različite izglede) konačnu skicu. Također možete dobiti potpuni popis PS/2 skeniranih kodova iz biblioteke otvaranjem datoteka 'PS2KeyAdvanced.h' ili 'PS2KeyCode.h' iz '\ Documents / Arduino / libraries / PS2KeyAdvanced / src \'
  • "Statusni bitovi" odnose se na tipke modifikatora (Ctrl, Alt, Windows, Shift/Caps) i vidjet ćete da se sa svakom dodatnom tipkom modifikatora ta vrijednost mijenja dok se glavni "Kôd" normalne (bez modifikatora) tipke ne mijenja. Ali u konačnoj skici zanemario sam ovu metodu i implementirao ove tipke modifikatora kao jednostavne pritiske tipki (vidjet ćete da te tipke modifikatora također imaju "make" i "break" scancode neovisan o normalnim tipkama bez obzira na to je li pritisnuto više tipki.) jer olakšava posao s USB-HID protokolom.

Korak 3: Pregled konverzije PS/2 u USB

Prije ažuriranja Atmega8U2 ili 16U2 (UNO Rev3) kako bismo identificirali naš Arduino kao USB tipkovnicu, trebali bismo se uvjeriti da sve konverzijske datoteke rade ispravno i da je konačna konačna skica učitana ili će u protivnom biti velika muka stalno pisati firmware uvijek iznova između izvornih i šesterokutnih datoteka s USB tipkovnice samo da biste mogli prenijeti ispravnu skicu. To postaje osobito istinito ako nemate vanjskog programera poput USBaspa ili drugog Arduina koji biste koristili kao ISP -a. Dakle, ovdje ćemo prenijeti 'DEBUG' verziju konačne skice s izlazom čitljivim za ljude (putem serijskog monitora) kako bismo testirali stvari.

Izlaz koji vidite bit će oblikovan ovako kad otpustite svaki ključ, 00 00 00 00 00 00 00 00

Evo osnovnog objašnjenja za očekivani učinak,

Za svaki novi pritisak na više tipki modifikatora trebali biste dobiti novi redak s različitim vrijednostima za 'xx'. Konačno, kada otpustite sve tipke modifikatora 'xx' bi trebao postati 00

xx 00 00 00 00 00 00 00

Za svaki novi višestruki normalni pritisak tipki (na primjer, pritisnut ćemo i hipotetičku tipku a, tipku b i tipku c s vrijednostima 'xx', 'yy' i 'zz' tim redoslijedom) trebali biste dobiti kontinuirano (nije obavezno) nove retke poput ove,

00 00 xx yy zz 00 00 00

kada otpustite samo tipku b izlaz bi se trebao promijeniti u,

00 00 xx 00 zz 00 00 00

a ako pritisnete novu tipku d s vrijednošću 'nn' bez otpuštanja tipke a ili tipke b, vaš bi se izlaz trebao promijeniti u,

00 00 xx nn zz 00 00 00

i na kraju se vratiti na ovo kad se otpusti svaki ključ,

00 00 00 00 00 00 00 00

i na kraju, ako pritisnete Caps Lock, Num Lock ili Scroll Lock, trebali biste dobiti ovako nešto s više redaka istovremeno,

00 00 xx 00 00 00 00 00

00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00

Ako se sve ovdje dogodi, zlatni ste da nastavite!

Korak 4: Tehničko objašnjenje

Tehničko objašnjenje
Tehničko objašnjenje
Tehničko objašnjenje
Tehničko objašnjenje

Ako želite, možete preskočiti ovaj korak. Ovo je samo objašnjenje za prethodne rezultate. Izlazni niz od 8 bajtova koji ste vidjeli formatiran je prema gornjoj slici.1 Možete saznati mnogo više o ovome, kao i o tome kako je bajt statusa tipki modifikatora napisan s ove wiki o USB-HID-u. U osnovi, moj kôd radi svaki put kad se pritisne nova tipka (PS/2 protokol to naziva 'napravi'), ona prelazi posljednjih 6 bajtova niza koji se koriste za normalne pritiske tipki i popunjava prvu prazan bajt koji pronađe s odgovarajućim 'HID kodom za skeniranje' (prikazano kao na slici 2. Također možete pronaći potpuni popis iz priloženog PDF -a) za primljeni 'PS/2 kod za skeniranje'. I na kraju, kad se relevantan ključ pusti (PS/2 protokol ovo naziva 'prekidom'), kôd će proći kroz trenutni niz bajtova i izbrisati samo bitni bajt.

Ako ste slijedili do ovdje, a također i ako ste pročitali wiki stranicu, vidjet ćete da postoji mali problem u ovoj metodi, obično kada se ključ otpusti, u HID protokolu preostali bajtovi se preuređuju kako bi se riješili praznih bajtova između preostalih bajtova koji nisu prazni. No iz nekog razloga, bez obzira na to koliko sam načina pokušao, nisam uspio natjerati da radi kako je predviđeno, a da slučajno ne očistim i neželjene bajtove za pritisnute tipke. Ako možete poboljšati ovo kako bi funkcioniralo, ostavite komentar. Iako na kraju dana ovaj problem ne utječe na funkcionalnost tipkovnice sve dok Arduino i dalje bilježi svaki pritisak na tipku bez obzira na njihov pritisnuti redoslijed (što ne utječe na ništa u praktičnoj uporabi).

Korak 5: Prijenos konačne skice

Stoga, prije nego što konačno ažurirate firmver Atmega8U2 ili 16U2 (UNO Rev3) kako biste identificirali naš Arduino kao USB tipkovnicu, moramo učitati Final Sketch. Nakon što ovo učitate, ako odete na serijski monitor vidjet ćete da ispisuje smeće sa svakim pritiskom na novu tipku, to je dobar znak da sve radi kako treba i možemo nastaviti do posljednjeg koraka. YAY !!!

Korak 6: Ažuriranje firmvera

Konačno možete ažurirati firmver svog Arduina kako biste ga registrirali kao USB tipkovnicu. Za ovo neću ulaziti u mnogo detalja jer će ovo uputstvo učiniti predugim.

  1. Slijedite ovaj vodič s arduino.cc o 'Ažuriranju Atmega8U2 i 16U2 na Uno-u ili Mega2560-u pomoću DFU-a', ali umjesto korištenja 'Arduino-usbserial-uno.hex', koristite "Arduino-keyboard-0.3.hex"
  2. U FLIP -u ne zaboravite odabrati ciljani uređaj kao Atmega8U2 ili 16U2 ovisno o Arduinu, a zatim s odabira komunikacijskog medija odaberite USB i na kraju učitajte ispravnu hex datoteku prije nego što odaberete pokretanje.
  3. Ako ste naišli na pogrešku upravljačkog programa, idite na Windows upravitelj uređaja i odaberite za traženje nepoznatog upravljačkog programa unutar instalacijskog direktorija programa FLIP '\ Program Files (x86) Atmel \'
  4. Ako ste naišli na pogreške tijekom ažuriranja firmvera s FLIP -a više puta, zatvorite FLIP i pokrenite 'Reset Preferences' iz 'Start izbornika / FLIP \', a zatim ponovno pokrenite FLIP i učinite korake konfiguracije prije ponovnog pokušaja, ovo mi obično uspijeva.
  5. Ako želite vratiti Arduino u izvorno stanje, samo slijedite gornji vodič arduino.cc do slova bez korištenja ove heksadecimalne datoteke.

Korak 7: Uživajte ……

Uživati……
Uživati……

Sada uživajte u novoj konvertiranoj PS/2 u USB tipkovnici…. p.s. Ovaj Instructable je u potpunosti napisan s vanjske PS/2 tipkovnice spojene na moje prijenosno računalo putem Arduina:)

Preporučeni: