Zedomax DIY121 - Hoe maak je eigen "PS3 SIXAXIS controller" stijl BASIC-programmeerbare USB-apparaat!

Klik hier om in Full Screen Mode

USB-apparaten zijn makkelijk voor de gebruikers te installeren en instellen (zolang alles goed werkt). Vaak je gewoon een USB-apparaat en het werkt meteen. Dit geldt met name voor input-apparaten, zoals muizen en toetsenborden.

Deze apparaten voldoen aan een specificatie lagen boven op de USB-protocol: Human Interface Device. Bijna alle mogelijke type ingang wordt gedefinieerd; een hele "rapport tem 'taal wordt gebruikt om de computer vertellen hoe de input-proces. Dit is niet heel eenvoudig uit te voeren; tientallen specifieke verzoeken moeten naar behoren worden behandeld. Er zijn veel stappen tussen het aansluiten van een USB-apparaat en kunnen gebruiken; deze allemaal plaatsvinden in een paar milliseconden en het falen van een trede, de inrichting zal niet werken.

Wat als je geen zorgen te maken over een van? Wat als u uw favoriete microcontroller, kunnen gebruiken doen "iets" en de input verschijnt op de computer in het juiste formaat? U zou geen zorgen te maken over ingewikkelde USB-code, HID specificaties, of het breken van uw USB-code bij het toevoegen van de andere functies die u nodig hebt. Je zou niet te veel zorgen over het schrijven van geoptimaliseerde code, of altijd in de weg van USB interrupts.

HID Portal

Dat is precies wat ik besloten om te doen. Een paar jaar geleden, ontwikkelde ik een USB-apparaat en ging door alle hoofdpijn op het krijgen van een USB-HID up and running. Aangezien ik al het harde werk gedaan had, besloot ik om een methode voor het ontvangen van gegevens van een andere microcontroller toe te voegen en het gebruik van die gegevens als de input-stroom voor de HID code. Ik wilde het gebruik van een Cubloc BASIC-programmeerbare controller mijn input gegevens te verwerken en te sturen naar de HID Portal. Mijn test applicatie zou een versnellingsmeter op basis HID joystick; gewoon het apparaat aansluiten op de computer en het zal werken.

Het hoeft niet te worden een joystick, het kan een toetsenbord, een muis, of vele andere controles die door de HID-standaard. Het is mogelijk om volume knoppen toe te voegen aan een apparaat ... misschien een circuit dempen uw computer wanneer de telefoon overgaat? Draai een spanning input in een joystick-as, een schakelaar in een knop? Alles is mogelijk!

Update: Ik heb besloten om de CUBLOC hardware tot een CB220 krimpen, en past alles in een vliegtuig model. Het model werd gekozen om overeenkomen met een vliegtuig beschikbaar in de Heroes of the Pacific spel dat we gebruikt om de joystick interface te testen.

Hardware Toelichting

De HID Portal is gebaseerd op een oud project van mij, op basis van een microcontroller MC68HC908JB8 en geprogrammeerd in assembler. Voor bepaalde redenen kan ik eigenlijk niet vrijgeven van de code nu, maar er zijn genoeg andere USB-projecten die er zijn die kunnen worden aangepast voor dit doel. Er is een open-source soft USB-uitvoering voor de ATtiny microcontroller, bijvoorbeeld.

Mijn microcontroller heeft geen ingebouwde I2C of SPI, dus ik moest een van mijn eigen uit te voeren. Ik heb ook niet over onderbreken pinnen beschikbaar, wat betekent dat mijn oplossing diende te worden gebaseerd op de verkiezingsdag. Toen was alles gezegd en gedaan en geoptimaliseerd, kon ik niet randen detecteren sneller dan 16kHz. Dit is ongeveer tien keer langzamer dan de verschuiving van de output beschikbaar CUBLOC controller, zodat ik niet kon gebruiken dat. Uiteindelijk heb ik met het schrijven van mijn eigen shift-out routine in BASIC om de gegevens te krijgen om de HID Portal. Dit kan worden vermeden door gebruik van een microcontroller die SPI of I2C gebouwd in al, maar de JB8 is wat ik had bij de hand.

Ik gebruik drie signalen om te communiceren met de CUBLOC controller. Ten eerste is er een CLK signaal. De HID Portal detecteert een stijgende flank. Op dat punt, leest de waarde aanwezig is op de DATA lijn. Dit is verschoven naar een register tot een byte is ontvangen, en de code naar de volgende byte. De / RST lijn is een manier om het begin van elk datapakket synchroniseren in geval was er geen valse input; wanneer zij stelt de LOW-pakket en wat indexen op nul.

De HID Portal is momenteel geprogrammeerd op te treden als een joystick met drie assen en acht knoppen. Ik heb ook getest als een toetsenbord. In de toekomstige ontwikkeling zou ik graag de HID Portal flexibeler te maken, laat de externe controller selecteert u het type apparaat en hoeveel van elke input nodig zijn. Het zou de meest flexibele indien zij direct aanvaard HID verslag descriptoren, maar dat opent de mogelijkheid om meer fouten te maken en eindigen met een niet werkend apparaat.

De versnellingsmeter is een DE-ACCM3D van Dimension Engineering. De CUBLOC leest gewoon de spanning op haar ADIN havens en converteert naar een waarde tussen -127 en 127.

Vervolg op Next Page

Tarief

1 Star2 Stars3 Stars4 Stars5 Stars
Loading ... Loading ...
  • Joe Brock
    Ben geïnteresseerd in het opbouwen van hetzelfde / vergelijkbaar type project. Zijn drukdoende met VB.net, en ben niet in dat alles.
    Heb niet geknoeid met foto's (microcontrollers) Hoe deze programma voor USB-poort of is dat een deel al gedaan?
  • Phil
    Hey guys awesome project ....

    Heeft u tihnk je kon soortgelijk proces van toepassing te maken voor een keyborad en muis setup te werken met PS3-games? Wat ik dacht was als je de output dat de controller stuurt wist, oculd u gebruik maken van een computerprogramma op een knop drukken wanneer u drukte op een knop op het toetsenbord te simuleren. Dwz als ik druk op de Enter-toets op mijn toetsenbord, een programma stuurt de opdracht voor "start" om de PlayStation ... elke feedback / idee over hoe men zou kunnen beginnen op een dergelijk project?
  • Steve Ellis
    Ik denk dat je absoluut verbazingwekkend hoe kan ik contact met u op Ik heb een paar vragen over een project dat ik probeer om te beginnen dat ik denk dat u misschien in staat om mijn e-mail antwoord is ellis90002@gmail.com stuur een email naar mij als je bent bereid om enkele vragen te beantwoorden
  • doesn'tmatter
    Ik zag HJM fidiling met de voorzijde van het vliegtuig met zijn linkerhand al de hele video
  • max
    haha ...
  • goed.
    Ik kom terug om te zien vriend.
  • max
    hey, welkom terug horisly! Heeft de playoffs halen voor u? hehe ...
  • Napsey
    Hallo, na mijn val vrij duur model vliegtuigen voor de derde en laatste keer dat ik dacht dat het te wijten was aan de kleine controles op de radio controle vak dat vind ik moeilijk te beheersen met mijn lompe duimen op mijn leeftijd. Wat ik nodig heb is om te kunnen om iets te doen als plug joystick van een computer in een laptop en laat de laptop schijf van de modelvliegtuigen die er in de echte wereld door de buddy-box verbinding. Ik kon ook dan plaats een kleine afstandsbediening TV-camera in de cockpit waardoor de video-feed doorgeven aan de laptop via een andere poort. Dit zou me helpen vliegen de vliegtuigen en geef me een reële kijk op de wereld door middel van het model. De volgende stap zou zijn om het model minder crashable met make zeggen, een model helikopter gyro geïnstalleerd in de fabriek, zodat door het loslaten van de controles, dan zou het vliegtuig vinden haar eigen recht en vlak. Is deze eis geluid te ver opgehaald in de achtertuin regeling van dingen?
  • andy
    hey ik heb een spel haai SP met USB-kabel en probeerde om Linux te draaien op het spel, maar de haai is HID (vertel me hoe dat werkt) en ik kan sturen is bedrog met de cheat programma! Maar goed, ik kan bewerken van de bestanden op de flitser op de GameShark?
  • max
    U wilt misschien de HID deskundige Garrett e-mail op garrett@comfiletech.com
  • evance
    Hi ~
    nice DIY

    Mag ik een vraag?
    PS3-controller USB Endpoint grootte is 32Byte?
    of moet gebruiken 64Byte?
    Ik capture pakket is 64 byte
    maar het lijkt 32 byte kan werken???
  • M07
    nice one eenmaal again.keep het goede werk.
  • Hoop dat ik kan maken ..... :)
  • max
    ja maak het! Ik wist niet eens proberen ...
  • Wow this is great!
    Briljant idee, goed gedaan.
  • Clint Fishburne
    Awsome en het is net wat ik zocht. Kan ik een geassembleerd?
  • name002
    Kan ik ga rechtstreeks van computer naar console? Ik wil graag spelen met de controller interface met een aangepast programma zou ik recht ..
blog comments powered by Disqus

Featured Sites From Zedomax Blog Network