Talaan ng mga Nilalaman:

KerbalController: isang Pasadyang Control Panel para sa Rocket Game Kerbal Space Program: 11 Mga Hakbang (na may Mga Larawan)
KerbalController: isang Pasadyang Control Panel para sa Rocket Game Kerbal Space Program: 11 Mga Hakbang (na may Mga Larawan)

Video: KerbalController: isang Pasadyang Control Panel para sa Rocket Game Kerbal Space Program: 11 Mga Hakbang (na may Mga Larawan)

Video: KerbalController: isang Pasadyang Control Panel para sa Rocket Game Kerbal Space Program: 11 Mga Hakbang (na may Mga Larawan)
Video: The Modern Snake Oil Salesman - Elon Musk 2024, Nobyembre
Anonim
KerbalController: isang Pasadyang Control Panel para sa Rocket Game Kerbal Space Program
KerbalController: isang Pasadyang Control Panel para sa Rocket Game Kerbal Space Program

Bakit bumuo ng isang KerbalController?

Kaya, dahil ang pagtulak ng mga pindutan at pagkahagis ng mga pisikal na switch ay nararamdaman na mas malaki kaysa sa pag-click sa iyong mouse. Lalo na kapag ito ay isang malaking pulang kaligtasan switch, kung saan kailangan mong buksan muna ang takip, i-flick ang switch upang braso ang iyong rocket, simulan ang countdown at 3.. 2.. 1.. mayroon kaming liftoff!

Ano ang KerbalController?

Ang isang KerbalController, na tinukoy din bilang isang Control Panel, Simpit (simulated cockpit), DSKY (display keyboard) o pasadyang joystick, ay isang pasadyang input aparato para sa pagkontrol sa tanyag na rocket-building-and-flying-and-sana-hindi-sumabog game Kerbal Space Program na sinamahan ng opsyonal na output mula sa laro, tulad ng mga ilaw sa katayuan, pagpapakita ng telemetry at / o mga pagsukat ng gasolina.

Ang tukoy na pagbuo na ito ay may kasamang mga input tulad ng pag-ikot at mga kontrol sa pagsasalin sa pamamagitan ng mga joystick, isang slottle slider, maraming mga pindutan na may mga ilaw sa katayuan, mga LED gauge ng gasolina at isang telemetry LCD display na may maraming mga mode.

Isasama ng gabay na ito ang lahat ng kailangan mo upang makabuo ng magkatulad na kopya, o magsagawa ng mga pagsasaayos at pagpapabuti sa daan, ayon sa iyong nababagay. Kasama ang:

  • isang listahan ng mga bahagi
  • handa na ang mga guhit sa disenyo ng digital para sa lasercutting
  • mga tagubilin sa mga kable
  • Code ng Arduino
  • Code para sa kasamang plugin ng KSP
  • Maraming larawan

Handa na para sa paglipad? Tara na!

Hakbang 1: Ang Mga Tool

Ang mga kagamitan
Ang mga kagamitan

Ang pinakamahalagang tool na kailangan mong magkaroon para sa build na ito ay isang soldering iron. Kasama rito ang ilang solder, isang metal na paglilinis ng espongha upang linisin ang dulo ng soldering iron at isang "pangatlong kamay".

Ang iba pang mga tool ay isang wire stripper, isang wire cutter, tweezer at ilang maliit na sukat na mga birador.

Hakbang 2: Mga Bahagi at Pangunahing Layout

Mga Bahagi at Pangunahing Layout
Mga Bahagi at Pangunahing Layout
Mga Bahagi at Pangunahing Layout
Mga Bahagi at Pangunahing Layout

Ang paggawa ng pinakamahusay na posibleng tagakontrol para sa iyo ay nangangahulugang pagpili nang eksakto kung aling mga pindutan at switch ang nais mong ipatupad. Dahil iba-iba ang paglalaro ng laro. Ang ilang mga tao ay nagpapalipad ng mga eroplano at nagtatayo ng SSTO (solong-yugto-sa-orbit). Mas gusto ng iba ang mga rovers ng mga istasyon ng kalawakan. At ang ilan ay nais lamang ang mga bagay na kamangha-manghang sumabog!

Tumutulong ito upang iguhit ang lahat ng mga bahagi sa kanilang tinatayang sukat at i-drag ang mga ito sa isang programa sa pagguhit ng vector (tulad ng Affinity Designer o Inkscape) o programa sa pagguhit ng 3D (tulad ng SketchUp).

Kung nais mo ng isang mas madaling pagbuo, maaari mo lamang kopyahin ang aking controller at makuha ang mga bahagi na nakalista sa listahan ng mga kalakip na bahagi.

Hakbang 3: Lumikha ng isang Prototype (opsyonal)

Lumikha ng isang Prototype (opsyonal)
Lumikha ng isang Prototype (opsyonal)
Lumikha ng isang Prototype (opsyonal)
Lumikha ng isang Prototype (opsyonal)

Kung kinokopya mo ang aking controller, maaari mong laktawan ang hakbang na ito.

Kung pupunta ka para sa isang pasadyang layout, inirerekumenda kong gumamit muna ng isang kahon ng sapatos upang lumikha ng isang gumaganang prototype na may pangunahing mga kontrol. Nakatutulong talaga ito upang maiayos ang posisyon ng mga pangunahing kontrol. Napakaganda din upang makuha ang kumpiyansa na magagawa mo itong gumana bago ka magpatuloy na mamuhunan ng oras at pera sa huling pagbuo. Talagang nilalaro ko ang laro nang medyo matagal kasama ang aking box box controller. Hindi ba ito ang Kerbal na paraan upang magamit ang mga na-salvage na bahagi upang mag-hack ng isang bagay nang magkasama?

Hakbang 4: Mga Tip sa Kable

Mga tip sa Kable
Mga tip sa Kable
Mga tip sa Kable
Mga tip sa Kable
Mga tip sa Kable
Mga tip sa Kable

Kapag lumilikha ng isang prototype, huwag maghinang lahat ng iyong mga pindutan maliban kung nais mong i-de-solder ang mga ito pagdating sa huling enclosure. Naghinang ako ng ilang mga wire sa mga pindutan at gumamit ng isang solderless breadboard upang gawin ang mga pansamantalang koneksyon sa Arduino.

Kapag kumokonekta sa lahat ng electronics sa huling faceplate, maaari mong bawasan ang kalat sa pamamagitan ng paglikha ng mga loop para sa 5V at ground. Hindi mo ikonekta ang lahat ng mga ground pin nang direkta sa Arduino, ngunit sa halip ay ikonekta ang ground sa isang pindutan sa ground sa susunod na pindutan at loop sa paligid. Sa wakas, kumonekta ka sa Arduino.

Matapos lumikha ng mga loop para sa lakas at lupa, ang lahat ng mga koneksyon sa mga pin ng Arduino ay mananatili. Inirerekumenda ko ang pagkuha ng ilang mga piraso ng mga pin ng header at paghihinang ng mga wire sa mga iyon. Maaari mong gamitin ang mga ito bilang isang malaking konektor, kaya maaari mo pa ring i-unplug ang iyong Arduino para sa pagsubok.

Ang haba ng mga wires ay isang pagkilos sa pagbabalanse sa pagitan ng sapat na maikli upang mapanatili ang enclosure na walang labis na mga kawad ng kawad (na maaaring pigilan ka na mai-isara ang kahon) at sapat na mahaba upang mailipat ang mga bahagi sa labas ng paraan upang maghinang iba pang mga bahagi sa, higpitan ang mga turnilyo at sundutin sa paligid ng iyong multimeter habang ang pag-debug.

Hakbang 5: Pagkuha ng Faceplate Lasercut

Pagkuha ng Faceplate Lasercut
Pagkuha ng Faceplate Lasercut
Pagkuha ng Faceplate Lasercut
Pagkuha ng Faceplate Lasercut
Pagkuha ng Faceplate Lasercut
Pagkuha ng Faceplate Lasercut

Ang pagkamit ng isang malinis, propesyonal na hitsura ay napakahirap kapag paglalagari at pagpipinta sa pamamagitan ng kamay. Sa kabutihang palad, ang pagputol ng laser ay hindi masyadong mahal. Pinapayagan nito ang matinding katumpakan, hangga't tumpak ang iyong disenyo.

Nakalakip ang aking faceplate na disenyo, sa mga format na naaangkop para sa Affinity Designer at iba pang mga programa sa pagguhit ng vector tulad ng libreng InkScape.

Nagkaroon ako ng faceplate lasercut sa The Netherlands sa Lichtzwaard. Simula nang magsara sila at ang mga aktibidad ay kinuha ng Laserbeest, kung saan pinutol ang kahon ng laser. Ang bawat tindahan ay maaaring may iba't ibang mga kinakailangan para sa disenyo, kaya't suriin sa iyong shop bago magsumite. Halos palaging nag-aalok din sila ng tulong sa disenyo sa isang oras-oras na rate.

Mahalagang bagay na dapat tandaan:

  • Ang lahat ay dapat na nakabatay sa vector. Iyon ang dahilan kung bakit ang logo sa aking disenyo ng faceplate ay hindi naukit. Tandaan na hindi ito naayos sa mga kalakip na disenyo.
  • Kahit na ang teksto ay batay sa maging vector. Kaya't i-convert ang mga titik na iyon sa mga curve!
  • Sukatin Sukatin Sukatin Nabigo akong isaalang-alang ang laki na kinakailangan para sa pag-mount ng mga joystick at kina-hack ito. Naging maayos, swerte. Tandaan na naayos ito sa mga nakakabit na disenyo.

Matapos suriin nang mabuti ang lahat, ipadala ito sa lasercutting shop. Asahan na magbayad ng 40-50 euro sa The Netherlands at makuha ang magandang resulta sa mail sa susunod na araw!

Hakbang 6: Pag-hook ng Mga Pindutan at Paglipat

Pag-hook ng Mga Pindutan at Paglipat
Pag-hook ng Mga Pindutan at Paglipat
Pag-hook ng Mga Pindutan at Paglipat
Pag-hook ng Mga Pindutan at Paglipat
Pag-hook ng Mga Pindutan at Paglipat
Pag-hook ng Mga Pindutan at Paglipat

Karamihan sa mga switch at pindutan ay may mga konektor na may label na C, NO, NC, +, -. Narito kung paano maiugnay ang mga ito sa Arduino.

Simpleng switch o pushbutton:

  • Ground C (karaniwang)
  • Arduino digital pin NO (karaniwang bukas)

Ise-configure namin ang digital pin bilang INPUT_PULLUP, na nangangahulugang panatilihin ng Arduino ang pin sa 5V at tuklasin kapag ang pin ay na-grounded at tinatrato iyon bilang isang input. Ang WALANG konektor sa switch o pindutan ay Karaniwan Bukas, kaya't ang circuit ay hindi konektado. Kapag pinindot mo ang pindutan o i-toggle ang switch, sarado ang circuit at ang pin ay na-grounded.

Pushbutton na may LED:

Ang bahagi ng pindutan ay kapareho ng nasa itaas. Para sa LED, nakakabit ka ng mga karagdagang wire:

  • Lupa - (negatibo)
  • Arduino digital pin + (positibo)

Ang bahaging ito ay medyo prangka. Gagamitin namin ang Arduino pin sa normal na mode na OUTPUT.

Mga switch sa kaligtasan na may LED:

Ang mga ito ay medyo naiiba at hindi pinapayagan ang kontrol sa LED na malaya mula sa posisyon ng switch. Ang LED ay laging ilaw lamang kapag ang switch ay naka-toggle. Mayroon silang isang,, - at konektor ng signal.

  • Lupa - (negatibo)
  • 5V + (positibo)
  • Arduino digital pin S (signal)

Gagamitin namin ang Arduino pin sa INPUT mode. Kapag ang switch ay naka-toggle, ang LED ay ilaw up at ang signal pin ay mataas.

Hakbang 7: Pag-hook ng Mga Joystick at LCD

Hooking Up Joysticks at ang LCD
Hooking Up Joysticks at ang LCD
Hooking Up Joysticks at ang LCD
Hooking Up Joysticks at ang LCD
Hooking Up Joysticks at ang LCD
Hooking Up Joysticks at ang LCD

LCD

Napakadali ng LCD. Kailangan lang ng lakas, lupa at serial.

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

Maaari kang gumamit ng isang konektor ng JST o direktang panghinang sa mga board sa board.

Mga Joystick

Ang mga joystick ay maaaring mukhang nakakatakot sa una, ngunit ang mga ito ay medyo madali upang kumonekta. Mayroong tatlong axis na konektado sa parehong paraan. Dalawa sa kanila ang gumagamit ng mga konektor sa ilalim ng joystick. Ang pangatlo ay gumagamit ng ilang mga wire.

  • Lupa
  • Wiper Arduino analog input pin
  • 5V

Ang mga konektor ay maaaring naka-attach sa order na ito. Huwag mag-alala tungkol sa pagkuha ng paatras, ang wiper ay palaging ang gitna. Kung ang kapangyarihan at lupa ay napalitan, maaari nating i-flip ang axis sa paligid ng Arduino code sa paglaon.

Ang mga wires ay maaaring magkaroon ng iba't ibang scheme ng pangkulay sa iyong joystick, ngunit sa pangkalahatan: ang dalawang wires na may magkatulad na kulay ay para sa pindutan sa itaas. Ang pula o kahel ay 5V, Itim o kayumanggi ay Ground. Ang natitirang kawad ay ang wiper.

Hakbang 8: Mga LED Bar Fuel Gauge

Mga LED Bar Fuel Gauge
Mga LED Bar Fuel Gauge
Mga LED Bar Fuel Gauge
Mga LED Bar Fuel Gauge
Mga LED Bar Fuel Gauge
Mga LED Bar Fuel Gauge

Sige. Ito ang pinakamahirap na bahagi ng buong buo. Huwag mag-atubiling laktawan ito sa iyong unang pagbuo, o pagbutihin ito at ipaalam sa akin!

Nakuha ko ang mahusay na mga LED bar na ito na nais kong gamitin bilang mga gauge ng gasolina. Ang tuktok na LED ay asul, pagkatapos ay ilang berde, pagkatapos ay orange at sa wakas pula. Kung maaari nating magaan ang isang LED nang paisa-isa, maaari nating hayaan itong kumatawan sa antas ng gasolina sa aming spacecraft.

Una kong inorder ang driver IC's sa kanila. Ang galing nila! Maaari kang pumili ng mode na tuldok o mode ng bar at magpapakita ito ng isang analogue input voltage bilang isang solong LED (tuldok) o isang hanay ng mga LED (bar). Ngunit ang isang Arduino ay hindi naglalabas ng isang analogue boltahe! At ang tampok na PWM na nagbibigay-daan sa iyo upang madilim ang isang LED sa pamamagitan ng uri ng pagtulad sa isang boltahe ng analogue, ay hindi gagana sa mga driver ng IC na ito.

Sa plano 2: paglilipat ng mga rehistro. Makakapagtatrabaho ka sa mga ito sa bawat Arduino starter kit. At maaari kang matuto nang higit pa tungkol sa mga ito dito:

Ang plano ay sa paanuman ay i-convert ang mga antas ng gasolina sa tamang string ng mga piraso na kumakatawan sa mga antas ng gasolina sa mga LED bar. Sa 5 mga gauge ng gasolina, lahat ng antas ng gasolina na napunan ay kailangang maging 10000000001000000000100000000010000000001000000000. Sa walang laman na monopropellant, magiging: 10000000001000000000100000000010000000000000000001.

Sapat na simpleng tunog. Mayroong ilang mga komplikasyon. Ang mga rehistro ng shift ay may 8 mga pin, habang ang mga LED bar ay may 10 LEDs. Gumagamit ako ng 7 shift register upang makakuha ng 56 output. Kapag nag-wire ang mga ito sa, nilaktawan ko ang isang IC pin sa isang lugar (magkakasya kami sa code na). At nag-kable ako ng isang LED bar sa pagsisimula sa kabilang dulo (aayusin namin iyon sa code). Oh at Arduino matematika na kailangan namin minsan ay gumagamit ng lumulutang point arithmetic na sanhi ng mga error sa pag-ikot (aayusin namin iyon sa code). Tandaan na ibinabahagi ko ang code sa isang susunod na hakbang.

Ang aking pangwakas na pagbuo ay hindi tugma sa nakalakip na diagram ng mga kable, kaya kung muling itataguyod mo ang tagakontrol na ito, ang ilang mga pag-update ay kinakailangan sa code. Magkomento sa ibaba kung kailangan mo ng tulong.

Ang bawat LED ay nangangailangan ng sariling resistor. Subukan ang ilang iba't ibang mga halaga upang maitugma ang ningning. Ang berde ay lilitaw na mas maliwanag kaysa sa pula na may parehong resistors, kaya nakakatulong itong balansehin iyon.

Wakas na resulta: sa halip na 50 mga digital na pin na kinakailangan upang mapagana ang 5 LED bar, na nabawas sa 3: isang signal ng orasan, isang signal ng aldaba at isang signal ng data.

Hakbang 9: Pagbuo ng Enclosure

Pagbuo ng Enclosure
Pagbuo ng Enclosure
Pagbuo ng Enclosure
Pagbuo ng Enclosure
Pagbuo ng Enclosure
Pagbuo ng Enclosure
Pagbuo ng Enclosure
Pagbuo ng Enclosure

Oras upang makaganti sa mga logo na iyon!

Na-convert ko ang mga logo sa wastong mga guhit na vector kaya't nakakulit lamang sila. This time, iba na ang isyu ko. Ang mga butas ng tornilyo ay wala sa mga tamang lugar para sa tamang pagpupulong ng kahon. Gumamit ako ng 6mm MDF para sa kahon. Sa kasamaang palad, ang pag-screwing ng pagpako sa mga gilid ay sanhi ng paghihiwalay nila. Na-hack ko ito kasama ang mga karagdagang kahoy na scrap at pandikit. Maraming pandikit.

Para sa iyo na mas mahusay sa kahoy, pandikit at / o mga kuko, na-attach ko ang isang bersyon ng mga disenyo nang hindi lahat ng mga butas ng tornilyo.

Sa kabila ng mga paghihirap, ang huling resulta ay medyo makinis.

Hakbang 10: Software at Pagsubok

Image
Image
Software at Pagsubok
Software at Pagsubok

I-download ang sumusunod na software upang gumana ang controller sa Kerbal Space Program:

KSP plugin:

Ang ZIP file ay ang pinagsamang plugin. Ang natitira ay source code na maaari mong gamitin upang mabago ang plugin at mag-compile ng iyong sariling bersyon. I-unpack ang plugin sa direktoryo ng GamaData.

Arduino Code:

Gamitin ang Arduino IDE upang mai-upload ang code sa Arduino Mega sa iyong controller.

Tingnan ang kanang bahagi sa ibaba ng Arduino IDE upang malaman kung aling serial port ang controller ay nasa (hal. /Dev/cu.usbmodem1421). Buksan ang config.xml file mula sa direktoryo ng plugin at tiyaking napunan ang iyong port. Ngayon ay mabuti kang pumunta!

Maaari mong gamitin ang debug mode sa pamamagitan ng paglalagay ng maliit sa / off switch sa kaliwang tuktok sa posisyon na ON. Dapat magpakita ang LCD ng isang string ng mga titik. Ang bawat titik ay kumakatawan sa isang pindutan o switch at lumipat sa pagitan ng mas mababa at itaas na kaso kapag pinindot mo ang pindutan o i-toggle ang switch. Ang pagtatakda ng mga switch ng xyz sa Xyz (on / off / off) ay ipapakita rin ang mga halaga ng throttle slider. Nagpapakita ang xYz ng mga halaga ng joystick para sa joystick ng Pagsasalin (kaliwa). xyZ para sa Rotation (kanan) na joystick.

Mga LCD Mode

Ang mga sumusunod na mode ng pagpapakita ay maaaring mapili para ipakita sa LCD sa pamamagitan ng paggamit ng mga switch na x, y at z

TakeOff Mode: Suface Velocity / Acceleration (G)

Orbit Mode: Apoapsis + Oras sa Apoapsis / Periapsis + Oras sa Periapsis

Maneuver Mode: Oras sa susunod na maneuver node / Natitirang Delta-V para sa susunod na node

Rendezvous Mode: Distansya sa target / Tulin na nauugnay sa target

Re-Entry Mode: Porsyento ng overheating (max) / Pagpapahina (G)

Lumilipad na Mode: Numero ng Altitude / Mach

Landing Mode: Radar Altitude / Vertical Velocity

Extra Mode: hindi naipatupad (pa)

Upang makita ang iba't ibang mga mode sa pagkilos, tingnan ang video sa dulo ng itinuturo.

Hakbang 11: Sa Buwan

Image
Image
Sa Buwan!
Sa Buwan!

Sunog ang KSP, i-load ang iyong paboritong barko, o bumuo ng bago at umalis ka!

Mga Tip:

  • Gumamit ng pasadyang pangkat ng pagkilos 5 para sa iyong mga hagdan
  • Gumamit ng pasadyang pangkat ng pagkilos 6 para sa iyong mga solar panel
  • Gumamit ng pasadyang pangkat ng pagkilos 7 para sa mga parachute o drute chute
  • Italaga ang sistemang pagtakas sa paglunsad at ang mga naaangkop na decoupler sa pangkat ng pagkilos na Abort
  • Huwag kalimutan na kailangan mong Arm ang Staging button
Arduino Contest 2017
Arduino Contest 2017
Arduino Contest 2017
Arduino Contest 2017

Runner Up sa Arduino Contest 2017

First Time May-akda Contest 2018
First Time May-akda Contest 2018
First Time May-akda Contest 2018
First Time May-akda Contest 2018

Runner Up sa First Time Author Contest 2018

Inirerekumendang: