Talaan ng mga Nilalaman:

Sim Racing Box Button: 8 Hakbang
Sim Racing Box Button: 8 Hakbang

Video: Sim Racing Box Button: 8 Hakbang

Video: Sim Racing Box Button: 8 Hakbang
Video: Purple Food Jelly Candy DONA Mukbang 2024, Nobyembre
Anonim
Sim Racing Box Button
Sim Racing Box Button

Maligayang pagdating sa mga adik sa karera ng sim!

Nauubusan ka ba ng mga keybind upang mai-map ang lahat ng iyong kontrol sa kotse? Marahil ay nangangailangan ka ng isang kahon ng pindutan! Sa Instructable na ito, lilikha kami ng isa mula sa simula. Ang kahon ng pindutan ay magkakaroon ng 32 (!) Magagamit na mga estado ng pindutan. Walang kinakailangang karagdagang software upang magamit ang box para sa button na ito. Malalaman mo kung paano mag-set up ng isang button matrix at isulat (o kopyahin) ang code upang mai-upload sa iyong Arduino.

Mahalagang malaman na ang kahon ng pindutan ay hindi sumusuporta sa maraming mga sabay na pinindot na mga pindutan.

Magsimula na tayo!

Hakbang 1: Preperation

Preperation
Preperation

Kakailanganin mo ang ilang mga tool, pindutan at maraming mga item upang likhain ang kahon ng pindutan. Huwag mag-atubiling lumikha ng kahon ng pindutan sa iyong pagnanasa.

Elektronikong:

  • Mga Pindutan
  • Nagpapalipat-lipat
  • Mga rotary encoder
  • Arduino Pro Micro
  • Mini USB sa USB cable
  • Mga wire

Mga tool:

  • Drill
  • Panghinang
  • Caliper
  • Screwdrivers
  • Pamutol
  • Wrench

Software:

  • Arduino IDE
  • Photoshop / Paint (opsyonal; maaaring iguhit ng kamay)

Iba pa:

  • Enclosure (isang kahon; maaaring mabili o pasadyang naka-print na 3D)
  • Carbon vinyl wrap (opsyonal)
  • Mga rotary encoder knobs
  • Lumipat ng mga takip (opsyonal)
  • Label printer (opsyonal)
  • Rubber grommet

Kapag mayroon ka ng lahat (o sapat na upang makapagsimula) mga item maaari naming simulan ang pagdidisenyo ng layout ng kahon ng pindutan.

Hakbang 2: Idisenyo ang Layout ng Kahon

Kinakailangan ang mga tool para sa hakbang na ito:

Photoshop / Paint (opsyonal; maaaring iguhit ng kamay)

Ang disenyo ng isang kahon ng pindutan ay maaaring magkakaiba para sa lahat. Gayunpaman, para sa Maituturo na ito gagamitin namin ang isang layout na binubuo ng:

  • 4x three way toggle switch
  • 2x isang paraan ng pag-toggle switch
  • 10x simpleng mga pindutan ng push
  • 4x rotary encoder na may simpleng pindutan

Tatlong paraan ng mga switch ng toggle:

Maraming uri ng mga switch ng toggle. Ang ilan ay panandalian at ang ilan ay mananatili sa lugar hanggang sa lumipat pabalik. Nasa sa iyo ang aling uri ang gagamitin, ngunit pinapayuhan ko ang paggamit ng mga pansamantalang switch dahil ang kahon ng pindutan na ito ay hindi may kakayahang magkaroon ng maraming mga mutiple na pindutan na aktibo sa parehong oras. Dahil ang mga switch ng toggle ay tatlong paraan (on / off / on), mayroon kaming walong (4x2) na mga pindutan na magagamit.

Isang paraan ng pag-toggle switch:

Maaari itong isaalang-alang bilang simpleng mga pindutan (off / on). Maaari din itong pansamantala o i-toggle. Muli, hanggang sa personal na kagustuhan kung alin ang pipiliin. Binibigyan kami nito ng dalawang (2) magagamit na mga pindutan.

Mga simpleng pindutan ng push:

Ang mga pindutan na tulad nito ay maaaring magamit ng simpleng pagtulak sa kanila (off / on). Bibigyan kami nito ng sampung (10) mga pindutan.

Mga rotary encoder na may simpleng pindutan ng push:

Karamihan (kung hindi lahat) ang mga rotary encoder ay maaaring lumipat sa parehong direksyon nang walang hanggan. Sa tuwing paikutin mo ang mga ito sa isang direksyon ginagamit ito bilang isang pindot ng pagpindot. Ang mga rotary encoder na ito ay maaari ding mapindot na nagbibigay sa kanila ng isa pang pindutan. Ang mga rotary encoder ay nagbibigay ng labindalawang (12 = 4x3; paikutin ang kaliwa / paikutin pakanan / itulak) na mga pindutan.

32 mga pindutan:

Ang pagkakaroon ng lahat ng ito ay magkakasama ay nagbibigay sa amin ng 32 (8 + 2 + 10 + 12) mga pagpindot sa pindutan!

Nasiyahan sa layout? Oras upang simulan ang pagbuo!

Hakbang 3: Sukatin at Mag-drill

Sukatin at Mag-drill
Sukatin at Mag-drill
Sukatin at Mag-drill
Sukatin at Mag-drill

Kinakailangan ang mga tool para sa hakbang na ito:

  • Caliper
  • Drill
  • Electronics (mga pindutan, switch, atbp.)

Sukatin ang lahat ng mga pindutan na nais mong idagdag sa iyong kahon ng pindutan. Kung nagkakaproblema ka sa paghanap ng mga sukat ng iyong electronics, gumamit ng isang (digital) caliper upang makuha ang diameter ng mga ito.

Markahan ang mga centerpoint ng electronics sa mukha ng iyong enclosure at mag-drill ng mga butas na may wastong laki. Nais mo bang gawing mas kaaya-aya ang enclosure? Maghintay gamit ang pag-angkop sa mga pindutan!

Kapag tapos ka na sa pagbabarena ng mga butas maaari na nating simulan na magmukhang isang tunay na kahon ng pindutan!

Hakbang 4: Pagkasyahin ang mga Butones, Rotary at Toggles

Pagkasyahin ang mga Pindutan, Rotary at Toggles
Pagkasyahin ang mga Pindutan, Rotary at Toggles
Pagkasyahin ang mga Pindutan, Rotary at Toggles
Pagkasyahin ang mga Pindutan, Rotary at Toggles

Kinakailangan ang mga tool para sa hakbang na ito:

  • Electronics (mga pindutan, switch, atbp.)
  • Wrench
  • Carbon vinyl wrap (opsyonal)
  • Cutter (opsyonal)

Ang lahat ng iyong electronics ay dapat na mayroong nut upang mai-turnilyo ito sa lugar. Kung hindi; sukatin ang mga ito at bumili ng tamang laki ng nut.

Dapat mong pagbutihin (personal na opinyon) ang hitsura ng iyong kahon ng pindutan maaari kang gumamit ng isang carbon fiber vinyl wrap. Gupitin ito sa laki (at medyo mas malaki) ng mukha ng iyong enclosure kung saan mo drill ang mga butas. Ilapat ang vinyl at ibalot ito sa mga sulok sa likuran. Sisiguraduhin nitong ang balot ay mananatili sa lugar kapag ang kalakip ay sarado. Ang sobrang vinyl na hinaharangan ngayon ang mga butas ay maaaring alisin gamit ang isang pamutol.

Ang paglagay sa balot (o hindi) maaari kang magkasya sa electronics upang likhain ang harap ng iyong kahon ng pindutan. Dapat mayroon ka na ngayong isang bagay na talagang mukhang isa na! Nakalulungkot, hindi pa ito gumagana…

Hakbang 5: Idisenyo ang Mga Layout ng Mga Kable

Idisenyo ang Layout ng Mga Kable
Idisenyo ang Layout ng Mga Kable

Kinakailangan ang mga tool para sa hakbang na ito:

Photoshop / Paint (opsyonal; maaaring iguhit ng kamay)

Lumilikha ng isang matrix:

Ang paggamit ng isang matrix ay makatipid sa amin ng oras at maraming hindi kinakailangang mga kable at paghihinang. Hindi ko idetalye ang aking sarili, ngunit imumungkahi kong tingnan mo ang artikulong ito kung hindi ka pamilyar sa konsepto ng isang matrix.

Idisenyo ang iyong sariling matrix o gamitin ang layout mula sa Instructable na ito. Sa matrix gagamitin namin ang limang mga pangkat. Ang mga pangkat ay konektado sa mga sumusunod na pinout sa Arduino:

  • 15: apat na rotary encoder
  • A0: limang mga pindutan ng push
  • A1: dalawang three way toggle at isang push button
  • A2: dalawang three way toggle at isang push button
  • A3: limang mga pindutan ng itulak

Hakbang 6: Paghihinang

Paghihinang
Paghihinang
Paghihinang
Paghihinang

Kinakailangan ang mga tool para sa hakbang na ito:

  • Panghinang
  • Panghinang
  • Electronics (naka-mount sa iyong enclosure)
  • Arduino Pro Micro
  • Mga wire

Opsyonal:

I-upload muna ang code mula sa susunod na hakbang kung nag-aalala ka tungkol sa paghihinang. Papayagan ka nitong suriin ang iyong mga koneksyon

Nais naming ilapat ang matrix na dinisenyo sa nakaraang hakbang sa aktwal na kahon ng pindutan. Maglaan ng kaunting oras para dito, lalo na kung ito ang iyong unang pagkakataon sa paghihinang.

Ilang payo:

  • Gumawa ng isang pangkat sa oras
  • Ikonekta ang Arduino sa iyong computer upang subukan paminsan-minsan
  • Huwag masyadong painitin ang mga plastik na pindutan dahil maaari silang matunaw at masira ang mga koneksyon
  • Huwag gumamit ng labis na panghinang, mas mababa ang mas mahusay
  • Gumamit ng iba't ibang mga wire sa kulay para sa bawat pangkat / lupa

Hakbang 7: Pagsulat ng Code

Kinakailangan ang mga tool para sa hakbang na ito:

  • Arduino IDE
  • Joystick library
  • Keypad.h (Arduino IDE> Sketch> Isama ang Library> Pamahalaan ang Mga Aklatan …> Maghanap para sa Keypad at i-install ang nilikha ni Mark Stanley at Alexander Brevig)

# isama ang # isama

#define ENABLE_PULLUPS

# tukuyin ang NUMROTARIES 4 # tukuyin ang NUMBUTTONS 24 # tukuyin ang NUMROWS 5 # tukuyin ang NUMCOLS 5

byte button [NUMROWS] [NUMCOLS] = {

{0, 1, 2, 3, 4}, {5, 6, 7, 8, 9}, {10, 11, 12, 13, 14}, {15, 16, 17, 18, 19}, {20, 21, 22, 23}, };

struct rotariesdef {

byte pin1; byte pin2; int ccwchar; int cwchar; pabagu-bago ng estado na hindi naka-sign na char; };

rotariesdef rotaries [NUMROTARIES] {

{0, 1, 24, 25, 0}, {2, 3, 26, 27, 0}, {4, 5, 28, 29, 0}, {6, 7, 30, 31, 0}, };

# tukuyin ang DIR_CCW 0x10

#define DIR_CW 0x20 #define R_START 0x0

#ifdef HALF_STEP

#define R_CCW_BEGIN 0x1 #define R_CW_BEGIN 0x2 #define R_START_M 0x3 #define R_CW_BEGIN_M 0x4 #define R_CCW_BEGIN_M 0x5 const unsigned char ttable [6] [4] = {// R_START (00, RINSTART) R_CCW_BEGIN {R_START_M | DIR_CCW, R_START, R_CCW_BEGIN, R_START}, // R_CW_BEGIN {R_START_M | DIR_CW, R_CW_BEGIN, R_START, R_START}, // R_START_M (11) {R_START_M, R_CCW_BEGIN_M, R_CW_BEGIN_M, R_START}, // R_CW_BEGIN_M {R_START_M, R_START_B, R_START_M, R_START_M, R_START_M, R_START_M, R_START_M, R_START_M, R_START_M, R_START_M, R_START_M DIR_CW}, // R_CCW_BEGIN_M {R_START_M, R_CCW_BEGIN_M, R_START_M, R_START | DIR_CCW},}; #else #define R_CW_FINAL 0x1 #define R_CW_BEGIN 0x2 #define R_CW_NEXT 0x3 #define R_CCW_BEGIN 0x4 #define R_CCW_FINAL 0x5 #define R_CCW_NEXT 0x6

const unsigned char ttable [7] [4] = {

// R_START {R_START, R_CW_BEGIN, R_CCW_BEGIN, R_START}, // R_CW_FINAL {R_CW_NEXT, R_START, R_CW_FINAL, R_START | DIR_CW}, // R_CW_BEGIN {R_CW_NEXT, R_CW_BEGIN, R_START, R_START}, // R_CW_NEXT {R_CW_NEXT, R_CW_BEGIN, R_CW_FINAL, R_START}, // R_CCW_BEGIN {R_CCW_NEXT, R_START, R_CCW_BEGIN, R_START}, // R_CCW_FINAL {R_CCW_NEXT, R_CCW_FINAL, R_START, R_START | DIR_CCW}, // R_CCW_NEXT {R_CCW_NEXT, R_CCW_FINAL, R_CCW_BEGIN, R_START},}; #tapusin kung

byte rowPins [NUMROWS] = {21, 20, 19, 18, 15};

byte colPins [NUMCOLS] = {14, 16, 10, 9, 8};

Keypad buttbx = Keypad (makeKeymap (mga pindutan), rowPins, colPins, NUMROWS, NUMCOLS);

Joystick_ Joystick (JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_JOYSTICK, 32, 0, false, false, false, false, false, false, false, false, false, false, false);

walang bisa ang pag-setup () {

Joystick.begin (); rotary_init ();}

void loop () {

CheckAllEncoder ();

CheckAllButtons ();

}

walang bisa ang CheckAll Buttons (walang bisa) {

kung (buttbx.getKeys ()) {para sa (int i = 0; i

walang bisa rotary_init () {

para sa (int i = 0; i

unsigned char rotary_process (int _i) {

unsigned char pinstate = (digitalRead (rotaries [_i].pin2) << 1) | digitalRead (rotaries [_i].pin1); rotaries [_i].state = ttable [rotaries [_i].state & 0xf] [pinstate]; bumalik (rotaries [_i]. estado at 0x30); }

walang bisa ang CheckAllEncoders (walang bisa) {para sa (int i = 0; i <NUMROTARIES; i ++) {

unsigned char resulta = rotary_process (i); kung (resulta == DIR_CCW) {Joystick.set Button (rotaries .ccwchar, 1); antala (50); Joystick.set Button (rotaries .ccwchar, 0); }; kung (resulta == DIR_CW) {Joystick.set Button (rotaries .cwchar, 1); antala (50); Joystick.set Button (rotaries .cwchar, 0); }; }}

  1. Ikonekta ang iyong Arduino Pro Micro sa iyong computer sa pamamagitan ng pag-plug sa USB cable
  2. Upang mai-upload ang code piliin ang uri ng Arduino sa pamamagitan ng pagpunta sa Tools> Board:…> Arduino / Genuino Micro.
  3. Upang mapili ang tamang USB port pumunta sa Tools> Port:> COM x (Arduino / Genuino Micro)
  4. I-verify ang sketch sa pamamagitan ng pag-click sa ✓ sa kaliwang sulok sa itaas (sa ilalim ng File)
  5. Pindutin ang → sa tabi nito upang mai-upload ito sa Arduino

Hakbang 8: Idagdag sa Iyong Rig

Idagdag sa Iyong Rig
Idagdag sa Iyong Rig

Binabati kita! Malayo na ang narating mo. Ngayon ay oras na upang lumaban!

Inirerekumendang: