Zedomax DIY121 - Hogyan készítsd el saját "PS3 SIXAXIS kontroller" stílusú BASIC programozható USB device!
Kattintson ide, hogy teljes képernyős módban
USB-eszközök a felhasználók számára egyszerűen telepíthető és létrehozni (mindaddig, amíg minden megfelelően működik-e). Gyakran előfordul, csak csatlakoztassa az USB-eszközt és működik azonnal. Ez különösen igaz a beviteli eszközök, mint például az egerek és billentyűzetek.
Ezek az eszközök megfelelnek az előírásoknak réteges tetején az USB protokoll: Human Interface Device. Szinte minden lehetséges típusú input meghatározott; egy egész "jelentés leíró" nyelv használata megmondja a számítógép, hogyan dolgozza fel a bemenetet. Ez nem túl könnyen megvalósítható, több tucat konkrét kéréseket megfelelően kell kezelni. Számos olyan lépést között dug be az USB-eszközt, és hogy képes használni, ezeket minden történik néhány ezredmásodperc, és hogy semmilyen lépést nem az az eszköz nem fog működni.
Mi van, ha nem kell aggódnia, hogy valamelyik? Mi van, ha jól jönne a kedvenc mikrovezérlő, akkor "valami", és a bemeneti jelenik meg a számítógép a megfelelő formátum? Gondolom, nem kell aggódnia, komplex USB kódot, a HID előírások, vagy összetörik az USB kódot, ha hozzáadjuk a többi funkció amire szüksége van. Gondolom, nem kell aggódnia sokat írás optimalizált kódot, vagy mindig útjában az USB-megszakítások.
A HID Portal
Pontosan úgy döntöttem, hogy igen. Néhány évvel ezelőtt dolgoztam egy USB-eszközt, és ment végig a fejfájás-ból szerzés egy USB HID felállt és működik. Mivel én már a kemény munkát, úgy döntöttem, hogy adjunk egy módszer adatok fogadásához a másik mikrovezérlő és használ, hogy adatokat, mint a bemeneti folyam a HID kódot. Szerettem volna használni Cubloc BASIC programozható vezérlő, hogy e számomra a bevitt adatok, és küldje el a HID portálon. Saját teszt alkalmazás lenne gyorsulásmérő-alapú HID joystick, egyszerűen csatlakoztassa az eszközt a számítógéphez, és működni fog.
Nem kell egy joystick, ez lehet a billentyűzet, az egér, vagy sok egyéb ellenőrzések által meghatározott HID szabványnak. -A 'lehetséges-hoz összead Hangerő-szabályozó gombok a készülék ... talán van egy áramkör néma a számítógépet, amikor csörög a telefon? Fordítsuk minden bemeneti feszültség egy joystick tengely, minden kapcsoló egy gombot? Bármi lehetséges!
Update: Úgy döntöttem, hogy összezsugorodik a hardver CUBLOC le egy CB220, és illik mindent egy repülőgép modell. A modell azért választották, hogy illik egy repülőgép áll rendelkezésre a Heroes of the Pacific játékot szoktunk tesztelni a joystick illesztő.
Hardware Magyarázat
A HID portál alapja egy régi projektet az enyém alapuló MC68HC908JB8 mikrovezérlő és a programozott assemblyben. Bizonyos okok miatt nem tudom ténylegesen kibocsátja a kódot most, de van sok más USB-projekteket, amelyek ott lehet erre a célra alakították. Van egy nyílt forráskódúvá puha USB végrehajtására vonatkozó ATTINY mikrovezérlő, például.
Saját mikrokontroller nem rendelkezik beépített I2C vagy SPI, úgyhogy végrehajtásához szükséges, az egyik az enyém. Én is nem kellett szakítsa csap áll rendelkezésre, ami azt jelenti az én megoldást kellett alapozni szavazóhelyiségek. Amikor minden volt mondott és megtett és optimalizált, nem tudtam észlelni szélei gyorsabban 16kHz. Ez körülbelül tízszer lassabb, mint a shift teljesítmény érhető el a CUBLOC adatkezelő, így nem tudtam használni ezt. Így végül írásban saját shift-out rutin BASIC-hoz kap az adatokat a HID portálon. Mindez elkerülhető, használatával mikrovezérlő, amely SPI vagy I2C-ban épült már, de a JB8 az, ami volt kéznél.
Én háromszor használható jeleket kommunikálni a CUBLOC vezérlő. Először is, van egy CLK jelet. A HID Portal észlel emelkedő szélére. Ezen a ponton, akkor beolvassa az érték jelen a DATA vonal. Ez mozdult be a nyilvántartásba, amíg a bájt érkezett, és a kód költözik a következő bájt. A / RST sor oly módon, hogy szinkronizálja a kezdete minden adatcsomag abban az esetben van-e valami zavaró bemenet; LOW, amikor azt állítja be a csomagot, és kicsit indexeket nulla.
A HID portál jelenleg programozva, hogy működik egy joystick három tengely mentén, és nyolc gomb. Én is vizsgálták, hogy például a billentyűzet. A jövőben a fejlesztés, szeretném, hogy a HID Portál rugalmasabb, hogy a külső vezérlő válassza ki a készülék típusát, és hogy hány minden bemenő van szükség. Ez lesz a legrugalmasabb, ha közvetlenül elfogadott jelentés HID leírások, de ez megnyitja a lehetőséget, hogy nagyobb hibákat, és a végén egy nem működő eszköz.
A gyorsulásmérő egy DE-től ACCM3D Dimension Engineering. A CUBLOC egyszerűen beolvassa a feszültség a Adin kikötők és áttért egy értéket -127 és 127 között.
Folytatódott Következő oldal
















































