Sadržaj:
- Korak 1: Alati
- Korak 2: Dijelovi i osnovni izgled
- Korak 3: Kreirajte prototip (opcionalno)
- Korak 4: Savjeti o ožičenju
- Korak 5: Lasersko rezanje prednje ploče
- Korak 6: Povezivanje dugmadi i prekidača
- Korak 7: Povezivanje džojstika i LCD -a
- Korak 8: LED mjerači goriva
- Korak 9: Izgradnja kućišta
- Korak 10: Softver i testiranje
- Korak 11: Na Mjesec
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
Zašto graditi KerbalController?
Pa, zato što je pritiskanje dugmadi i bacanje fizičkih prekidača mnogo značajnije od klika mišem. Pogotovo kada se radi o velikom crvenom sigurnosnom prekidaču, gdje morate prvo otvoriti poklopac, pritisnuti prekidač da aktivirate raketu, pokrenuti odbrojavanje i 3.. 2.. 1.. imamo podizanje!
Šta je KerbalController?
KerbalController, koji se naziva i kontrolna tabla, Simpit (simulirani kokpit), DSKY (ekranska tastatura) ili prilagođeni džojstik, prilagođeni je ulazni uređaj za upravljanje popularnom izgradnjom raketa i letenjem i, nadamo se, ne eksplodiranjem igre Kerbal Space Program u kombinaciji s opcionalnim izlazima iz igre, kao što su svjetla statusa, telemetrijski zasloni i/ili mjerači goriva.
Ova specifična konstrukcija uključuje unose kao što su kontrole rotacije i prevođenja preko džojstika, klizač za gas, mnoštvo dugmadi sa svjetlima statusa, LED pokazivači goriva i telemetrijski LCD ekran sa više načina rada.
Ovaj vodič će uključivati sve što vam je potrebno za izradu identične kopije ili usputna prilagođavanja i poboljšanja, prema vašem mišljenju. Uključeno je:
- lista delova
- crteži digitalnog dizajna spremni za lasersko rezanje
- upute za ožičenje
- Arduino kod
- Kôd za prateći dodatak KSP
- Mnogo slika
Spremni za poletanje? Idemo!
Korak 1: Alati
Najvažniji alat koji trebate imati za ovu konstrukciju je lemilica. To uključuje malo lema, spužvu za čišćenje metala za čišćenje vrha lemilice i "treću ruku".
Drugi alati su skidač žice, rezač žice, pinceta i neki odvijači male veličine.
Korak 2: Dijelovi i osnovni izgled
Napraviti najbolji mogući kontroler za vas znači odabrati tačno koja dugmad i prekidače želite implementirati. Jer svi igraju igru drugačije. Neki ljudi lete avionima i grade SSTO-ove (jednostepene u orbitu). Drugi preferiraju rovere svemirskih stanica. A neki samo žele da stvari spektakularno eksplodiraju!
Pomaže crtanje svih dijelova u približnoj veličini i njihovo povlačenje u programu za vektorsko crtanje (poput Affinity Designer ili Inkscape) ili 3D programu za crtanje (poput SketchUpa).
Ako želite lakšu izradu, možete samo kopirati moj kontroler i dobiti dijelove navedene na priloženoj listi dijelova.
Korak 3: Kreirajte prototip (opcionalno)
Ako kopirate moj kontroler, možete preskočiti ovaj korak.
Ako idete na prilagođeni izgled, preporučujem da prvo upotrijebite kutiju za cipele kako biste stvorili radni prototip s glavnim kontrolama. Zaista pomaže u finom podešavanju položaja glavnih kontrola. Također je lijepo steći samopouzdanje da ga uspijete prije nego nastavite ulagati vrijeme i novac u konačnu izgradnju. Zapravo sam igrao igru neko vrijeme sa svojim kontrolerom kutije za cipele. Nije li to Kerbal način korištenja spašenih dijelova za hakiranje nečega zajedno?
Korak 4: Savjeti o ožičenju
Prilikom stvaranja prototipa nemojte lemiti sve svoje tipke osim ako ih ne želite odlemiti kada dođete do posljednjeg kućišta. Lemio sam neke žice na dugmad i koristio ploču za lemljenje da napravim privremene veze sa Arduinom.
Kada povežete svu elektroniku s posljednjom prednjom pločom, možete smanjiti nered stvaranjem petlji za 5 V i masu. Ne povezujete sve pinove za uzemljenje izravno na Arduino, već radije spojite uzemljenje na jednom gumbu na uzemljenje na sljedećem gumbu i petljajte okolo. Konačno, povezujete se s Arduinom.
Nakon stvaranja petlji za napajanje i uzemljenje, sve veze s Arduino pinovima ostaju. Preporučujem da nabavite neke trake zaglavlja i zalemite žice na njih. Možete ih koristiti kao veliki konektor, tako da i dalje možete isključiti svoj Arduino za testiranje.
Dužina žica balansira između dovoljno kratkog da se kućište oslobodi viška zapetljanih žica (koje vas mogu spriječiti da zatvorite kutiju) i dovoljno dugog da biste mogli pomaknuti dijelove s puta lemljenja ostale dijelove, pritegnite vijke i pomičite se multimetrom dok otklanjate greške.
Korak 5: Lasersko rezanje prednje ploče
Postizanje čistog, profesionalnog izgleda vrlo je teško pri ručnom piljenju i slikanju. Srećom, lasersko rezanje više nije skupo. Omogućava izuzetnu preciznost, sve dok je vaš dizajn tačan.
U prilogu je dizajn moje prednje ploče, u formatima prikladnim za Affinity Designer i druge programe za vektorsko crtanje poput besplatnog InkScape -a.
Lasersko su mi rezali prednju ploču u Holandiji u Lichtzwaardu. Od tada su se zatvorili, a aktivnosti je preuzeo Laserbeest, gdje sam laserski izrezao okvir. Svaka trgovina može imati različite zahtjeve za dizajn, pa prije podnošenja provjerite u svojoj trgovini. Oni također gotovo uvijek nude pomoć u dizajnu po satu.
Važne stvari koje treba imati na umu:
- Sve mora biti zasnovano na vektorima. Zato logo u mom dizajnu prednje ploče nije urezan. Imajte na umu da ovo nije fiksirano u priloženim projektima.
- Čak je i tekst zasnovan na vektorima. Zato pretvorite ta slova u krivulje!
- Izmerite. Izmerite. Izmerite. Nisam uspio uzeti u obzir veličinu potrebnu za postavljanje upravljačkih palica i morao sam je hakirati. Na sreću ispalo je dobro. Imajte na umu da je to fiksirano u priloženim izvedbama.
Nakon što ste sve temeljito provjerili, pošaljite ih u radionicu za lasersko rezanje. Očekujte da ćete platiti 40-50 eura u Holandiji i sljedeći dan dobiti ovaj lijepi rezultat poštom!
Korak 6: Povezivanje dugmadi i prekidača
Većina prekidača i tipki imaju konektore označene sa C, NO, NC, +, -. Evo kako ih spojiti na Arduino.
Jednostavan prekidač ili dugme:
- Uzemljenje C (uobičajeno)
- Arduino digitalni pin NO (normalno otvoren)
Konfigurirat ćemo digitalni pin kao INPUT_PULLUP, što znači da će Arduino držati pin na 5V i detektirati kada se pin uzemlji i tretirat će to kao ulaz. NO konektor na prekidaču ili gumbu je normalno otvoren, pa krug nije povezan. Kada pritisnete dugme ili prebacite prekidač, krug se zatvara i pin se uzemljuje.
Taster sa LED diodom:
Dio dugmeta je isti kao gore. Za LED diodu priključujete dodatne žice:
- Uzemljenje - (negativno)
- Arduino digitalni pin + (pozitivan)
Ovaj dio je prilično jednostavan. Arduino pin ćemo koristiti u normalnom OUTPUT načinu rada.
Sigurnosni prekidači sa LED diodama:
Oni su malo drugačiji i ne dopuštaju kontrolu nad LED diodom neovisno o položaju prekidača. LED dioda će uvijek svijetliti samo kada je prekidač uključen. Imaju +, - i signalni konektor.
- Uzemljenje - (negativno)
- 5V + (pozitivno)
- Arduino digitalni pin S (signal)
Arduino pin ćemo koristiti u INPUT načinu rada. Kada je prekidač uključen, LED svijetli i signalni pin se podiže.
Korak 7: Povezivanje džojstika i LCD -a
LCD
LCD je vrlo jednostavan. Potrebno mu je samo napajanje, zemaljsko i serijsko.
- 5V VDD
- Uzemljenje GND
- Arduino Tx PIN RX
Možete koristiti JST konektor ili lemiti žice direktno na ploču.
Joysticks
Upravljačke palice na prvi pogled mogu izgledati zastrašujuće, ali povezivanje ih je prilično jednostavno. Tri su osi povezane na isti način. Dva od njih koriste konektore na dnu upravljačke palice. Treći koristi neke žice.
- Ground
- Brisač Arduino pin za analogni ulaz
- 5V
Konektori se mogu pričvrstiti ovim redoslijedom. Ne brinite o vraćanju unatrag, brisač je uvijek srednji. Ako se snaga i tlo zamijene, kasnije možemo okrenuti os u Arduino kodu.
Žice mogu imati drugačiju shemu bojenja na upravljačkoj palici, ali općenito: dvije žice identičnih boja služe za gumb na vrhu. Crvena ili narančasta je 5V, crna ili smeđa je uzemljena. Preostala žica je brisač.
Korak 8: LED mjerači goriva
U redu. Ovo je najteži dio cijele konstrukcije. Slobodno preskočite ovo pri prvoj verziji ili ga poboljšajte i obavijestite me!
Dobio sam ove sjajne LED šipke koje želim koristiti kao mjerače goriva. Gornja LED dioda je plava, zatim nešto zelena, zatim narančasta i na kraju crvena. Ako možemo paliti jednu po jednu LED, možemo joj dopustiti da predstavlja nivo goriva na našoj svemirskoj letjelici.
U početku sam kod njih naručio IC upravljačke programe. Odlično rade! Možete odabrati način tačka ili način rada trake i on će prikazati analogni ulazni napon kao jedna LED (tačka) ili niz LED dioda (traka). Ali Arduino ne emitira analogni napon! I PWM funkcija koja vam omogućuje zatamnjivanje LED -a emulacijom analognog napona, ne radi s ovim upravljačkim programima.
Na planu 2: registri smjena. S njima možete raditi u svakom Arduino početnom setu. Više o njima možete saznati ovdje:
Plan je nekako pretvoriti nivo goriva u odgovarajući niz bitova koji će predstavljati nivo goriva na LED trakama. S 5 mjerača goriva, svi napunjeni nivoi goriva trebali bi biti 1000000000100000000000100000000010000000001000000000. S praznim monopropelerom postalo bi: 100000000010000000001000000000100000000000000001.
Zvuči dovoljno jednostavno. Postoje neke komplikacije. Registri pomaka imaju 8 pinova, dok LED šipke imaju 10 LED dioda. Koristim 7 registara pomaka da dobijem 56 izlaza. Prilikom njihovog povezivanja preskočio sam negdje IC pin (to ćemo uklopiti u kod). Ožičio sam jednu LED traku počevši od drugog kraja (to ćemo popraviti u kodu). Oh, i Arduino matematika koja nam je potrebna ponekad koristi aritmetiku s pomičnim zarezom koja uzrokuje greške zaokruživanja (to ćemo popraviti u kodu). Imajte na umu da kôd dijelim u kasnijem koraku.
Moja konačna verzija nije se podudarala s priloženim dijagramom ožičenja, pa ako obnovite ovaj kontroler, potrebna su neka ažuriranja koda. Komentirajte ispod ako vam je potrebna pomoć.
Svaka LED dioda zahtijeva vlastiti otpornik. Pokušajte s različitim vrijednostima kako biste uskladili svjetlinu. Zelena izgleda mnogo svjetlije od crvene sa istim otpornicima, pa pomaže u uravnoteženju toga.
Krajnji rezultat: umjesto 50 digitalnih pinova potrebnih za napajanje 5 LED traka, to se smanjuje na 3: signal sata, signal zasuna i signal podataka.
Korak 9: Izgradnja kućišta
Vrijeme je da se osvetim s tim logom!
Pretvorio sam logotip u odgovarajuće vektorske crteže tako da se dobro urežu. Ovaj put imam drugačiji problem. Rupe za vijke nisu na pravim mjestima za pravilno sastavljanje kutije. Za kutiju sam koristio MDF od 6 mm. Nažalost, uvrtanje čavala u rubove uzrokuje njihovo cijepanje. Hakirao sam ga zajedno s dodatnim drvenim ostacima i ljepilom. Mnogo ljepila.
Za vas koji ste bolji s drvetom, ljepilom i/ili ekserima, priložio sam verziju dizajna bez rupa za vijke.
Unatoč poteškoćama, krajnji rezultat je prilično gladak.
Korak 10: Softver i testiranje
Preuzmite sljedeći softver kako bi kontroler radio s Kerbal Space Programmom:
KSP dodatak:
ZIP datoteka je kompajlirani dodatak. Ostatak je izvorni kod koji možete koristiti za izmjenu dodatka i sastavljanje vlastite verzije. Raspakirajte dodatak u direktorij GamaData.
Arduino kod:
Koristite Arduino IDE za postavljanje koda na Arduino Mega u vašem kontroleru.
Pogledajte donji desni dio Arduino IDE -a kako biste saznali na kojem je serijskom portu kontroler (npr. /Dev/cu.usbmodem1421). Otvorite datoteku config.xml iz direktorija dodataka i provjerite je li vaš port popunjen. Sada ste spremni!
Način otklanjanja grešaka možete koristiti postavljanjem malog prekidača za uključivanje/isključivanje gore lijevo u položaj UKLJUČENO. LCD bi trebao prikazati niz slova. Svako slovo predstavlja dugme ili prekidač i prebacuje se između malih i velikih slova kada pritisnete dugme ili prebacite prekidač. Postavljanje prekidača xyz u Xyz (uključivanje/isključivanje/isključivanje) također će prikazati vrijednosti klizača za gas. xYz prikazuje vrijednosti džojstika za prijevodni (lijevi) joystick. xyZ za rotacijski (desni) joystick.
LCD režimi
Sljedeći načini prikaza mogu se odabrati za prikaz na LCD -u pomoću prekidača x, y i z
Način TakeOff: Brzina / ubrzanje površine (G)
Način orbite: Apoapsis + Vrijeme do Apoapsis / Periapsis + Vrijeme do Periapsis
Manevarski način: Vrijeme do sljedećeg čvora za manevriranje / Preostali Delta-V za sljedeći čvor
Rendezvous Mode: Rastojanje do cilja / Brzina u odnosu na cilj
Re-Entry Mode: Postotak pregrijavanja (max) / Usporavanje (G)
Režim letenja: Nadmorska visina / Mahov broj
Način slijetanja: Radarska nadmorska visina / okomita brzina
Dodatni način rada: još nije implementiran
Da biste vidjeli različite načine rada, pogledajte video zapis na kraju uputstva.
Korak 11: Na Mjesec
Upalite KSP, napunite svoje omiljeno plovilo ili napravite novo i krenite!
Savjeti:
- Koristite prilagođenu akcijsku grupu 5 za svoje ljestve
- Koristite prilagođenu akcijsku grupu 6 za svoje solarne panele
- Koristite prilagođenu akcijsku grupu 7 za padobrane ili padobranske padobrane
- Dodijelite sustav za izbjegavanje pokretanja i odgovarajuće odvajače akcijskoj grupi Prekini
- Ne zaboravite da morate aktivirati dugme Postavljanje
Drugoplasirani na Arduino takmičenju 2017
Drugoplasirani na prvom takmičenju autora 2018