Indholdsfortegnelse:

KerbalController: et brugerdefineret kontrolpanel til raketspil Kerbal Space Program: 11 trin (med billeder)
KerbalController: et brugerdefineret kontrolpanel til raketspil Kerbal Space Program: 11 trin (med billeder)

Video: KerbalController: et brugerdefineret kontrolpanel til raketspil Kerbal Space Program: 11 trin (med billeder)

Video: KerbalController: et brugerdefineret kontrolpanel til raketspil Kerbal Space Program: 11 trin (med billeder)
Video: Установка Windows 10 с помощью загрузочной Flash (подробная видео-инструкция) 2024, Juli
Anonim
KerbalController: et brugerdefineret kontrolpanel til Rocket Game Kerbal Space Program
KerbalController: et brugerdefineret kontrolpanel til Rocket Game Kerbal Space Program

Hvorfor bygge en KerbalController?

Fordi det er så meget mere omfattende at trykke på knapper og kaste fysiske kontakter end at klikke med musen. Især når det er en stor rød sikkerhedsafbryder, hvor du først skal åbne dækslet, skal du trykke på kontakten for at bevæbne din raket, starte nedtællingen og 3.. 2.. 1.. vi har liftoff!

Hvad er en KerbalController?

En KerbalController, også kaldet et kontrolpanel, Simpit (simuleret cockpit), DSKY (displaytastatur) eller brugerdefineret joystick, er en tilpasset inputenhed til styring af den populære raketbygning-og-flyvende-og-forhåbentlig-ikke-eksploderende game Kerbal Space Program kombineret med valgfri output fra spillet, f.eks. statuslamper, telemetri -displays og/eller brændstofmålere.

Denne specifikke konstruktion inkluderer input som rotation og oversættelseskontroller via joysticks, en gasregulator, masser af knapper med statuslamper, LED -brændstofmålere og et telemetri LCD -display med flere tilstande.

Denne vejledning indeholder alt, hvad du har brug for for at bygge en identisk kopi, eller foretage justeringer og forbedringer undervejs, som du finder passende. Inkluderet er:

  • en deleliste
  • digitale designtegninger klar til laserskæring
  • ledningsinstruktioner
  • Arduino kode
  • Kode til det medfølgende KSP -plugin
  • Mange billeder

Klar til at tage afsted? Lad os gå!

Trin 1: Værktøjerne

Værktøjerne
Værktøjerne

Det vigtigste værktøj, du skal have til denne konstruktion, er et loddejern. Det inkluderer noget loddemetal, en metalrensningssvamp til rengøring af spidsen af loddejernet og en "tredje hånd".

Andre værktøjer er en wire stripper, en wire cutter, pincet og nogle små skruetrækkere.

Trin 2: Dele og grundlæggende layout

Dele og grundlæggende layout
Dele og grundlæggende layout
Dele og grundlæggende layout
Dele og grundlæggende layout

At lave den bedst mulige controller for dig betyder, at du vælger præcis, hvilke knapper og kontakter, du vil implementere. Fordi alle spiller spillet forskelligt. Nogle mennesker flyver fly og bygger SSTO'er (enkelt-trin-til-kredsløb). Andre foretrækker rovers af rumstationer. Og nogle vil bare have, at tingene eksploderer spektakulært!

Det hjælper at tegne alle delene i deres omtrentlige størrelse og trække dem rundt i et vektortegningsprogram (som Affinity Designer eller Inkscape) eller 3D -tegningsprogram (som SketchUp).

Hvis du vil have en lettere opbygning, kan du bare kopiere min controller og få delene anført på den vedhæftede deleliste.

Trin 3: Opret en prototype (valgfrit)

Opret en prototype (valgfrit)
Opret en prototype (valgfrit)
Opret en prototype (valgfrit)
Opret en prototype (valgfrit)

Hvis du kopierer min controller, kan du springe dette trin over.

Hvis du går efter et tilpasset layout, anbefaler jeg, at du først bruger en skokasse til at oprette en fungerende prototype med hovedkontrollerne. Det hjælper virkelig med at finjustere placeringen af hovedkontrollerne. Det er også rart at få den tillid, du kan få det til at fungere, før du fortsætter med at investere tid og penge i det sidste byggeri. Jeg spillede faktisk spillet et stykke tid med min skoæskekontroller. Er det ikke Kerbal måde at bruge bjærgede dele til at hacke noget sammen?

Trin 4: Tips om ledninger

Tips til ledninger
Tips til ledninger
Tips til ledninger
Tips til ledninger
Tips til ledninger
Tips til ledninger

Når du opretter en prototype, må du ikke lodde alle dine knapper ind, medmindre du vil aflodde dem, når du kommer til det sidste kabinet. Jeg lodde nogle ledninger til knapperne og brugte et loddefrit brødbræt til at lave de midlertidige forbindelser til Arduino.

Når du tilslutter al elektronik til den sidste frontplade, kan du reducere rod ved at oprette sløjfer til 5V og jord. Du forbinder ikke alle jordstifter direkte til Arduino, men snarere tilslutter jorden på en knap til jord på den næste knap og løkker rundt. Endelig opretter du forbindelse til Arduino.

Efter at have oprettet sløjfer til strøm og jord forbliver alle forbindelser til Arduino -benene. Jeg anbefaler at få nogle strimler af header pins og lodde ledningerne til dem. Du kan bruge disse som et stort stik, så du stadig kan koble din Arduino til test.

Ledningernes længde er en balancegang mellem kort nok til at holde kabinettet fri for overskydende virvar af ledninger (hvilket kan forhindre dig i at kunne lukke kassen) og lang nok til at kunne flytte dele af vejen til lodning andre dele i, stram skruer og stikke rundt med dit multimeter, mens fejlsøgning.

Trin 5: Få frontpladen Lasercut

Få frontpladen Lasercut
Få frontpladen Lasercut
Få frontpladen Lasercut
Få frontpladen Lasercut
Få frontpladen Lasercut
Få frontpladen Lasercut

Det er meget svært at opnå et rent, professionelt udseende, når man save og male i hånden. Heldigvis er laserskæring ikke længere særlig dyrt. Det giver mulighed for ekstrem præcision, så længe dit design er præcist.

Vedhæftet er mit faceplate -design i formater, der passer til Affinity Designer og andre vektortegningsprogrammer som gratis InkScape.

Jeg havde frontpladen lasercut i Holland ved Lichtzwaard. De er siden lukket, og aktiviteter er blevet overtaget af Laserbeest, hvor jeg fik kassen laserskåret. Hver butik kan have forskellige krav til designet, så kontakt din butik, før du sender den. De tilbyder også næsten altid designhjælp til en timepris.

Vigtige ting at huske på:

  • Alt skal være vektorbaseret. Derfor blev logoet i mit frontpladesign ikke ætset. Bemærk, at dette ikke er fastsat i de vedhæftede designs.
  • Selv tekst skal være vektorbaseret. Så konverter disse bogstaver til kurver!
  • Måle. Måle. Måle. Jeg undlod at tage højde for den størrelse, der kræves til montering af joysticks og måtte hacke den. Det gik fint, heldigvis. Bemærk, at dette er fastgjort i de vedhæftede designs.

Efter at have kontrolleret alt grundigt, send det til laserskæringsbutikken. Forvent at betale 40-50 euro i Holland og få dette smukke resultat med posten dagen efter!

Trin 6: Tilslutning af knapper og kontakter

Tilslutning af knapper og kontakter
Tilslutning af knapper og kontakter
Tilslutning af knapper og kontakter
Tilslutning af knapper og kontakter
Tilslutning af knapper og kontakter
Tilslutning af knapper og kontakter

De fleste kontakter og knapper har stikket mærket C, NO, NC, +, -. Sådan kan du tilslutte dem til Arduino.

Enkel kontakt eller trykknap:

  • Grund C (almindelig)
  • Arduino digital pin NO (normalt åben)

Vi konfigurerer den digitale pin som INPUT_PULLUP, hvilket betyder, at Arduino vil beholde stiften ved 5V og registrere, hvornår stiften bliver jordet og behandle det som et input. NO -stikket på kontakten eller knappen er normalt åbent, så kredsløbet ikke er tilsluttet. Når du trykker på knappen eller skifter kontakten, lukkes kredsløbet, og stiften bliver jordet.

Trykknap med LED:

Knappedelen er den samme som ovenfor. Til LED'en tilsluttes yderligere ledninger:

  • Grund - (negativ)
  • Arduino digital pin + (positiv)

Denne del er ret ligetil. Vi vil bruge Arduino -stiften i normal OUTPUT -tilstand.

Sikkerhedsafbrydere med LED:

Disse er lidt forskellige og tillader ikke kontrol over LED'en uafhængigt af switch -positionen. LED'en lyser kun, når kontakten er tændt. De har et +, - og signalstik.

  • Grund - (negativ)
  • 5V + (positiv)
  • Arduino digital pin S (signal)

Vi vil bruge Arduino -stiften i INPUT -tilstand. Når kontakten er tændt, lyser LED'en, og signalpinden går højt.

Trin 7: Tilslutning af joysticks og LCD'en

Tilslutning af joysticks og LCD'en
Tilslutning af joysticks og LCD'en
Tilslutning af joysticks og LCD'en
Tilslutning af joysticks og LCD'en
Tilslutning af joysticks og LCD'en
Tilslutning af joysticks og LCD'en

LCD

LCD -skærmen er meget enkel. Det mangler bare strøm, jord og seriel.

  • 5V VDD
  • Jordet GND
  • Arduino Tx PIN RX

Du kan bruge et JST -stik eller lodde ledningerne direkte på kortet.

Joysticks

Joysticks kan se skræmmende ud i starten, men de er ret nemme at forbinde. Der er tre akser, der er forbundet på samme måde. To af dem bruger stikene i bunden af joysticket. Den tredje bruger nogle ledninger.

  • Jord
  • Visker Arduino analog input pin
  • 5V

Stikkene kan fastgøres i denne rækkefølge. Bare rolig om at få det baglæns, viskeren er altid den midterste. Hvis strøm og jord byttes, kan vi vende aksen rundt i Arduino -koden senere.

Ledningerne kan have et andet farveskema på dit joystick, men generelt: de to tråde med identiske farver er til knappen øverst. Rød eller orange er 5V, sort eller brun er jord. Den resterende ledning er viskeren.

Trin 8: LED -brændstofmålere

LED -brændstofmålere
LED -brændstofmålere
LED -brændstofmålere
LED -brændstofmålere
LED -brændstofmålere
LED -brændstofmålere

Okay. Dette er den sværeste del af hele bygningen. Du er velkommen til at springe dette over på din første build, eller forbedre det og lad mig vide!

Jeg fik disse flotte LED -stænger, jeg vil bruge som brændstofmålere. Den øverste LED er blå, derefter lidt grøn, derefter orange og til sidst rød. Hvis vi kan tænde en LED ad gangen, kan vi lade den repræsentere brændstofniveauet på vores rumfartøj.

Jeg bestilte oprindeligt driver -IC'er med dem. De fungerer godt! Du kan vælge priktilstand eller stregtilstand, og den viser en analog indgangsspænding som en enkelt LED (prik) eller en række lysdioder (bar). Men en Arduino udsender ikke en analog spænding! Og PWM -funktionen, der giver dig mulighed for at dæmpe en LED ved på en måde at efterligne en analog spænding, fungerer ikke med disse driver -IC'er.

Videre til plan 2: skifteregistre. Du kommer til at arbejde med disse i hvert Arduino -startsæt. Og du kan lære mere om dem her:

Planen er på en eller anden måde at konvertere brændstofniveauerne til den korrekte streng af bits, der repræsenterer brændstofniveauerne på LED -bjælkerne. Med 5 brændstofmålere skal alle fyldte brændstofniveauer være 10000000001000000000100000000010000000001000000000. Med monopropellant tomt, ville det blive: 100000000010000000001000000000100000000000000000000001.

Lyder enkelt nok. Der er nogle komplikationer. Skiftregistrene har 8 ben, mens LED -bjælkerne har 10 lysdioder. Jeg bruger 7 skiftregistre til at få 56 output. Da jeg tilsluttede dem, hoppede jeg over en IC -pin et sted (vi passer det i kode). Og jeg tilslutter den ene LED -bar ved at starte i den anden ende (vi retter det i kode). Åh og Arduino -matematik, som vi har brug for, bruger nogle gange flydende aritmetik, hvilket forårsager afrundingsfejl (vi retter det i kode). Bemærk, at jeg deler koden i et senere trin.

Min sidste build matchede ikke det vedlagte ledningsdiagram, så hvis du genopbygger denne controller, kræves nogle opdateringer af koden. Kommenter herunder, hvis du har brug for hjælp.

Hver LED kræver sin egen modstand. Prøv nogle forskellige værdier for at matche lysstyrken. Grønt fremstår meget lysere end rødt med de samme modstande, så det hjælper med at balancere det.

Slutresultat: i stedet for 50 digitale stifter, der kræves for at drive de 5 LED -søjler, reduceres det til 3: et urssignal, et låsesignal og et datasignal.

Trin 9: Opbygning af kabinettet

Bygger kabinettet
Bygger kabinettet
Bygger kabinettet
Bygger kabinettet
Bygger kabinettet
Bygger kabinettet
Bygger kabinettet
Bygger kabinettet

Tid til at hævne mig med disse logoer!

Jeg konverterede logoerne til ordentlige vektortegninger, så de blev ætset helt fint. Denne gang har jeg et andet problem. Skruehullerne er ikke de rigtige steder for korrekt montering af kassen. Jeg brugte 6 mm MDF til kassen. Desværre får skrue af søm i kanterne til at splitte. Jeg hackede det sammen med yderligere træskrot og lim. Masser af lim.

For dem af jer, der er bedre med træ, lim og/eller søm, har jeg vedhæftet en version af designs uden skruehullerne helt.

På trods af vanskelighederne er slutresultatet ret glat.

Trin 10: Software og test

Image
Image
Software og test
Software og test

Download følgende software for at få controlleren til at fungere med Kerbal Space Program:

KSP -plugin:

ZIP -filen er det kompilerede plugin. Resten er kildekode, du kan bruge til at ændre pluginet og kompilere din egen version. Pak pluginet ud i GamaData -biblioteket.

Arduino -kode:

Brug Arduino IDE til at uploade koden til Arduino Mega i din controller.

Se nederst til højre på Arduino IDE for at finde ud af, hvilken seriel port controlleren er på (f.eks. /Dev/cu.usbmodem1421). Åbn filen config.xml fra plugin -biblioteket, og sørg for, at din port er udfyldt. Nu er du klar til at gå!

Du kan bruge fejlfindingstilstand ved at sætte den lille tænd/sluk -knap øverst til venstre i ON -positionen. LCD'et skal vise en række bogstaver. Hvert bogstav repræsenterer en knap eller kontakt og skifter mellem små og store bogstaver, når du trykker på knappen eller skifter kontakten. Indstilling af xyz -switchene til Xyz (on/off/off) viser også gasspjældets værdier. xYz viser joystickværdier for joysticket til oversættelse (venstre). xyZ til drejepinden (højre).

LCD -tilstande

Følgende visningstilstande kan vælges til visning på LCD'et ved hjælp af knapperne x, y og z

TakeOff -tilstand: Overfladehastighed / acceleration (G)

Kredsløbstilstand: Apoapsis + Tid til Apoapsis / Periapsis + Tid til Periapsis

Manøvretilstand: Tid til næste manøvreknude / Resterende Delta-V til næste knude

Rendezvous Mode: Afstand til mål / hastighed i forhold til målet

Genindtastningstilstand: Procentdel af overophedning (maks.) / Deceleration (G)

Flyvende tilstand: Højde / Mach -nummer

Landingstilstand: Radarhøjde / lodret hastighed

Ekstra tilstand: ikke implementeret (endnu)

For at se de forskellige tilstande i aktion, se på videoen i slutningen af den instruerbare.

Trin 11: Til månen

Image
Image
Til månen!
Til månen!

Tænd KSP, læs dit yndlingsfartøj, eller bygg et nyt, og af sted!

Tips:

  • Brug tilpasset handlingsgruppe 5 til dine stiger
  • Brug tilpasset handlingsgruppe 6 til dine solpaneler
  • Brug tilpasset handlingsgruppe 7 til faldskærme eller drogue -renner
  • Tildel lanceringsflugtsystemet og de relevante afkoblere til handlingsgruppen Abort
  • Glem ikke, at du skal aktivere Staging -knappen
Arduino konkurrence 2017
Arduino konkurrence 2017
Arduino konkurrence 2017
Arduino konkurrence 2017

Runner Up i Arduino Contest 2017

Første gang forfatterkonkurrence 2018
Første gang forfatterkonkurrence 2018
Første gang forfatterkonkurrence 2018
Første gang forfatterkonkurrence 2018

Runner Up i første gang forfatterkonkurrence 2018

Anbefalede: