Sommario:

Scatola pulsanti Sim Racing: 8 passaggi
Scatola pulsanti Sim Racing: 8 passaggi

Video: Scatola pulsanti Sim Racing: 8 passaggi

Video: Scatola pulsanti Sim Racing: 8 passaggi
Video: DIY Sim Racing Button Box | Cheap and Simple! 2024, Luglio
Anonim
Scatola pulsanti Sim Racing
Scatola pulsanti Sim Racing

Benvenuto ai fanatici delle corse sim!

Stai esaurendo le combinazioni di tasti su cui mappare tutti i controlli della tua auto? Probabilmente hai bisogno di una scatola dei pulsanti! In questo Instructable ne creeremo uno da zero. La casella dei pulsanti avrà 32 (!) stati di pulsanti disponibili. Non è necessario alcun software aggiuntivo per utilizzare questa casella di pulsanti. Imparerai come impostare una matrice di pulsanti e scrivere (o copiare) il codice da caricare sul tuo Arduino.

È importante sapere che la casella dei pulsanti non supporta molti pulsanti premuti contemporaneamente.

Iniziamo!

Passaggio 1: preparazione

preparazione
preparazione

Avrai bisogno di alcuni strumenti, pulsanti e altri elementi per creare la casella dei pulsanti. Sentiti libero di creare la scatola dei pulsanti secondo il tuo desiderio.

Elettronica:

  • pulsanti
  • Attiva/disattiva
  • Encoder rotativi
  • Arduino Pro Micro
  • Cavo da mini USB a USB
  • fili

Utensili:

  • Trapano
  • Saldare
  • Calibro
  • cacciaviti
  • taglierina
  • Chiave inglese

Software:

  • Arduino IDE
  • Photoshop/Paint (opzionale; può essere disegnato a mano)

Altro:

  • Custodia (una scatola; può essere acquistata o stampata in 3D personalizzata)
  • Involucro in vinile carbonio (opzionale)
  • Manopole dell'encoder rotativo
  • Coperchi interruttori (opzionali)
  • Stampante per etichette (opzionale)
  • Passacavo in gomma

Una volta che hai tutti (o abbastanza per iniziare) gli elementi, possiamo iniziare a progettare il layout della casella dei pulsanti.

Passaggio 2: progettare il layout della scatola

Strumenti necessari per questo passaggio:

Photoshop/Paint (opzionale; può essere disegnato a mano)

Il design di una pulsantiera può essere diverso per tutti. Tuttavia, per questo Instructable utilizzeremo un layout che consiste in:

  • 4 interruttori a levetta a tre vie
  • 2x interruttori a levetta unidirezionali
  • 10x semplici pulsanti
  • Encoder rotativo 4x con pulsante semplice

Interruttori a levetta a tre vie:

Esistono molti tipi di interruttori a levetta. Alcuni sono momentanei e altri rimangono sul posto finché non vengono ripristinati. Dipende da te quale tipo utilizzare, ma ti consiglio di utilizzare interruttori momentanei poiché questa casella di pulsanti non è in grado di avere molti pulsanti multipli attivi contemporaneamente. Poiché gli interruttori a levetta sono a tre vie (on/off/on), abbiamo a disposizione otto pulsanti (4x2).

Interruttori a levetta unidirezionali:

Questi possono essere considerati dei semplici pulsanti (off/on). Questi possono anche essere momentanei o alternati. Ancora una volta, fino alle preferenze personali quale scegliere. Questi ci danno due (2) pulsanti disponibili.

Pulsanti semplici:

Pulsanti come questi possono essere usati semplicemente premendoli (off/on). Questi ci daranno dieci (10) pulsanti.

Encoder rotativi con pulsante semplice:

La maggior parte (se non tutti) gli encoder rotativi possono essere ruotati in entrambe le direzioni all'infinito. Ogni volta che li ruoti in una direzione viene utilizzato come pressione di un pulsante. Questi encoder rotativi possono anche essere premuti dando loro un altro pulsante. Gli encoder rotativi forniscono dodici pulsanti (12 = 4x3; ruota a sinistra/ruota a destra/preme).

32 pulsanti:

Averli tutti insieme ci dà 32 (8 + 2 + 10 + 12) pressioni di pulsanti!

Soddisfatto del layout? È ora di iniziare a costruire!

Passaggio 3: misurare e forare

Misura e fora
Misura e fora
Misura e fora
Misura e fora

Strumenti necessari per questo passaggio:

  • Calibro
  • Trapano
  • Elettronica (pulsanti, interruttori, ecc.)

Misura tutti i pulsanti che vuoi aggiungere alla tua casella dei pulsanti. Se hai difficoltà a trovare le dimensioni della tua elettronica, usa un calibro (digitale) per ottenere il diametro di esse.

Segna i punti centrali dell'elettronica sulla parte anteriore della custodia e fai dei fori con le dimensioni corrette. Stai cercando di rendere la custodia un po' più esteticamente gradevole? Aspetta con il montaggio dei bottoni!

Una volta che hai finito di praticare i fori, possiamo farla sembrare una vera scatola di bottoni!

Passaggio 4: montare i pulsanti, le rotative e le levette

Adatta i pulsanti, le rotative e le levette
Adatta i pulsanti, le rotative e le levette
Adatta i pulsanti, le rotative e le levette
Adatta i pulsanti, le rotative e le levette

Strumenti necessari per questo passaggio:

  • Elettronica (pulsanti, interruttori, ecc.)
  • Chiave inglese
  • Involucro in vinile carbonio (opzionale)
  • Taglierina (opzionale)

Tutta la tua elettronica dovrebbe venire con un dado per avvitarlo in posizione. Altrimenti; misurali e acquista il dado della dimensione corretta.

Se vuoi migliorare (opinione personale) l'aspetto della tua scatola dei bottoni, puoi usare un involucro di vinile in fibra di carbonio. Taglialo alla dimensione (e un po' più grande) della faccia del tuo recinto in cui hai praticato i fori. Applicare il vinile e avvolgerlo intorno agli angoli sul retro. Ciò assicurerà che l'involucro rimanga in posizione quando la custodia è chiusa. Il vinile in eccesso che ora blocca i fori può essere rimosso utilizzando un cutter.

Dopo aver indossato l'involucro (o meno) puoi inserire l'elettronica per creare la parte anteriore della tua scatola dei pulsanti. Ora dovresti avere già qualcosa che lo somiglia davvero! Purtroppo non funziona ancora…

Passaggio 5: progettare il layout del cablaggio

Progetta il layout del cablaggio
Progetta il layout del cablaggio

Strumenti necessari per questo passaggio:

Photoshop/Paint (opzionale; può essere disegnato a mano)

Creazione di una matrice:

L'uso di una matrice ci farà risparmiare tempo e molti cablaggi e saldature non necessari. Non entrerò nei dettagli personalmente, ma ti suggerirò di dare un'occhiata a questo articolo se non hai familiarità con il concetto di matrice.

Progetta la tua matrice o usa il layout di questo Instructable. Nella matrice useremo cinque gruppi. I gruppi sono collegati ai seguenti pinout su Arduino:

  • 15: quattro encoder rotativi
  • A0: cinque pulsanti
  • A1: due interruttori a tre vie e un pulsante
  • A2: due interruttori a tre vie e un pulsante
  • A3: cinque pulsanti

Passaggio 6: saldatura

saldatura
saldatura
saldatura
saldatura

Strumenti necessari per questo passaggio:

  • Saldatore
  • Saldare
  • Elettronica (montata sulla custodia)
  • Arduino Pro Micro
  • fili

Opzionale:

Carica prima il codice dal passaggio successivo se sei preoccupato per la saldatura. Questo ti permetterà di controllare le tue connessioni

Vogliamo applicare la matrice progettata nel passaggio precedente alla casella dei pulsanti effettiva. Prenditi del tempo per questo, soprattutto se è la prima volta che saldate.

Alcuni suggerimenti:

  • Fai un gruppo alla volta
  • Collega l'Arduino al tuo computer per testarlo di tanto in tanto
  • Non riscaldare troppo i pulsanti di plastica poiché possono fondersi e rompere i collegamenti
  • Non usare troppa saldatura, meno è meglio
  • Utilizzare fili di colore diverso per ogni gruppo/terra

Passaggio 7: scrittura del codice

Strumenti necessari per questo passaggio:

  • Arduino IDE
  • Libreria joystick
  • Keypad.h (Arduino IDE > Schizzo > Includi libreria > Gestisci librerie… > Cerca Keypad e installa quello creato da Mark Stanley e Alexander Brevig)

#include #include

#define ENABLE_PULLUPS

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

pulsanti di byte[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}, };

struttura rotariesdef {

byte pin1; byte pin2; int ccwchar; int cwchar; stato char volatile senza segno; };

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 ttabile[6][4] = { //_BEG_IN,_START (00) 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_M,_BEGIN | 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}, //_IN_CCW_FNEXT_, // R_CCW_BEGIN_,_CCW_BEGIN_, R_CCW_BEGIN} R_START, R_START | DIR_CCW}, // R_CCW_NEXT {R_CCW_NEXT, R_CCW_FINAL, R_CCW_BEGIN, R_START}, }; #finisci se

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

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

Keypad buttbx = Keypad(makeKeymap(buttons), rowPins, colPins, NUMROWS, NUMCOLS);

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

void setup() {

Joystick.begin(); rotante_init();}

ciclo vuoto() {

CheckAllEncoder();

CheckAllButtons();

}

void CheckAllButtons(void) {

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

void rotary_init() {

per (int i=0;i

unsigned char rotary_process(int _i) {

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

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

unsigned char risultato = rotary_process(i); if (risultato == DIR_CCW) { Joystick.setButton(rotaries.ccwchar, 1); ritardo(50); Joystick.setButton(rotazioni.ccwchar, 0); }; if (risultato == DIR_CW) { Joystick.setButton(rotaries.cwchar, 1); ritardo(50); Joystick.setButton(rotazioni.cwchar, 0); }; } }

  1. Collega il tuo Arduino Pro Micro al computer collegando il cavo USB
  2. Per caricare il codice seleziona il tipo di Arduino andando su Strumenti > Scheda:… > Arduino/Genuino Micro.
  3. Per selezionare la porta USB corretta vai su Strumenti > Porta: > COM x (Arduino/Genuino Micro)
  4. Verifica lo schizzo facendo clic su ✓ nell'angolo in alto a sinistra (sotto File)
  5. Premi il → accanto ad esso per caricarlo su Arduino

Passaggio 8: aggiungi al tuo rig

Aggiungi al tuo impianto
Aggiungi al tuo impianto

Congratulazioni! Sei arrivato così lontano. Ora è il momento di correre!

Consigliato: