Obsah:

Adaptér Arduino PS/2 na USB: 7 kroků (s obrázky)
Adaptér Arduino PS/2 na USB: 7 kroků (s obrázky)

Video: Adaptér Arduino PS/2 na USB: 7 kroků (s obrázky)

Video: Adaptér Arduino PS/2 na USB: 7 kroků (s obrázky)
Video: TOP 10 Tajné funkce mobilu o kterých 90% lidí neví 2024, Listopad
Anonim
Adaptér Arduino PS/2 na USB
Adaptér Arduino PS/2 na USB
Adaptér Arduino PS/2 na USB
Adaptér Arduino PS/2 na USB

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í

Zapojení a nastavení
Zapojení a nastavení
Zapojení a nastavení
Zapojení a nastavení
Zapojení a nastavení
Zapojení a nastavení
Zapojení a nastavení
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í

Technické vysvětlení
Technické vysvětlení
Technické vysvětlení
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ý.

  1. 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'
  2. 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.
  3. 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 \'
  4. 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.
  5. 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 ……

Užívat si……
Užívat 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: