Cuprins:

Sim Racing Button Box: 8 pași
Sim Racing Button Box: 8 pași

Video: Sim Racing Button Box: 8 pași

Video: Sim Racing Button Box: 8 pași
Video: DIY Sim Racing Button Box | Cheap and Simple! 2024, Noiembrie
Anonim
Caseta de butoane Sim Racing
Caseta de butoane Sim Racing

Bine ai venit dependenții de curse sim!

Ai epuizat tastele pentru a-ți hrăni toate comenzile? Probabil că ai nevoie de o casetă pentru butoane! În acest instructabil vom crea unul de la zero. Caseta de butoane va avea 32 (!) Stări de butoane disponibile. Nu este necesar niciun software suplimentar pentru a utiliza această casetă de butoane. Veți învăța cum să configurați o matrice de butoane și să scrieți (sau copiați) codul pentru a-l încărca pe Arduino.

Este important să știți că caseta de butoane nu acceptă o mulțime de butoane apăsate simultan.

Să începem!

Pasul 1: Preperație

Preperation
Preperation

Veți avea nevoie de câteva instrumente, butoane și mai multe articole pentru a crea caseta de butoane. Simțiți-vă liber să creați caseta de butoane după dorința dvs.

Electronică:

  • Butoane
  • Comută
  • Codificatoare rotative
  • Arduino Pro Micro
  • Cablu Mini USB la USB
  • Fire

Instrumente:

  • Burghiu
  • Solder
  • Subler
  • Șurubelnițe
  • Cutter
  • Cheie

Software:

  • IDE Arduino
  • Photoshop / Paint (opțional; poate fi desenat manual)

Alte:

  • Carcasă (o cutie; poate fi cumpărată sau imprimată 3D personalizat)
  • Folie de vinil carbon (opțional)
  • Butoane rotative de codificare
  • Capacele comutatorului (opțional)
  • Imprimantă de etichete (opțional)
  • Paste din cauciuc

Odată ce aveți toate (sau suficient pentru a începe), putem începe să proiectăm aspectul casetei de butoane.

Pasul 2: Proiectați aspectul casetei

Instrumente necesare pentru acest pas:

Photoshop / Paint (opțional; poate fi desenat manual)

Designul unei cutii cu butoane poate fi diferit pentru toată lumea. Cu toate acestea, pentru acest instructabil vom folosi un aspect care constă din:

  • 4x comutatoare cu trei căi
  • 2x comutatoare într-o singură direcție
  • 10x butoane simple
  • Codificator rotativ 4x cu buton simplu

Comutatoare cu trei căi:

Există multe tipuri de comutatoare. Unele sunt de moment, iar altele rămân la locul lor până când se întorc. Depinde de dvs. ce tip să utilizați, dar vă sfătuiesc să folosiți comutatoare momentane, deoarece această casetă de butoane nu este capabilă să aibă active mai multe butoane multiple în același timp. Deoarece comutatoarele de comutare sunt cu trei căi (pornit / oprit / pornit), avem disponibile opt butoane (4x2).

Comutatoare de comutare într-un mod:

Acestea pot fi considerate ca butoane simple (oprit / pornit). Acestea pot fi, de asemenea, de moment sau de comutare. Din nou, până la preferința personală pe care să o alegeți. Acestea ne oferă două (2) butoane disponibile.

Butoane simple:

Butoane ca acestea pot fi folosite prin simpla apăsare (oprire / pornire). Acestea ne vor oferi zece (10) butoane.

Codificatoare rotative cu buton simplu:

Majoritatea (dacă nu toate) codificatoarele rotative pot fi rotite la ambele direcții la infinit. De fiecare dată când le rotiți într-o direcție, este folosit ca apăsare pe buton. Aceste codificatoare rotative pot fi de asemenea apăsate dându-le un alt buton. Codificatoarele rotative dau douăsprezece butoane (12 = 4x3; rotiți la stânga / rotiți la dreapta / apăsați).

32 butoane:

Avându-le pe toate împreună ne oferă 32 de apăsări de butoane (8 + 2 + 10 + 12)!

Satisfăcut de aspect? E timpul să începem să construim!

Pasul 3: Măsurați și găuriți

Măsurați și găuriți
Măsurați și găuriți
Măsurați și găuriți
Măsurați și găuriți

Instrumente necesare pentru acest pas:

  • Subler
  • Burghiu
  • Electronice (butoane, comutatoare etc.)

Măsurați toate butoanele pe care doriți să le adăugați la caseta de butoane. Dacă întâmpinați probleme la găsirea dimensiunilor electronice, utilizați un etrier (digital) pentru a obține diametrul acestora.

Marcați punctele centrale ale dispozitivelor electronice pe fața carcasei și găuriți cu dimensiunile corecte. Doriți să faceți incinta un pic mai plăcută din punct de vedere estetic? Așteptați cu montarea butoanelor!

Odată ce ați terminat de găurit, putem face să înceapă să arate ca o cutie de butoane adevărată!

Pasul 4: Montați butoanele, rotativele și comutatoarele

Montați butoanele, rotativele și comutatoarele
Montați butoanele, rotativele și comutatoarele
Montați butoanele, rotativele și comutatoarele
Montați butoanele, rotativele și comutatoarele

Instrumente necesare pentru acest pas:

  • Electronice (butoane, comutatoare etc.)
  • Cheie
  • Folie de vinil carbon (opțional)
  • Cutter (opțional)

Toate componentele electronice ar trebui să vină cu o piuliță pentru a o înșuruba în poziție. Dacă nu; măsurați-le și cumpărați piulița de dimensiunea corectă.

Dacă doriți să îmbunătățiți (opinia personală) aspectul cutiei de butoane, puteți utiliza o folie de vinil din fibră de carbon. Tăiați-l la dimensiunea (și puțin mai mare) a feței carcasei în care ați forat găurile. Aplicați vinilul și înfășurați-l în jurul colțurilor în spate. Acest lucru vă va asigura că învelișul rămâne la loc atunci când carcasa este închisă. Vinilul excesiv care acum blochează găurile poate fi îndepărtat folosind un tăietor.

După ce ați pus învelișul (sau nu) vă puteți încadra în componentele electronice pentru a crea partea din față a butonului. Acum ar trebui să aveți ceva care pare deja cu adevărat unul! Din păcate, nu funcționează încă …

Pasul 5: Proiectați aspectul cablării

Proiectați aspectul cablajului
Proiectați aspectul cablajului

Instrumente necesare pentru acest pas:

Photoshop / Paint (opțional; poate fi desenat manual)

Crearea unei matrice:

Folosirea unei matrice ne va economisi timp și o mulțime de cabluri și lipire inutile. Nu voi intra în prea multe detalii, dar vă voi sugera să aruncați o privire la acest articol dacă nu sunteți familiarizat cu conceptul de matrice.

Proiectați-vă propria matrice sau utilizați aspectul din acest instructabil. În matrice vom folosi cinci grupuri. Grupurile sunt conectate la următoarele pinouts de pe Arduino:

  • 15: patru codificatoare rotative
  • A0: cinci butoane
  • A1: două comutatoare cu trei căi și un singur buton
  • A2: două comutatoare cu trei căi și un singur buton
  • A3: cinci butoane

Pasul 6: lipire

Lipire
Lipire
Lipire
Lipire

Instrumente necesare pentru acest pas:

  • Ciocan de lipit
  • Solder
  • Electronice (montate pe incinta dvs.)
  • Arduino Pro Micro
  • Fire

Opțional:

Încărcați mai întâi codul de la pasul următor dacă sunteți îngrijorat de lipire. Acest lucru vă va permite să vă verificați conexiunile

Vrem să aplicăm matricea proiectată în pasul anterior la caseta de butoane propriu-zisă. Faceți ceva timp pentru asta, mai ales dacă este prima dată când lipiți.

Niste sfaturi:

  • Faceți un grup în acel moment
  • Conectați Arduino la computer pentru a testa ocazional
  • Nu încălziți prea mult butoanele din plastic, deoarece acestea se pot topi și rupe conexiunile
  • Nu utilizați prea mult lipire, mai puțin este mai bine
  • Utilizați fire de culori diferite pentru fiecare grup / masă

Pasul 7: Scrierea codului

Instrumente necesare pentru acest pas:

  • IDE Arduino
  • Biblioteca Joystick
  • Keypad.h (Arduino IDE> Sketch> Include Library> Manage Libraries …> Căutați tastatura și instalați-o pe cea creată de Mark Stanley și Alexander Brevig)

#include #include

#define ENABLE_PULLUPS

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

butoane de octeți [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 {

octet pin1; octet pin2; int ccwchar; int cwchar; stat volatil nesemnat; };

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] = {// R_ST_ (R), R_B_R_R, (R) 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_ST_R, 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 unsable 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},}; #endif

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

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

Tastatura buttbx = Tastatura (makeKeymap (butoane), rowPins, colPins, NUMROWS, NUMCOLS);

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

configurare nulă () {

Joystick.begin (); rotary_init ();}

bucla nulă () {

CheckAllEncoders ();

CheckAllButtons ();

}

void CheckAllButtons (nul) {

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

void rotary_init () {

pentru (int i = 0; i

unsigned char rotary_process (int _i) {

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

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

rezultat de carat nesemnat = rotary_process (i); if (result == DIR_CCW) {Joystick.setButton (rotaries .ccwchar, 1); întârziere (50); Joystick.setButton (rotary .ccwchar, 0); }; if (result == DIR_CW) {Joystick.setButton (rotaries .cwchar, 1); întârziere (50); Joystick.setButton (rotary .cwchar, 0); }; }}

  1. Conectați Arduino Pro Micro la computer conectând cablul USB
  2. Pentru a încărca codul, selectați tipul Arduino accesând Instrumente> Placă: …> Arduino / Genuino Micro.
  3. Pentru a selecta portul USB corect, accesați Instrumente> Port:> COM x (Arduino / Genuino Micro)
  4. Verificați schița făcând clic pe ✓ în colțul din stânga sus (sub Fișier)
  5. Apăsați → lângă acesta pentru al încărca pe Arduino

Pasul 8: Adăugați la platforma dvs

Adăugați la platforma dvs
Adăugați la platforma dvs

Felicitări! Ai ajuns atât de departe. Acum este timpul să concurez!

Recomandat: