Taula de continguts:
- Subministraments
- Pas 1: cablejat i configuració
- Pas 2: prova del teclat
- Pas 3: Visualització prèvia de la conversió PS / 2 a USB
- Pas 4: explicació tècnica
- Pas 5: penjar l'esbós final
- Pas 6: Actualització del firmware
- Pas 7: gaudiu …
Vídeo: Adaptador Arduino PS / 2 a USB: 7 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:11
Alguna vegada volíeu fer servir el vostre teclat PS / 2 antic amb el portàtil o el nou PC d’escriptori i heu descobert que ja no tenen ports PS / 2? I, en lloc d’anar a comprar un adaptador PS / 2 a USB barat, com ho faria una persona normal, volia utilitzar el vostre Arduino com a adaptador PS / 2 a USB. Llavors has arribat al lloc correcte:)
Avís just abans d’entrar-hi. Quan utilitzeu el dispositiu UNO / Mega com a dispositiu USB-HID (no limitat al teclat, fins i tot pot ser un ratolí, un joystick, etc.), perdreu temporalment les seves funcions com a Arduino. Amb això vull dir que no podeu utilitzar les comunicacions en sèrie i que no podeu reprogramar-la mitjançant l’USB. Això es deu al fet que escriurem el microprogramari al xip de la interfície USB (un noi prop del port USB Atmega8U2 i 16U2 segons la revisió). Però no us preocupeu, de fet, no podeu fer tot el que pugueu fer amb UNO / Mega, sempre és reversible.
També per casualitat, si teniu un Arduino que ja té una capacitat USB-HID (Arduino Pro Micro o Leonardo, etc. feu una cerca a Google), podeu oblidar-vos que aquest instructiu que existeix ha vingut directament aquí per salvar-vos d’un món de problemes. broma!
Subministraments
-
Maquinari
- Arduino UNO o Mega
- Teclat PS / 2
- Opcionalment, pot ser útil un Arduino addicional o qualsevol tipus de programador USB (USBasp, etc.).
-
Programari
- Atmel FLIP
- Biblioteca PS2KeyAdvanced per a Arduino IDE
Pas 1: cablejat i configuració
Depenent de la situació, podeu trobar una placa de sortida o recuperar un port antic de la placa base (el meu segon intent) o si us sentiu especialment malhumorat, fins i tot podeu tallar el gat morat del tot i exposar els 4 cables (el meu primer intent) i connecteu-los a l’ONU.
Teclat_Arduino
+ 5V (VCC) _ + 5V
TERRA_GND
CLOCK_PIN 2 **
DADES _ PIN3 *
* Podeu canviar el pin DATA pel que vulgueu, però recordeu d'actualitzar l'esbós.
** CLOCK ha d'estar connectat a un pin d'interrupció d'Arduino que només pot ser PIN 2 o 3 (recordeu actualitzar l'esbós) en una UNO. Per obtenir més informació i diferents configuracions del tauler, podeu consultar la secció de comentaris dels exemples de la biblioteca PS2KeyAdvanced.
Pas 2: prova del teclat
Abans d’anar totes les mans a la coberta, assegureu-vos que tot funcioni al teclat i a la biblioteca.
Aquí he adjuntat una versió modificada del SimpleTest.ino dels exemples de la biblioteca PS2KeyAdvanced amb rellotges actualitzats i pins de dades i també una representació "make" i "break". Aquí teniu algunes explicacions sobre la sortida.
- Aquest sistema de codis de codis "make" i "break" i "Code", que és el codi de codis aïllat (c & 0xFF) de la tecla o del llançament de tecles, té un paper important en la conversió PS / 2 a USB i us recomano que estudiï els altres 2 exemples que s'inclouen amb la biblioteca per entendre millor si teniu previst millorar o canviar (tornar a assignar les claus a diferents dissenys) l'esbós final. També podeu obtenir una llista completa dels codis de registre PS / 2 de la biblioteca obrint fitxers 'PS2KeyAdvanced.h' o 'PS2KeyCode.h' de '\ Documents / Arduino / libraries / PS2KeyAdvanced / src \'
- "Bits d'estat" fa referència a les tecles modificadores (Ctrl, Alt, Windows, Maj / Majúscules) i veureu que amb cada tecla modificadora addicional, aquest valor canvia mentre el "Codi" principal de la tecla normal (no modificadora) no canvia. Però, a l’esbós final, he ignorat aquest mètode i he implementat aquestes tecles modificadores com a simples pulsacions de tecles (veureu que aquestes tecles modificadores també tenen un codi d’escàner "fer" i "trencar" independentment de les tecles normals tant si es premen diverses tecles com si no). perquè facilita les coses amb el protocol USB-HID.
Pas 3: Visualització prèvia de la conversió PS / 2 a USB
Abans d’actualitzar l’Atmega8U2 o 16U2 (UNO Rev3) per identificar el nostre Arduino com a teclat USB, hauríem d’assegurar-nos que totes les coses de la conversió funcionen correctament i que es carregui l’esbós final final o, en cas contrari, serà un problema important continuar sobreescrivint firmware una i altra vegada entre els fitxers hexadecimals del teclat original i USB només perquè pugueu carregar l'esbós correcte. Això es fa especialment cert si no teniu cap programador extern com un USBasp o un altre Arduino per utilitzar-lo com a ISP. Així doncs, aquí penjarem una versió "DEBUG" de l'esbós final amb una sortida llegible per humans (a través del monitor sèrie) per provar les coses.
La sortida que veieu es formatarà així quan es deixi anar cada tecla, 00 00 00 00 00 00 00 00
Aquí teniu una explicació bàsica de la producció esperada,
Per a cada nova tecla de modificació múltiple, heu d'obtenir una línia nova amb valors diferents per a 'xx'. Finalment, quan deixeu anar totes les tecles modificadores, 'xx' hauria de passar a ser 00
xx 00 00 00 00 00 00 00
Per a cada nova premsa de tecla normal (per exemple, prémerem la tecla hipotètica a, la tecla b i la tecla c amb els valors 'xx', 'yy' i 'zz' en aquest ordre), hauríeu de continuar (no és obligatori) línies noves com aquesta,
00 00 xx yy zz 00 00 00
quan només deixeu anar la tecla b, la sortida hauria de canviar a,
00 00 xx 00 zz 00 00 00
i si premeu la tecla nova d amb el valor 'nn' sense deixar anar la tecla a o la tecla b, la vostra sortida hauria de canviar a,
00 00 xx nn zz 00 00 00
i, finalment, torneu-hi quan s'alliberi cada clau,
00 00 00 00 00 00 00 00
i, finalment, si premeu Majúscules, Bloqueig numèric o Bloqueig de desplaçament, hauríeu d'obtenir alguna cosa així amb diverses línies al mateix temps,
00 00 xx 00 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
Si tot passa aquí, esteu daurat per continuar!
Pas 4: explicació tècnica
Si voleu, podeu ometre aquest pas. Aquesta és només una explicació de les sortides anteriors. La matriu de sortida de 8 bytes que heu format està format d'acord amb la figura 1 anterior. Podeu obtenir més informació sobre això i també sobre com s'escriu el byte d'estat de les tecles modificadores en aquesta wiki sobre USB-HID. Bàsicament, el que fa el meu codi és cada vegada que es prem una tecla nova (el protocol PS / 2 es refereix a això com a "fer"), fa un recorregut pels darrers 6 bytes de la matriu que s'utilitzen per prémer tecles normals i empleneu el primer byte buit que troba amb el corresponent "scancode HID" (que es mostra a la figura 2). També podeu trobar una llista completa del PDF adjunt) per al "scancode PS / 2" rebut. I, finalment, quan es deixa anar la clau pertinent (el protocol PS / 2 es refereix a això com a "interrupció"), el codi recorrerà la matriu de bytes actual i esborrarà només el byte pertinent.
Si heu seguit fins aquí i també si llegiu la pàgina del wiki, veureu que hi ha un petit problema en aquest mètode, normalment quan es deixa anar la clau, en el protocol HID els bytes restants es reorganitzen per desfer-se dels bytes buits entre bytes restants no buits. Però, per alguna raó, independentment de quantes maneres he provat, no podia fer que funcionés tal com es pretenia sense esborrar accidentalment els bytes no desitjats per a les tecles premudes. Si podeu millorar això perquè funcioni, deixeu un comentari. Tot i que al final del dia aquest problema no afecta la funcionalitat del teclat sempre que l'Arduino encara registri totes les tecles premudes independentment del seu ordre premut (cosa que no afecta res en l'ús pràctic).
Pas 5: penjar l'esbós final
Per tant, abans d’actualitzar definitivament el microprogramari d’Atmega8U2 o 16U2 (UNO Rev3) per identificar el nostre Arduino com a teclat USB, hem de carregar el Final Sketch. Després de carregar-ho, si aneu al monitor sèrie, veureu que imprimeix escombraries amb cada nova tecla premuda, és un bon auguri que tot funciona com es vol i podem passar al pas final. VISCA!!!
Pas 6: Actualització del firmware
Finalment, podeu actualitzar el firmware del vostre Arduino per registrar-lo com a teclat USB. Per a això no vaig a entrar en molts detalls, ja que farà que això sigui massa llarg.
- Seguiu aquesta guia d'arduino.cc sobre "Actualització d'Atmega8U2 i 16U2 en un Uno o Mega2560 mitjançant DFU", en lloc d'utilitzar "Arduino-usbserial-uno.hex", utilitzeu el "Arduino-keyboard-0.3.hex" adjunt.
- A FLIP, recordeu de seleccionar el dispositiu de destinació com Atmega8U2 o 16U2 segons Arduino, i seleccioneu el mitjà de comunicació USB i, finalment, carregueu el fitxer hexadecimal correcte abans de seleccionar Executar.
- Si heu tingut un error de controlador, aneu al gestor de dispositius de Windows i seleccioneu per cercar el controlador desconegut dins del directori d'instal·lació de FLIP '\ Program Files (x86) Atmel \'
- Si heu tingut errors mentre actualitzeu el microprogramari des de FLIP diverses vegades, tanqueu FLIP i executeu 'Restableix les preferències' des del menú 'Inici / FLIP \' i, a continuació, reinicieu FLIP i feu els passos de configuració abans de tornar-ho a provar, això normalment funciona per a mi.
- Si voleu restaurar Arduino al seu estat original, seguiu la guia de la carta arduino.cc anterior sense utilitzar aquest fitxer hexadecimal.
Pas 7: gaudiu …
Ara gaudiu del vostre recentment convertit teclat PS / 2 a USB … P. S. Aquest instructable s'ha escrit completament des d'un teclat PS / 2 extern connectat al meu ordinador portàtil a través de l'Arduino:)
Recomanat:
Adaptador Arduino Nano a Arduino Uno: 6 passos (amb imatges)
Adaptador Arduino Nano a Arduino Uno: Arduino Nano és un membre agradable, petit i barat de la família Arduino. Es basa en el xip Atmega328, la qual cosa el fa tan potent com el més gran del seu germà Arduino Uno, però es pot obtenir per menys diners. A Ebay, ara les versions xineses poden
Feu el vostre propi adaptador Ekit de banda de rock (sense adaptador heretat), sense destrucció: 10 passos
Make Your Own Rock Band Ekit Adapter (sense Legacy Adapter), Nondestructively !: Després d'escoltar un amfitrió de podcast popular que esmentava la seva preocupació per la seva mort de l'adaptador heretat USB per cable, vaig buscar una solució de bricolatge per connectar un eKit millorat / personalitzat a RB . Gràcies al senyor DONINATOR a Youtube que va fer un vídeo detallant la seva p
Adaptador USB ZX Spectrum per a Raspberry Pi RetroPie: 5 passos (amb imatges)
Adaptador USB ZX Spectrum per a Raspberry Pi RetroPie Builds: RetroPie és una distribució especial de Linux dissenyada específicament per emular sistemes de videojocs retro a Raspberry Pis i altres ordinadors de placa única. Fa temps que desitjava fer-ho amb una versió de RetroPie i quan vaig veure aquesta reproducció
Modificació de la placa d'adaptador USB a ESP-01: 3 passos (amb imatges)
Modificació de la placa d’adaptació USB a ESP-01: heu comprat aquesta placa d’adaptació USB a ESP-01 i heu comprovat que no es pot utilitzar per llampar l’ESP-01? No estàs sol. Aquest adaptador de primera generació no té cap mecanisme per posar l'ESP-01 en mode de programació en sèrie que requereixi polli
Adaptador de xarxa sense fils meteoritzat amb ampolla d’aigua: 4 passos (amb imatges)
Adaptador de xarxa sense fils meteoritzat mitjançant una ampolla d’aigua: mentre estava a Iraq, vaig utilitzar una ampolla d’aigua per meteoritzar el meu adaptador de xarxa sense fils. És un procediment senzill, però és molt eficaç. Viouslybviament, aquest instructiu serà el més útil per als serveis per a homes i dones del Pròxim Orient, però també pot ser útil