Zedomax DIY121 - Ako vytvoriť svoj vlastný "PS3 SIXAXIS správca" štýlom BASIC-programovateľné zariadenie USB!
Kliknite tu pre zobrazenie v celoobrazovkovom režime
USB zariadenia sú užívatelia ľahko nainštalovať a nastaviť (ak všetko funguje správne). Často stačí pripojiť zariadenie USB, a funguje to okamžite. To platí predovšetkým pre vstupné zariadenia, ako napríklad myši a klávesnice.
Tieto zariadenia spĺňajú špecifikáciu vrstvené na hornej strane USB protokolu: Human Interface Device. Takmer všetky možné druhy vstupov je definovaná, celú "správu EUROVOC" je použitý jazyk povedať počítaču ako spracovať vstup. To nie je jednoduché urobiť, desiatky konkrétnych požiadaviek, musí byť primerane nakladať. Existuje niekoľko krokov, medzi pripojovaním USB zariadenia a budú môcť využiť, to všetko prebieha v niekoľkých milisekúnd a zlyhania každý krok znamená, že zariadenie nebude fungovať.
Čo keď vám nemusel starať o nič z toho? Čo keby ste mohli používať svoj obľúbený mikrokontrolér, urobiť "niečo" a vstup sa objaví na počítači v správnom formáte? Nebudeš sa báť zložitého kódu USB HID špecifikácie, alebo lámanie USB kód pri pridávaní ďalších funkcií, ktoré potrebujete. Vám by sa nemusel starať o písaní veľa optimalizovaný kód, alebo stále na ceste k prerušeniu USB.
HID portál
To je presne to, čo som sa rozhodol urobiť. Pred pár rokmi som vyvinul zariadenie USB a išiel cez všetky bolesti hlavy získať USB HID a beží. Pretože som už urobil tvrdej práce, som sa rozhodol pridať metóda prijímania dát z iného mikroprocesora a používať tieto dáta ako vstupného prúdu pre kód HID. Chcel som využiť CUBLOC BASIC-programovateľný regulátor so spracovaním mojich vstupných dát a odoslať ju na Portáli HID. Môj testovacej aplikácie by akcelerometer-založený HID joystick, jednoducho pripojiť zariadenie k počítaču, a to bude fungovať.
Nemusí to byť joystick, ale mohlo by byť klávesnica, myš, alebo veľa ďalších ovládacích prvkov definuje štandardné HID. Je možné pridávať tlačidlá ovládania hlasitosti na prístroji ... možno majú obvod vypnúť počítač, keď zazvonil telefón? Turn žiadne napätie vstup do osi joysticku, žiadne prepínanie do tlačidla? Všetko je možné!
Aktualizácia: Rozhodol som sa zmenšiť až na hardvér CUBLOC CB220, a všetko nejako poskladať do modelu lietadla. Tento model bol vybraný, aby zápas lietadla k dispozícii v Heroes of The Game Pacifiku sme použili na testovanie joystick interface.
Popis hardware
HID Portal je založená na starých banských projekt, založený na MC68HC908JB8 mikroradiče a naprogramovaný v jazyku symbolických inštrukcií. Z istých dôvodov nemôžem skutočne uvoľniť kód práve teraz, ale existuje množstvo ďalších projektov USB tam vonku, ktoré by mohli byť prispôsobené pre tento účel. Tam je otvorený open-source soft USB prevedení pre mikrokontrolér ATtiny, napr.
Moja mikrokontroléru nie je stavaný z-do I2C alebo SPI, tak som potrebné na uskutočnenie jedného z mojich vlastných. Tiež som nemala prerušovať kolíky sú k dispozícii, čo znamená, moja potreba riešenie, ktoré bude založené na hlasovaní. Keď bolo všetko povedané a vykonané a optimalizované, nemohol som objaviť okrajov rýchlejšie ako 16kHz. To je asi desaťkrát pomalší ako posun výstup k dispozícii od správcu CUBLOC, takže som nemohol použiť. Skončil som písať svoj vlastný shift-rutinné v BASICu dostať dáta do HID portálu. To by mohlo byť zabránené pomocou mikrokontroléru, ktorý má SPI alebo I2C postavený už v roku, ale JB8 je to, čo som mal v ruke.
Používam tri signály pre komunikáciu s radičom CUBLOC. V prvom rade je signál CLK. HID Portál zistí prednú hranu. V tú chvíľu to číta hodnoty prítomné na linky. Jedná sa posunul do registra do bytu bola prijatá, a kód, presunie na ďalšie byte. / RST linka je spôsob, ako synchronizovať začiatku každého dátového paketu v prípade, že sa žiadne rušivé vstup, keď LOW nastavuje paketu a trochu indexy na nulu.
HID Portál je naprogramovaný tak, aby v súčasnosti pôsobí ako joystick s tromi osami a osem tlačidiel. Ja som tiež testovali ako klávesnica. V budúcom rozvoji, rád by som, aby Portálu HID pružnejšie, či externý správca vyberte typ zariadenia, a koľko z každého vstupu sú povinné. Bolo by to najviac flexibilné, ak priamo prijal správu HID deskriptory, ale otvára možnosť, aby sa viac chýb a skončí s non-funkčné zariadenie.
Akcelerometer je DE-ACCM3D z dimenzie techniky. CUBLOC jednoducho číta napätie na jeho Adin prístavy a prevedie na hodnotu medzi -127 a 127.
Pokračovanie na ďalšiu stránku
















































