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, Novembar
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 tastaturu sa svojim laptopom ili novim desktop računarom i saznali da više nemaju PS/2 portove? Umjesto da odete 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 u to uđemo. Kada koristite svoj UNO/Mega kao USB-HID uređaj (ne ograničavajući se na tipkovnicu, to čak može biti miš, joystick itd.) Privremeno ćete izgubiti njegove funkcije kao Arduino. Pod tim mislim da ne možete koristiti serijsku komunikaciju i ne možete je reprogramirati putem USB -a. To je zato što ćemo prepisati firmver na njegovom USB interfejs čipu (mali momak u blizini USB porta Atmega8U2 i 16U2 ovisno o reviziji). Ali ne brinite, zapravo 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 salim se!

Supplies

  • Hardver

    • Arduino UNO ili Mega
    • PS/2 tastatura
    • Opcionalno, dodatni Arduino ili bilo koji USB programator (USBasp itd.) Može vam dobro doći.
  • 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 port s matične ploče (moj drugi pokušaj), ili ako se osjećate posebno neraspoložen, možete čak i potpuno odsjeći ljubičastu utičnicu i izložiti 4 žice (prvi pokušaj) i spojite ih na UNO.

Tastatura _ 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 tastature

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

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

  • Ovaj "make" i "break" sistem 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 bibliotekom za bolje razumijevanje planirate li poboljšati ili promijeniti (preslikavanje ključeva na različite rasporede) konačnu skicu. Također možete dobiti potpunu listu 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 svakim dodatnim ključem modifikatora ta vrijednost mijenja dok se glavni "Kôd" normalnog (bez modifikatora) ključa ne mijenja. Ali u konačnoj skici zanemario sam ovu metodu i implementirao ove modifikacijske tipke kao jednostavne pritiske tipki (vidjet ćete da ti modifikatorski ključevi također imaju "make" i "break" kod za skeniranje neovisan o normalnim tipkama bez obzira na to je li pritisnuto više tipki.) jer olakšava stvari 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 firmvera uvijek iznova između originalnih i heksadecimalnih datoteka s USB tipkovnice samo da biste mogli prenijeti ispravnu skicu. Ovo postaje posebno 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 sa izlazom čitljivim za ljude (kroz serijski monitor) 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 rezultat,

Za svaki novi pritisak na više tipki modifikatora trebali biste dobiti novi red 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) novi redovi poput ovog,

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

i ako pritisnete novi taster d sa vrijednošću 'nn' bez otpuštanja tastera a ili tastera b, vaš izlaz bi se trebao promijeniti u,

00 00 xx nn zz 00 00 00

i na kraju se vratite na to 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 statusni bajt ključeva modifikatora napisan s ove wiki o USB-HID-u. U osnovi, moj kôd radi svaki put kada se pritisne nova tipka (PS/2 protokol ovo naziva 'napravi'), ona prelazi posljednjih 6 bajtova niza koji se koriste za normalne pritiske tipki i popunjava prvu prazan bajt koji pronađe sa odgovarajućim 'HID kodom za skeniranje' (prikazano kao na slici 2. Također možete pronaći kompletnu listu iz priloženog PDF -a) za primljeni 'PS/2 kod za skeniranje'. I na kraju, kada se relevantan ključ otpusti (PS/2 protokol ovo naziva 'prekidom'), kod ć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. Ali iz nekog razloga, bez obzira na to na koliko načina sam 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 upotrebi).

Korak 5: Otpremanje 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. JEJ!!!

Korak 6: Ažuriranje firmvera

Konačno možete ažurirati firmver vašeg Arduina kako biste ga registrirali kao USB tipkovnicu. Za ovo neću ulaziti u detalje jer će ovo uputstvo predugo učiniti.

  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 ciljni 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 grešku upravljačkog programa, idite u upravitelj Windows uređaja i odaberite za traženje nepoznatog upravljačkog programa unutar instalacijskog direktorija FLIP '\ Program Files (x86) Atmel \'
  4. Ako ste naišli na greške pri višestrukom ažuriranju firmvera s FLIP -a, zatvorite FLIP i pokrenite 'Reset Preferences' iz 'Start izbornika / FLIP \', a zatim ponovno pokrenite FLIP i izvedite korake konfiguracije prije nego što pokušate ponovo, ovo mi obično uspijeva.
  5. Ako želite vratiti Arduino u prvobitno stanje, samo slijedite gornji vodič arduino.cc do slova bez korištenja ove heksadecimalne datoteke.

Korak 7: Uživajte u ……

Uživajte ……
Uživajte ……

Sada uživajte u novoj konvertiranoj PS/2 u USB tastaturi…. P. S. Ovaj Instructable je u potpunosti napisan sa vanjske PS/2 tastature spojene na moj laptop preko Arduina:)

Preporučuje se: