Kazalo:

Sim Racing Button Box: 8 korakov
Sim Racing Button Box: 8 korakov

Video: Sim Racing Button Box: 8 korakov

Video: Sim Racing Button Box: 8 korakov
Video: She Gets A SURPRISE! 😱 2024, November
Anonim
Škatla z gumbi Sim Racing
Škatla z gumbi Sim Racing

Dobrodošli odvisniki od sim dirk!

Vam zmanjkuje povezav na tipke za preslikavo vseh kontrolnikov vašega avtomobila? Verjetno potrebujete gumbno omarico! V tem navodilu bomo eno ustvarili iz nič. V polju z gumbi bo na voljo 32 (!) Stanj gumbov. Za uporabo te gumbe ni potrebna dodatna programska oprema. Naučili se boste, kako nastaviti matrico gumbov in napisati (ali kopirati) kodo za nalaganje v svoj Arduino.

Pomembno je vedeti, da polje z gumbi ne podpira veliko hkrati pritisnjenih gumbov.

Začnimo!

1. korak: Priprava

Predpriprava
Predpriprava

Za ustvarjanje gumba za gumbe boste potrebovali nekaj orodij, gumbov in več predmetov. Po želji ustvarite polje z gumbi.

Elektronika:

  • Gumbi
  • Preklopi
  • Rotacijski dajalniki
  • Arduino Pro Micro
  • Mini kabel USB na USB
  • Žice

Orodja:

  • Vrtalnik
  • Spajkanje
  • Čeljust
  • Izvijači
  • Rezalnik
  • Ključ

Programska oprema:

  • Arduino IDE
  • Photoshop/Paint (neobvezno; lahko narišete ročno)

Drugo:

  • Ohišje (škatla; lahko ga kupite ali 3D natisnete po meri)
  • Ogljikov vinilni ovoj (neobvezno)
  • Ročaji dajalnika
  • Pokrovi stikal (neobvezno)
  • Tiskalnik nalepk (neobvezno)
  • Gumijasti vložek

Ko imate vse (ali dovolj za začetek) elementov, lahko začnemo oblikovati postavitev gumba.

2. korak: Oblikujte postavitev škatle

Orodja, potrebna za ta korak:

Photoshop/Paint (neobvezno; lahko narišete ročno)

Oblika škatlice z gumbi je lahko za vsakogar drugačna. Vendar bomo za ta Instructable uporabili postavitev, ki jo sestavljajo:

  • 4x tri smerna stikala
  • 2x enosmerna stikala
  • 10x preprosti gumbi
  • 4x vrtljivi dajalnik s preprostim gumbom

Trosmerna stikala:

Obstaja veliko vrst stikal. Nekateri so trenutni, nekateri ostanejo na mestu, dokler se ne vrnejo nazaj. Katero vrsto boste uporabili, je odvisno od vas, vendar svetujem, da uporabite trenutna stikala, saj ta gumb ne more imeti aktivnih več različnih gumbov hkrati. Ker so stikala tri smerna (vklop/izklop/vklop), imamo na voljo osem (4x2) gumbov.

Enosmerna stikala:

Te lahko štejemo za preproste gumbe (izklop/vklop). Ti so lahko tudi trenutni ali preklopni. Spet odvisno od osebnih želja, kaj izbrati. Ta nam dajeta dva (2) razpoložljiva gumba.

Enostavni gumbi:

Takšne gumbe lahko uporabite tako, da jih preprosto pritisnete (izklop/vklop). Tako bomo dobili deset (10) gumbov.

Rotacijski dajalniki s preprostim pritiskom na gumb:

Večino (če ne vseh) rotacijskih kodirnikov je mogoče neskončno obračati v obe smeri. Vsakič, ko jih zasukate v smer, se uporablja kot pritisk na gumb. Na te rotacijske dajalnike je mogoče pritisniti in jim dati še en gumb. Vrtljivi dajalniki dajejo dvanajst (12 = 4x3; vrtite levo/zavrtite desno/potisnite) tipke.

32 gumbov:

Če jih združimo skupaj, dobimo 32 pritiskov na gumbe (8+2+10+12)!

Ste zadovoljni s postavitvijo? Čas je za začetek gradnje!

3. korak: Izmerite in vrtajte

Izmerite in vrtajte
Izmerite in vrtajte
Izmerite in vrtajte
Izmerite in vrtajte

Orodja, potrebna za ta korak:

  • Čeljust
  • Vrtalnik
  • Elektronika (gumbi, stikala itd.)

Izmerite vse gumbe, ki jih želite dodati v polje z gumbi. Če imate težave pri iskanju dimenzij vaše elektronike, uporabite (digitalno) čeljust, da dobite njihov premer.

Označite središčne točke elektronike na sprednji strani ohišja in izvrtajte luknje ustreznih velikosti. Ali želite ohišje narediti nekoliko bolj estetsko? Počakajte z namestitvijo gumbov!

Ko končate z vrtanjem lukenj, lahko postane videti kot prava škatla z gumbi!

4. korak: Namestite gumbe, rotacije in preklopne ročice

Namestite gumbe, vrtljivke in stikala
Namestite gumbe, vrtljivke in stikala
Namestite gumbe, vrtljivke in stikala
Namestite gumbe, vrtljivke in stikala

Orodja, potrebna za ta korak:

  • Elektronika (gumbi, stikala itd.)
  • Ključ
  • Ogljikov vinilni ovoj (neobvezno)
  • Rezalnik (neobvezno)

Vsa vaša elektronika mora imeti priloženo matico, da jo privijete. Če ne; izmerite jih in kupite matico pravilne velikosti.

Če želite izboljšati (osebno mnenje) videz škatle z gumbi, lahko uporabite vinilni ovoj iz ogljikovih vlaken. Odrežite ga na velikost (in nekoliko večjo) površine ohišja, v katerem ste izvrtali luknje. Nanesite vinil in ga ovijte okoli vogalov nazaj. Tako boste zagotovili, da obloga ostane na svojem mestu, ko je zaprta. Odvečni vinil, ki zdaj blokira luknje, lahko odstranite z rezalnikom.

Ko ste oblekli ovoj (ali ne), se lahko vklopite v elektroniko in ustvarite sprednjo stran gumba. Zdaj bi morali imeti nekaj, kar res že izgleda! Žal še ne deluje …

5. korak: Oblikujte postavitev ožičenja

Oblikujte postavitev ožičenja
Oblikujte postavitev ožičenja

Orodja, potrebna za ta korak:

Photoshop/Paint (neobvezno; lahko narišete ročno)

Ustvarjanje matrike:

Z uporabo matrice boste prihranili čas in veliko nepotrebnega ožičenja in spajkanja. Sam ne bom šel v podrobnosti, vendar vam predlagam, da si ogledate ta članek, če niste seznanjeni s pojmom matrike.

Oblikujte svojo matriko ali uporabite postavitev iz tega navodila. V matrici bomo uporabili pet skupin. Skupine so povezane z naslednjimi izpisi na Arduinu:

  • 15: štirje rotacijski dajalniki
  • A0: pet gumbov
  • A1: dva tri smerna preklopa in en gumb
  • A2: dva trosmerna preklopa in en gumb
  • A3: pet gumbov

Korak 6: Spajkanje

Spajkanje
Spajkanje
Spajkanje
Spajkanje

Orodja, potrebna za ta korak:

  • Spajkalnik
  • Spajkanje
  • Elektronika (nameščena na ohišju)
  • Arduino Pro Micro
  • Žice

Neobvezno:

Če vas skrbi spajkanje, najprej naložite kodo iz naslednjega koraka. Tako boste lahko preverili svoje povezave

Matriko, oblikovano v prejšnjem koraku, želimo uporabiti za dejansko polje z gumbi. Za to si vzemite nekaj časa, še posebej, če to spajkate prvič.

Nekaj nasvetov:

  • Naredite eno skupino hkrati
  • Arduino povežite z računalnikom, da ga občasno preizkusite
  • Plastičnih gumbov ne segrevajte preveč, saj se lahko topijo in prekinejo povezave
  • Ne uporabljajte preveč spajkanja, bolje je manj
  • Za vsako skupino/ozemljitev uporabite različne barvne žice

7. korak: Pisanje kode

Orodja, potrebna za ta korak:

  • Arduino IDE
  • Knjižnica igralnih palic
  • Keypad.h (Arduino IDE> Sketch> Include Library> Manage Libraries …> Poiščite tipkovnico in namestite tisto, ki sta jo ustvarila Mark Stanley in Alexander Brevig)

#include #include

#define ENABLE_PULLUPS

#define NUMROTARIES 4 #define NUMBUTTONS 24 #define NUMROWS 5 #define NUMCOLS 5

bajtni gumbi [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 {

bajt pin1; bajtni pin2; int ccwchar; int cwchar; nestanovitno stanje brez podpisanega znaka; };

rotariesdef rotaries [NUMROTARIES] {

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

#define 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] = RC, RG, RG, RG, RG, RG 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_M, R_STM 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 tabela [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},}; #endif

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

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

Tipkovnica buttbx = Tipkovnica (makeKeymap (gumbi), vrstice, 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);

void setup () {

Joystick.begin (); rotacijski_init ();}

void loop () {

CheckAllEncoders ();

CheckAllButtons ();

}

void CheckAllButtons (void) {

if (buttbx.getKeys ()) {for (int i = 0; i

void rotary_init () {

za (int i = 0; i

unsigned char rotary_process (int _i) {

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

void CheckAllEncoders (void) {for (int i = 0; i <NUMROTARIES; i ++) {

rezultat brez podpisanega znaka = rotacijski_proces (i); if (rezultat == DIR_CCW) {Joystick.setButton (rotacije .ccwchar, 1); zamuda (50); Joystick.setButton (rotacije .ccwchar, 0); }; if (rezultat == DIR_CW) {Joystick.setButton (rotacije .cwchar, 1); zamuda (50); Joystick.setButton (rotacije .cwchar, 0); }; }}

  1. Arduino Pro Micro povežite z računalnikom tako, da priključite kabel USB
  2. Če želite naložiti kodo, izberite vrsto Arduino tako, da odprete Orodja> Kartica:…> Arduino/Genuino Micro.
  3. Če želite izbrati pravilna vrata USB, pojdite na Orodja> Vrata:> COM x (Arduino/Genuino Micro)
  4. Skico preverite s klikom na ✓ v zgornjem levem kotu (pod Datoteka)
  5. Pritisnite → poleg, da ga naložite v Arduino

8. korak: Dodajte v svojo ploščad

Dodajte v svojo ploščad
Dodajte v svojo ploščad

Čestitamo! Prišli ste tako daleč. Zdaj je čas za dirko!

Priporočena: