Cuprins:

Adaptor Arduino PS / 2 la USB: 7 pași (cu imagini)
Adaptor Arduino PS / 2 la USB: 7 pași (cu imagini)

Video: Adaptor Arduino PS / 2 la USB: 7 pași (cu imagini)

Video: Adaptor Arduino PS / 2 la USB: 7 pași (cu imagini)
Video: USB Ports, Cables, Types, & Connectors 2024, Iulie
Anonim
Adaptor Arduino PS / 2 la USB
Adaptor Arduino PS / 2 la USB
Adaptor Arduino PS / 2 la USB
Adaptor Arduino PS / 2 la USB

Ați dorit vreodată să utilizați vechea dvs. tastatură PS / 2 cu laptopul sau noul computer desktop și ați aflat că nu mai au porturi PS / 2? Și apoi, mai degrabă decât să cumpărați un adaptor PS / 2 la USB ieftin, așa cum ar face o persoană normală, a vrut să vă folosească Arduino ca adaptor PS / 2 la USB. Atunci ai ajuns la locul potrivit:)

Avertisment corect înainte de a intra în el. Când utilizați UNO / Mega ca dispozitiv USB-HID (Nu se limitează la tastatură, poate fi chiar mouse, joystick etc.), veți pierde temporar funcțiile sale ca Arduino. Prin asta vreau să spun că nu puteți utiliza comunicațiile seriale și nu o puteți reprograma prin USB. Acest lucru se datorează faptului că vom suprascrie firmware-ul pe cipul său de interfață USB (tip mic lângă portul USB Atmega8U2 și 16U2, în funcție de revizuire). Dar nu vă faceți griji, de fapt, nu vă puteți face cărămizi UNO / Mega, făcând acest lucru, este întotdeauna reversibil.

De asemenea, din întâmplare, dacă aveți un Arduino care are deja o capacitate USB-HID (Arduino Pro Micro sau Leonardo, etc faceți o căutare pe Google), puteți uita că acest lucru instructiv a existat vreodată, mergeți direct aici pentru a vă salva de o lume de probleme, doar glumesc!

Provizii

  • Hardware

    • Arduino UNO sau Mega
    • Tastatură PS / 2
    • Opțional, un programator Arduino suplimentar sau orice alt tip de programator USB (USBasp, etc.) poate fi util.
  • Software

    • Atmel FLIP
    • Biblioteca PS2KeyAdvanced pentru Arduino IDE

Pasul 1: Cablare și configurare

Cablare și configurare
Cablare și configurare
Cablare și configurare
Cablare și configurare
Cablare și configurare
Cablare și configurare
Cablare și configurare
Cablare și configurare

În funcție de situație, puteți găsi fie o placă de descărcare sau puteți salva un port vechi de pe o placă de bază (a doua încercare a mea) sau dacă vă simțiți deosebit de prost, puteți chiar tăia complet mufa violet și expune cele 4 fire (prima mea încercare) și conectați-le la UNO.

Tastatură_Arduino

+ 5V (VCC) _ + 5V

TEREN_GND

CLOCK_PIN 2 **

DATE _ PIN3 *

* Puteți schimba pinul DATA la ceea ce vreți vreodată, dar nu uitați să actualizați schița.

** CLOCK trebuie conectat la un pin de întrerupere de pe Arduino care poate fi doar PIN 2 sau 3 (nu uitați să actualizați schița) pe un UNO. Pentru mai multe informații și diferite configurații ale forumului, puteți consulta secțiunea de comentarii a exemplelor de bibliotecă PS2KeyAdvanced.

Pasul 2: Testarea tastaturii

Înainte de a vă pune toate mâinile pe punte, asigurați-vă mai întâi că totul funcționează pe tastatură și bibliotecă.

Aici am atașat o versiune modificată a SimpleTest.ino din exemple de bibliotecă PS2KeyAdvanced cu ceas actualizat și pini de date și, de asemenea, o reprezentare „make” și „break”. Iată câteva explicații pentru rezultat.

  • Acest sistem de scanare „make” și „break” și „Code”, care este codul de scanare izolat (c & 0xFF) al apăsării tastei sau al eliberării tastelor joacă un rol important în conversia PS / 2 în USB și vă recomand să studiați celelalte 2 exemple care vin cu biblioteca pentru a înțelege mai bine dacă intenționați să îmbunătățiți sau să schimbați (remaparea tastelor la diferite aspecte) schița finală. De asemenea, puteți obține o listă completă a codurilor de scanare PS / 2 din bibliotecă deschizând fie fișierele „PS2KeyAdvanced.h”, fie „PS2KeyCode.h” din „\ Documents / Arduino / libraries / PS2KeyAdvanced / src \”
  • „Biți de stare” se referă la tastele modificatoare (Ctrl, Alt, Windows, Shift / Caps) și veți vedea că cu fiecare tastă suplimentară de modificare, această valoare se schimbă în timp ce principalul „Cod” al tastei normale (nemodificatoare) este neschimbat. Dar în schița finală am nesocotit această metodă și am implementat aceste taste modificatoare ca simple apăsări de taste (Veți vedea că aceste taste modificatoare au, de asemenea, cod de scanare "make" și "break" independent de tastele normale, indiferent dacă sunt apăsate sau nu mai multe taste.) deoarece ușurează lucrurile cu protocolul USB-HID.

Pasul 3: Previzualizare conversie PS / 2 la USB

Înainte de a actualiza Atmega8U2 sau 16U2 (UNO Rev3) pentru a identifica Arduino ca o tastatură USB, ar trebui să ne asigurăm că toate lucrurile de conversie funcționează corect și că schița finală finală este încărcată sau altfel va fi o durere majoră să continuați să scrieți firmware din nou și din nou între fișierele hexagonale originale și USB-tastatură doar pentru a putea încărca schița corectă. Acest lucru devine deosebit de adevărat dacă nu aveți niciun programator extern, cum ar fi un USBasp sau un alt Arduino, care să fie utilizat ca ISP. Așadar, aici vom încărca o versiune „DEBUG” a schiței finale cu o ieșire citită de om (prin intermediul monitorului serial) pentru a testa lucrurile.

Ieșirea pe care o vedeți va fi formatată astfel când fiecare tastă este eliberată, 00 00 00 00 00 00 00 00

Iată o explicație de bază pentru rezultatul așteptat,

Pentru fiecare nouă apăsare de tastă cu modificator multiplu ar trebui să obțineți o linie nouă cu valori diferite pentru „xx”. În cele din urmă, când eliberați toate tastele modificatoare, „xx” ar trebui să devină 00

xx 00 00 00 00 00 00 00

Pentru fiecare nouă apăsare de tastă normală (pentru un exemplu vom apăsa atât tasta ipotetică a, tasta b, cât și tasta c cu valorile „xx”, „yy” și „zz” în această ordine) ar trebui să obțineți continuu (nu este obligatoriu) linii noi ca aceasta,

00 00 xx yy zz 00 00 00

când eliberați doar tasta b, ieșirea ar trebui să se schimbe în,

00 00 xx 00 zz 00 00 00

și dacă apăsați tasta nouă d cu valoarea „nn” fără a elibera tasta a sau tasta b, ieșirea dvs. ar trebui să se schimbe în,

00 00 xx nn zz 00 00 00

și în cele din urmă reveniți la acest lucru când fiecare tastă este eliberată,

00 00 00 00 00 00 00 00

și, în cele din urmă, dacă apăsați pe Blocare majuscule, Num Lock sau Scroll Lock, ar trebui să obțineți așa ceva cu mai multe linii în același timp,

00 00 xx 00 00 00 00 00

00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00

Dacă totul se întâmplă aici, ești de aur să procedezi!

Pasul 4: Explicație tehnică

Explicație tehnică
Explicație tehnică
Explicație tehnică
Explicație tehnică

Dacă doriți, puteți sări peste acest pas. Aceasta este doar o explicație pentru rezultatele anterioare. Matricea de ieșire de 8 octeți pe care ați văzut-o este formatată în conformitate cu fig.1 de mai sus. Puteți afla mai multe despre acest lucru și, de asemenea, cum este scris octetul de stare al tastelor modificatoare din acest wiki despre USB-HID. Practic, ceea ce face codul meu este de fiecare dată când este apăsată o nouă tastă (protocolul PS / 2 se referă la aceasta ca „make”), parcurge ultimii 6 octeți ai tabloului care sunt utilizați pentru apăsarea tastelor normale și completați primul octet gol pe care îl găsește cu „codul de scanare HID” relevant (Afișat ca în fig.2 De asemenea, puteți găsi o listă completă din fișierul PDF atașat) pentru „codul de cod PS / 2” primit. Și, în cele din urmă, atunci când cheia relevantă este eliberată (protocolul PS / 2 se referă la aceasta ca „pauză”), codul va parcurge matricea de octeți curentă și va șterge doar octetul relevant.

Dacă ați urmărit până aici și, de asemenea, dacă citiți pagina wiki, veți vedea că există o mică problemă în această metodă, în mod normal, atunci când cheia este eliberată, în protocolul HID, octeții rămași sunt reorganizați pentru a scăpa de octeții goi între octeții rămași ne-goali. Dar, dintr-un anumit motiv, indiferent de câte modalități am încercat, nu am reușit să funcționeze așa cum am intenționat fără să șterg accidental octeți nedoriti pentru tastele apăsate. Dacă puteți îmbunătăți acest lucru pentru ca acesta să funcționeze, vă rugăm să lăsați un comentariu. Deși la sfârșitul zilei această problemă nu afectează funcționalitatea tastaturii atâta timp cât Arduino încă înregistrează fiecare tastă apăsată indiferent de ordinea apăsată (ceea ce nu afectează nimic în utilizarea practică).

Pasul 5: Încărcarea schiței finale

Deci, înainte de a actualiza în cele din urmă firmware-ul Atmega8U2 sau 16U2 (UNO Rev3) pentru a identifica Arduino ca o tastatură USB, trebuie să încărcăm Final Sketch. După ce încărcați acest lucru, dacă mergeți la monitorul serial, veți vedea că imprimă gunoi cu fiecare nouă tastă apăsată, este un bun augur că totul funcționează conform intenției și putem trece la pasul final. YAY!!!

Pasul 6: Actualizarea firmware-ului

În cele din urmă puteți actualiza firmware-ul Arduino pentru a-l înregistra ca tastatură USB. Pentru aceasta nu voi intra în multe detalii, deoarece acest lucru va face ca acest lucru să fie prea lung.

  1. Urmați acest ghid de la arduino.cc despre „Actualizarea Atmega8U2 și 16U2 pe un Uno sau Mega2560 folosind DFU”, dar mai degrabă decât folosind „Arduino-usbserial-uno.hex” utilizați „Arduino-keyboard-0.3.hex” atașat
  2. În FLIP, nu uitați să selectați dispozitivul țintă ca Atmega8U2 sau 16U2, în funcție de dvs. Arduino și, din selectați suportul de comunicație, alegeți USB și, în final, încărcați fișierul hexagonal corect înainte de a selecta rulați.
  3. Dacă ați întâmpinat o eroare de driver, accesați Windows Device Manager și selectați pentru a căuta driverul necunoscut în directorul de instalare FLIP '\ Program Files (x86) Atmel \'
  4. Dacă ați întâmpinat erori în timp ce actualizați firmware-ul de la FLIP de mai multe ori, închideți FLIP și rulați „Resetare preferințe” din „Meniul Start / FLIP \” și apoi reporniți FLIP și efectuați pașii de configurare înainte de a încerca din nou, acest lucru funcționează de obicei pentru mine.
  5. Dacă doriți să vă restabiliți Arduino la starea sa originală, urmați ghidul arduino.cc de mai sus la literă fără a utiliza acest fișier hexagonal.

Pasul 7: Bucurați-vă …

Bucurați-vă …
Bucurați-vă …

Acum bucurați-vă de noua tastatură PS / 2 în USB … P. S. Acest instructabil a fost complet scris de pe o tastatură externă PS / 2 conectată la laptopul meu prin intermediul Arduino:)

Recomandat: