Obsah:
- Zásoby
- Krok 1: Zapojenie a nastavenie
- Krok 2: Testovanie klávesnice
- Krok 3: Ukážka konverzie PS/2 na USB
- Krok 4: Technické vysvetlenie
- Krok 5: Odovzdanie konečného náčrtu
- Krok 6: Aktualizácia firmvéru
- Krok 7: Užite si ……
Video: Adaptér Arduino PS/2 na USB: 7 krokov (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:56
Chceli ste niekedy použiť starú klávesnicu PS/2 s prenosným počítačom alebo novým stolným počítačom a zistili ste, že už nemajú porty PS/2? A potom radšej než ísť kúpiť lacný adaptér PS/2 na USB, ako by to urobil normálny človek, chcel použiť váš Arduino ako adaptér PS/2 na USB. Potom ste na správnom mieste:)
Spravodlivé varovanie, než sa do toho pustíme. Keď používate svoj UNO/Mega ako zariadenie USB-HID (neobmedzuje sa len na klávesnicu, môže to byť dokonca myš, joystick atď.), Dočasne stratíte svoje funkcie ako Arduino. Tým chcem povedať, že nemôžete používať sériovú komunikáciu a nemôžete ju preprogramovať cez USB. Dôvodom je, že prepíšeme firmvér na jeho čip rozhrania USB (malý chlapík v blízkosti portu USB Atmega8U2 a 16U2 v závislosti od revízie). Ale nebojte sa, že v skutočnosti nemôžete svoj UNO/Mega murovať, je to vždy reverzibilné.
Tiež ak náhodou máte Arduino, ktoré už má schopnosť USB-HID (Arduino Pro Micro alebo Leonardo atď. Vykonajte vyhľadávanie Google), môžete zabudnúť, že tento návod existoval, choďte priamo sem, aby ste sa zachránili pred svetom problémov, stačí žartujem!
Zásoby
-
Hardvér
- Arduino UNO alebo Mega
- Klávesnica PS/2
- Voliteľne môže prísť vhod ďalší programátor Arduino alebo akýkoľvek USB programátor (USBasp atď.).
-
Softvér
- Atmel FLIP
- Rozšírená knižnica PS2Key pre Arduino IDE
Krok 1: Zapojenie a nastavenie
V závislosti od situácie môžete nájsť oddeľovaciu dosku alebo zachrániť starý port zo základnej dosky (môj druhý pokus), alebo ak sa cítite obzvlášť náladovo, môžete dokonca prerušiť fialový konektor a odhaliť 4 vodiče (môj prvý pokus) a pripojte ich k UNO.
Klávesnica_Arduino
+5V (VCC) _+5V
GROUND_GND
HODINY _ 2
ÚDAJE _ PIN3*
*DATA DATA môžete zmeniť na čokoľvek, čo chcete, ale nezabudnite aktualizovať náčrt.
** HODINY musia byť pripojené k prerušovaciemu kolíku na Arduine, ktorým môže byť na UNO iba PIN 2 alebo 3 (nezabudnite aktualizovať náčrt). Ďalšie informácie a rôzne konfigurácie dosiek nájdete v sekcii komentárov k príkladom knižnice PS2KeyAdvanced.
Krok 2: Testovanie klávesnice
Predtým, ako sa pustíte do práce, skontrolujte, či všetko funguje na klávesnici a knižnici.
Tu som pripojil upravenú verziu knižnice SimpleTest.ino z knižnice PS2KeyAdvanced s aktualizovanými hodinovými a dátovými pinmi a tiež znázornením „make“a „break“. Tu je nejaké vysvetlenie výstupu.
- Tento systém skenovacieho kódu „make“a „break“a „kód“, ktorý je izolovaným (c & 0xFF) skenovacím kódom buď pri stlačení klávesu alebo pri uvoľnení klávesu, hrá dôležitú úlohu pri konverzii PS/2 na USB a odporúčam vám študovať ďalšie 2 príklady, ktoré sú súčasťou knižnice, aby ste lepšie porozumeli, ak plánujete vylepšiť alebo zmeniť (premapovanie klávesov na rôzne rozloženia) konečný náčrt. Úplný zoznam skenovacích kódov PS/2 z knižnice môžete získať aj otvorením súborov „PS2KeyAdvanced.h“alebo „PS2KeyCode.h“v priečinku „\ Documents / Arduino / libraries / PS2KeyAdvanced / src \“
- „Stavové bity“označujú modifikačné klávesy (Ctrl, Alt, Windows, Shift/Caps) a uvidíte, že s každým ďalším klávesom modifikátora sa táto hodnota zmení, zatiaľ čo hlavný „Kód“normálneho (nemodifikačného) kľúča sa nezmení. Ale v konečnom súčte som túto metódu ignoroval a implementoval som tieto modifikačné klávesy ako jednoduché stlačenia klávesov (Uvidíte, že tieto modifikačné klávesy majú tiež skenovací kód „make“a „break“nezávislý od bežných klávesov, bez ohľadu na to, či je stlačených viac klávesov alebo nie.) pretože to uľahčuje protokol USB-HID.
Krok 3: Ukážka konverzie PS/2 na USB
Pred aktualizáciou Atmega8U2 alebo 16U2 (UNO Rev3), aby sme identifikovali náš Arduino ako klávesnicu USB, by sme sa mali uistiť, že všetky položky prevodu fungujú správne a konečný konečný náčrt je nahraný, inak bude prepisovanie stále veľkým problémom. firmvér znova a znova medzi pôvodnými hex súbormi a klávesnicou USB, aby ste mohli nahrať správny náčrt. To platí najmä vtedy, ak nemáte žiadneho externého programátora, akým je napríklad USBasp alebo iné Arduino, ktoré by bolo možné použiť ako ISP. Preto tu nahráme „DEBUG“verziu konečného náčrtu s výstupom čitateľným pre človeka (prostredníctvom sériového monitora), aby sme si veci vyskúšali.
Výstup, ktorý uvidíte, bude po uvoľnení každého kľúča naformátovaný takto, 00 00 00 00 00 00 00 00
Tu je základné vysvetlenie očakávaného výstupu,
Pri každom novom stlačení klávesu viacnásobného modifikátora by ste mali dostať nový riadok s rôznymi hodnotami pre „xx“. Nakoniec, keď uvoľníte všetky modifikačné klávesy, „xx“by malo byť 00
xx 00 00 00 00 00 00 00 00
Pri každom novom viacnásobnom normálnom stlačení klávesu (napríklad stlačíme hypotetický kláves a, kláves b a kláves c s hodnotami „xx“, „yy“a „zz“v uvedenom poradí) by ste mali získať nepretržité (nie povinné) takéto nové riadky,
00 00 xx rr zz 00 00 00
keď uvoľníte iba kláves b, výstup by sa mal zmeniť na,
00 00 xx 00 zz 00 00 00
a ak stlačíte nové tlačidlo d s hodnotou „nn“bez uvoľnenia klávesu a alebo b, váš výstup by sa mal zmeniť na,
00 00 xx nn zz 00 00 00
a nakoniec sa k tomu vráťte, keď uvoľníte každý kľúč,
00 00 00 00 00 00 00 00
a nakoniec, ak stlačíte buď Caps Lock, Num Lock alebo Scroll Lock, mali by ste dostať niečo také s viacerými riadkami súčasne,
00 00 xx 00 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
Ak sa tu všetko stane, ste zlatí, aby ste pokračovali!
Krok 4: Technické vysvetlenie
Ak chcete, môžete tento krok preskočiť. Toto je len vysvetlenie predchádzajúcich výstupov. Výstupné 8 bajtové pole, ktoré ste videli, je formátované podľa vyššie uvedeného obr. 1 Môžete sa o tom dozvedieť oveľa viac a tiež o tom, ako je stavový bajt modifikačných kľúčov zapísaný z tejto wiki o USB-HID. V zásade môj kód robí zakaždým, keď sa stlačí nový kláves (protokol PS/2 to označuje ako „značka“), prejde poslednými 6 bytmi poľa, ktoré sa používajú na bežné stlačenia klávesov, a vyplní prvé prázdny bajt nájde s príslušným „skenovacím kódom HID“(zobrazené ako na obr. 2 Tiež nájdete kompletný zoznam z priloženého PDF) pre prijatý „skenovací kód PS/2“. A nakoniec, keď sa príslušný kľúč uvoľní (protokol PS/2 to označuje ako „prerušenie“), kód bude cyklovať v aktuálnom poli bajtov a vymaže iba príslušný bajt.
Ak budete postupovať až sem a tiež si prečítate stránku wiki, uvidíte, že v tejto metóde je malý problém, zvyčajne po uvoľnení kľúča sa v protokole HID zostávajúce bajty usporiadajú tak, aby sa zbavili prázdnych bytov. medzi zostávajúcimi prázdnymi bytmi. Ale z nejakého dôvodu, bez ohľadu na to, koľkými spôsobmi som to skúsil, som nemohol dosiahnuť, aby to fungovalo podľa plánu bez toho, aby sa omylom vymazali nechcené bajty aj pre stlačené klávesy. Ak to môžete zlepšiť, aby to fungovalo, zanechajte komentár. Aj keď na konci dňa tento problém neovplyvňuje funkčnosť klávesnice, pokiaľ Arduino stále registruje každé stlačenie klávesu bez ohľadu na ich poradie (čo v praktickom použití nič neovplyvňuje).
Krok 5: Odovzdanie konečného náčrtu
Takže skôr, ako konečne aktualizujete firmvér Atmega8U2 alebo 16U2 (UNO Rev3), aby ste identifikovali naše Arduino ako klávesnicu USB, musíme nahrať konečný náčrt. Keď to nahráte, ak prejdete na sériový monitor, uvidíte, že pri každom novom stlačení klávesu vytlačí odpadky, čo je dobrým znamením, že všetko funguje tak, ako malo, a môžeme pristúpiť k poslednému kroku. JÉJ!!!
Krok 6: Aktualizácia firmvéru
Nakoniec môžete aktualizovať firmvér svojho Arduina a zaregistrovať ho ako klávesnicu USB. Z tohto dôvodu nebudem zachádzať do väčších podrobností, pretože bude príliš dlhý tento návod.
- Postupujte podľa tohto sprievodcu z arduino.cc o „Aktualizácii Atmega8U2 a 16U2 na zariadení Uno alebo Mega2560 pomocou DFU“, ale namiesto „Arduino-usbserial-uno.hex“použite priložený „Arduino-keyboard-0.3.hex“
- Vo FLIP nezabudnite vybrať cieľové zariadenie ako Atmega8U2 alebo 16U2 v závislosti od vášho Arduina a z komunikačného média vyberte USB a nakoniec pred výberom spustenia načítajte správny hex súbor.
- Ak sa vám vyskytla chyba ovládača, prejdite na správcu zariadení systému Windows a zvoľte vyhľadať neznámy ovládač v inštalačnom adresári FLIP '\ Program Files (x86) Atmel \'
- Ak sa vám pri aktualizácii firmvéru z FLIP vyskytli chyby viackrát, zatvorte FLIP a spustite „Obnoviť predvoľby“z „ponuky Štart / FLIP \“a potom reštartujte FLIP a vykonajte kroky konfigurácie pred ďalším pokusom, to mi zvyčajne funguje.
- Ak chcete obnoviť svoj Arduino do pôvodného stavu, postupujte podľa vyššie uvedeného sprievodcu arduino.cc do písmena bez použitia tohto hexadecimálneho súboru.
Krok 7: Užite si ……
Teraz si užite svoju novo skonvertovanú klávesnicu PS/2 na USB…. P. S. Tento návod bol úplne napísaný z externej klávesnice PS/2 pripojenej k môjmu notebooku prostredníctvom Arduina:)
Odporúča:
Adaptér Arduino Nano na Arduino Uno: 6 krokov (s obrázkami)
Adaptér Arduino Nano na Arduino Uno: Arduino Nano je pekný, malý a lacný člen rodiny Arduino. Je založený na čipe Atmega328, vďaka ktorému je rovnako výkonný ako najväčší jeho brat Arduino Uno, ale dá sa získať za menej peňazí. V Ebay môžu čínske verzie teraz
Adaptér Sega Genesis na USB adaptér za 2 doláre: 4 kroky
Adaptér Sega Genesis na USB za 2 doláre: Tento adaptér umožňuje ovládaču Sega Genesis / Mega Drive emulovať dva gamepady XBox 360 na použitie s retroarchom alebo iným softvérom. Na elektroniku sa používa modrá tabletka stm32f103c8t6 kompatibilná s Arduino. Zloženie: stm32f103c8t6 blue pilltwo DB9 m
USB adaptér ZX Spectrum pre Raspberry Pi RetroPie: 5 krokov (s obrázkami)
ZX Spectrum USB adaptér pre Raspberry Pi RetroPie Builds: RetroPie je špeciálne distro pre Linux, ktoré je navrhnuté špeciálne pre emuláciu retro videoherných systémov na Raspberry Pis a iných jednodoskových počítačoch. Už nejaký čas som chcel ísť úplne na zostavu RetroPie, a keď som videl to repro
DIY Bluetooth audio adaptér - BluFi: 9 krokov (s obrázkami)
DIY Bluetooth audio adaptér - BluFi: Neexistuje jediný audiofil alebo hráč, ktorý by necítil potrebu bezdrôtových slúchadiel, reproduktorov atď. Alebo jednoducho bezdrôtového prenosu zvuku. Tiež sa mi nepáči problémy s káblovými slúchadlami, keď sa pokúšam sledovať z diaľky
Adaptér Arduino Atari: 8 krokov (s obrázkami)
Adaptér Arduino Atari: V poslednej dobe sa stále viac zaujímam o počítačovú techniku. Jednou z najzaujímavejších a najvplyvnejších klasických technologických kúskov je Atari 2600, ktorá bola prvýkrát uvedená na trh v roku 1977. Žiaľ, nikdy som nemal možnosť hrať to ako ki