Zedomax DIY121 - Cum să faci propriul tău "PS3 SIXAXIS controlor" stil de bază dispozitiv programabil USB!

Faceţi clic aici pentru a vizualiza în Full Screen Mode

Dispozitivele USB sunt uşor pentru ca utilizatorii să instaleze şi a înfiinţat (cu condiţia ca totul funcţionează corect). De multe ori, tu chiar conectaţi un dispozitiv USB şi it works imediat. Acest lucru este valabil în special pentru dispozitivele de intrare, cum ar fi şoareci şi tastaturi.

Aceste dispozitive sunt conforme cu un caiet de sarcini stratificată pe partea de sus a protocolul USB: Human Interface Device. Aproape orice tip posibil de intrare este definit; un întreg "descriptor raport" limba este folosit pentru a spune calculatorului cum să proces de intrare. Acest lucru nu este foarte simplu să pună în aplicare; zeci de cereri specifice trebuie să fie tratate în mod corespunzător. Există mulţi paşi între conectarea într-un dispozitiv USB şi a fi capabil să le utilizeze; toate acestea au loc în câteva milisecunde şi eşecul de orice pas înseamnă dispozitivul nu va funcţiona.

Ce dacă tu nu a trebuit să vă faceţi griji cu privire la oricare din asta? Ce se întâmplă dacă ai putea folosi microcontroler dumneavoastră preferat, a face "ceva" şi de intrare apare pe calculator în formatul corect? Tu nu ar trebui să vă faceţi griji despre codul de complexe USB, caietul de sarcini HID, sau de rupere codul dvs. USB când adăugând funcţiile de care aveţi nevoie. Tu nu ar trebui să vă faceţi griji de mult despre scrierea de cod optimizat, sau întotdeauna să vă stea în calea de întreruperile USB.

HID Portal

Asta e exact ceea ce am decis să fac. Un cuplu de ani în urmă, am dezvoltat un dispozitiv USB şi a trecut prin toate dureri de cap de a obţine un USB HID sus şi să fie difuzate. Din moment ce am avut deja munca grea făcut, am decis să adauge o metodă de a primi date de la un alt microcontroler şi utilizând că datele ca fluxul de intrare pentru codul HID. Am vrut să utilizeze o BAZA Cubloc-controler programabil de a prelucra date de intrare meu şi trimite-l la Portal HID. Cererea mea de testare ar fi un accelerometru bazate pe joystick-ul HID; pur şi simplu conectaţi dispozitivul la computer şi că va funcţiona.

Aceasta nu trebuie să fie un joystick;Ar putea fi o tastatură, un mouse, sau multe alte controale definite de standardul HID. Este posibil să adăugaţi butoane pentru controlul volumului la un dispozitiv de ... poate avea un circuit de mut computer atunci când sună telefonul? Transforma orice tensiune de intrare într-o axă joystick-ul, orice trece într-un buton? Orice este posibil!

Update: am decis să scadă hardware-ul CUBLOC în jos la un CB220, şi tot ceea ce se potrivesc într-un model de avion. Modelul a fost ales pentru a se potrivi un avion disponibile în Eroilor de la joc Pacific am folosit pentru a testa interfata joystick-ul.

Hardware Explicaţie

Portalul HID se bazează pe un proiect vechi de-al meu, bazat pe un microcontroler MC68HC908JB8 şi programate în limbaj de asamblare. Din anumite motive nu pot presă, de fapt, codul chiar acum, dar există o mulţime de alte proiecte de USB acolo care ar putea fi adaptate în acest scop. Acolo 'un deschis-punere în aplicare provenind moale USB pentruMicrocontroler ATTINY, de exemplu.

Microcontroller mea nu şi-au construit-in-I2C sau SPI, asa ca am nevoie de a pune în aplicare unul de-al meu. Eu, de asemenea, nu au avut întrerup Pins disponibile, ceea ce înseamnă soluţie meu necesare pentru a se bazeze pe de votare. Când totul a fost spus şi de făcut şi optimizat, nu am putut detecta marginile mai repede decât 16kHz. Acest lucru este de aproximativ de zece ori mai lent decât producţia trecerea de la dispoziţie de la operator CUBLOC, aşa că nu am putut folosi pe acela. Am sfârşit prin a scris trecerea mea propria-out rutina in BAZĂ pentru a obţine date pentru a portalului HID. Acest lucru ar putea fi evitată prin utilizarea unui microcontroler care are SPI sau I2C construit în deja, dar JB8 este ceea ce am avut pe mână.

Eu folosesc trei semnale pentru a comunica cu controlerul CUBLOC. În primul rând, există un semnal de CLK. Portalul HID detectează un avantaj în creştere. În acel moment, citeşte valoarea prezentă pe linia DATE. Aceasta este deplasat într-un registru, până când un octet a fost primit, şi se mută la codul de byte următoare./ RST linie este o modalitate de a sincroniza de începerea fiecărui pachet de date în cazul în care nu a existat nici o intrare falsă; LOW atunci când acesta stabileşte de pachete şi indexurile de biţi la zero.

Portalul HID este în prezent programat să acţioneze ca un joystick-ul cu trei axe şi opt butoane. I-am testat, de asemenea, ca pe o tastatură. În dezvoltarea viitoare, aş dori să fac Portal HID mai flexibilă; lasa controller externe a selecta tipul de dispozitiv şi câte din fiecare intrare sunt necesare. Ar fi cel mai flexibil, în cazul în care, direct acceptat descriptori HID raport, dar că se deschide posibilitatea de a face mai multe greşeli şi să se termine cu un non-dispozitiv de lucru.

Accelerometru este o DE-ACCM3D de la Dimension Inginerie. CUBLOC pur şi simplu citeste tensiunea pe porturile sale Adin şi converteşte la o valoare cuprinsă între -127 şi 127.

Continuat pe Next Page

Rată

1 Stea 2 Stele 3 Stele 4 Stele 5 Stele
Loading ... Se incarca ...
  • Joe Brock
    Sunt interesat de aceeasi cladire / proiect similar de tip. Au fost fâţâială cu VB.net, şi nu sunt în toate asta.
    Nu s-au incurcat cu pic's (microprocesoare) Cum se programul de aceste pentru portul USB sau este acea parte deja făcut?
  • Phil
    Hey guys proiect minunat ....

    Ai tihnk te-ar putea aplica proces similar pentru a permite o keyborad şi configurare mouse-ul pentru a lucra cu jocuri de PS3? Ce M-am gândit a fost dacă aţi ştiut de ieşire de către operator a trimite, vă oculd utilizaţi un program de computer pentru a simula o apăsare de buton cînd u apăsat un buton de pe tastatură. Adică atunci când am apăsaţi tasta Enter de pe tastatura mea, un program trimite comanda pentru "Start" pentru PlayStation ... orice feedback / idee despre cum s-ar putea începe pe un astfel de proiect?
  • Steve Ellis
    Cred ca sunt absolut uimitor cum a putea i a lua legătura cu dvs. Eu am câteva întrebări despre un proiect I sînt trying la spre a începe, care cred că poţi fi în stare să răspundă de e-mail meu esteellis90002@gmail.com de e-mail, vă rugăm să-mi dacă sunteţi dispus să răspundă la câteva întrebări
  • doesn'tmatter
    Am văzut HJM fidiling cu partea din faţă a avionului cu mâna stângă pe tot parcursul video
  • haha ...
  • bine.
    am venit înapoi pentru a vedea prieten.
  • Hei, bine ai revenit horisly! Ai playoffs ajunge la tine? hehe ...
  • Napsey
    Bună, după prăbuşirea aeronavei meu destul de scump model pentru a treia oară şi ultima mi-am dat a fost ca urmare a controalelor mici pe cutia de control radio care mi se pare dificil de stăpânit, cu degetele mele stîngace la varsta mea. Ceea ce am nevoie este de a fi în stare să facă ceva de genul conectaţi un joystick calculator într-un laptop şi să laptop unitatea de aeronave model de acolo în lumea reală, prin buddy-conexiune cutie. Aş putea apoi loc, de asemenea o camera mica de la distanţă TV în cabina de pilotaj, care ar putea releu de furaje video la laptop printr-un alt port. Acest lucru ar ajuta-ma zbor a aeronavei şi dă-mi o vedere reală a lumii prin intermediul modelului.Următorul pas ar fi să se facă mai puţin modelul crashable cu alte cuvinte, un model de elicopter giroscoapelor instalat în lucrările, astfel încât prin închirierea merg a controalelor, avionul s-ar găsi imediat propriu şi nivel. Are această cerinţă de sunet prea departe preluat în sistemul curte de lucruri?
  • Andy
    hey au o sp joc de rechin cu cablu USB şi a fost încercarea de a rula Linux pe el, dar rechin jocul este HID (spune-mi cum că lucrări) şi tot i se pot trimite Cheats cu ieftin program! oricum i a putea edita fişiere de pe flash de pe gameshark?
  • S-ar putea sa de e-mail de experţi HID Garrett, la garrett@comfiletech.com
  • evance
    Max ~
    DIY Nice

    Mai am o intrebare?
    PS3 controler USB marimea Endpoint este 32Byte?
    sau ar trebui să utilizeze 64Byte?
    Am captura pachet este de 64 byte
    dar ei par 32 octet poate fi locul de muncă???
  • nice one, o dată again.keep sus bun work.
  • Hope I a putea a face it ..... :)
  • Da faceţi-o! Nici nu am încercat măcar ...
  • Wow this is great!
    Brilliant idea, bine facut.
  • Clint Fishburne
    Awsome şi acesta este doar ceea ce am fost il cautati. Pot să cumpăr un asamblat?
comentarii blog-ul creat de Disqus

Site-uri recomandate Din Zedomax Blog Network