Sadržaj:

Okvir s gumbima za Sim Racing: 8 koraka
Okvir s gumbima za Sim Racing: 8 koraka

Video: Okvir s gumbima za Sim Racing: 8 koraka

Video: Okvir s gumbima za Sim Racing: 8 koraka
Video: 3 РЕЦЕПТА из КУРИНОЙ ПЕЧЕНИ/ ПАШТЕТ!! ГОСТИ БУДУТ В ШОКЕ!! 2024, Studeni
Anonim
Okvir s gumbima Sim Racing
Okvir s gumbima Sim Racing

Dobrodošli ovisnici o sim utrkama!

Ponestaje li vam veza s tipkama za mapiranje svih kontrola vašeg automobila? Vjerojatno vam je potrebna kutija s gumbima! U ovom Instructableu stvorit ćemo jedan od početka. Okvir s gumbima imat će 32 (!) Dostupna stanja gumba. Za korištenje ovog okvira s gumbima nije potreban dodatni softver. Naučit ćete kako postaviti matricu gumba i napisati (ili kopirati) kôd za prijenos na svoj Arduino.

Važno je znati da okvir s gumbima ne podržava puno istodobno pritisnutih gumba.

Započnimo!

Korak 1: Priprema

Priprema
Priprema

Za izradu okvira s gumbima trebat će vam neki alati, gumbi i više stavki. Kućište s gumbima slobodno stvorite prema svojoj želji.

Elektronika:

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

Alati:

  • Bušilica
  • Lem
  • Čeljust
  • Odvijači
  • Rezač
  • Ključ

Softver:

  • Arduino IDE
  • Photoshop/Boja (izborno; može se nacrtati rukom)

Ostalo:

  • Kućište (kutija; može se kupiti ili 3D ispisati po mjeri)
  • Ugljični vinilni omot (izborno)
  • Okretni gumbi kodera
  • Poklopci prekidača (opcionalno)
  • Pisač naljepnica (izborno)
  • Gumeni uložak

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

Korak 2: Dizajnirajte izgled kutije

Alati potrebni za ovaj korak:

Photoshop/Boja (izborno; može se nacrtati rukom)

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 gumba
  • 4x rotacijski davač s jednostavnim gumbom

Trosmjerni prekidači:

Postoji mnogo vrsta prekidača. Neki su trenutačni, 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 gumba u isto vrijeme. Budući da su prekidači trosmjerni (uključivanje/isključivanje/uključivanje), imamo na raspolaganju osam (4x2) gumba.

Jednosmjerni prekidači:

To se može smatrati jednostavnim gumbima (isključeno/uključeno). Oni također mogu biti trenutni ili promjenjivi. Opet, do osobnih preferencija koje odabrati. Oni nam daju dva (2) dostupna gumba.

Jednostavni gumbi:

Ovakvi gumbi mogu se koristiti jednostavnim pritiskom (isključeno/uključeno). To će nam dati deset (10) gumba.

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 kad ih okrenete u smjeru koristi se kao pritisak na gumb. Ovi rotacijski enkoderi također se mogu pritisnuti dajući im još jednu tipku. Rotacijski davači daju dvanaest (12 = 4x3; zakretanje ulijevo/rotiranje udesno/guranje).

32 gumba:

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

Jeste li zadovoljni izgledom? Vrijeme je za početak gradnje!

Korak 3: Mjerenje i bušenje

Mjeri i buši
Mjeri i buši
Mjeri i buši
Mjeri i buši

Alati potrebni za ovaj korak:

  • Čeljust
  • Bušilica
  • Elektronika (tipke, prekidači itd.)

Izmjerite sve gumbe koje ž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 kućišta i izbušite rupe ispravnih veličina. Želite li kućište učiniti estetski ugodnijim? Pričekajte s postavljanjem gumba!

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

Korak 4: Postavite gumbe, rotacije i prekidače

Postavite gumbe, rotacije i prekidače
Postavite gumbe, rotacije i prekidače
Postavite gumbe, rotacije i prekidače
Postavite gumbe, rotacije i prekidače

Alati potrebni za ovaj korak:

  • Elektronika (tipke, prekidači itd.)
  • Ključ
  • Ugljični vinilni omot (izborno)
  • 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 omot od vinila 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 na stražnjoj strani. To će osigurati da omot ostane na svom mjestu kada se okvir zatvori. Prekomjerni vinil 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ć stvarno nalikuje! Nažalost, još ne radi …

Korak 5: Osmislite raspored ožičenja

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

Alati potrebni za ovaj korak:

Photoshop/Boja (izborno; može se nacrtati rukom)

Izrada matrice:

Korištenje matrice uštedjet će nam vrijeme i mnogo nepotrebnog 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 upotrijebite 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 tipki
  • A1: dva trosmjerna prekidača i jedan gumb
  • A2: dva trosmjerna prekidača i jedan gumb
  • A3: pet tipki

Korak 6: Lemljenje

Lemljenje
Lemljenje
Lemljenje
Lemljenje

Alati potrebni za ovaj korak:

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

Izborno:

Najprije prenesite kôd iz sljedećeg koraka ako ste zabrinuti zbog lemljenja. To ć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.

Neki savjeti:

  • Radite jednu grupu u isto vrijeme
  • Spojite Arduino na računalo da biste ga povremeno testirali
  • Nemojte previše zagrijavati plastične gumbe jer se mogu otopiti i prekinuti veze
  • Nemojte koristiti previše lemljenja, manje je bolje
  • Za svaku skupinu/uzemljenje koristite žice različitih boja

Korak 7: Pisanje koda

Alati potrebni za ovaj korak:

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

#include #include

#define ENABLE_PULLUPS

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

gumbi bajtova [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; hlapljivo 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] [4_ RC, 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 nepotpisana 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},}; #završi ako

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

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

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

nepotpisani char rotary_process (int _i) {

unsigned char pinstate = (digitalRead (rotariji [_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 = rotacijski_proces (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. Spojite svoj Arduino Pro Micro s računalom priključivanjem USB kabela
  2. Za učitavanje koda odaberite vrstu Arduino tako da odete 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 utrku!

Preporučeni: