INHOUDSOPGAWE:
- Voorrade
- Stap 1: Bedrading en opstel
- Stap 2: toets toetsbord
- Stap 3: Voorskou PS/2 na USB -omskakeling
- Stap 4: Tegniese verduideliking
- Stap 5: Laai die finale skets op
- Stap 6: Die opdatering van die firmware
- Stap 7: Geniet ……
Video: Arduino PS/2 na USB -adapter: 7 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:24
Wou u ooit u ou PS/2 -sleutelbord met u skootrekenaar of 'n nuwe tafelrekenaar gebruik, en het u uitgevind dat dit nie meer 'n PS/2 -poort het nie? En dan, eerder as om 'n goedkoop PS/2 na USB -adapter te koop, soos 'n normale persoon sou doen, wou u u Arduino as 'n PS/2 na USB -adapter gebruik. Dan het u op die regte plek gekom:)
Eerlike waarskuwing voordat ons daarby ingaan. As u u UNO/Mega as 'n USB-HID-toestel gebruik (nie beperk tot die sleutelbord nie; dit kan selfs 'n muis, 'n joystick, ens.) Wees, verloor u sy funksies as 'n Arduino tydelik. Daarmee bedoel ek dat u nie die seriële kommunikasie kan gebruik nie, en u kan dit nie via die USB herprogrammeer nie. Dit is omdat ons die firmware op die USB-koppelvlak-chip gaan oorskryf (outjie naby die USB-poort Atmega8U2 en 16U2, afhangende van die hersiening). Maar moenie bekommerd wees nie, u kan u UNO/Mega nie eintlik baksteen nie; dit is altyd omkeerbaar.
Ook as u 'n Arduino het wat reeds 'n USB-HID-funksie het (Arduino Pro Micro of Leonardo, ens. 'N Google-soektog), kan u vergeet dat hierdie instruksionele ooit bestaan het, en gaan direk hierheen om u te red uit 'n wêreld van moeilikheid, net maak 'n grap!
Voorrade
-
Hardeware
- Arduino UNO of Mega
- PS/2 -sleutelbord
- Optioneel kan 'n ekstra Arduino of enige soort USB -programmeerder (USBasp, ens.) Handig wees.
-
Sagteware
- Atmel FLIP
- PS2Key Gevorderde biblioteek vir Arduino IDE
Stap 1: Bedrading en opstel
Afhangende van die situasie, kan u 'n uitbreekbord vind of 'n ou poort van 'n moederbord red (my tweede probeerslag), of as u besonder humeurig voel, kan u selfs die pers aansluiting heeltemal sny en die 4 drade (my eerste probeerslag) blootstel en koppel hulle aan die UNO.
Sleutelbord_Arduino
+5V (VCC) _+5V
GROND_GND
KLOK_ PIN 2 **
DATA _ PIN3*
*U kan die DATA -pen verander na wat u wil, maar onthou om die skets by te werk.
** KLOK moet gekoppel word aan 'n onderbrekingspen op Arduino, wat slegs PIN 2 of 3 kan wees (onthou om die skets by te werk) op 'n UNO. Vir meer inligting en verskillende bordopsies, kan u die kommentaarafdeling van PS2KeyAdvanced -biblioteekvoorbeelde nagaan.
Stap 2: toets toetsbord
Voordat u alles in die hande kry, moet u eers seker maak dat alles op die sleutelbord en biblioteek werk.
Hier het ek 'n aangepaste weergawe van die SimpleTest.ino van PS2KeyAdvanced -biblioteekvoorbeelde aangeheg met bygewerkte klok- en datapennetjies en ook 'n 'maak' en 'breek' voorstelling. Hier is 'n verduideliking vir die uitset.
- Hierdie "maak" en "breek" scancode stelsel en "Code", wat die geïsoleerde (c & 0xFF) scancode is van óf die druk op die toets of die sleutel los, speel 'n belangrike rol in PS/2 na USB omskakeling en ek beveel aan dat u studeer die ander twee voorbeelde van die biblioteek om 'n beter begrip te kry as u van plan is om die finale skets te verbeter of te verander (sleutels na verskillende uitlegte toe). U kan ook 'n volledige lys van PS/2 -scancodes uit die biblioteek kry deur 'PS2KeyAdvanced.h' of 'PS2KeyCode.h' lêers uit '\ Documents / Arduino / libraries / PS2KeyAdvanced / src \' oop te maak
- 'Statusbyte' verwys na wysigingsleutels (Ctrl, Alt, Windows, Shift/Caps), en u sal sien dat met elke bykomende wysigingsleutel hierdie waarde verander terwyl die hoof 'kode' van die normale (nie-wysiger) sleutel onveranderd is. Maar in die laaste skets het ek hierdie metode verontagsaam en hierdie wysigingsleutels geïmplementeer as eenvoudige druk op die toets (u sal sien dat hierdie wysigingsleutels ook 'make' en 'break' scancode het, onafhanklik van normale sleutels, al dan nie of daar op verskeie sleutels gedruk word.) omdat dit dinge makliker maak met USB-HID-protokol.
Stap 3: Voorskou PS/2 na USB -omskakeling
Voordat ons die Atmega8U2 of 16U2 (UNO Rev3) opdateer om ons Arduino as 'n USB-sleutelbord te identifiseer, moet ons seker maak dat al die omskakelings goed werk en dat die finale finale skets opgelaai word, anders sal dit 'n groot pyn wees om die skryfwerk oor te skryf herhaaldelik firmware tussen die oorspronklike en die USB-sleutelbord hex-lêers, sodat u die korrekte skets kan oplaai. Dit geld veral as u nie 'n eksterne programmeerder soos 'n USBasp of 'n ander Arduino as 'n ISP het nie. Hier laai ons dus 'n 'DEBUG' -weergawe van die finale skets op met 'n menslike leesbare uitset (deur die seriële monitor) om dinge uit te toets.
Die uitset wat u sien, word so geformateer wanneer elke sleutel vrygestel word, 00 00 00 00 00 00 00 00
Hier is 'n basiese verduideliking vir die verwagte uitset,
Vir elke nuwe veelvuldige wysiger-toetspers moet u 'n nuwe reël kry met verskillende waardes vir 'xx'. Uiteindelik, as u alle wysigingsleutels 'xx' loslaat, moet dit 00 word
xx 00 00 00 00 00 00 00 00
Vir elke nuwe veelvoudige normale druk op die toets (byvoorbeeld, ons druk beide hipotetiese sleutel a, sleutel b en sleutel c met die waardes 'xx', 'yy' en 'zz' in die volgorde). nuuslyne soos hierdie,
00 00 xx yy zz 00 00 00
as u slegs sleutel b loslaat, moet die uitset verander na,
00 00 xx 00 zz 00 00 00
en as u op nuwe sleutel d met waarde 'nn' druk sonder om sleutel a of sleutel b los te laat, moet u uitset verander na,
00 00 xx nn zz 00 00 00
en kom uiteindelik hierop terug as elke sleutel losgelaat word,
00 00 00 00 00 00 00 00
en laastens, as u op Caps Lock, Num Lock of Scroll Lock druk, moet u so iets met verskeie reëls tegelyk kry,
00 00 xx 00 00 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
As alles hier gebeur, is u gou om voort te gaan!
Stap 4: Tegniese verduideliking
As u wil, kan u hierdie stap oorslaan. Dit is slegs 'n verduideliking vir die vorige uitsette. Die uitset 8 grepe skikking wat u gesien het, is geformateer volgens bogenoemde fig.1 U kan meer hieroor leer en ook hoe die statusbyte van die wysigingsleutels uit hierdie wiki oor USB-HID geskryf word. Wat my kode eintlik doen, is elke keer as 'n nuwe sleutel ingedruk word (PS/2-protokol verwys na dit as 'maak'), dit loop deur die laaste 6 grepe van die skikking wat gebruik word vir normale druk op die sleutel, en vul die eerste in leë byte wat dit vind met die relevante 'HID scancode' (soos getoon in fig. 2 U kan ook 'n volledige lys uit die aangehegte PDF vind) vir die ontvangde 'PS/2 scancode'. En uiteindelik, wanneer die relevante sleutel vrygestel word (PS/2 -protokol verwys hierna as 'breek'), sal die kode deur die huidige byte -skikking loop en slegs die relevante byte uitvee.
As u tot hier gevolg het en ook as u die wiki-bladsy lees, sal u sien dat daar 'n klein probleem is met hierdie metode, gewoonlik wanneer die sleutel losgelaat word, word die oorblywende grepe in HID-protokol herrangskik om van leë grepe ontslae te raak. tussen oorblywende nie-leë grepe. Maar om een of ander rede, ongeag hoeveel maniere ek probeer het, kon ek dit nie na wense laat werk sonder om per ongeluk ook ongewenste grepe vir ingedrukte sleutels uit die weg te ruim nie. Lewer 'n opmerking as u dit kan verbeter om dit te laat werk. Alhoewel hierdie probleem aan die einde van die dag nie die funksionaliteit van die sleutelbord beïnvloed nie, solank die Arduino steeds elke toets wat ingedruk word registreer, ongeag die volgorde wat hulle ingedruk het (wat niks in die praktiese gebruik beïnvloed nie).
Stap 5: Laai die finale skets op
Dus, voordat u uiteindelik die firmware van Atmega8U2 of 16U2 (UNO Rev3) opdateer om ons Arduino as 'n USB -sleutelbord te identifiseer, moet ons die Final Sketch oplaai. Nadat u dit opgelaai het, as u na die seriële monitor gaan, sal u sien dat dit vullis afdruk met elke nuwe sleutel wat gedruk word, dit is 'n goeie teken dat alles werk soos bedoel, en ons kan na die laaste stap gaan. YAY !!!
Stap 6: Die opdatering van die firmware
Uiteindelik kan u die firmware van u Arduino opdateer om dit as 'n USB -sleutelbord te registreer. Hiervoor gaan ek nie in op baie besonderhede nie, aangesien dit hierdie instruksies te lank sal maak.
- Volg hierdie gids van arduino.cc oor 'Werk van die Atmega8U2 en 16U2 op 'n Uno of Mega2560 met behulp van DFU', maar eerder as om 'Arduino-usbserial-uno.hex' te gebruik, gebruik die aangehegte 'Arduino-keyboard-0.3.hex'
- Onthou in FLIP om die teikenapparaat as Atmega8U2 of 16U2 te kies, afhangende van u Arduino, en kies dan uit die kommunikasiemedium USB en laai laastens die korrekte hex -lêer voordat u 'run' kies.
- As u 'n bestuurderfout teëgekom het, gaan na die Windows Device Manager en soek na die onbekende bestuurder in die installeringsgids van FLIP '\ Program Files (x86) Atmel \'
- As u foute ondervind het tydens die opdatering van die firmware van FLIP verskeie kere, sluit FLIP en voer 'Herstel voorkeure' uit 'Start menu / FLIP \' en herbegin dan FLIP en voer die konfigurasiestappe uit voordat u weer probeer, dit werk gewoonlik vir my.
- As u Arduino in sy oorspronklike toestand wil herstel, volg die bogenoemde arduino.cc -gids tot die letter sonder om hierdie hex -lêer te gebruik.
Stap 7: Geniet ……
Geniet nou u nuut omgeskakelde PS/2 na USB -sleutelbord …. P. S. Hierdie instruksie is volledig geskryf vanaf 'n eksterne PS/2 -sleutelbord wat via die Arduino op my skootrekenaar gekoppel was:)
Aanbeveel:
Neem wonderlike foto's met 'n iPhone: 9 stappe (met foto's)
Neem wonderlike foto's met 'n iPhone: die meeste van ons dra deesdae 'n slimfoon oral, daarom is dit belangrik om te weet hoe u u slimfoonkamera kan gebruik om fantastiese foto's te neem! Ek het net 'n paar jaar 'n slimfoon gehad, en ek hou daarvan om 'n ordentlike kamera te hê om dinge te dokumenteer wat ek
Draadlose afstandsbediening met 2,4 GHz NRF24L01 -module met Arduino - Nrf24l01 4 -kanaals / 6 -kanaals sender -ontvanger voor quadcopter - Rc Helikopter - Rc -vliegtuig met Arduino: 5 stappe (met foto's)
Draadlose afstandsbediening met 2,4 GHz NRF24L01 -module met Arduino | Nrf24l01 4 -kanaals / 6 -kanaals sender -ontvanger voor quadcopter | Rc Helikopter | Rc -vliegtuig met Arduino: om 'n Rc -motor te bestuur | Quadcopter | Drone | RC -vliegtuig | RC -boot, ons het altyd 'n ontvanger en sender nodig, veronderstel dat ons vir RC QUADCOPTER 'n 6 -kanaals sender en ontvanger nodig het en dat die tipe TX en RX te duur is, so ons maak een op ons
Hoe om 'n rekenaar met maklike stappe en foto's uitmekaar te haal: 13 stappe (met foto's)
Hoe om 'n rekenaar uitmekaar te haal met eenvoudige stappe en foto's: dit is 'n instruksie oor hoe om 'n rekenaar uitmekaar te haal. Die meeste basiese komponente is modulêr en kan maklik verwyder word. Dit is egter belangrik dat u daaroor georganiseerd is. Dit sal u verhinder om onderdele te verloor, en ook om die montering weer
Beheer Arduino met behulp van slimfoon via USB met Blynk -app: 7 stappe (met foto's)
Beheer Arduino met behulp van slimfoon via USB Met Blynk -app: In hierdie tutoriaal gaan ons leer hoe om die Blynk -app en Arduino te gebruik om die lamp te beheer, die kombinasie sal via 'n USB -seriële poort wees. Die doel van hierdie instruksie is om die eenvoudigste oplossing om u Arduino of c
DIY USB -laai -USB met battery: 6 stappe (met foto's)
DIY Solar Charging USB W/ Battery: In hierdie instruksies leer u hoe u 'n stroombaan ontwerp en bedraad waarmee u die son se krag kan benut om u telefoon op te laai en 'n battery te laai vir later gebruik