Innehållsförteckning:
- Steg 1: Förberedelse
- Steg 2: Utforma rutan
- Steg 3: Mät och borra
- Steg 4: Montera knapparna, rotaryerna och växlarna
- Steg 5: Utforma ledningslayouten
- Steg 6: Lödning
- Steg 7: Skriva koden
- Steg 8: Lägg till din rigg
Video: Sim Racing Button Box: 8 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
Välkommen sim racing missbrukare!
Har du slut på nyckelringar för att kartlägga alla dina bilkontroller till? Du behöver förmodligen en knapplåda! I den här instruktionsboken skapar vi en från början. Knapplådan kommer att ha 32 (!) Tillgängliga knapptillstånd. Ingen ytterligare programvara krävs för att använda denna knapplåda. Du lär dig hur du konfigurerar en knappmatris och skriver (eller kopierar) kod för att ladda upp till din Arduino.
Det är viktigt att veta att knapplådan inte stöder många samtidigt tryckta knappar.
Låt oss börja!
Steg 1: Förberedelse
Du behöver några verktyg, knappar och fler objekt för att skapa knapplådan. Skapa gärna knapplådan efter dina önskemål.
Elektronik:
- Knappar
- Växlar
- Rotary encoders
- Arduino Pro Micro
- Mini USB till USB -kabel
- Trådar
Verktyg:
- Borra
- Löda
- Bromsok
- Skruvmejslar
- Fräs
- Rycka
Programvara:
- Arduino IDE
- Photoshop/Paint (valfritt; kan ritas för hand)
Övrig:
- Kapsling (en låda; kan köpas eller skräddarsys i 3D)
- Kolfiberfolie (tillval)
- Roterande givarknappar
- Strömställare (tillval)
- Etikettskrivare (tillval)
- Gummitätning
När du har alla (eller tillräckligt för att komma igång) objekt kan vi börja designa layouten för knapplådan.
Steg 2: Utforma rutan
Verktyg som krävs för detta steg:
Photoshop/Paint (valfritt; kan ritas för hand)
Utformningen av en knapplåda kan vara olika för alla. Men för denna instruerbara använder vi en layout som består av:
- 4x trevägs omkopplare
- 2x envägs omkopplare
- 10x enkla tryckknappar
- 4x roterande kodare med enkel knapp
Trevägs omkopplare:
Det finns många typer av omkopplare. Vissa är tillfälliga och vissa stannar på plats tills de byts tillbaka. Det är upp till dig vilken typ du ska använda, men jag rekommenderar att du använder tillfälliga omkopplare eftersom den här knapplådan inte kan ha många olika knappar aktiva samtidigt. Eftersom vippomkopplarna är trevägs (på/av/på) har vi åtta (4x2) knappar tillgängliga.
Ett sätt växlar:
Dessa kan betraktas som enkla knappar (av/på). Dessa kan också vara tillfälliga eller växla. Återigen, upp till personlig preferens att välja. Dessa ger oss två (2) tillgängliga knappar.
Enkla tryckknappar:
Knappar som dessa kan användas genom att helt enkelt trycka på dem (av/på). Dessa ger oss tio (10) knappar.
Roterande pulsgivare med enkel tryckknapp:
De flesta (om inte alla) roterande givare kan vridas i båda riktningarna oändligt. Varje gång du roterar dem till en riktning används den som knapptryckning. Du kan också trycka på dessa roterande givare och ge dem ytterligare en knapp. De roterande kodarna ger tolv (12 = 4x3; rotera vänster/rotera höger/tryck).
32 knappar:
Att ha dem alla ger oss 32 (8+2+10+12) knapptryckningar!
Nöjd med upplägget? Dags att börja bygga!
Steg 3: Mät och borra
Verktyg som krävs för detta steg:
- Bromsok
- Borra
- Elektronik (knappar, omkopplare, etc.)
Mät alla knappar som du vill lägga till i knapplådan. Om du har problem med att hitta måtten på din elektronik, använd en (digital) bromsok för att få diametern på dem.
Markera elektronikens mittpunkter på höljet och borra hål med rätt storlek. Vill du göra höljet lite mer estetiskt tilltalande? Vänta med att montera knapparna!
När du är klar med att borra hålen kan vi få det att se ut som en riktig knapplåda!
Steg 4: Montera knapparna, rotaryerna och växlarna
Verktyg som krävs för detta steg:
- Elektronik (knappar, omkopplare, etc.)
- Rycka
- Kolfiberfolie (tillval)
- Fräs (tillval)
All din elektronik bör ha en mutter för att skruva fast den. Om inte; mät dem och köp rätt storlek.
Om du vill förbättra (personlig åsikt) utseendet på din knapplåda kan du använda en vinylfolie av kolfiber. Klipp den till storleken (och lite större) på ditt höljes ansikte där du borrade hålen. Applicera vinylen och linda den runt hörnen mot baksidan. Detta kommer att se till att omslaget stannar på plats när lådan är stängd. Överdriven vinyl som nu blockerar hålen kan tas bort med en skärare.
Efter att ha tagit på omslaget (eller inte) kan du passa in i elektroniken för att skapa framsidan av din knapplåda. Du borde nu ha något som verkligen ser ut som ett redan! Tyvärr fungerar det inte än …
Steg 5: Utforma ledningslayouten
Verktyg som krävs för detta steg:
Photoshop/Paint (valfritt; kan ritas för hand)
Skapa en matris:
Att använda en matris sparar oss tid och en massa onödiga kablar och lödningar. Jag kommer inte att gå in på detaljer själv, men föreslår att du tittar på den här artikeln om du inte känner till matrisbegreppet.
Designa din egen matris eller använd layouten från denna instruktionsbok. I matrisen kommer vi att använda fem grupper. Grupperna är anslutna till följande pinouts på Arduino:
- 15: fyra roterande pulsgivare
- A0: fem tryckknappar
- A1: två trevägs växlar och en tryckknapp
- A2: två trevägs växlar och en tryckknapp
- A3: fem tryckknappar
Steg 6: Lödning
Verktyg som krävs för detta steg:
- Lödkolv
- Löda
- Elektronik (monterad på ditt hölje)
- Arduino Pro Micro
- Trådar
Frivillig:
Ladda upp koden från nästa steg först om du är orolig för lödning. Detta gör att du kan kontrollera dina anslutningar
Vi vill tillämpa matrisen som designades i föregående steg på den faktiska knapplådan. Ta dig tid till detta, speciellt om det är första gången du löd.
Några tips:
- Gör en grupp åt gången
- Anslut Arduino till din dator för att testa ibland
- Värm inte upp plastknapparna för mycket eftersom de kan smälta och bryta anslutningar
- Använd inte för mycket löd, mindre är bättre
- Använd trådar i olika färger för varje grupp/mark
Steg 7: Skriva koden
Verktyg som krävs för detta steg:
- Arduino IDE
- Joystick -bibliotek
- Knappsats.h (Arduino IDE> Skiss> Inkludera bibliotek> Hantera bibliotek …> Sök efter knappsats och installera den som skapats av Mark Stanley och Alexander Brevig)
#inkludera #inkludera
#define ENABLE_PULLUPS
#define NUMROTARIES 4 #define NUMBUTTONS 24 #define NUMROWS 5 #define NUMCOLS 5
byte -knappar [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 osignerad char status; };
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] [R], R_ST_, R_ST_C_R_ST_C_R_ST_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_ST_, 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 charttable [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};
Knappsats buttbx = Knappsats (makeKeymap (knappar), 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);
void setup () {
Joystick.begin (); rotary_init ();}
void loop () {
CheckAllEncoders ();
CheckAllButtons ();
}
void CheckAllButtons (void) {
if (buttbx.getKeys ()) {för (int i = 0; i
void rotary_init () {
för (int i = 0; i
osignerad char rotary_process (int _i) {
osignerad char pinstate = (digitalRead (rotaries [_i].pin2) << 1) | digitalRead (rotations [_i].pin1); rotaries [_i].state = ttable [rotaries [_i].state & 0xf] [pinstate]; retur (rotations [_i].state & 0x30); }
void CheckAllEncoders (void) {för (int i = 0; i <NUMROTARIES; i ++) {
osignerat rödningsresultat = rotary_process (i); if (resultat == DIR_CCW) {Joystick.setButton (rotations .ccwchar, 1); fördröjning (50); Joystick.setButton (rotations .ccwchar, 0); }; if (resultat == DIR_CW) {Joystick.setButton (rotations .cwchar, 1); fördröjning (50); Joystick.setButton (rotations .cwchar, 0); }; }}
- Anslut din Arduino Pro Micro till din dator genom att ansluta USB -kabeln
- För att ladda upp koden, välj Arduino -typen genom att gå till Verktyg> Kort: …> Arduino/Genuino Micro.
- För att välja rätt USB -port, gå till Verktyg> Port:> COM x (Arduino/Genuino Micro)
- Verifiera skissen genom att klicka på ✓ i det övre vänstra hörnet (under Arkiv)
- Tryck på → bredvid den för att ladda upp den till Arduino
Steg 8: Lägg till din rigg
Grattis! Du har kommit så långt. Nu är det dags att tävla!
Rekommenderad:
2d Rocket Landing Sim: 3 steg
2d Rocket Landing Sim: Du måste göra en bakgrund, rita raketer och en indikator för att börja (naturligtvis behöver du en internetanslutning för att använda scratch) om du bara vill spela simuleringen/ spelet, klicka här eller gå till https://scratch.mit.edu/projects/432509470
DIY Sim Racing Display Arduino: 3 steg
DIY Sim Racing Display Arduino: Så här bygger du en mycket enkel och billig Sim Racing USB -skärm med en Arduino UNO och en 3,5 " TFT Display.It har ett API för Assetto Corsa som tar data från det delade minnet för spelet programmerat i C# i Visual Studio och skickar sedan
Sim Racing Button Box: 7 steg (med bilder)
Sim Racing Button Box: En knapplåda är en enhet som används i Sim Racing som låter dig tilldela knappar, omkopplare och rattar till olika bilkontroller. Vanliga knapptilldelningar är saker som en startknapp, PTT, förfrågningsgrop, etc. Växelbrytare fungerar utmärkt för torkare, headl
A Juke Box for the Very Young Aka Raspi-Music-Box: 5 steg
A Juke Box for the Very Young … Aka Raspi-Music-Box: Inspirerad av den instruerbara " Raspberry-Pi-baserade-RFID-Music-Robot " som beskriver en musikspelare ROALDH byggde för sin 3-åring, bestämde jag mig för att bygga en jukebox för mina ännu yngre barn. Det är i grunden en låda med 16 knappar och en Raspi 2 i
Cedar (Cigar?) Box Speaker Box: 8 steg (med bilder)
Cedar (Cigar?) Box Speaker Box: Inspirerad av Munny -högtalarna, men inte vill spendera mer än $ 10, här är min instruktion att använda gamla datahögtalare, en trälåda från sparsamhetsbutiken och massor av varmt lim