USB játékvezérlô készítése AT90USB162 mikrovezérlővel

OData támogatás
Konzulens:
Lois László Dr.
Hálózati Rendszerek és Szolgáltatások Tanszék

Az USB napjaink egyik legnépszerűbb és legelterjedtebb adatátviteli módja. Ilyen csatlakozó megtalálható a legtöbb készülékünkön különböző méretben. Az elterjedésében nagy szerepe volt annak, hogy kicsi, ugyanakkor nagy sebességű adatátvitelt tudunk vele elérni. A HID megjelenésével pedig tovább nőtt a népszerűsége. Ez az operációs rendszerekbe épített program felelős az USB eszközök gyors elérésért. Így tudjuk azt megtenni, hogy egy megvásárolt normál egeret mindenféle telepítés nélkül csak csatlakoztatjuk a számítógépünkhöz, és már használhatjuk is.

A munkám első felében azt mutatom be, hogy egy USB eszköz milyen módon kommunikál a kiszolgálóval. Ezután kerül bemutatásra, hogy mit kell egy eszköznek elküldeni, hogy a kiszolgáló könnyedén felismerje. Pontosabban, hogy egy eszköz mitől HID eszköz. Ehhez a legfontosabb lépés, hogy az eszköz elküldje magáról az információkat leírók formájában. Ez alapján a kiszolgáló már könnyedén be tudja azonosítani.

Ennek működésének bemutatására választottam az AT90USB162 mikrovezérlőt. Ez egy, az ATMEL által gyártott eszköz, aminek a fejlesztéséhez a gyártó sok segítséget nyújt az AVR Studio fejlesztő környezetével, és a FLIP feltöltő programmal. A fejlesztés C nyelven történik a LUFA projekt alapján. Ez egy USB eszközök programozásával foglalkozó programkönyvtár, aminek a segítségével különböző HID eszközök fejleszthetőek. Én billentyűzet, egér és joystick programját készítettem el. Ez utóbbi pontosabban gamepad, de ez a különbség a működésben egyáltalán nem látszik, szinte csak a HID leíróban.

Egy régi, játéporton kommunikáló gamepad belsejében szerettem volna elhelyezni a mikrovezérlőt, vagyis a panelt, amire került. A meglévő belső, nyomógombokat érzékelő panel lemásolásával egy új panelt hoztam létre, melyhez a mikrovezérlő csatlakozik. Így egy felprogramozható USB eszköz készült el. A négy irányért felelős gombon kívül 8 gomb található meg az eszközön, plusz egy reset, amit utólag építettem be. A gombok mindegyikét használom a különböző eszközökön. Kivétel ez alól az egér, mert a HID csak három gombot támogat egy egérhez.

Miután mindhárom firmware külön-külön tökéletesen működik, egy közös program megvalósítását terveztem el, amivel váltani tudok a különböző funkciók között. A cél az, hogy az eszköz csatlakoztatásakor, vagy reset megnyomásakor bizonyos gombot nyomva tartva bizonyos funkció legyen aktív. Ezt az állapotot a mikrovezérlő EEPROM-jába menti a program, így gombnyomás nélküli csatlakozáskor az előzőleg használt állapot lesz újra aktív.

Letölthető fájlok

A témához tartozó fájlokat csak bejelentkezett felhasználók tölthetik le.