Turinys:

„Sim Racing“mygtukų dėžutė: 8 žingsniai
„Sim Racing“mygtukų dėžutė: 8 žingsniai

Video: „Sim Racing“mygtukų dėžutė: 8 žingsniai

Video: „Sim Racing“mygtukų dėžutė: 8 žingsniai
Video: Дневник хранящий жуткие тайны. Переход. Джеральд Даррелл. Мистика. Ужасы 2024, Liepa
Anonim
„Sim Racing“mygtukų dėžutė
„Sim Racing“mygtukų dėžutė

Sveiki Sim lenktynių narkomanai!

Trūksta raktų, kad galėtumėte susieti visus automobilio valdiklius? Tikriausiai jums reikia sagų dėžutės! Šioje instrukcijoje mes ją sukursime nuo nulio. Mygtukų dėžutėje bus 32 (!) Mygtuko būsenos. Norint naudoti šią mygtukų dėžutę, nereikia jokios papildomos programinės įrangos. Sužinosite, kaip nustatyti mygtukų matricą ir parašyti (arba nukopijuoti) kodą, kurį norite įkelti į „Arduino“.

Svarbu žinoti, kad mygtukų dėžutė nepalaiko daugelio vienu metu paspaudžiamų mygtukų.

Pradėkime!

1 žingsnis: Paruošimas

Pasirengimas
Pasirengimas

Norėdami sukurti mygtukų dėžutę, jums reikės tam tikrų įrankių, mygtukų ir daugiau elementų. Nesivaržykite sukurti mygtukų dėžutės pagal savo norą.

Elektronika:

  • Mygtukai
  • Perjungia
  • Rotaciniai kodavimo įrenginiai
  • „Arduino Pro Micro“
  • Mini USB prie USB kabelis
  • Laidai

Įrankiai:

  • Grąžtas
  • Lituoklis
  • Apkaba
  • Atsuktuvai
  • Kateris
  • Veržliaraktis

Programinė įranga:

  • „Arduino IDE“
  • „Photoshop“/„Paint“(neprivaloma; galima piešti rankomis)

Kiti:

  • Dėklas (dėžutė; galima nusipirkti arba pagal užsakymą atspausdinti 3D)
  • Anglies vinilo plėvelė (neprivaloma)
  • Rotacinio kodavimo rankenėlės
  • Jungiklių dangteliai (neprivaloma)
  • Etikečių spausdintuvas (neprivaloma)
  • Guminis tarpiklis

Kai turėsite visus (arba pakankamai, kad pradėtumėte) elementus, galime pradėti kurti mygtukų dėžutės išdėstymą.

2 žingsnis: suprojektuokite dėžutės išdėstymą

Šiam žingsniui reikalingi įrankiai:

„Photoshop“/„Paint“(neprivaloma; galima piešti rankomis)

Mygtuko dėžutės dizainas kiekvienam gali būti skirtingas. Tačiau šiai instrukcijai naudojame išdėstymą, kurį sudaro:

  • 4x trijų krypčių perjungimo jungikliai
  • 2x vieno krypties perjungimo jungikliai
  • 10 kartų paprasti mygtukai
  • 4x sukamasis kodavimo įrenginys su paprastu mygtuku

Trijų krypčių perjungimo jungikliai:

Yra daug perjungimo jungiklių tipų. Kai kurie iš jų yra trumpalaikiai, o kai kurie lieka vietoje, kol jie nebus pakeisti. Kurį tipą naudoti, priklauso nuo jūsų, tačiau patariu naudoti momentinius jungiklius, nes šioje mygtukų dėžutėje vienu metu negali būti aktyvūs daugelis daugialypių mygtukų. Kadangi perjungimo jungikliai yra trijų krypčių (įjungimo/išjungimo/įjungimo), turime aštuonis (4x2) mygtukus.

Vienas iš perjungimo būdų:

Tai gali būti laikoma paprastais mygtukais (išjungta/įjungta). Jie taip pat gali būti trumpalaikiai arba perjungti. Vėlgi, tai priklauso nuo asmeninių pageidavimų, kuriuos pasirinkti. Tai suteikia mums du (2) galimus mygtukus.

Paprasti mygtukai:

Tokius mygtukus galima naudoti tiesiog paspaudus (išjungus/įjungus). Tai suteiks mums dešimt (10) mygtukų.

Sukamieji kodavimo įrenginiai su paprastu mygtuku:

Daugumą (jei ne visus) sukamuosius kodavimo įrenginius galima be galo pasukti į abi puses. Kaskart pasukus juos kryptimi, kuri naudojama kaip mygtuko paspaudimas. Šiuos sukamuosius kodavimo įrenginius taip pat galima paspausti, suteikiant jiems kitą mygtuką. Sukamieji kodavimo įrenginiai suteikia dvylika (12 = 4x3; pasukti į kairę/pasukti į dešinę/paspausti) mygtukų.

32 mygtukai:

Turėdami juos visus kartu, mes paspaudžiame 32 (8+2+10+12) mygtukus!

Ar patenkintas išdėstymu? Laikas pradėti statyti!

3 žingsnis: išmatuokite ir gręžkite

Išmatuokite ir gręžkite
Išmatuokite ir gręžkite
Išmatuokite ir gręžkite
Išmatuokite ir gręžkite

Šiam žingsniui reikalingi įrankiai:

  • Apkaba
  • Grąžtas
  • Elektronika (mygtukai, jungikliai ir kt.)

Išmatuokite visus mygtukus, kuriuos norite pridėti prie mygtukų dėžutės. Jei jums sunku rasti elektronikos matmenis, naudokite (skaitmeninį) apkabą, kad sužinotumėte jų skersmenį.

Ant korpuso paviršiaus pažymėkite elektronikos centrinius taškus ir išgręžkite tinkamo dydžio skyles. Norite, kad korpusas taptų šiek tiek estetiškesnis? Palaukite uždėdami mygtukus!

Kai baigsite gręžti skyles, galime atrodyti kaip tikra sagų dėžutė!

4 žingsnis: pritvirtinkite mygtukus, suktukus ir perjungiklius

Įdėkite mygtukus, suktukus ir perjungiklius
Įdėkite mygtukus, suktukus ir perjungiklius
Įdėkite mygtukus, suktukus ir perjungiklius
Įdėkite mygtukus, suktukus ir perjungiklius

Šiam žingsniui reikalingi įrankiai:

  • Elektronika (mygtukai, jungikliai ir kt.)
  • Veržliaraktis
  • Anglies vinilo plėvelė (neprivaloma)
  • Pjaustytuvas (neprivaloma)

Visa jūsų elektronika turėtų būti su veržle, kad ją prisuktų. Jei ne; išmatuokite juos ir įsigykite tinkamo dydžio veržlę.

Jei norite patobulinti (asmeninę nuomonę) savo sagų dėžutės išvaizdą, galite naudoti anglies pluošto vinilo plėvelę. Iškirpkite jį tokio dydžio (ir šiek tiek didesnio) korpuso paviršiaus, kuriame gręžėte skyles. Užtepkite vinilą ir apvyniokite aplink kampus į nugarą. Tai užtikrins, kad pakuotė liktų vietoje, kai korpusas uždarytas. Per daug vinilo, kuris dabar užkemša skyles, galima pašalinti naudojant pjaustytuvą.

Uždėję įvyniojimą (arba ne), galite tilpti į elektroniką, kad sukurtumėte sagų dėžutės priekį. Dabar turėtumėte turėti kažką, kas tikrai atrodo kaip vienas! Deja, tai dar neveikia…

5 žingsnis: suprojektuokite laidų išdėstymą

Sukurkite laidų išdėstymą
Sukurkite laidų išdėstymą

Šiam žingsniui reikalingi įrankiai:

„Photoshop“/„Paint“(neprivaloma; galima piešti rankomis)

Matricos kūrimas:

Naudodami matricą sutaupysime laiko ir daug nereikalingų laidų bei litavimo. Aš nesileisiu į daug smulkmenų, bet siūlau jums pažvelgti į šį straipsnį, jei nesate susipažinęs su matricos sąvoka.

Sukurkite savo matricą arba naudokite šios instrukcijos išdėstymą. Matricoje naudosime penkias grupes. Grupės yra prijungtos prie šių „Arduino“kontaktų:

  • 15: keturi sukamieji kodavimo įrenginiai
  • A0: penki mygtukai
  • A1: du trijų krypčių perjungikliai ir vienas mygtukas
  • A2: du trijų krypčių perjungimai ir vienas mygtukas
  • A3: penki mygtukai

6 žingsnis: litavimas

Litavimas
Litavimas
Litavimas
Litavimas

Šiam žingsniui reikalingi įrankiai:

  • Lituoklis
  • Lituoklis
  • Elektronika (sumontuota ant jūsų korpuso)
  • „Arduino Pro Micro“
  • Laidai

Neprivaloma:

Jei nerimaujate dėl litavimo, pirmiausia įkelkite kodą iš kito veiksmo. Tai leis jums patikrinti savo ryšius

Mes norime pritaikyti ankstesniame žingsnyje sukurtą matricą tikrajam mygtukų laukeliui. Skirkite tam šiek tiek laiko, ypač jei tai yra pirmas litavimas.

Keletas patarimų:

  • Darykite vieną grupę vienu metu
  • Prijunkite „Arduino“prie kompiuterio, kad retkarčiais išbandytumėte
  • Nešildykite plastikinių mygtukų per daug, nes jie gali ištirpti ir nutraukti jungtis
  • Nenaudokite per daug lydmetalio, geriau mažiau
  • Kiekvienai grupei/įžeminimui naudokite skirtingų spalvų laidus

7 žingsnis: kodo rašymas

Šiam žingsniui reikalingi įrankiai:

  • „Arduino IDE“
  • Joystick biblioteka
  • „Keypad.h“(„Arduino IDE“> Eskizas> Įtraukti biblioteką> Tvarkyti bibliotekas …> Ieškokite klaviatūros ir įdiekite tą, kurią sukūrė Markas Stanley ir Aleksandras Brevigas)

#įtraukti #įtraukti

#define ENABLE_PULLUPS

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

baitų mygtukai [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}, };

structure rotariesdef {

baitų pin1; baitų pin2; int ccwchar; int cwchar; nepastovios nepasirašytos anglies būsena; };

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 nepasirašyta lentelė [6] [4] = {// R_W 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_START_M 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},}; #endif

baitų eilutės kaiščiai [NUMROWS] = {21, 20, 19, 18, 15};

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

Klaviatūra buttbx = Klaviatūra (makeKeymap (mygtukai), 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, false);

void setup () {

Vairasvirtė.pradėti (); rotary_init ();}

void loop () {

CheckAllEncoders ();

CheckAllButtons ();

}

void CheckAllButtons (void) {

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

void rotary_init () {

už (int i = 0; i

unsigned char rotary_process (int _i) {

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

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

nepasirašytas char rezultatas = rotacinis_procesas (i); if (rezultatas == DIR_CCW) {Joystick.setButton (sukamieji .ccwchar, 1); vėlavimas (50); Joystick.setButton (sukamieji .ccwchar, 0); }; if (rezultatas == DIR_CW) {Joystick.setButton (sukamieji .cwchar, 1); vėlavimas (50); Joystick.setButton (sukamieji .cwchar, 0); }; }}

  1. Prijunkite „Arduino Pro Micro“prie kompiuterio prijungdami USB kabelį
  2. Norėdami įkelti kodą, pasirinkite „Arduino“tipą, eidami į Įrankiai> Lenta:…> „Arduino“/„Genuino Micro“.
  3. Norėdami pasirinkti tinkamą USB prievadą, eikite į Tools> Port:> COM x (Arduino/Genuino Micro)
  4. Patikrinkite eskizą spustelėdami ✓ viršutiniame kairiajame kampe (skiltyje Failas)
  5. Paspauskite → šalia, kad įkeltumėte jį į „Arduino“

8 veiksmas: pridėkite prie savo įrenginio

Pridėkite prie savo įrenginio
Pridėkite prie savo įrenginio

Sveikinu! Jūs atėjote taip toli. Dabar atėjo laikas lenktynėms!

Rekomenduojamas: