Moduláris USB billentyűzet emulátor

Korábban készítettem egy egyszerű billentyűzet emulátort és gyakorlatilag annak a továbbfejlesztéseként készült el nemrég ez a moduláris kialakítású megoldás. Sokat gondolkodtam azon, miként lehetne egy olyan emulátort elkészíteni, ami nem tartalmaz feleslegesen nagy teljesítményű mikrokontrollert, nem foglal el nagy helyet és azok számára is megoldást jelenthet, akik beérik viszonylag kevés bemenettel is. Egypanelese eszközt emiatt nem láttam jónak tervezni, hiszen akinek nem elegendő a korábban készített 10 bemenetes változat, ugyanakkor nem szeretne 70-80 bemenettel rendelkező drága eszközt megvenni, annak minden esetben személyre szabott áramkört kellene készítenem, vagy több típust kellene tervezni, különböző mennyiségű bemenetekkel. Ennek az ötletnek viszont hátránya a meglehetően drága előállítási költség, hiszen minden típust külön kell tervezni és gyártani.

Leginkább célravezetőnek az látszott, hogy maradok a korábbi mikrovezérlőnél, ami talán a legkisebb tudású beépített USB perifériával rendelkező típus és felbővítem a bemenetek mennyiségét. Ahhoz, hogy dinamikusan bővíthető legyen a rendszer, olyan expander IC-t választottam, ami adatbuszon képes kommunikálni, így szoftveresen megoldható a bemenetek mennyiségének konfigurálása, ezáltal lehetőség adódik későbbi bővítésre is.

A mikrovezérlő I/O lábaiból az alapmodellen kevesebb jutott bemenetekre, mivel az egyéb feladatokra szükség volt néhány lábat felhasználni. A korábbi 10 db kivezetés helyett az alapmodulon így 6 db kivezetést sikerült kialakítani, ami bemenetként felhasználható.

Ennél a modellnél már fontos szempont volt az is, hogy az egyes bemenetekhez rendelhető billentyűkódot ne csak én tudjam felprogramozni, hanem ezt felhasználói szinten is lehetőség legyen megváltoztatni, átprogramozni. Valószínűsítem, hogy a HID interfészen keresztül is elérhető lett volna a konfigurálási lehetőség, de mivel konkrét igény volt a modul kifejlesztésére és viszonylag limitált idő, így nem kezdtem el azt fejtegetni, hogy miként lehet a Microchip gyári USB HID programját úgy átalakítani, hogy az eszköz nem csak billentyűzetet emulálva tudjon a számítógépnek karakterkódokat küldeni, hanem visszafelé is legyen lehetőség beállítás céljából adatok átvitelére. Másik bökkenő az volt, hogy PC oldalon erre egy célszoftvert kellett volna írni, amin keresztül - már akkor lehetőség szerint grafikus felület segítségével - lehet beállítani az emulátort. Erre abszolút nem volt időm, illetve PC oldali programozásban egyelőre még nem vagyok ennyire jó. Ezen elgondolás szerint a modul kapott még egy további USB portot, ami lényegében egy USB/UART konverteren keresztül kapcsolódik a mikrovezérlőbe, PC oldalon pedig mint szabványos soros port látható. Működtetéséhez szükséges telepíteni az ingyenesen letölthető FTDI drivert, a HID eszközként való használathoz a másik USB ponton viszont nincs szükség külön illesztőprogramra, hiszen a legtöbb operációs rendszer a modult szabványos USB beviteli eszközként ismeri fel. Erről a moduláris verzióról tehát már elmondható az, hogy a bemeneteket a felhasználó konfigurálhatja be tetszés szerint.

Ami talán hátrány, hogy nincs hozzá grafikus célszoftver, van viszont soros terminálprogram, ami a legtöbb számítógépre feltelepíthető. Windowsra ilyen program pl. a Realterm, Linuxra a GtkTerm.
A konfigurálásról készítettem egy részletes leírást, mely alább letölthető, erre így külön nem térnék itt ki.

Egy főmodulhoz terveim szerint maximum 8 db extender modult lehetett volna csatlakoztatni, de sajnos közbeszólt a mikrovezérlőben lévő memória mennyisége. Ha assemblyben írtam volna a programot, amire az USB kezelés miatt inkább nem vállalkoztam, akkor talán belefértem volna a memóriába, így viszont a C fordítónak ez sajnos nem sikerült és a beállítási részeket csak 4 extender kártyáig sikerült definiálni.

A beállításokat egyébként a program megjegyzi, tehát nincs szükség minden egyes csatlakozással együtt konfigurálni, hanem elegendő csak akkor, ha tényleg módosításra van igény, esetleg bővítés történik.

Az extender kártyák saját hardveres címmel rendelkeznek, így adott bővítőmodul mennyiségnél erre figyelni kell, mert dedikáltan van első, második, harmadik és negyedik modul, viszont az összekapcsolás sorrendje nem lényeges, csupán az, ha van két bővítőkártya, akkor az egyik az első, másik a második címen legyen.

Az alapmodul önmagában is használható, viszont így csak 6 db bement áll rendelkezésre. Minden bővítőkártya 16 db bemenettel növeli meg az inputok számát, maximum négy bővítővel így egy összesen 70 bemenetes emulátor építhető fel.

A rendszer 5V-ról működik, melyet az USB porton keresztül kap, így külön tápellátásra nincs szükség.

Alap billentyűzet emulátor modul

Kiegészítő billentyűzet emulátor modul

Rendelés

A bemutatott eszköz természetesen megvásárolható a weboldalon keresztül a már megszokott ElectroImpress minőségben és garanciával.

Alapmodul

Rendelési kódja: EI-01601

Ára: 8500Ft.

Garancia: 2 év.

Raktáron van

MEGRENDELÉS

Kiegészítő modul

Rendelési kódja: EI-01602

Ára: 5900Ft

Garancia: 2 év.

Raktáron van

MEGRENDELÉS

Használati útmutató

Nyomtatott formátumú használati utasítást a készülék mellé kérés esetén biztosítok. A használati útmutató elektronikus formátumban bárki számára elérhető és letölthető.

HASZNÁLATI ÚTMUTATÓ LETÖLTÉSE (919kB pdf)

A karakterkódok beállításához szükséges USB HID dokumentáció.

USB HID USAGE TABLES (972kB pdf)

Moduláris billentyűzet emulátor