Zedomax DIY121 - Paano gumawa ng sariling "PS3 SIXAXIS magsusupil" style BATAYANG-Programmable USB aparato!

I-click dito upang Tingnan sa Full Screen Mode

USB aparato ay madali para sa mga gumagamit na i-install at i-set up (hangga't ang lahat ng bagay ay gumagana ng tama). Kadalasan, hindi ka na lamang ng plug sa isang USB aparato at ito ay gumagana kaagad. Ito ay lalong totoo para sa mga aparatong input, tulad ng mice at keyboard.

Yaong mga aparato tumalima sa isang detalye layered sa itaas ng protocol ng USB: Human Interface Device. Halos anumang posibleng uri ng input ay natukoy; isang buong "Ang ulat na tagapaglarawan" wika ay ginagamit upang sabihin sa computer kung paano i-proseso ang input. Na ito ay hindi masyadong simple ipatupad; dose-dosenang mga tiyak na kahilingan ay dapat na hawakan ng maayos. Mayroong maraming mga hakbang sa pagitan ng plugging sa isang USB aparato at ng kakayahang gamitin ito; ang mga ito sa lahat ng mangyayari sa loob ng ilang milliseconds at kabiguan ng anumang hakbang ay nangangahulugan na ang aparato ay hindi gagana.

Paano kung hindi mo na kailangang mag-alala tungkol sa anuman sa mga iyon? Paano kung maaari mong gamitin ang iyong mga paboritong microcontroller, gawin ang "something" at input ang lalabas sa ang computer sa tamang format? Hindi mo gusto mag-alala tungkol sa mga kumplikadong USB code, HID pagtutukoy, o paglabag sa iyong USB code kapag ang pagdagdag ng iba pang mga function na kailangan mo. Hindi mo gusto mag-alala marami tungkol sa pagsulat ng optimized code, o palaging nakakakuha sa paraan ng USB interrupts.

HID Portal

Iyan ay kung ano mismo ang nagpasya kong gawin. Ang isang pares ng mga taon na ang nakaraan, ako ay nakabuo ng isang USB aparato at nagpunta sa pamamagitan ng lahat ng sakit ng ulo ng pagkuha ng isang USB HID up at tumatakbo. Dahil ako ay nagkaroon ng hirap sa trabaho tapos na, ako ay nagpasya na magdagdag ng isang paraan ng pagtanggap ng data mula sa iba pang microcontroller at gamit ang data na iyon bilang input stream para sa code ng HID. Nais ko na gumamit ng isang Cubloc BATAYANG-Programmable magsusupil sa proseso ng aking data input at ipadala ito sa HID Portal. Aking mga pagsubok na application ay isang accelerometer-based HID dyoistik; lamang plug ang aparato sa ang computer at ito ay gumagana.

Hindi kailangang maging isang dyoistik; maaaring ito ay isang keyboard, isang mouse, o marami pang ibang mga kontrol natukoy sa pamamagitan ng standard na HID. Ito ay posible na magdagdag ng mga pindutan ng lakas ng tunog control sa isang aparato ... siguro may circuit sa isang taong pipi sa inyong computer kapag ang telepono singsing? Lumiko anumang boltahe input sa isang aksis dyoistik, anumang lumipat sa isang pindutan? Kahit ano ay posible!

Update: ako ay nagpasya na ang pag-urong CUBLOC hardware down sa isang CB220, at magkasya ang lahat ng bagay sa isang modelo ng airplane. Ang modelo ay pinili na tugma ng isang airplane magagamit sa Heroes ng Pacific laro ginamit namin na subukan ang dyoistik interface.

Hardware Paliwanag

Ang HID Portal ay batay sa isang lumang proyekto ng minahan, batay sa isang MC68HC908JB8 microcontroller at programmed sa pagpupulong na wika. Para sa mga tiyak na mga dahilan na hindi talaga ako makapag-release ng code sa ngayon, ngunit may mga ng maraming iba pang mga proyekto sa USB lumitaw diyan na kung saan ay maaaring nilikha para sa layunin na ito. May isang bukas-sourced malambot USB para sa pagpapatupad ng microcontroller ATtiny, halimbawa.

Aking microcontroller ay hindi naka-built-in I2C or SPI, kaya ko na kailangan upang isakatuparan ang isa sa aking sarili. Ako din hindi na-abala Pins magagamit, ibig sabihin ang aking mga solusyon na kailangan upang maging base sa botohan. Kapag ang lahat ay said at tapos na at optimized, hindi ko maaaring tuklasin ang mga gilid ng mas mabilis kaysa sa 16Khz. Ito ay tungkol sa sampung beses slower kaysa sa paglilipat na output ay magagamit mula sa magsusupil CUBLOC, kaya hindi ko maaaring gamitin na. Ako natapos ng pagsulat ng aking sariling paglilipat-out na gawain sa BATAYANG upang makakuha ang data sa HID Portal. Ito ay maaaring iwasan sa pamamagitan ng paggamit ng isang microcontroller na may SPI o I2C na binuo sa na, pero JB8 ay kung ano ako ay nasa kamay.

Gumagamit ako ng tatlong senyas upang makipag-usap sa magsusupil CUBLOC. Una, mayroong isang CLK signal. Ang HID Portal nakikita ang pagsikat ng isang gilid. Sa puntong iyon, ito ang makakabasa ng mga kasalukuyang halaga sa linya DATA. Ito ay shifted sa isang magparehistro hanggang sa isang byte ay natanggap, at ang mga code na lilipat sa susunod na byte. Ang / RST linya ay isang paraan upang mag-synchronize sa simula ng bawat packet data kung sakaling may anumang mga bogus input; kapag mababa ito sa mga hanay ng packet at bit index sa zero.

Ang HID Portal ay kasalukuyang programmed na kumilos bilang isang dyoistik may tatlong axes at walong buttons. Din ko na sinubok ito bilang isang keyboard. Sa pag-unlad sa hinaharap, gusto kong gawin ang HID Portal mas nababaluktot; pabayaan ang mga panlabas na magsusupil piliin ang mga uri ng aparato at kung gaano karami ng bawat input ay kinakailangan. Gusto Ito ay ang pinaka-naibabagay sa mga pangyayari kung ito direkta tinanggap HID descriptors ulat, ngunit na bubukas up na ang posibilidad na gumawa ng mas maraming mga pagkakamali at ang end up sa isang di-gumagana aparato.

Accelerometer ay isang DE-ACCM3D mula sa Sukat ng Engineering. Ang CUBLOC lamang ang makakabasa ng boltahe sa kanyang ADIN port at nagpalit sa isang halaga sa pagitan ng -127 at 127.

Patuloy sa Susunod na Pahina

Rate

1 Star2 Stars3 Stars4 Stars5 Stars
Loading ... Naglo-load ...
  • Joe taong tampalasan
    Am interesado sa parehong gusali / mga katulad na uri ng proyekto. Ay fussing sa VB.net, at ako ay hindi sa lahat ng iyon.
    Hindi messed sa pic's (microcontrollers) Paano na ang mga programa para sa mga USB port o ay bahagi pa nagagawa?
  • Phil
    Hey guys awesome proyekto ....

    Huwag tihnk mo maaaring kayong mag-aplay katulad na proseso upang payagan ang isang keyborad at mouse setup sa trabaho na may PS3 games? Ano ako ay pag-iisip ay kung alam mo ang mga output na magsusupil ang nagpapadala, ikaw oculd gumamit ng isang programa sa computer na gayahin ng isang pindutan pindutin u kapag pinindot ang isang button sa keyboard. Ibig sabihin kapag ako pindutin ang pindutan ng ipasok ang susi sa aking keyboard, isang programa ipapadala ang utos para sa "simulan" sa PlayStation ... anumang puna / ideya sa kung paano ang isa ay maaaring magsimula sa mga tulad ng isang proyekto?
  • Steve Ellis
    ako sa tingin mo ay walang pasubali amazing kung paano maaari ako kumuha sa hawakan sa iyo ako ay may ilang mga katanungan tungkol sa isang proyekto i am sinusubukang simulan na ako sa tingin maaari mong upang sagutin ang aking email ay ellis90002@gmail.com mangyaring mag-email sa akin kung ikaw ay malugod na pumapayag sa sagot na ang ilang mga katanungan
  • doesn'tmatter
    ako nakita ko hjm fidiling sa harap ng eroplano kasama ang kanyang kaliwang kamay ang lahat sa buong video
  • max
    haha ...
  • well.
    ako babalik para makipagkita sa kaibigan.
  • max
    hey, welcome back horisly! Ba ang playoffs makuha sa iyo? hehe ...
  • Napsey
    Hi, pagkatapos crashing ang aking mga mahal sa halip modelo ng sasakyang panghimpapawid para sa ikatlo at huling oras ko ang korte, ito ay dahil sa mga maliliit na mga kontrol sa mga kahon sa radio control na mahanap ko ang mahirap na master sa aking kaunting asiwa sa aking edad. Ano ang kailangan ko ay para sa magagawa ng isang bagay tulad ng plug ng isang computer dyoistik sa isang laptop at ipaalam sa laptop ang drive ang mga modelo ng sasakyang panghimpapawid lumitaw diyan sa tunay na mundo sa pamamagitan ng mga buddy-kahon na koneksyon. Hindi ko rin pagkatapos maglagay ng isang maliit na remote ng TV kamera sa sabungan na maaaring maghatid ng video feed sa laptop sa pamamagitan ng ibang port. Ito ay makakatulong sa akin lumipad ang mga sasakyang panghimpapawid at bigyan ako ng isang tunay na pagtingin sa mundo sa pamamagitan ng mga modelo. Ang susunod na hakbang ay upang gumawa ng modelo ng mas mababa sa crashable sabihin, isang modelo ng gyro elikoptero na naka-install sa mga gawa kaya't na sa pamamagitan ng pagpapaalam ng pumunta ang mga kontrol, eroplano ay makahanap ng kanyang sariling tuwid at antas. Ba na ito na kinakailangan tunog masyadong malayo nakuha sa likod-bahay pamamaraan ng mga bagay-bagay?
  • andy
    hey ako ay isang laro SP pating sa usb cable at sinusubukan na patakbuhin ang linux sa mga ito ngunit ang laro pating ay HID (sabihin sa akin kung paano na ang mga gawa) at lahat ako maaari magpadala ay cheats sa lokohin programa! ako pa din ang maaaring i-edit ang mga file sa flash sa gameshark?
  • max
    Baka gusto mong email ang HID expert Garrett sa garrett@comfiletech.com
  • evance
    Hi ~
    nice DIY

    Maaari bang isang tanong?
    PS3 magsusupil laki ng USB Endpoint ay 32Byte?
    o dapat gamitin 64Byte?
    Makuha ko ang pakete ay 64 byte
    ngunit ang kanyang mukhang 32 byte ay maaaring magtrabaho?
  • m07
    nice one minsan again.keep up ang mabuting trabaho.
  • Pag-asa ako maaari gumawa ito ..... :)
  • max
    yes gawin ito! Hindi ko kahit na subukan ang ...
  • Wow ito ay malaki!
    Brilliant idea, well tapos na.
  • Clint Fishburne
    Awsome at ito ay lamang ng kung ano ako ay naghahanap. Maaari ba akong bumili ng isa binuo?
blog comments powered by Disqus

Featured Sites From Zedomax Blog Network