USB Keyboard Joystick: 5 Hakbang
USB Keyboard Joystick: 5 Hakbang
Anonim
USB Keyboard Joystick
USB Keyboard Joystick
USB Keyboard Joystick
USB Keyboard Joystick
USB Keyboard Joystick
USB Keyboard Joystick
USB Keyboard Joystick
USB Keyboard Joystick

Ito ay simple upang gumawa ng pasadyang USB keyboard at mouse Controller.

Gumagamit ako ng ilang mga keyboard shortcut kapag nag-rate ng mga larawan sa Adobe Lightroom, at nalaman na maaari akong maging mas mabilis gamit ang isang simpleng game controller Joystick. Kinutya ko ito sa isang breadboard na may dalawang sangkap na mayroon ako sa aking pagawaan at nalaman na ito ay mahusay, ngunit kailangan nito ng isang mas magandang "gabinete" upang mabuhay ito sa aking mesa.

Dahil batay ito sa Arduino, madali ang pagpapasadya ng mga function ng joystick at magdagdag ng mga karagdagang pindutan, pagdayal, o iba pang mga kontrol.

Mayroong tatlong mga seksyon sa proyektong ito:

  • Hardware
  • Software
  • Kaso na karapat-dapat sa desk upang hawakan ang nasabing hardware

Mga Bahagi

  • Arduino - 5v 16MHz Itsy Bitsy mula sa Adafruit. Maraming iba pang mga Arduino ay gagana nang maayos, ngunit tiyaking ang kanilang USB ay maaaring gumana sa mga aklatan ng keyboard at mouse.
  • Joystick - Ang style ng controller ng laro 2 axis na may switch (narito ang isang pack ng sampung: WGCD 10pcs Joystick Breakout Module Game Controller para sa Arduino PS2).
  • Kahoy o acrylic para sa kaso. Siguro ilang pintura.
  • Wire at isang USB cable.

Hakbang 1: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Arduino

Nais kong gumamit ng isang maliit na board ng Arduino upang mapanatili ang pagkakabuo na ito hangga't maaari. Mayroon akong ilang mga Pro Trinket ngunit hindi sila gumagana nang maayos para sa keyboard at mouse simulation dahil ang USB ay hindi ganap na ipinatupad sa mga Trinket. Para sa proyektong ito gumamit ako ng isang 5V 16MHz Itsy Bitsy mula sa Adafruit na maaaring gumamit ng karaniwang mga aklatan ng HID upang maging isang keyboard at mouse sa paglipas ng USB.

Joystick

Ito ang uri ng joystick na ginagamit sa mga game Controller. Ang mga ito ay dalawang axis at may isang switch na pansamantala sa kapag ang stick ay itinulak sa. Madali silang makahanap online. Kung nais mong bumili ng isa lamang maaari silang maging saanman mula $ 4 hanggang $ 10, ngunit maaaring mabili nang maramihang 10 mga pakete sa Amazon nang halos $ 11.

Tandaan, ang mga katulad na joystick mula sa Adafruit at Sparkfun ay may iba't ibang mga pinout kaysa sa lahat ng iba pang mga maaari mong makita sa online. Bigyang pansin iyon kapag na-hook mo ito.

Sa Arduino, ang mga proyektong ito ay gumagamit ng A0 para sa switch, A1 para sa X axis at A2 para sa Y axis. Nag-iiwan ito ng 19 iba pang mga input pin para sa iyo upang maging malikhain.

Ang joystick 5v ay nagmula sa 5v USB power (na may label na tulad ng Itsy Bitsy). At mayroon itong lupa - ikonekta ito sa Arduino ground.

Hakbang 2: Software

Software
Software

Ang Arduino code ay napaka prangka. Partikular ko itong na-program para sa ilang mga Lightroom keyboard shortcut na ginagamit ko para sa pag-rate ng mga larawan. Ang pagtulak sa mga switch ng toggle sa pagitan ng view ng Loupe ("e") at Grid ("g"). Ang paglipat ng joystick pakaliwa at pakanan ay pupunta sa nakaraang (kaliwang arrow) o sa susunod (kanang arrow) na larawan. Ang pagtulak sa stick up ay nagdaragdag ng isang bituin sa rating ("["), at ang pagtulak dito pababa ay tinanggal ang watawat ("u"). (Tiwala sa akin, may katuturan ito sa paraan ng pag-rate ko sa aking mga imahe.) Maaari mong baguhin ang code upang gawin ang nais mo.

Ang pangunahing loop ay unang binabasa ang estado ng paglipat. Kung nagbago ito mula sa TAAS patungo sa LOW ito ay nag-toggle at nagta-type ng alinman sa 'e' o 'g' upang lumipat sa pagitan ng Loupe at Grid view.

Susunod, nai-mapa ng programa ang mga halagang analog ng joystick (0 hanggang 1024) sa isang iba't ibang saklaw (-5 hanggang +5). Kinikilala ng code ang mga halagang +/- ng 5 bilang mga pagkilos para sa pagpapadala ng mga character, kaya kailangan mong ilipat ang joystick malapit sa dulo ng saklaw nito upang magpadala ng isang keyboard shortcut. Ang joystick pagkatapos ay kailangang dumaan sa 0 bago magpadala ng isa pang keystroke. Ang code upang magawa ito ay medyo maikli at sa palagay ko ay medyo matikas. Ang net effect ay dapat mong sadya tungkol sa iyong mga galaw at hindi ito aksidenteng magpapadala ng isang stream ng parehong keystroke (na ginawa ng aking unang bersyon ng code!).

Maaari mong gamitin ang mouse library at ang mga halagang analog mula sa joystick upang makontrol ang iyong cursor, scrollwheels, mga kontrol sa dami, o anumang iba pang pagpapaandar ng analog (ish).

Hakbang 3: Kaso, Bahagi 1 - Disenyo at Pagputol

Kaso, Bahagi 1 - Disenyo at Pagputol
Kaso, Bahagi 1 - Disenyo at Pagputol
Kaso, Bahagi 1 - Disenyo at Pagputol
Kaso, Bahagi 1 - Disenyo at Pagputol
Kaso, Bahagi 1 - Disenyo at Pagputol
Kaso, Bahagi 1 - Disenyo at Pagputol

Ang pagkakaroon ng isang breadboard na nakatira sa aking mesa ay hindi mukhang cool, at ang ergonomics ay hindi perpekto din. Oras upang mag-disenyo ng isang kaso.

Ito ay magiging isang perpektong proyekto upang mag-print ng isang kaso para sa 3D. Wala akong isang 3D printer ngunit mayroon akong isang laser cutter, kaya't ang lahat ay mukhang isang proyekto ng pagputol ng laser sa akin ngayon. Ang disenyo na ito ay tumagal ng isang gabi upang mag-disenyo sa Adobe Illustrator, kasama ang paglalaro ng maraming iba't ibang mga konsepto tulad ng isang simpleng stick, isang mas organikong hugis gamit ang mga laser cut hinge, at mga boxy na hugis.

Nagsimula ako sa pamamagitan ng paghawak ng breadboard sa iba't ibang taas at mga anggulo, at nagpasya na ang isang anggulo ng 30 ° sa taas na halos 80 hanggang 100mm mula sa desk ay magiging komportable. Ang pangwakas na disenyo ay mukhang isang maliit na tulad ng isang flight joystick at pakiramdam komportable na hawakan.

Ang orihinal na file ng Adobe Illustrator kasama ang mga bersyon ng DXF at PDF ay kasama sa ibaba. (Ang DXF at PDF ay hindi pa nasubok sa isang pamutol ng laser.) Kasama rin sa file ang mga tuktok at gilid na pagtingin ng joystick na magagamit mo sa paglalagay ng iyong sariling proyekto.

Mayroong dalawang kapal ng materyal na ginamit sa disenyo na ito. Lahat ngunit ang tuktok ay 0.187 "'utility' playwud mula sa lokal na malaking box store. Ang isang sheet na 2 'x 4' ay halos $ 8. Gumagamit ang disenyo ng 5mm bilang kapal para sa.187" na kahoy sa disenyo, at nagtitipon ito perpekto Ang tuktok ay 3mm playwud upang payagan ang labis na clearance para sa thumbgrip sa joystick. Ang proyektong ito ay magiging maganda sa malinaw na acrylic din.

Isang tala ng isang pares ang tungkol sa pakinabang ng paggawa ng mga prototype: Gumawa ako ng isang test cut at pagpupulong gamit ang karton muna na nakatulong makahanap ng isang pagkakamali sa disenyo. Nang gupitin ko ang bersyon ng kahoy sa unang pagkakataon natuklasan ko din na ang tuktok na plato ay napaka-marupok ng butas, kaya binago ko ang disenyo ng mga tab upang magdagdag ng labis na lakas doon. Nalaman ko rin na ang joystick ay tumatama sa gilid ng kaso, kaya't gumawa ako ng dalawang pagbabago: Inilipat ko ang bundok upang masentro ito nang mas mahusay, at gumamit ako ng 3mm na kahoy sa halip na 5mm sa itaas. Ang nai-upload na file ng disenyo ay mayroong lahat ng mga pagbabago sa loob nito - tiyaking gupitin ang tuktok na piraso mula sa mas payat na kahoy.

Hakbang 4: Kaso, Bahagi 2 - Kulayan at Pagpupulong

Kaso, Bahagi 2 - Kulayan at Asembleya
Kaso, Bahagi 2 - Kulayan at Asembleya
Kaso, Bahagi 2 - Kulayan at Asembleya
Kaso, Bahagi 2 - Kulayan at Asembleya
Kaso, Bahagi 2 - Kulayan at Asembleya
Kaso, Bahagi 2 - Kulayan at Asembleya

Sa lahat ng mga piraso ng hiwa ginawa ko ang isang huling dry pagpupulong at pansamantalang nai-mount ang joystick. Ang lahat ay mabuti, kaya idinikit ko ang lahat ng mga piraso maliban sa tuktok. Hindi posible na mai-install ang joystick pagkatapos na nakalakip ang tuktok upang dumating iyon sa paglaon.

Ang kanang sulok sa ibaba ng tuktok ay magtusok sa ilalim ng aking hinlalaki kaya inikot ko ang mga ibabang sulok na may mabilis na sanding.

Kung gusto mo ang hitsura ng hiwa ng laser, o kung ginawa mo ito sa acrylic, tapos ka na! Nais kong mas mahusay na tapusin ang piraso upang pumunta sa aking desktop. Binigyan ko ito ng isang base coat ng itim na pintura at pagkatapos ay ilang mga coats ng Rust-oleum Forged Hammered Burnished Amber. Ginamit ko ang produktong ito sa trim ng aking mesa, kaya't ito ay magkakabit ng mga piraso. Gusto ko rin ang hitsura ng metal na tapusin ng pinturang ito. Itinakip ko ang loob ng mga kasukasuan ng daliri kung saan ang tuktok ay umaangkop upang ang pintura ay hindi masira ang akma.

Ang joystick at Arduino ay naka-wire na may mga itim na wires at pag-urong ng tubo upang mapanatili itong malinis, at ang mga wire ay pinutol sa haba na mukhang tama kapag na-install.

Ang mga joystick turnilyo sa lugar sa center strut. Ang mga tornilyo na mayroon ako ay medyo mahaba, kaya pinapaikli ko ang mga ito sa pamamagitan ng pag-ikot sa mga ito sa hindi ginagamit na kahoy at pinapasok ang mga tip pabalik gamit ang isang tabletop sander. Ang Arduino ay walang mga tumataas na butas, kaya't ito ay mainit na nakadikit sa lugar.

Sa lahat ng nakakabit na snap ko ang tuktok sa lugar nang hindi nakadikit. Tama ang sukat nito upang mahawakan ang sarili at hindi mahalaga sa istruktura.

Hakbang 5: Pagkumpleto

Pagkumpleto
Pagkumpleto
Pagkumpleto
Pagkumpleto
Pagkumpleto
Pagkumpleto

Ang tapos na proyekto ay mukhang mahusay sa aking mesa.

Ang unang bagay na ginamit ko ito ay ang i-edit ang mga larawan para sa Instuctable na ito.

Tapos na!