Përmbajtje:

Sim Racing Button Box: 8 hapa
Sim Racing Button Box: 8 hapa

Video: Sim Racing Button Box: 8 hapa

Video: Sim Racing Button Box: 8 hapa
Video: КАКИМ БУДЕТ PORTAL 3 2024, Nëntor
Anonim
Kutia e butonave të garave Sim
Kutia e butonave të garave Sim

Mirë se vini të varur nga garat sim!

A po ju mbarojnë lidhëset për t'i hartuar të gjitha kontrollet e makinës suaj? Ju ndoshta keni nevojë për një kuti butoni! Në këtë Instructable ne do të krijojmë një nga e para. Kutia e butonave do të ketë 32 gjendje (!) Të disponueshme të butonave. Asnjë softuer shtesë nuk kërkohet për të përdorur këtë kuti butoni. Do të mësoni se si të konfiguroni një matricë butoni dhe të shkruani (ose kopjoni) kodin për ta ngarkuar në Arduino tuaj.

Importantshtë e rëndësishme të dini se kutia e butonave nuk mbështet shumë butona të shtypur njëkohësisht.

Le të fillojmë!

Hapi 1: Përgatitja

Përgatitja
Përgatitja

Ju do të keni nevojë për disa mjete, butona dhe më shumë artikuj për të krijuar kutinë e butonave. Mos ngurroni të krijoni kutinë e butonave sipas dëshirës tuaj.

Elektronikë:

  • Butonat
  • Toggles
  • Kodifikues rrotullues
  • Arduino Pro Micro
  • Mini kabllo USB në USB
  • Telat

Mjetet:

  • Stërvitje
  • Saldator
  • Kalibër
  • Kaçavida
  • Prestar
  • Pikëllim

Softuer:

  • Arduino IDE
  • Photoshop/Paint (sipas dëshirës; mund të vizatohet me dorë)

Te tjera:

  • Shtojcë (një kuti; mund të blihet ose të printohet me porosi 3D)
  • Mbështjellës me vinyl karboni (opsional)
  • Çelësat kodues rrotullues
  • Ndërroni kapakët (opsional)
  • Etiketë printeri (opsionale)
  • Veshje gome

Pasi të keni të gjithë (ose mjaftueshëm për të filluar) artikujt, ne mund të fillojmë të hartojmë paraqitjen e kutisë së butonave.

Hapi 2: Dizajnoni paraqitjen e kutisë

Mjetet e nevojshme për këtë hap:

Photoshop/Paint (opsionale; mund të vizatohet me dorë)

Dizajni i një kutie me butona mund të jetë i ndryshëm për të gjithë. Sidoqoftë, për këtë Instructable ne do të përdorim një plan urbanistik që përbëhet nga:

  • 4x çelsin e kalimit me tre drejtime
  • 2x ndërprerës të njëanshëm
  • 10x butona të thjeshtë shtytjeje
  • Kodifikues rrotullues 4x me buton të thjeshtë

Ndërprerësit e kalimit në tre mënyra:

Ka shumë lloje të çelsave të kalimit. Disa janë momentale dhe disa qëndrojnë në vend derisa të kthehen mbrapa. Varet nga ju se cilin lloj të përdorni, por unë ju këshilloj të përdorni çelsat e çastit pasi kjo kuti butoni nuk është e aftë të ketë shumë butona të shumëfishtë aktivë në të njëjtën kohë. Meqenëse çelësat e ndërrimit janë me tre drejtime (ndezje/fikje/ndezje), ne kemi tetë butona (4x2) në dispozicion.

Një mënyrë e ndërrimit të çelsave:

Këto mund të konsiderohen si butona të thjeshtë (fikur/aktivizuar). Këto mund të jenë gjithashtu momentale ose të ndryshueshme. Përsëri, deri në preferencën personale të cilën të zgjidhni. Këto na japin dy (2) butona të disponueshëm.

Butonat e thjeshtë të shtypjes:

Butonat si këto mund të përdoren thjesht duke i shtyrë ato (fikur/ndezur). Këto do të na japin dhjetë (10) butona.

Kodues rrotullues me buton të thjeshtë shtytjeje:

Shumica (nëse jo të gjitha) kodifikuesit rrotullues mund të kthehen në të dy drejtimet pafundësisht. Sa herë që i rrotulloni në një drejtim përdoret si shtypje butoni. Këta kodues rrotullues gjithashtu mund të shtypen duke u dhënë atyre një buton tjetër. Kodifikuesit rrotullues japin dymbëdhjetë butona (12 = 4x3; rrotullohen majtas/rrotullohen djathtas/shtyjnë) butona.

32 butona:

Duke i pasur të gjitha së bashku na jep 32 (8+2+10+12) shtypje të butonave!

I kënaqur me paraqitjen? Koha për të filluar ndërtimin!

Hapi 3: Masa dhe Stërvitja

Masa dhe Stërvitja
Masa dhe Stërvitja
Masa dhe Stërvitja
Masa dhe Stërvitja

Mjetet e nevojshme për këtë hap:

  • Kalibër
  • Stërvitje
  • Elektronikë (butona, çelësa, etj.)

Matni të gjithë butonat që dëshironi të shtoni në kutinë tuaj të butonave. Nëse keni probleme me gjetjen e dimensioneve të pajisjeve tuaja elektronike, përdorni një caliper (dixhital) për të marrë diametrin e tyre.

Shënoni pikat qendrore të elektronikës në faqen e rrethimit tuaj dhe shponi vrima me madhësitë e duhura. Dëshironi ta bëni rrethimin pak më të këndshëm estetikisht? Prisni me montimin e butonave!

Pasi të keni mbaruar shpimin e vrimave, ne mund ta bëjmë atë të fillojë të duket si një kuti me butona të vërtetë!

Hapi 4: Përshtatni butonat, rrotulluesit dhe çelësat

Përshtatni butonat, rrotulluesit dhe çelësat
Përshtatni butonat, rrotulluesit dhe çelësat
Përshtatni butonat, rrotulluesit dhe çelësat
Përshtatni butonat, rrotulluesit dhe çelësat

Mjetet e nevojshme për këtë hap:

  • Elektronikë (butona, çelësa, etj.)
  • Pikëllim
  • Mbështjellës me vinyl karboni (opsional)
  • Prerës (opsional)

Të gjitha pajisjet elektronike duhet të vijnë me një arrë për ta vidhosur në vend. Nese jo; matni ato dhe blini arrë me madhësinë e duhur.

Nëse dëshironi të përmirësoni (mendimin personal) pamjen e kutisë tuaj të butonave, mund të përdorni një mbështjellës vinyl me fibra karboni. Pritini atë në madhësinë (dhe pak më të madhe) të fytyrës së rrethimit tuaj në të cilin keni shpuar vrimat. Aplikoni vinilin dhe mbështilleni atë rreth qosheve në anën e pasme. Kjo do të sigurojë që mbështjellësi të qëndrojë në vend kur mbyllja është e mbyllur. Vinili i tepërt që tani bllokon vrimat mund të hiqet duke përdorur një prestar.

Pasi të keni veshur mbështjellësin (ose jo) mund të futeni në pajisje elektronike për të krijuar pjesën e përparme të kutisë tuaj të butonave. Tani duhet të kesh diçka që me të vërtetë duket si një tashmë! Fatkeqësisht, nuk funksionon ende…

Hapi 5: Hartoni strukturën e telave

Dizajnoni strukturën e telave
Dizajnoni strukturën e telave

Mjetet e nevojshme për këtë hap:

Photoshop/Paint (sipas dëshirës; mund të vizatohet me dorë)

Krijimi i një matricë:

Përdorimi i një matricë do të na kursejë kohë dhe shumë tela dhe bashkim të panevojshëm. Unë nuk do të hyj në shumë detaje vetë, por do t'ju sugjeroj që t'i hidhni një sy këtij artikulli nëse nuk jeni të njohur me konceptin e një matricë.

Dizajnoni matricën tuaj ose përdorni paraqitjen nga ky Instructable. Në matricë do të përdorim pesë grupe. Grupet janë të lidhura me pinoutet e mëposhtëm në Arduino:

  • 15: katër kodues rrotullues
  • A0: pesë butona shtypës
  • A1: dy ndërrues me tre drejtime dhe një buton
  • A2: dy ndërrues me tre drejtime dhe një buton
  • A3: pesë butona shtytës

Hapi 6: Saldimi

Bashkim
Bashkim
Bashkim
Bashkim

Mjetet e nevojshme për këtë hap:

  • Makine per ngjitjen e metalit
  • Saldator
  • Elektronikë (e montuar në rrethimin tuaj)
  • Arduino Pro Micro
  • Telat

Opsionale:

Ngarko kodin nga hapi tjetër së pari nëse shqetësohesh për bashkimin. Kjo do t'ju lejojë të kontrolloni lidhjet tuaja

Ne duam të aplikojmë matricën e krijuar në hapin e mëparshëm në kutinë aktuale të butonave. Merrni pak kohë për këtë, veçanërisht nëse kjo është lidhja juaj e parë.

Disa keshilla:

  • Bëni një grup në atë kohë
  • Lidheni Arduino me kompjuterin tuaj për ta testuar herë pas here
  • Mos i ngrohni butonat plastikë shumë pasi ato mund të shkrihen dhe të prishin lidhjet
  • Mos përdorni shumë saldim, më pak është më mirë
  • Përdorni tela me ngjyra të ndryshme për secilin grup/tokë

Hapi 7: Shkrimi i Kodit

Mjetet e nevojshme për këtë hap:

  • Arduino IDE
  • Biblioteka e xhojstikut
  • Keypad.h (Arduino IDE> Skicë> Përfshi Bibliotekën> Menaxho Bibliotekat …> Kërko për Tastiera dhe instalo atë që është krijuar nga Mark Stanley dhe Alexander Brevig)

#përfshi #përfshi

#përcakto Çaktivizo_PULLUPS

#përcaktoni NUMROTARIES 4 #përcaktoni NUMBUTTONS 24 #përcaktoni NUMROWS 5 #përcaktoni NUMCOLS 5

butona 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}, };

strukt rotariesdef {

byte pin1; byte pin2; int ccwchar; int cwchar; gjendje e paqëndrueshme e nënshkruar char; };

rotariesdef rotaries [NUMROTARIES] {

{0, 1, 24, 25, 0}, {2, 3, 26, 27, 0}, {4, 5, 28, 29, 0}, {6, 7, 30, 31, 0}, };

#përcakto DIR_CCW 0x10

#përcakto DIR_CW 0x20 #përcakto 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_START (00) {R_START_M, R_CW_BEGIN, R_CCW_BEGIN, R_START} // 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_CW_BEGIN_M, R_START | DIR_CW}, // R_CCW_BEGIN_M {R_START_M, R_CCW_BEGIN_M, R_START_M, R_START | DIR_CCW},}; #sele #percakto R_CW_FINAL 0x1 #percakto R_CW_BEGIN 0x2 #percakto R_CW_NEXT 0x3 #percakto R_CCW_BEGIN 0x4 #percakto R_CCW_FINAL 0x5 #percakto R_CCW_NEXT 0x6

const tabela e shenjuar e shenjës [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};

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

Tastiera buttbx = Tastiera (makeKeymap (butonat), rowPins, colPins, NUMROWS, NUMCOLS);

Joystick_ Joystick (JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_JOYSTICK, 32, 0, të rreme, të rreme, të rreme, të rreme, të rreme, të rreme, të rreme, të rreme, të rreme, të rreme, të rreme, të rreme);

void setup () {

Xhojstik.filloj (); rrotullues_init ();}

lak void () {

CheckAllEncoders ();

CheckAllButtons ();

}

i pavlefshëm CheckAllButtons (i pavlefshëm) {

nëse (buttbx.getKeys ()) {për (int i = 0; i

void rotary_init () {

për (int i = 0; i

procesor i pa firmosur rotary_pro (int _i) {

pinstate char unsigned = (digitalRead (rrotullon [_i].pin2) << 1) | digitalRead (rrotullon [_i].pin1); rrotullues [_i].stat = ttabela [rrotullues [_i].stat & 0xf] [kthesë]; kthimi (rrotullon [_i].stat & 0x30); }

i pavlefshëm CheckAllEncoders (i pavlefshëm) {për (int i = 0; i <NUMROTARIES; i ++) {

rezultat i nënshkruar i karbonit = procesi rrotullues (i); nëse (rezultati == DIR_CCW) {Joystick.setButton (rrotullohet .ccwchar, 1); vonesë (50); Joystick.setButton (rrotullon .ccwchar, 0); }; nëse (rezultati == DIR_CW) {Joystick.setButton (rrotullohet .cwchar, 1); vonesë (50); Joystick.setButton (rrotullon .cwchar, 0); }; }}

  1. Lidhni Arduino Pro Micro me kompjuterin tuaj duke futur kabllon USB
  2. Për të ngarkuar kodin zgjidhni llojin Arduino duke shkuar te Tools> Board:…> Arduino/Genuino Micro.
  3. Për të zgjedhur portën e duhur USB shkoni te Vegla> Port:> COM x (Arduino/Genuino Micro)
  4. Verifikoni skicën duke klikuar në ✓ në këndin e sipërm të majtë (nën Skedar)
  5. Shtypni → pranë tij për ta ngarkuar në Arduino

Hapi 8: Shtoni në pajisjen tuaj

Shtoni në pajisjen tuaj
Shtoni në pajisjen tuaj

Urime! Ju keni ardhur deri tani. Tani është koha për të garuar!

Recommended: