Obsah:
- Zásoby
- Krok 1: Zapojení a nastavení
- Krok 2: Testování klávesnice
- Krok 3: Náhled převodu PS/2 na USB
- Krok 4: Technické vysvětlení
- Krok 5: Nahrání finální skici
- Krok 6: Aktualizace firmwaru
- Krok 7: Užijte si ……
Video: Adaptér Arduino PS/2 na USB: 7 kroků (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:19
Chtěli jste někdy použít starou klávesnici PS/2 s notebookem nebo novým stolním počítačem a zjistili jste, že již nemají porty PS/2? A pak raději než jít koupit levný adaptér PS/2 na USB, jako by to udělal normální člověk, chtěl použít váš Arduino jako adaptér PS/2 na USB. Pak jste na správném místě:)
Spravedlivé varování, než se do toho pustíme. Pokud používáte UNO/Mega jako zařízení USB-HID (neomezeno pouze na klávesnici, může to být dokonce myš, joystick atd.), Dočasně ztratíte jeho funkce jako Arduino. Tím myslím, že nemůžete používat sériovou komunikaci a nemůžete ji přeprogramovat přes USB. Důvodem je, že přepíšeme firmware na jeho čip rozhraní USB (malý chlap poblíž USB portu Atmega8U2 a 16U2 v závislosti na revizi). Ale nebojte se, ve skutečnosti nemůžete své UNO/Mega zkonstruovat, je to vždy reverzibilní.
Také náhodou, pokud máte Arduino, které již má schopnost USB-HID (Arduino Pro Micro nebo Leonardo atd. Proveďte vyhledávání Google), můžete zapomenout, že tento instruktáž kdy existoval, přejděte přímo sem, abyste se zachránili před světem problémů, prostě dělat si srandu!
Zásoby
-
Hardware
- Arduino UNO nebo Mega
- Klávesnice PS/2
- Volitelně může přijít vhod další Arduino nebo jakýkoli druh USB programátoru (USBasp atd.).
-
Software
- Atmel FLIP
- Rozšířená knihovna PS2Key pro Arduino IDE
Krok 1: Zapojení a nastavení
V závislosti na situaci můžete buď najít rozbíjecí desku, nebo zachránit starý port ze základní desky (můj druhý pokus), nebo pokud se cítíte obzvláště náladově, můžete dokonce úplně rozříznout fialový konektor a odhalit 4 dráty (můj první pokus) a připojte je k UNO.
Klávesnice _ Arduino
+5V (VCC) _+5V
GROUND_GND
CLOCK_ PIN 2 **
DATA _ PIN3*
*Pin DATA můžete změnit na cokoli chcete, ale nezapomeňte aktualizovat skicu.
** CLOCK musí být připojen k přerušovacímu pinu na Arduinu, který může být na UNO pouze PIN 2 nebo 3 (nezapomeňte aktualizovat skicu). Další informace a různé konfigurace desek najdete v sekci komentáře v příkladech knihovny PS2KeyAdvanced.
Krok 2: Testování klávesnice
Než se pustíte do hry, nejprve se ujistěte, že vše funguje na klávesnici a knihovně.
Zde jsem připojil upravenou verzi knihovny SimpleTest.ino z příkladů knihovny PS2KeyAdvanced s aktualizovanými hodinovými a datovými piny a také reprezentací „make“a „break“. Zde je nějaké vysvětlení výstupu.
- Tento systém skenovacího kódu „make“a „break“a „Code“, což je izolovaný (c & 0xFF) skenovací kód buď stisknutí klávesy nebo uvolnění klíče, hraje důležitou roli při převodu PS/2 na USB a doporučuji vám prostudovat si další 2 příklady dodávané s knihovnou pro lepší pochopení, pokud plánujete vylepšit nebo změnit (přemapování klíčů na různá rozvržení) finální skicu. Také můžete získat úplný seznam PS/2 skenovacích kódů z knihovny otevřením souborů 'PS2KeyAdvanced.h' nebo 'PS2KeyCode.h' z '\ Documents / Arduino / libraries / PS2KeyAdvanced / src \'
- „Stavové bity“se týkají modifikačních kláves (Ctrl, Alt, Windows, Shift/Caps) a uvidíte, že s každou další modifikační klávesou se tato hodnota změní, zatímco hlavní „Kód“normální (nemodifikační) klávesy se nezmění. Ale v závěrečném náčrtu jsem tuto metodu ignoroval a implementoval tyto modifikační klávesy jako jednoduché stisknutí kláves (Uvidíte, že tyto modifikační klávesy také mají skenovací kód „make“a „break“nezávislý na normálních klávesách, ať už je nebo není stisknuto více kláves.) protože to usnadňuje práci s protokolem USB-HID.
Krok 3: Náhled převodu PS/2 na USB
Před aktualizací Atmega8U2 nebo 16U2 (UNO Rev3), abychom identifikovali náš Arduino jako klávesnici USB, bychom se měli ujistit, že všechny věci pro převod fungují správně a je načten konečný konečný náčrtek, jinak bude velkou bolestí přepisovat firmware znovu a znovu mezi původními a hexadecimálními soubory USB klávesnice, abyste mohli nahrát správnou skicu. To platí zejména v případě, že nemáte žádného externího programátora, jako je USBasp nebo jiné Arduino, které by bylo možné použít jako ISP. Zde tedy nahrajeme verzi „DEBUG“konečného náčrtu s výstupem čitelným pro člověka (prostřednictvím sériového monitoru), abychom věci otestovali.
Výstup, který uvidíte, bude po uvolnění každé klávesy naformátován takto, 00 00 00 00 00 00 00 00
Zde je základní vysvětlení očekávaného výstupu,
Pro každé nové stisknutí více modifikátorů byste měli získat nový řádek s různými hodnotami pro 'xx'. Nakonec, když uvolníte všechny modifikační klávesy, 'xx' by mělo být 00
xx 00 00 00 00 00 00 00
Pro každé nové vícenásobné normální stisknutí klávesy (například budeme stisknout jak hypotetickou klávesu a, klávesu b, tak klávesu c s hodnotami 'xx', 'yy' a 'zz' v uvedeném pořadí) byste měli dostat spojité (není povinné) nové řádky, jako je tento,
00 00 xx rr zz 00 00 00
když uvolníte pouze klíč b, výstup by se měl změnit na,
00 00 xx 00 zz 00 00 00
a pokud stisknete novou klávesu d s hodnotou 'nn' bez uvolnění klávesy a nebo klávesy b, váš výstup by se měl změnit na,
00 00 xx nn zz 00 00 00
a nakonec se k tomu vraťte po uvolnění každého klíče,
00 00 00 00 00 00 00 00
a nakonec, pokud stisknete buď Caps Lock, Num Lock nebo Scroll Lock, měli byste získat něco takového s více řádky současně,
00 00 xx 00 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
Pokud se zde všechno stane, jste zlatí, abyste mohli pokračovat!
Krok 4: Technické vysvětlení
Pokud chcete, můžete tento krok přeskočit. Toto je jen vysvětlení předchozích výstupů. Výstupní 8bajtové pole, které jste viděli, je formátováno podle výše uvedeného obr. 1 Můžete se o tom dozvědět mnohem více a také o tom, jak je z této wiki o USB-HID zapsán stavový byte modifikačních klíčů. V zásadě můj kód dělá pokaždé, když je stisknuta nová klávesa (protokol PS/2 to označuje jako „make“), prochází posledních 6 bajtů pole, které se používají pro normální stisknutí kláves, a vyplní první prázdný bajt najde s příslušným 'HID skenovacím kódem' (Zobrazeno jako na obr.2 Také můžete najít kompletní seznam z přiloženého PDF) pro přijatý 'skenovací kód PS/2'. A nakonec, když je uvolněn příslušný klíč (protokol PS/2 to označuje jako „přerušení“), kód bude procházet aktuálním polem bajtů a smaže pouze příslušný bajt.
Pokud budete postupovat až sem a také když si přečtete stránku wiki, uvidíte, že v této metodě je malý problém, obvykle po uvolnění klíče se v protokolu HID zbývající bajty znovu uspořádají, aby se zbavily prázdných bytů mezi zbývajícími prázdnými bajty. Ale z nějakého důvodu, bez ohledu na to, kolik způsobů jsem zkoušel, jsem nemohl dostat to tak, jak to bylo zamýšleno, aniž by omylem vymazal nežádoucí bajty i pro stisknuté klávesy. Pokud to můžete zlepšit, aby to fungovalo, zanechte prosím komentář. Ačkoli na konci dne tento problém neovlivňuje funkčnost klávesnice, pokud Arduino stále registruje každé stisknutí klávesy bez ohledu na jejich pořadí stisknutí (což v praktickém použití nic neovlivňuje).
Krok 5: Nahrání finální skici
Takže než konečně aktualizujete firmware Atmega8U2 nebo 16U2 (UNO Rev3), abyste identifikovali náš Arduino jako USB klávesnici, musíme nahrát závěrečnou skicu. Poté, co to nahrajete, pokud přejdete na sériový monitor, uvidíte, že tiskne odpadky při každém novém stisknutí klávesy, je to dobré znamení, že vše funguje tak, jak bylo zamýšleno, a můžeme přejít k poslednímu kroku. YAY !!!
Krok 6: Aktualizace firmwaru
Nakonec můžete aktualizovat firmware svého Arduina a zaregistrovat jej jako USB klávesnici. Z tohoto důvodu nebudu zacházet do přílišných podrobností, protože to způsobí, že tento návod bude příliš dlouhý.
- Postupujte podle této příručky z arduino.cc o 'Aktualizace Atmega8U2 a 16U2 na Uno nebo Mega2560 pomocí DFU', ale místo 'Arduino-usbserial-uno.hex' použijte připojený 'Arduino-keyboard-0.3.hex'
- Ve FLIP nezapomeňte vybrat cílové zařízení jako Atmega8U2 nebo 16U2 v závislosti na vašem Arduinu a z výběru komunikačního média zvolit USB a nakonec před výběrem běhu načíst správný hex soubor.
- Pokud narazíte na chybu ovladače, přejděte do správce zařízení systému Windows a vyberte hledat neznámý ovladač v instalačním adresáři FLIP '\ Program Files (x86) Atmel \'
- Pokud jste při aktualizaci firmwaru z FLIP několikrát narazili na chyby, zavřete FLIP a spusťte „Obnovit předvolby“z „Start menu / FLIP \“a poté restartujte FLIP a proveďte kroky konfigurace, než to zkusíte znovu, to mi obvykle funguje.
- Chcete -li obnovit Arduino do původního stavu, postupujte podle výše uvedeného průvodce arduino.cc k písmenu bez použití tohoto hexadecimálního souboru.
Krok 7: Užijte si ……
Nyní si užívejte nově převedenou klávesnici PS/2 na USB…. P. S. Tento Instructable byl plně napsán z externí klávesnice PS/2 připojené k mému notebooku přes Arduino:)
Doporučuje:
Adaptér Arduino Nano na Arduino Uno: 6 kroků (s obrázky)
Adaptér Arduino Nano na Arduino Uno: Arduino Nano je pěkný, malý a levný člen rodiny Arduino. Je založen na čipu Atmega328, díky kterému je stejně silný jako největší jeho bratr Arduino Uno, ale lze jej získat za méně peněz. V Ebay nyní čínské verze mohou
USB adaptér ZX Spectrum pro Raspberry Pi RetroPie: 5 kroků (s obrázky)
USB adaptér ZX Spectrum pro Raspberry Pi RetroPie Builds: RetroPie je speciální distribuce Linuxu, která je navržena speciálně pro emulaci systémů retro videoher na Raspberry Pis a dalších jednodeskových počítačích. Už nějakou dobu jsem chtěl jít úplně ven na sestavení RetroPie, a když jsem viděl to repro
DIY Bluetooth audio adaptér - BluFi: 9 kroků (s obrázky)
DIY Bluetooth audio adaptér - BluFi: Neexistuje jediný audiofil nebo hráč, který by necítil nutnost bezdrátových sluchátek, reproduktorů atd. Nebo jednoduše bezdrátového přenosu zvuku. Nelíbí se mi ani potíže s přítomností kabelových sluchátek, když se pokouším sledovat z dálky
Znakový adaptér LCD I2c (příklad připojení I2c): 12 kroků (s obrázky)
Adaptér Character LCD I2c (Příklad připojení I2c): Dělám schéma připojení pro adaptér i2c pro zobrazení znaků. Zkontrolujte aktualizace na mém webu. Nyní přidám také schéma zapojení kabeláže, abych použil původní knihovnu, nikoli moji rozeklanou. Knihovna LiquidCrystal Arduino pro znakové LCD displeje, vidlicový projektor
Adaptér Arduino Atari: 8 kroků (s obrázky)
Adaptér Arduino Atari: V poslední době se stále více zajímám o vintage počítačovou techniku. Jednou z nejzajímavějších a nejvlivnějších klasických technologických kousků je Atari 2600, která byla poprvé vydána v roce 1977. Bohužel jsem nikdy neměl možnost hrát jako ki