Talaan ng mga Nilalaman:
- Hakbang 1: Preperation
- Hakbang 2: Idisenyo ang Layout ng Kahon
- Hakbang 3: Sukatin at Mag-drill
- Hakbang 4: Pagkasyahin ang mga Butones, Rotary at Toggles
- Hakbang 5: Idisenyo ang Mga Layout ng Mga Kable
- Hakbang 6: Paghihinang
- Hakbang 7: Pagsulat ng Code
- Hakbang 8: Idagdag sa Iyong Rig
Video: Sim Racing Box Button: 8 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:14
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
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
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
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
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
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); }; }}
- Ikonekta ang iyong Arduino Pro Micro sa iyong computer sa pamamagitan ng pag-plug sa USB cable
- Upang mai-upload ang code piliin ang uri ng Arduino sa pamamagitan ng pagpunta sa Tools> Board:…> Arduino / Genuino Micro.
- Upang mapili ang tamang USB port pumunta sa Tools> Port:> COM x (Arduino / Genuino Micro)
- I-verify ang sketch sa pamamagitan ng pag-click sa ✓ sa kaliwang sulok sa itaas (sa ilalim ng File)
- Pindutin ang → sa tabi nito upang mai-upload ito sa Arduino
Hakbang 8: Idagdag sa Iyong Rig
Binabati kita! Malayo na ang narating mo. Ngayon ay oras na upang lumaban!
Inirerekumendang:
DIY Sim Racing Display Arduino: 3 Mga Hakbang
DIY Sim Racing Display Arduino: Ito ay kung paano bumuo ng isang napakadali at murang Sim Racing USB display na may isang Arduino UNO at isang 3,5 " TFT Display. Mayroon itong isang API para sa Assetto Corsa na kumukuha ng data mula sa Nakabahaging Memorya ng larong na-program sa C # sa Visual Studio, pagkatapos ipadala ang
Sim Racing Box Button: 7 Hakbang (na may Mga Larawan)
Sim Racing Button Box: Ang isang box ng pindutan ay isang aparato na ginamit sa Sim Racing na nagbibigay-daan sa iyo upang magtalaga ng mga pindutan, switch, at knobs sa iba't ibang mga kontrol sa kotse. Ang mga karaniwang takdang-aralin na pindutan ay mga bagay tulad ng isang pindutan ng pagsisimula, PTT, kahilingan sa hukay, atbp. Magaling na mag-toggle ang mga switch para sa mga wipeer, headl
Isang Juke Box para sa Napakabata Aka Raspi-Music-Box: 5 Hakbang
Isang Juke Box para sa Napakabata … Aka Raspi-Music-Box: May inspirasyon ng nagtuturo " Raspberry-Pi-based-RFID-Music-Robot " na naglalarawan ng isang music player na ROALDH build para sa kanyang 3 taong gulang, nagpasya akong bumuo ng isang juke box para sa aking mas bata pang mga bata. Karaniwan ito ay isang kahon na may 16 na mga pindutan at isang Raspi 2 i
AVR Microcontroller. I-toggle ang LED's Gamit ang isang Push Button Switch. Push Button Debouncing .: 4 Mga Hakbang
AVR Microcontroller. I-toggle ang LED's Gamit ang isang Push Button Switch. Push Button Debouncing .: Sa seksyong ito, matututunan natin Paano gumawa ng program C code para sa ATMega328PU upang i-toggle ang katayuan ng tatlong LED ayon sa pag-input mula sa isang switch ng pindutan. Gayundin, nag-explore kami ng mga solusyon sa problema ng 'Switch Bounce'. Tulad ng dati, wi kami
Car Box na Kinokontrol ng Tin Box Telepono: 9 Mga Hakbang
Car Box na Kinokontrol ng Tin Box Telepono: Naghahanap ako ng mabuting paraan upang matanggal ang inip nang wala akong magawa. Kaya't nakarating ako kasama ang bulsa na laki ng lata na kahon ng kotseng ito upang maalis ang inip sa lahat! Mayroon itong lahat ng mga mahusay na katangian! Ito ay maliit, magaan, madaling ma