Talaan ng mga Nilalaman:

Wireless PC Joystick / Wheel Buttons: 4 Hakbang (na may Mga Larawan)
Wireless PC Joystick / Wheel Buttons: 4 Hakbang (na may Mga Larawan)

Video: Wireless PC Joystick / Wheel Buttons: 4 Hakbang (na may Mga Larawan)

Video: Wireless PC Joystick / Wheel Buttons: 4 Hakbang (na may Mga Larawan)
Video: 3 megapixel security camera. Is it worth buying? What does resolution affect? 2024, Hulyo
Anonim
Wireless PC Joystick / Wheel Buttons
Wireless PC Joystick / Wheel Buttons

Bumubuo ako ng isang bagong racing sim sa nakaraang ilang taon at nagpasyang sumama sa isang DIY Direct Drive steering wheel. Habang ang proyektong iyon lamang ay maaaring maraming mga itinuturo sa sarili nito, ito ay isang itinuturo tungkol sa paggawa ng lahat ng mga pindutan sa gulong na wireless.

Bakit?

  • Ang gulong DD ay walang limitasyong pag-ikot, kaya't ang pagkakaroon ng mga wire na pupunta dito ay nakakainis.
  • Walang kakayahang mag-ruta ng mga kable sa pamamagitan ng wheel shaft tulad ng sa mga komersyal na gulong
  • Nais kong maipagpalit nang madali ang mga gulong na may iba't ibang mga pagsasaayos ng pindutan
  • Dahil kaya ko:)

Upang makamit ang layunin ng mga wireless na pindutan kailangan nating isaalang-alang:

  • Paghahatid ng kuryente
  • Pagkakakonekta ng Wireless
  • Oras / pagkaantala ng reaksyon
  • Pagiging maaasahan

Ang mga sumusunod na sangkap ay pinili upang tumugma sa pamantayan na ito: Tx - Arduino Nano na may Integrated NRF24 Module dito o gumamit ng isang Generic Nano o Pro Mini + NRF24 ModuleRx - Arduino Pro Micro / Leonardo / Beetle (Atmega32u4) + NRF24 moduleUSB 'Battery Bank' - Anumang ang pangkaraniwang solong 18650 na bangko ng baterya ay dapat na gumana. Tatagal ito ng tinatayang 20 oras! Maaaring gusto mong suriin kung maaari itong singilin at maghatid ng kuryente nang sabay kahit na. Ito ay madaling gamitin kung ito ay tumatakbo flat at nais mong singilin at gamitin nang sabay.

Bilang karagdagan kakailanganin mo ang mga pindutan at isang switch ng kapangyarihan na iyong pinili, ilang hookup wire at posibleng ilang heat shrink tube.

Maaari din itong magamit sa isang 'box ng pindutan' sa halip na sa isang gulong ngunit naisip kong magkakaroon ng mas kaunting pangangailangan para doon dahil walang gaanong kalamangan kung hindi ito gumagalaw.

Kailangan ng mga tool:

Ang isang mainit na pandikit na baril ay magagamit para sa pag-mount din ng mga bahagi. Naka-install angrduino IDE sa iyong computer.

Hakbang 1: Ang Mga Kable ng Transmitter

Ang Mga Kable ng Transmitter
Ang Mga Kable ng Transmitter
Ang Mga Kable ng Transmitter
Ang Mga Kable ng Transmitter
Ang Mga Kable ng Transmitter
Ang Mga Kable ng Transmitter

Magsimula sa pamamagitan ng pag-mount ng maraming mga switch na kailangan mo sa iyong gulong at isaalang-alang ang lokasyon ng Arduino. Ikonekta ang lahat ng mga wire sa mga switch ayon sa diagram. Ang bawat pindutan ay mai-wire sa isang gilid sa GND at ang isa pa sa nauugnay na pin ng arduino. Pinapayagan ng code ang 14 na switch / pindutan na dapat sapat para sa karamihan ng mga gulong.

Kung gagamitin mo ang Nano na may naka-embed na module ng NRF, malinaw na hindi mo na kailangang idagdag ang nauugnay na mga kable para doon, i-wire mo lang ang mga pindutan.

Ang mga pindutan ay nasa order na ito (1-14): RX, TX, D2, D3, D4, D5, D6, D7, A0, A1, A2, A3, A4, A5

Ngunit bakit 14 na mga pindutan lamang? Ang dahilan para dito ay dahil mababasa natin ang isang buong bangko ng mga pin nang mabilis at ang paghahatid lamang ng 2 byte ng data ay hindi nagtatagal - Kaya't kahit na ito ay maaaring mabago upang maisama ang higit pang mga pindutan (sa pamamagitan ng isang matrix) at / o mga input ng analogue, magpapabagal ito ng kaunti. Ang pagbabasa ng matrix at pagbasa ng analog / pag-convert ay tumatagal ng oras ng processor. Kailangan ko lamang ng 12 mga pindutan sa aking gulong kaya't pinunta ko iyon ngunit isasaalang-alang ang pagdaragdag ng higit pa.

Para sa lakas, mayroon kang dalawang mga pagpipilian - Maaari mong iwanan ang bangko ng baterya sa taktika at i-secure lamang ito sa gulong kahit papaano. Binibigyan ka nito ng idinagdag na bonus na magagawang idiskonekta ang lakas mula sa arduino, pag-iwas sa isang built in switch at ilang mga kable.

Kung mas gugustuhin mo ang isang mas pasadyang solusyon, maaaring kailanganin na buksan ang bangko ng baterya at muling hangarin ang mga panloob sa iyong pasadyang pagsasaayos.

Wala akong silid sa aking gulong upang iwanang may taktika ito kaya't hinubad ito. Inalis ko ang karaniwang konektor ng USB mula sa board ng pagsingil at solder ang +5 at mga wire ng Gnd mula sa mga usb port pad sa Arduino sa pamamagitan ng isang switch. Medyo mahirap idetalye ito dahil sa maraming mga pagpipilian na magagamit …

Pagkatapos ay naka-mount ang circuit sa loob ng gulong, inilalantad ang micro USB charge konektor.

Ang charge board ay magkakaroon ng isa o higit pang mga LED upang maipakita ang katayuan sa pagsingil - Madaling gamitin na makita ang mga ito kahit papaano o gumamit ng ilang plastik upang 'port' ang mga ito sa isang lugar na nakikita upang malaman mo kung natapos na itong singilin.

Ano ang gulong iyon? Para sa mga interesado, ang aking disenyo ng gulong ay sa pamamagitan ng Amstudio - Ang ilang mahusay na mga disenyo ng bahagi ng racing ng DIY sim ay magagamit mula sa kanila sa makatuwirang presyo.

Hakbang 2: Ang Tagatanggap

Ang Tagatanggap
Ang Tagatanggap
Ang Tagatanggap
Ang Tagatanggap
Ang Tagatanggap
Ang Tagatanggap

Sundin lamang ang diagram ng mga kable tulad ng nakakabit. Kung hindi ka gumagamit ng isang Leonardo, kakailanganin mo ng isang panlabas na 3.3v regulator tulad ng AMS1117. Ang Pro Micro regulator ay hindi maaaring magbigay ng sapat na kasalukuyang para sa NRF24 Module at ang beetle ay wala kahit isa.

Mayroon akong kulay na naka-code ang mga koneksyon sa module ng NRF pareho para sa Pro Micro at beetle.

Ang Arduino 'Beetle' na kung saan ay madaling hanapin sa mga karaniwang lugar ngunit sa sandaling muli, ang 3.3v regulator ay kailangang gamitin dahil wala itong lahat. Nasubukan ko ito at gumagana rin ito. Ang mga koneksyon ay pareho

Hakbang 3: Programming ang Mga Device

Programming ang Mga Device
Programming ang Mga Device
Programming ang Mga Device
Programming ang Mga Device
Programming ang Mga Device
Programming ang Mga Device

Kung wala ka pang naka-install na Arduino IDE magtungo sa https://www.arduino.cc at i-download ang bersyon na angkop para sa iyong operating system para sa halimbawang ito ay nasa windows ako.

Kapag na-set up, kakailanganin mo ng dalawang magkakaibang aklatan - Ang una ay madali sa pamamagitan ng Sketch -> Isama ang Library -> Pamahalaan ang Mga Aklatan (o CTRL + SHIFT + I)

NRFLite ni Dave Parson (bersyon 2.2.2 tulad ng pag-publish)

Ang pangalawa ay kailangang manu-manong mai-install mula sa https://github.com/MHeironimus/ArduinoJoystickLibr..

Mag-click sa 'I-clone o I-download' pagkatapos 'I-download ang ZIP at buksan ang na-download na file. Pagkatapos ay kakailanganin mong mag-click sa mga folder hanggang sa makita mo ang isang folder na 'Joystick' - Kopyahin iyon sa iyong folder ng Arduino Library (Sa mga bintana, karaniwang ito ay Sa ilalim ng Mga Dokumento -> Arduino -> Mga Aklatan.

I-restart ang Arduino IDE

Kung gumagamit ka ng Pro Micro para sa tatanggap, kakailanganin mo ring idagdag ang board na iyon sa IDE. File -> Mga Kagustuhan -> Mga Karagdagang URL ng Boards Manager:

ipasok:

Pagkatapos ay pumunta sa Tools -> Boards Manager, maghanap ng Sparkfun at i-install ang 'Sparkfun AVR Boards'

Ngayon handa na kami! Magsisimula tayo sa transmiter - Ikonekta ito sa iyong PC

Sa ilalim ng Mga Tool -> Lupon, piliin ang 'Arduino Nano' (o anumang variant na iyong napagpasyahang gamitin). I-verify din ang COM port sa ilalim ng menu ng mga tool.

Buksan ang naka-attach na file na Wireless_Wheel_Tx.

Mayroon lamang isang linya na maaaring gusto mong baguhin sa code na ito at iyon ay:

int nrfChannel = 22;

Mayroon kang hanggang 126 na mga channel na maaari mong gamitin sa 2.4Ghz spectrum. Dapat maging maayos na iwanan ang as-is ngunit kung nakita mong mayroon kang mga isyu sa pagiging maaasahan, marahil ay baguhin ito sa ibang numero.

Pagkatapos ay pindutin lamang ang pindutang 'upload' at hintaying matapos ito.

Gayundin ang para sa Leonardo / Pro Micro / Beetle - Piliin ang board na gusto mo - Para kina Leonardo at Beetle, piliin ang board ng Arduino leonardo. Para sa Pro Micro, piliin iyon at piliin din ang variant / processor Atmega32u4 (5v, 16Mhz), buksan ang file na Wireless_Wheel_Rx, baguhin ang setting ng nrfChannel (kung binago mo ito sa Tx) at palayo ang programa.

Kapag nag-reboot ang aparato sa pag-program, dapat makakita ang iyong computer ng isang aparato ng joystick. Kung papalakasin mo rin ang iyong transmiter, dapat mong ma-press ang mga pindutan at ipakita ito sa katayuan ng aparato!

Ang isang cool na hindi sinasadya na tampok ay makakakuha ka ng isang ilaw sa katayuan sa Leonardo at Pro Micro - Ang USB TX led ay mag-iilaw kapag mayroon itong koneksyon sa mga pindutan. Ito ay wala sa beetle gayunpaman.

Nai-UPDATE 13/2/2021

Nagdagdag ako ng 2 dagdag na mga file (Tx at Rx) sa itinuturo dito para sa isang bersyon na may 4 na mga input ng Analog pati na rin isang 3X8 button matrix. Karamihan sa mga hindi nasubukan, maaaring magkaroon ng pagkaantala. Mangyaring subukan at magbigay ng puna.

Hakbang 4: Mga Pagpapabuti

Mga pagpapabuti
Mga pagpapabuti

Pagkatapos ng paggamit ng solusyon na ito nang kaunti habang mayroon akong ugali ng hindi sinasadyang iwan ang gulong. Upang matulungan itong kontrahin, nagdagdag ako ng isang LED sa harap upang makita kong nakabukas ang gulong. Ito ay isang simpleng 3mm led run lamang mula sa 5v sa arduino sa pamamagitan ng isang risistor. Ang tuktok ay pinadpad upang maikalat nang kaunti ang ilaw at maiwasan ang pag-iilaw.

Bumili ako ng ilang mga metro ng antas ng baterya mula sa BG o Ali ngunit nang dumating sila sila ay mas malaki kaysa sa inaasahan ko ngunit ito ang isang bagay na nais ko pa ring idagdag. Mayroong maraming mga pagpipilian na magagamit para sa mga ito ngunit dahil ang baterya ay tumatagal ng masyadong mahaba, may posibilidad akong recharge lamang pagkatapos ng ilang oras ng paggamit.

Dagdag na mga pindutan / encoder / analog na input pa rin ang iniisip ang tungkol sa isang ito. Para sa akin, hindi ito ganoon kahalaga para sa karera na ginagawa ko ngunit para sa mga bagay tulad ng F1 marahil ay mas kapaki-pakinabang ito. Isasaalang-alang ko ang dalawang bersyon o pagdaragdag nito kung may sapat na pangangailangan ngunit maaari itong makaapekto sa oras ng pagtugon sa mga pindutan.

Inirerekumendang: