Innholdsfortegnelse:

Sim Racing Button Box: 8 trinn
Sim Racing Button Box: 8 trinn

Video: Sim Racing Button Box: 8 trinn

Video: Sim Racing Button Box: 8 trinn
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Juli
Anonim
Sim Racing Button Box
Sim Racing Button Box

Velkommen sim -rusmisbrukere!

Er du tom for nøkkelbind for å kartlegge alle bilkontrollene dine til? Du trenger sannsynligvis en knappboks! I denne instruksjonsboken skal vi lage en fra bunnen av. Knappboksen vil ha 32 (!) Tilgjengelige knappestater. Ingen ekstra programvare er nødvendig for å bruke denne knappboksen. Du lærer hvordan du konfigurerer en knappematrise og skriver (eller kopierer) kode for å laste opp til Arduino.

Det er viktig å vite at knappboksen ikke støtter mange knapper som trykkes samtidig.

La oss komme i gang!

Trinn 1: Forberedelse

Forberedelse
Forberedelse

Du trenger noen verktøy, knapper og flere elementer for å lage knappboksen. Lag gjerne knappboksen etter eget ønske.

Elektronikk:

  • Knapper
  • Veksler
  • Rotary encoders
  • Arduino Pro Micro
  • Mini USB til USB kabel
  • Ledninger

Verktøy:

  • Bore
  • Lodding
  • Bremseklave
  • Skrutrekkere
  • Kutter
  • Skiftenøkkel

Programvare:

  • Arduino IDE
  • Photoshop/Paint (valgfritt; kan tegnes for hånd)

Annen:

  • Vedlegg (en eske; kan kjøpes eller tilpasses 3D -utskrift)
  • Karbon vinylfolie (valgfritt)
  • Rotary encoder knotter
  • Bryterdeksler (valgfritt)
  • Etikettskriver (valgfritt)
  • Gummigummi

Når du har alle (eller nok til å komme i gang) elementene, kan vi begynne å designe oppsettet til knappboksen.

Trinn 2: Utform boksoppsettet

Verktøy som kreves for dette trinnet:

Photoshop/Paint (valgfritt; kan tegnes for hånd)

Utformingen av en knappboks kan være forskjellig for alle. For denne instruksjonsboken bruker vi imidlertid et oppsett som består av:

  • 4x treveis vippebrytere
  • 2x enveis vippebrytere
  • 10x enkle trykknapper
  • 4x roterende encoder med enkel knapp

Treveis brytere:

Det finnes mange typer vippebrytere. Noen er øyeblikkelige og noen blir på plass til de byttes tilbake. Det er opp til deg hvilken type du skal bruke, men jeg anbefaler å bruke øyeblikkelige brytere, siden denne knappboksen ikke er i stand til å ha mange flere knapper aktive samtidig. Siden vippebryterne er treveis (på/av/på), har vi åtte (4x2) knapper tilgjengelig.

Enveis vippebrytere:

Disse kan betraktes som enkle knapper (av/på). Disse kan også være øyeblikkelige eller bytte. Igjen, opp til personlige preferanser å velge. Disse gir oss to (2) tilgjengelige knapper.

Enkle trykknapper:

Knapper som disse kan brukes ved å trykke dem (av/på). Disse gir oss ti (10) knapper.

Rotary encoders med enkel trykknapp:

De fleste (om ikke alle) roterende kodere kan vendes til begge retninger i det uendelige. Hver gang du roterer dem til en retning brukes den som et knappetrykk. Disse roterende koderne kan også trykkes inn og gi dem en ny knapp. De roterende koderne gir tolv (12 = 4x3; roter til venstre/roter til høyre/trykk).

32 knapper:

Å ha dem alle sammen gir oss 32 (8+2+10+12) knappetrykk!

Fornøyd med oppsettet? På tide å begynne å bygge!

Trinn 3: Mål og bor

Mål og bor
Mål og bor
Mål og bor
Mål og bor

Verktøy som kreves for dette trinnet:

  • Bremseklave
  • Bore
  • Elektronikk (knapper, brytere, etc.)

Mål alle knappene du vil legge til i knappboksen. Hvis du har problemer med å finne dimensjonene til elektronikken din, kan du bruke en (digital) tykkelse for å få diameteren på dem.

Merk midtpunktene til elektronikken på forsiden av skapet og bor hull med riktige størrelser. Ønsker du å gjøre kabinettet litt mer estetisk tiltalende? Vent med å montere knappene!

Når du er ferdig med å bore hullene, kan vi få det til å se ut som en ekte knappeboks!

Trinn 4: Monter knappene, rotaryene og vippene

Monter knappene, rotaryene og vippene
Monter knappene, rotaryene og vippene
Monter knappene, rotaryene og vippene
Monter knappene, rotaryene og vippene

Verktøy som kreves for dette trinnet:

  • Elektronikk (knapper, brytere, etc.)
  • Skiftenøkkel
  • Karbon vinylfolie (valgfritt)
  • Kutter (valgfritt)

All elektronikken din skal ha en mutter for å skru den på plass. Hvis ikke; mål dem og kjøp mutteren i riktig størrelse.

Hvis du vil forbedre (personlig mening) utseendet på knappboksen, kan du bruke en vinylfolie av karbonfiber. Klipp den til størrelsen (og litt større) på skapets ansikt der du boret hullene. Påfør vinylen og pakk den rundt hjørnene til baksiden. Dette vil sikre at omslaget forblir på plass når vedlegget er lukket. Overdreven vinyl som nå blokkerer hullene kan fjernes ved hjelp av en kutter.

Etter å ha tatt på omslaget (eller ikke) kan du passe inn elektronikken for å lage forsiden av knappboksen. Du bør nå ha noe som virkelig ser ut som en allerede! Dessverre fungerer det ikke ennå …

Trinn 5: Utform ledningsoppsettet

Design ledningsoppsettet
Design ledningsoppsettet

Verktøy som kreves for dette trinnet:

Photoshop/Paint (valgfritt; kan tegnes for hånd)

Opprette en matrise:

Å bruke en matrise vil spare oss tid og mye unødvendig kabling og lodding. Jeg vil ikke gå så mye i detalj selv, men vil foreslå at du tar en titt på denne artikkelen hvis du ikke er kjent med begrepet en matrise.

Design din egen matrise eller bruk oppsettet fra denne instruksjonsboken. I matrisen skal vi bruke fem grupper. Gruppene er koblet til følgende pinouts på Arduino:

  • 15: fire roterende kodere
  • A0: fem trykknapper
  • A1: toveis veksler og en trykknapp
  • A2: to treveis veksler og en trykknapp
  • A3: fem trykknapper

Trinn 6: Lodding

Lodding
Lodding
Lodding
Lodding

Verktøy som kreves for dette trinnet:

  • Loddejern
  • Lodding
  • Elektronikk (montert på skapet)
  • Arduino Pro Micro
  • Ledninger

Valgfri:

Last opp koden fra neste trinn først hvis du er bekymret for lodding. Dette lar deg sjekke forbindelsene dine

Vi ønsker å bruke matrisen designet i forrige trinn på den faktiske knappboksen. Ta deg tid til dette, spesielt hvis dette er første gang du lodder.

Noen tips:

  • Gjør en gruppe om gangen
  • Koble Arduino til datamaskinen din for å teste av og til
  • Ikke varm opp plastknappene for mye, da de kan smelte og bryte forbindelsene
  • Ikke bruk for mye loddetinn, mindre er bedre
  • Bruk ledninger i forskjellige farger for hver gruppe/bakke

Trinn 7: Skrive koden

Verktøy som kreves for dette trinnet:

  • Arduino IDE
  • Joystick -bibliotek
  • Tastatur.h (Arduino IDE> Skisse> Inkluder bibliotek> Administrer biblioteker …> Søk etter tastatur og installer det som er opprettet av Mark Stanley og Alexander Brevig)

#include #include

#define ENABLE_PULLUPS

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

byteknapper [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 {

byte pin1; byte pin2; int ccwchar; int cwchar; flyktig usignert røyktilstand; };

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_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_ST_M, R_ST_ 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} // 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},}; #slutt om

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

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

Tastatur buttbx = Tastatur (makeKeymap (knapper), 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);

ugyldig oppsett () {

Joystick.begin (); rotary_init ();}

void loop () {

CheckAllEncoders ();

CheckAllButtons ();

}

void CheckAllButtons (void) {

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

ugid rotary_init () {

for (int i = 0; i

usignert char rotary_process (int _i) {

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

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

usignert røyningsresultat = rotasjonsprosess (i); if (result == DIR_CCW) {Joystick.setButton (rotaries .ccwchar, 1); forsinkelse (50); Joystick.setButton (rotasjoner .ccwchar, 0); }; if (result == DIR_CW) {Joystick.setButton (rotaries .cwchar, 1); forsinkelse (50); Joystick.setButton (rotasjoner .cwchar, 0); }; }}

  1. Koble Arduino Pro Micro til datamaskinen din ved å koble til USB -kabelen
  2. For å laste opp koden, velg Arduino -typen ved å gå til Verktøy> Brett: …> Arduino/Genuino Micro.
  3. For å velge riktig USB -port, gå til Verktøy> Port:> COM x (Arduino/Genuino Micro)
  4. Bekreft skissen ved å klikke på ✓ øverst i venstre hjørne (under Fil)
  5. Trykk på → ved siden av den for å laste den opp til Arduino

Trinn 8: Legg til din rigg

Legg til i din Rig
Legg til i din Rig

Gratulerer! Du har kommet så langt. Nå er det tid for løp!

Anbefalt: