Sadržaj:

Sim Racing Button Box: 8 koraka
Sim Racing Button Box: 8 koraka

Video: Sim Racing Button Box: 8 koraka

Video: Sim Racing Button Box: 8 koraka
Video: IPHONE vs XIAOMI 2024, Novembar
Anonim
Sim Racing Button Box
Sim Racing Button Box

Dobrodošli ovisnici o sim utrkama!

Ponestaje vam veza za preslikavanje na sve karte vašeg automobila? Vjerojatno vam je potrebna kutija s gumbima! U ovom Instructable -u ćemo stvoriti jedan od početka. Okvir s gumbima će imati 32 (!) Dostupna stanja gumba. Za korištenje ove kutije s gumbima nije potreban dodatni softver. Naučit ćete kako postaviti matricu gumba i napisati (ili kopirati) kôd za učitavanje na svoj Arduino.

Važno je znati da okvir s gumbima ne podržava mnogo istovremeno pritisnutih gumba.

Hajde da počnemo!

Korak 1: Priprema

Priprema
Priprema

Za izradu okvira s gumbima trebat će vam neki alati, gumbi i više stavki. Slobodno kreirajte okvir za dugmad po vašoj želji.

Elektronika:

  • Buttons
  • Uključuje / isključuje
  • Rotacijski davači
  • Arduino Pro Micro
  • Mini USB na USB kabel
  • Žice

Alati:

  • Drill
  • Solder
  • Čeljust
  • Odvijači
  • Cutter
  • Ključ

Softver:

  • Arduino IDE
  • Photoshop/Boja (opcionalno; može se nacrtati ručno)

Ostalo:

  • Kućište (kutija; može se kupiti ili prilagoditi 3D štampanjem)
  • Ugljični vinilni omot (opcionalno)
  • Okretni gumbi kodera
  • Poklopci prekidača (opcionalno)
  • Štampač etiketa (opcionalno)
  • Gumeni uložak

Nakon što imate sve (ili dovoljno za početak) stavki, možemo početi s dizajniranjem izgleda okvira s gumbima.

Korak 2: Dizajnirajte izgled kutije

Alati potrebni za ovaj korak:

Photoshop/Boja (opcionalno; može se nacrtati ručno)

Dizajn kutije s gumbima može biti različit za svakoga. Međutim, za ovaj Instructable koristit ćemo izgled koji se sastoji od:

  • 4x trosmjerni prekidači
  • 2x jednosmjerni prekidači
  • 10x jednostavnih tastera
  • 4x rotacijski davač s jednostavnim gumbom

Trosmjerni prekidači:

Postoji mnogo vrsta prekidača. Neki su trenutni, a neki ostaju na mjestu dok se ne vrate. Na vama je koji tip ćete koristiti, ali savjetujem da koristite trenutne prekidače jer ovaj okvir s gumbima ne može imati više aktivnih dugmadi u isto vrijeme. Budući da su prekidači trosmjerni (uključeno/isključeno/uključeno), imamo na raspolaganju osam (4x2) tipki.

Jednosmjerni prekidači:

To se može smatrati jednostavnim tipkama (isključeno/uključeno). One takođe mogu biti trenutne ili preklopne. Opet, do ličnih preferencija koje izabrati. Oni nam daju dva (2) dostupna dugmeta.

Jednostavni tasteri:

Ovakvi tasteri se mogu koristiti jednostavnim pritiskom (isključeno/uključeno). Oni će nam dati deset (10) dugmadi.

Rotacijski davači s jednostavnim pritiskom na gumb:

Većina (ako ne i svi) rotacijskih davača može se beskonačno okretati u oba smjera. Svaki put kada ih okrenete u smjeru koristi se kao pritisak na dugme. Ovi rotacijski enkoderi se također mogu pritisnuti dajući im još jedno dugme. Rotacijski davači daju dvanaest (12 = 4x3; rotiranje ulijevo/rotiranje udesno/guranje).

32 dugmeta:

Ako ih sve zajedno dobijete, dobijate 32 pritiska (8+2+10+12)!

Jeste li zadovoljni izgledom? Vreme je za početak izgradnje!

Korak 3: Izmjerite i izbušite

Merite i bušite
Merite i bušite
Merite i bušite
Merite i bušite

Alati potrebni za ovaj korak:

  • Čeljust
  • Drill
  • Elektronika (dugmad, prekidači itd.)

Izmjerite sva dugmad koja želite dodati u okvir s gumbima. Ako imate problema s pronalaženjem dimenzija vaše elektronike, upotrijebite (digitalnu) čeljust da biste dobili njihov promjer.

Označite središnje točke elektronike na prednjoj strani vašeg kućišta i izbušite rupe ispravnih veličina. Želite li kućište učiniti estetski ugodnijim? Sačekajte s postavljanjem dugmadi!

Kad završite s bušenjem rupa, možemo početi izgledati kao prava kutija s gumbima!

Korak 4: Postavite dugmad, rotacije i prekidače

Postavite dugmad, rotacije i prekidače
Postavite dugmad, rotacije i prekidače
Postavite dugmad, rotacije i prekidače
Postavite dugmad, rotacije i prekidače

Alati potrebni za ovaj korak:

  • Elektronika (dugmad, prekidači itd.)
  • Ključ
  • Ugljični vinilni omot (opcionalno)
  • Rezač (opcionalno)

Sva vaša elektronika trebala bi imati maticu za pričvršćivanje. Ako ne; izmjerite ih i kupite maticu odgovarajuće veličine.

Ako želite poboljšati (osobno mišljenje) izgled kutije s gumbima, možete upotrijebiti vinilni omot od ugljičnih vlakana. Izrežite ga na veličinu (i malo veću) lica vašeg kućišta u kojem ste izbušili rupe. Nanesite vinil i omotajte ga oko uglova prema stražnjoj strani. Ovo će osigurati da omotač ostane na svom mjestu kada se kućište zatvori. Višak vinila koji sada blokira rupe može se ukloniti rezačem.

Nakon što ste stavili omot (ili ne), možete se uklopiti u elektroniku kako biste stvorili prednji dio kutije s gumbima. Sada biste trebali imati nešto što već zaista liči na jedno! Nažalost, još ne radi…

Korak 5: Dizajnirajte raspored ožičenja

Dizajnirajte raspored ožičenja
Dizajnirajte raspored ožičenja

Alati potrebni za ovaj korak:

Photoshop/Boja (opcionalno; može se nacrtati ručno)

Kreiranje matrice:

Korištenje matrice uštedjet će vam vrijeme i puno nepotrebnih ožičenja i lemljenja. Neću ulaziti u detalje, ali predložit ću vam da pogledate ovaj članak ako niste upoznati s konceptom matrice.

Dizajnirajte vlastitu matricu ili koristite izgled iz ovog uputstva. U matrici ćemo koristiti pet grupa. Grupe su povezane sa sljedećim pinout -ovima na Arduinu:

  • 15: četiri rotacijska davača
  • A0: pet tastera
  • A1: dva trosmerna prekidača i jedno dugme
  • A2: dva trosmerna prekidača i jedno dugme
  • A3: pet tastera

Korak 6: Lemljenje

Lemljenje
Lemljenje
Lemljenje
Lemljenje

Alati potrebni za ovaj korak:

  • Lemilica
  • Solder
  • Elektronika (montirana na vašem kućištu)
  • Arduino Pro Micro
  • Žice

Opciono:

Najprije prenesite kôd iz sljedećeg koraka ako ste zabrinuti oko lemljenja. Ovo će vam omogućiti da provjerite svoje veze

Želimo primijeniti matricu dizajniranu u prethodnom koraku na stvarni okvir s gumbima. Odvojite malo vremena za to, pogotovo ako vam je ovo prvi put da lemite.

Nekoliko savjeta:

  • Radite po jednu grupu
  • Povežite Arduino s računalom da biste povremeno testirali
  • Nemojte previše zagrijavati plastične tipke jer se mogu otopiti i prekinuti veze
  • Nemojte koristiti previše lema, bolje je manje
  • Za svaku grupu/uzemljenje koristite žice različitih boja

Korak 7: Pisanje koda

Alati potrebni za ovaj korak:

  • Arduino IDE
  • Biblioteka džojstika
  • Keypad.h (Arduino IDE> Sketch> Include Library> Manage Libraries …> Potražite Keypad i instalirajte onu koju su kreirali Mark Stanley i Alexander Brevig)

#include #include

#define ENABLE_PULLUPS

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

bajt tasteri [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; bajt pin2; int ccwchar; int cwchar; nestabilno nepotpisano stanje char; };

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] [R_, 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

tabela tabele bez potpisa [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

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

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

Tastatura buttbx = Tastatura (makeKeymap (dugmad), 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);

void setup () {

Joystick.begin (); rotary_init ();}

void loop () {{100} {101}

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 (rotacije [_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 bez potpisa char = rotary_process (i); if (rezultat == DIR_CCW) {Joystick.setButton (rotacije .ccwchar, 1); kašnjenje (50); Joystick.setButton (rotacije .ccwchar, 0); }; if (rezultat == DIR_CW) {Joystick.setButton (rotacije .cwchar, 1); kašnjenje (50); Joystick.setButton (rotacije .cwchar, 0); }; }}

  1. Povežite svoj Arduino Pro Micro sa računarom priključivanjem USB kabla
  2. Za učitavanje koda odaberite tip Arduino tako što ćete otići na Alati> Ploča:…> Arduino/Genuino Micro.
  3. Za odabir ispravnog USB priključka idite na Alati> Priključak:> COM x (Arduino/Genuino Micro)
  4. Provjerite skicu klikom na ✓ u gornjem lijevom kutu (ispod Datoteka)
  5. Pritisnite → pored njega da biste ga prenijeli na Arduino

Korak 8: Dodajte u svoju opremu

Dodajte u svoju opremu
Dodajte u svoju opremu

Čestitamo! Došli ste tako daleko. Sada je vrijeme za trku!

Preporučuje se: