Turinys:
- Prekės
- 1 žingsnis: laidų prijungimas ir nustatymas
- 2 veiksmas: išbandykite klaviatūrą
- 3 veiksmas: PS/2 į USB konversijos peržiūra
- 4 žingsnis: techninis paaiškinimas
- 5 veiksmas: galutinio eskizo įkėlimas
- 6 veiksmas: atnaujinkite programinę -aparatinę įrangą
- 7 žingsnis: mėgaukitės ……
Video: „Arduino PS/2“į USB adapterį: 7 žingsniai (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
Ar kada nors norėjote naudoti seną PS/2 klaviatūrą su nešiojamuoju kompiuteriu ar nauju staliniu kompiuteriu ir sužinojote, kad juose nebėra PS/2 prievadų? Ir tada, užuot pirkę pigų PS/2 prie USB adapterį, kaip tai darytų įprastas žmogus, norėjote naudoti „Arduino“kaip PS/2 USB adapterį. Tada atėjai į reikiamą vietą:)
Sąžiningas įspėjimas, kol mes į jį neįeiname. Kai naudojate UNO/Mega kaip USB-HID įrenginį (neapsiribojant klaviatūra, tai gali būti net pelė, vairasvirtė ir pan.), Laikinai prarasite „Arduino“funkcijas. Turiu omenyje, kad negalite naudoti serijinio ryšio ir negalite jo perprogramuoti per USB. Taip yra todėl, kad perrašysime programinę-aparatinę įrangą jo USB sąsajos mikroschemoje (mažas vaikinas šalia USB prievado Atmega8U2 ir 16U2, priklausomai nuo peržiūros). Tačiau nesijaudinkite, kad iš tikrųjų negalite užmūryti savo UNO/Mega, nes tai visada yra grįžtama.
Taip pat atsitiktinai, jei turite „Arduino“, kuris jau turi USB-HID funkciją („Arduino Pro Micro“ar „Leonardo“ir tt, atlikite „Google“paiešką), galite pamiršti, kad kada nors egzistavusi pamokoma instrukcija yra čia, kad išgelbėtumėte save nuo bėdų pasaulio. juokauju!
Prekės
- Techninė įranga
- „Arduino UNO“arba „Mega“
- PS/2 klaviatūra
- Pasirinktinai gali praversti papildomas „Arduino“ar bet koks USB programuotojas („USBasp“ir kt.).
- Programinė įranga
- Atmel FLIP
-
„PS2KeyAdvanced“biblioteka, skirta „Arduino IDE“
1 žingsnis: laidų prijungimas ir nustatymas
Priklausomai nuo situacijos, galite rasti pertraukimo plokštę arba išgelbėti seną prievadą iš pagrindinės plokštės (antras mano bandymas) arba, jei jaučiatės ypač nusiteikę, netgi galite visiškai nupjauti violetinį lizdą ir atskleisti 4 laidus (pirmasis bandymas) ir prijungti juos prie UNO.
Klaviatūra _Arduino
+5V (VCC) _+5V
GROUND_GND
2 laikrodis **
DUOMENYS _ PIN3*
*Galite pakeisti DATA kaištį į ką tik norite, tačiau nepamirškite atnaujinti eskizo.
** „CLOCK“turi būti prijungtas prie „Arduino“pertraukimo kaiščio, kuris gali būti tik 2 arba 3 PIN kodas (nepamirškite atnaujinti eskizo) UNO. Norėdami gauti daugiau informacijos ir įvairių lentos konfigūracijų, galite peržiūrėti PS2KeyAdvanced bibliotekos pavyzdžių komentarų skiltį.
2 veiksmas: išbandykite klaviatūrą
Prieš eidami į rankas, pirmiausia įsitikinkite, kad viskas veikia klaviatūroje ir bibliotekoje.
Čia pridėjau pakeistą „SimpleTest.ino“versiją iš „PS2KeyAdvanced“bibliotekos pavyzdžių su atnaujintais laikrodžio ir duomenų kaiščiais, taip pat „padaryti“ir „pertrauka“. Štai keletas išvesties paaiškinimų.
- Ši „make“ir „break“nuskaitymo kodo sistema ir „Code“, kuris yra atskiras (c & 0xFF) nuspaudimo klavišu arba klavišo atleidimo kodas, vaidina svarbų vaidmenį konvertuojant PS/2 į USB, todėl rekomenduoju jums išstudijuoti kiti du pavyzdžiai, pateikiami kartu su biblioteka, kad geriau suprastumėte, ar planuojate tobulinti ar keisti (pakeisti skirtingo išdėstymo klavišus) galutinį eskizą. Taip pat galite gauti visą PS/2 nuskaitymo kodų sąrašą iš bibliotekos, atidarę „PS2KeyAdvanced.h“arba „PS2KeyCode.h“failus iš „\ Documents / Arduino / libraries / PS2KeyAdvanced / src \“
- „Būsenos bitai“reiškia modifikavimo klavišus („Ctrl“, „Alt“, „Windows“, „Shift“/„Caps“) ir pamatysite, kad su kiekvienu papildomu modifikavimo klavišu ši vertė pasikeičia, o pagrindinis įprasto (nekeičiamojo) rakto „kodas“nesikeičia. Tačiau galutiniame eskize aš nepaisiau šio metodo ir įgyvendinau šiuos modifikavimo klavišus kaip paprastus klavišų paspaudimus (pamatysite, kad šie modifikavimo klavišai taip pat turi „make“ir „break“nuskaitymo kodą, nepriklausančius nuo įprastų klavišų, nesvarbu, ar paspaudžiami keli klavišai.) nes tai palengvina darbą naudojant USB-HID protokolą.
3 veiksmas: PS/2 į USB konversijos peržiūra
Prieš atnaujindami „Atmega8U2“arba „16U2“(„UNO Rev3“), kad mūsų „Arduino“taptų USB klaviatūra, turėtume įsitikinti, kad visi konvertavimo elementai veikia tinkamai ir galutinis galutinis eskizas yra įkeltas, arba kitaip bus labai skaudu perrašyti programinė įranga vėl ir vėl tarp originalių ir USB klaviatūros šešiakampių failų, kad galėtumėte įkelti teisingą eskizą. Tai ypač aktualu, jei neturite išorinio programuotojo, pvz., „USBasp“ar kito „Arduino“, kurį galėtumėte naudoti kaip IPT. Taigi čia mes įkelsime galutinio eskizo „DEBUG“versiją su žmogaus skaitoma išvestimi (per serijinį monitorių), kad išbandytume viską.
Išvestis, kurią matysite, bus suformatuota, kai bus paleistas kiekvienas raktas, 00 00 00 00 00 00 00 00
Štai pagrindinis laukiamos produkcijos paaiškinimas,
Kiekvieną kartą paspausdami kelis keitiklio klavišus, turėtumėte gauti naują eilutę su skirtingomis „xx“reikšmėmis. Galiausiai, kai atleisite visus modifikavimo klavišus, „xx“turėtų tapti 00
xx 00 00 00 00 00 00 00
Kiekvieną kartą pakartotinai paspaudus kelis įprastus klavišus (pavyzdžiui, paspausime ir hipotetinį klavišą a, klavišą b, ir klavišą c su reikšmėmis „xx“, „yy“ir „zz“tokia tvarka) turėtumėte gauti nuolatinį (neprivalomą) tokios naujos eilutės,
00 00 x x yy zz 00 00 00
kai tik atleisite klavišą b, išvestis turėtų pasikeisti į,
00 00 x x 00 zz 00 00 00
ir jei paspausite naują klavišą d, kurio vertė yra „nn“, neatleisdami klavišo a ar b, jūsų išvestis turėtų pasikeisti į,
00 00 xx nn zz 00 00 00
ir pagaliau grįžkite prie to, kai atleidžiamas kiekvienas raktas,
00 00 00 00 00 00 00 00
ir galiausiai, jei paspausite „Caps Lock“, „Num Lock“arba „Scroll Lock“, turėtumėte gauti kažką panašaus į kelias eilutes tuo pačiu metu,
00 00 x x 00 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
Jei viskas čia atsitiks, jums bus auksas tęsti!
4 žingsnis: techninis paaiškinimas
Jei jums patinka, galite praleisti šį žingsnį. Tai tik ankstesnių rezultatų paaiškinimas. Išvesties 8 baitų masyvas, kurį matėte, yra suformatuotas pagal aukščiau pateiktą 1 pav. Galite sužinoti daug daugiau apie tai ir kaip modifikavimo raktų būsenos baitas yra parašytas iš šio wiki apie USB-HID. Iš esmės tai, ką daro mano kodas, yra kiekvieną kartą paspaudus naują klavišą (PS/2 protokolas nurodo tai kaip „padaryti“), jis pereina per paskutinius 6 masyvo baitus, kurie naudojami įprastai paspaudžiant klavišus, ir užpildo pirmąjį tuščias baitas, kurį jis randa su atitinkamu „HID scancode“(parodyta 2 pav. Taip pat galite rasti išsamų sąrašą iš pridėto PDF) gautam „PS/2 scancode“. Ir galiausiai, kai atitinkamas raktas bus paleistas (PS/2 protokolas tai nurodo kaip „pertrauką“), kodas pereis per dabartinį baitų masyvą ir išvalys tik atitinkamą baitą.
Jei sekėte iki čia ir perskaitę „wiki“puslapį, pamatysite, kad su šiuo metodu yra nedidelė problema, paprastai, kai raktas atleidžiamas, HID protokole likę baitai pertvarkomi taip, kad atsikratytų tuščių baitų tarp likusių tuščių baitų. Tačiau dėl tam tikrų priežasčių, nepaisant to, kiek būdų bandžiau, negalėjau pasiekti, kad jis veiktų taip, kaip numatyta, netyčia neišvalius paspaudžiamų klavišų nepageidaujamų baitų. Jei galite tai patobulinti, kad jis veiktų, palikite komentarą. Nors dienos pabaigoje ši problema neturi įtakos klaviatūros funkcionalumui, kol „Arduino“vis tiek užregistruoja kiekvieną paspaustą klavišą, neatsižvelgiant į jų paspaudimo tvarką (o tai praktiškai neturi įtakos).
5 veiksmas: galutinio eskizo įkėlimas
Taigi, prieš galutinai atnaujindami „Atmega8U2“arba „16U2“programinę įrangą (UNO Rev3), kad mūsų „Arduino“būtų USB klaviatūra, turime įkelti galutinį eskizą. Įkėlę šį elementą, eidami prie serijinio monitoriaus pamatysite, kad su kiekvienu nauju klavišu paspaudžiamas šiukšlių spausdinimas - tai geras ženklas, kad viskas veikia taip, kaip numatyta, ir galime pereiti prie paskutinio žingsnio. VALIO!!!
6 veiksmas: atnaujinkite programinę -aparatinę įrangą
Galiausiai galite atnaujinti „Arduino“programinę įrangą, kad užregistruotumėte ją kaip USB klaviatūrą. Šiuo tikslu aš nesileisiu į daug smulkmenų, nes tai pavers per pamoką per ilgai.
- Vykdykite šį arduino.cc vadovą apie „Atmega8U2 ir 16U2 atnaujinimą„ Uno “ar„ Mega2560 “naudojant DFU“, o ne naudodami „Arduino-usbserial-uno.hex“, naudokite pridedamą „Arduino-keyboard-0.3.hex“
- FLIP nepamirškite pasirinkti tikslinio įrenginio kaip „Atmega8U2“arba „16U2“, priklausomai nuo jūsų, „Arduino“, ir iš pasirinktos ryšio terpės pasirinkite USB ir, galiausiai, prieš pasirinkdami vykdyti, įkelkite teisingą šešiabriaunį failą.
- Jei susidūrėte su tvarkyklės klaida, eikite į „Windows“įrenginių tvarkytuvę ir pasirinkite ieškoti nežinomos tvarkyklės FLIP '\ Program Files (x86) Atmel / "diegimo kataloge
- Jei atnaujindami programinę -aparatinę įrangą iš FLIP kelis kartus susidūrėte su klaidomis, uždarykite FLIP ir paleiskite „Reset Preferences“iš „Start menu / FLIP \“, tada iš naujo paleiskite „FLIP“ir atlikite konfigūravimo veiksmus prieš bandydami dar kartą.
- Jei norite atkurti pradinę „Arduino“būseną, tiesiog vykdykite aukščiau pateiktą arduino.cc laiško vadovą, nenaudodami šio šešiakampio failo.
7 žingsnis: mėgaukitės ……
Dabar mėgaukitės naujai konvertuota PS/2 į USB klaviatūrą…. P. S. Ši instrukcija buvo visiškai parašyta iš išorinės PS/2 klaviatūros, prijungtos prie mano nešiojamojo kompiuterio per „Arduino“:)
Rekomenduojamas:
Naudojant nuolatinės srovės adapterį baterijoms maitinamam įrenginiui: 3 žingsniai
Nuolatinės srovės adapterio naudojimas akumuliatoriaus energiją naudojančiam įrenginiui: ši instrukcija parodys, kaip vietoj baterijų naudoti nuolatinės srovės adapterį. Naudodami nuolatinės srovės maitinimo šaltinį, jums nebereikės daugiau baterijų, todėl prietaisas bus pigesnis. Baterijos imitacija čia pagaminta iš bambuko
Kaip pagaminti reguliuojamą helikoidinį adapterį 85 mm projektoriaus objektyvui iš polipropileno vamzdžio jungties: 5 žingsniai
Kaip pasidaryti reguliuojamą helikoidinį adapterį 85 mm projektoriaus objektyvui, iš polipropileninio vamzdžio jungties: neseniai nusipirkau seną skaidrių projektorių už maždaug 10 eurų. Projektoriuje yra 85 mm f/2,8 objektyvas, kurį galima lengvai nuimti nuo paties projektoriaus (jokių dalių nereikia išardyti). Taigi nusprendžiau jį paversti 85 mm objektyvu savo „Penta“
Kaip pataisyti belaidį adapterį: 6 žingsniai
Kaip pataisiau belaidį adapterį: „Belkin FD6050“pradėjo sugesti be jokios aiškios priežasties. Pakeitęs „Linux“ir „Windows“tvarkykles sužinojau, kad netoliese jo jungties yra sugedęs kabelis. Vienintelis būdas tai išspręsti buvo pakeisti visą kabelį kažkuo kitu. Kažkas kaip
Pridėkite „Bluetooth“adapterį prie savo GPS įrenginio: 6 žingsniai (su paveikslėliais)
Pridėkite „Bluetooth“adapterį prie savo GPS įrenginio: man reikėjo būdo, kaip po motociklo šalmu išgirsti pigią $ $ GPS, ir nenorėjau, kad kaina už „motociklą paruoštą“viršytų dvigubai didesnę kainą. GPS įrenginys, todėl aš tai padariau pats. Tai gali būti įdomu baikeriams! Taip pat galite rasti čia:
Prijunkite kintamosios srovės adapterį prie akumuliatoriaus maitinamo įrenginio: 9 žingsniai
Pridėkite kintamosios srovės adapterį prie akumuliatoriaus maitinančio įrenginio: su naujagimiu mes įsigyjame stulbinančiai daug akumuliatorių turinčių prietaisų-šokinėjančių sėdynių, sūpynių, džemperių, mobiliųjų telefonų ir dar daugiau. stulbinantis baterijų skaičius. Dabar aš žinau, kodėl „Costco“parduoda tuos didžiulius