Съдържание:

KerbalController: Персонализиран контролен панел за космическа програма Kerbal за ракетни игри: 11 стъпки (със снимки)
KerbalController: Персонализиран контролен панел за космическа програма Kerbal за ракетни игри: 11 стъпки (със снимки)

Видео: KerbalController: Персонализиран контролен панел за космическа програма Kerbal за ракетни игри: 11 стъпки (със снимки)

Видео: KerbalController: Персонализиран контролен панел за космическа програма Kerbal за ракетни игри: 11 стъпки (със снимки)
Видео: 🚀 Kerbal Space Program: ПОЛЕЗНЫЕ ФИШКИ 2024, Юли
Anonim
KerbalController: Персонализиран контролен панел за космическа програма Kerbal за ракетни игри
KerbalController: Персонализиран контролен панел за космическа програма Kerbal за ракетни игри

Защо да изградите KerbalController?

Е, защото натискането на бутони и хвърлянето на физически превключватели е много по -съществено от натискането на мишката. Особено когато това е голям червен предпазен превключвател, при който първо трябва да отворите капака, да натиснете превключвателя, за да активирате ракетата си, да стартирате обратното броене и 3.. 2.. 1.. имаме излитане!

Какво е KerbalController?

KerbalController, наричан още Контролен панел, Simpit (симулирана кабина), DSKY (клавиатура на дисплея) или персонализиран джойстик, е персонализирано входно устройство за управление на популярното ракетостроене и полет и надявам се да не експлодира игра Kerbal Space Program, комбинирана с опционален изход от играта, като например светлини за състоянието, телеметрични дисплеи и/или манометри.

Тази специфична конструкция включва входове като управление на въртене и превод чрез джойстици, плъзгач на газта, множество бутони със светлини за състоянието, LED индикатори за гориво и телеметричен LCD дисплей с множество режими.

Това ръководство ще включва всичко необходимо, за да създадете идентично копие или да направите корекции и подобрения по пътя, както сметнете за добре. Включени са:

  • списък с части
  • чертежи за цифров дизайн, готови за лазерно рязане
  • инструкции за окабеляване
  • Код на Arduino
  • Код за придружаващия KSP плъгин
  • Много снимки

Готов за излитане? Да тръгваме!

Стъпка 1: Инструментите

Инструментите
Инструментите

Най -важният инструмент, който трябва да имате за тази конструкция, е поялник. Това включва малко спойка, метална гъба за почистване за почистване на върха на поялника и „трета ръка“.

Други инструменти са машина за сваляне на тел, резачка за тел, пинсети и някои отвертки с малък размер.

Стъпка 2: Части и основно оформление

Части и основно оформление
Части и основно оформление
Части и основно оформление
Части и основно оформление

Да направите възможно най -добрия контролер за вас означава да изберете точно кои бутони и превключватели искате да приложите. Защото всеки играе по различен начин. Някои хора летят със самолети и изграждат SSTO (едноетапни до орбита). Други предпочитат роверите на космически станции. А някои просто искат нещата да избухнат грандиозно!

Помага да нарисувате всички части в приблизителния им размер и да ги плъзнете в програма за векторно рисуване (като Affinity Designer или Inkscape) или програма за 3D рисуване (като SketchUp).

Ако искате по -лесно изграждане, можете просто да копирате моя контролер и да получите частите, изброени в прикачения списък с части.

Стъпка 3: Създайте прототип (по избор)

Създайте прототип (по избор)
Създайте прототип (по избор)
Създайте прототип (по избор)
Създайте прототип (по избор)

Ако копирате моя контролер, можете да пропуснете тази стъпка.

Ако отивате за персонализирано оформление, препоръчвам първо да използвате кутия за обувки, за да създадете работещ прототип с основните контроли. Това наистина помага за фина настройка на позицията на основните контроли. Също така е хубаво да получите увереността, че можете да я накарате да работи, преди да продължите да инвестирате време и пари в окончателното изграждане. Всъщност играх играта доста дълго с контролера на кутията за обувки. Не е ли начинът Kerbal да използва спасени части за хакване на нещо заедно?

Стъпка 4: Съвети за окабеляване

Съвети за окабеляване
Съвети за окабеляване
Съвети за окабеляване
Съвети за окабеляване
Съвети за окабеляване
Съвети за окабеляване

Когато създавате прототип, не запоявайте всичките си бутони, освен ако не искате да ги споите, когато стигнете до последния корпус. Запоях някои проводници към бутоните и използвах без запояване макет, за да направя временните връзки към Arduino.

Когато свързвате цялата електроника към крайната лицева плоча, можете да намалите бъркотията, като създадете контури за 5V и маса. Не свързвате всички заземителни щифтове директно към Arduino, а по -скоро свързвате заземяването на един бутон към заземяването на следващия бутон и завъртате наоколо. Накрая се свързвате с Arduino.

След създаване на контури за захранване и заземяване, всички връзки към щифтовете на Arduino остават. Препоръчвам да вземете няколко ленти от щифтове и да запоите проводниците към тях. Можете да ги използвате като голям конектор, така че все още можете да изключите вашия Arduino за тестване.

Дължината на проводниците е балансиращ акт между достатъчно кратък, за да предпази корпуса от излишни заплитания на тел (което може да ви попречи да затворите кутията), и достатъчно дълъг, за да можете да преместите части от пътя към спойка останалите части, затегнете винтовете и прободете с вашия мултицет, докато отстранявате грешки.

Стъпка 5: Изрязване на лицевата плоча с лазер

Получаване на лазерно изрязване на лицевата плоча
Получаване на лазерно изрязване на лицевата плоча
Получаване на лазерно изрязване на лицевата плоча
Получаване на лазерно изрязване на лицевата плоча
Получаване на лазерно изрязване на лицевата плоча
Получаване на лазерно изрязване на лицевата плоча

Постигането на чист, професионален вид е много трудно при рязане и боядисване на ръка. За щастие лазерното рязане вече не е много скъпо. Тя позволява изключителна прецизност, стига вашият дизайн да е точен.

Приложен е моят дизайн на лицевата плоча, във формати, подходящи за Affinity Designer и други програми за векторно рисуване като безплатния InkScape.

Имах лазерно изрязване на лицевата плоча в Холандия в Lichtzwaard. Оттогава те са затворени и дейностите са поети от Laserbeest, където направих лазерно изрязване на кутията. Всеки магазин може да има различни изисквания за дизайна, така че проверете в магазина си, преди да изпратите. Те също така почти винаги предлагат помощ при проектирането на почасова ставка.

Важни неща, които трябва да имате предвид:

  • Всичко трябва да се основава на вектор. Ето защо логото в моя дизайн на лицевата плоча не се гравира. Обърнете внимание, че това не е фиксирано в приложените дизайни.
  • Дори текстът се основава на вектор. Затова превърнете тези букви в криви!
  • Измерете. Измерете. Измерете. Не успях да взема предвид размера, необходим за монтиране на джойстиците, и трябваше да го хакна. Оказа се, за щастие. Обърнете внимание, че това е фиксирано в приложените дизайни.

След като проверите всичко старателно, изпратете го в магазина за лазерно рязане. Очаквайте да платите 40-50 евро в Холандия и да получите този красив резултат по пощата на следващия ден!

Стъпка 6: Свързване на бутони и превключватели

Свързване на бутони и превключватели
Свързване на бутони и превключватели
Свързване на бутони и превключватели
Свързване на бутони и превключватели
Свързване на бутони и превключватели
Свързване на бутони и превключватели

Повечето превключватели и бутони имат конекторите с етикет C, NO, NC, +, -. Ето как да ги свържете към Arduino.

Прост превключвател или бутон:

  • Земя C (често срещана)
  • Arduino цифров извод NO (нормално отворен)

Ще конфигурираме цифровия щифт като INPUT_PULLUP, което означава, че Arduino ще поддържа щифта на 5V и ще открива кога щифтът се заземява и ще го третира като вход. Конекторът NO на превключвателя или бутона е нормално отворен, така че веригата не е свързана. Когато натиснете бутона или превключите превключвателя, веригата се затваря и щифтът се заземява.

Бутон с LED:

Частта с бутоните е същата като по -горе. За светодиода прикачвате допълнителни проводници:

  • Земя - (отрицателна)
  • Arduino цифров пин + (положителен)

Тази част е доста ясна. Ще използваме щифта Arduino в нормален режим OUTPUT.

Предпазни превключватели с LED:

Те са малко по -различни и не позволяват управление на светодиода независимо от позицията на превключвателя. Светодиодът винаги ще светне само когато превключвателят е включен. Те имат +, - и сигнален конектор.

  • Земя - (отрицателна)
  • 5V + (положително)
  • Arduino цифров пин S (сигнал)

Ще използваме щифта Arduino в режим INPUT. Когато превключвателят е включен, светодиодът светва и сигналният щифт се издига високо.

Стъпка 7: Свързване на джойстици и LCD

Свързване на джойстици и LCD
Свързване на джойстици и LCD
Свързване на джойстици и LCD
Свързване на джойстици и LCD
Свързване на джойстици и LCD
Свързване на джойстици и LCD

LCD

LCD дисплеят е много прост. Нуждае се само от захранване, наземно и серийно.

  • 5V VDD
  • Земя GND
  • Arduino Tx PIN RX

Можете да използвате JST конектор или да запоявате проводниците директно към платката.

Джойстици

В началото джойстиците може да изглеждат обезсърчаващи, но са доста лесни за свързване. Има три оси, които са свързани по същия начин. Двама от тях използват съединителите в долната част на джойстика. Третият използва някои проводници.

  • Земя
  • Чистачка за аналогов вход за чистачки Arduino
  • 5V

Съединителите могат да бъдат прикрепени в този ред. Не се притеснявайте да го върнете назад, чистачката винаги е средната. Ако захранването и земята се разменят, по -късно можем да обърнем оста в кода на Arduino.

Проводниците може да имат различна схема на оцветяване на джойстика, но като цяло: двата проводника с еднакви цветове са за бутона отгоре. Червеното или оранжевото е 5V, черното или кафявото е заземено. Останалият проводник е чистачката.

Стъпка 8: Светодиодни горивни уреди

LED бар горивомери
LED бар горивомери
LED бар горивомери
LED бар горивомери
LED бар горивомери
LED бар горивомери

Добре. Това е най -трудната част от цялата конструкция. Не се колебайте да пропуснете това при първото си изграждане или да го подобрите и да ме уведомите!

Взех тези страхотни LED ленти, които искам да използвам като показатели за гориво. Горният светодиод е син, после малко зелен, после оранжев и накрая червен. Ако можем да запалим един светодиод наведнъж, можем да го оставим да представлява нивото на гориво на нашия космически кораб.

Първоначално поръчах при тях IC драйвери. Те работят чудесно! Можете да изберете режим на точка или режим на лента и той ще показва аналогово входно напрежение като единичен светодиод (точка) или диапазон от светодиоди (лента). Но Arduino не извежда аналогово напрежение! А функцията PWM, която ви позволява да затъмнявате светодиод, като емулиране на аналогово напрежение, не работи с тези интегрални схеми на драйвера.

Към план 2: смени регистрите. Можете да работите с тях във всеки стартов комплект на Arduino. И можете да научите повече за тях тук:

Планът е по някакъв начин да се преобразуват нивата на горивото в правилния низ от битове, които ще представляват нивата на горивото на LED лентите. При 5 габарита за гориво всички нива на заредено гориво трябва да са 1000000000100000000000100000000010000000001000000000. При празен монопропелант той ще стане: 100000000010000000001000000000100000000000000001.

Звучи достатъчно просто. Има някои усложнения. Регистрите за смяна имат 8 пина, докато LED лентите имат 10 светодиода. Използвам 7 регистъра за смяна, за да получа 56 изхода. Когато ги свързвах, пропуснах някъде IC извод (ще го поставим в кода). И свързвам една LED лента, започвайки от другия край (ще поправим това в код). О, и математиката на Arduino, от която се нуждаем, понякога използва аритметика с плаваща запетая, която причинява грешки при закръгляване (ще поправим това в кода). Обърнете внимание, че споделям кода в по -късна стъпка.

Окончателното ми изграждане не съвпада с приложената електрическа схема, така че ако възстановите този контролер, са необходими някои актуализации на кода. Коментирайте по -долу, ако имате нужда от помощ.

Всеки светодиод изисква собствен резистор. Опитайте някои различни стойности, за да съответствате на яркостта. Зеленото изглежда много по -ярко от червеното със същите резистори, така че помага да се балансира това.

Краен резултат: вместо 50 цифрови пина, необходими за захранване на 5 -те светодиодни ленти, това се намалява до 3: часовник, сигнал за заключване и сигнал за данни.

Стъпка 9: Изграждане на корпуса

Изграждане на корпуса
Изграждане на корпуса
Изграждане на корпуса
Изграждане на корпуса
Изграждане на корпуса
Изграждане на корпуса
Изграждане на корпуса
Изграждане на корпуса

Време е да си отмъстя с тези лога!

Преобразувах логото в подходящи векторни рисунки, така че да се гравират отлично. Този път имам различен проблем. Отворите за винтове не са на правилните места за правилното сглобяване на кутията. Използвах 6 мм MDF за кутията. За съжаление, завинтването на пирони в краищата ги кара да се разделят. Хакнах го заедно с допълнителни дървени отпадъци и лепило. Много лепило.

За тези от вас, които са по -добри с дърво, лепило и/или пирони, прикачих версия на дизайна без изцяло отворите за винтове.

Въпреки трудностите, крайният резултат е доста хлъзгав.

Стъпка 10: Софтуер и тестване

Image
Image
Софтуер и тестване
Софтуер и тестване

Изтеглете следния софтуер, за да накарате контролера да работи с Kerbal Space Program:

Приставка за KSP:

ZIP файлът е компилираната приставка. Останалото е изходен код, който можете да използвате, за да промените приставката и да компилирате своя собствена версия. Разопаковайте приставката в директорията GamaData.

Код на Arduino:

Използвайте Arduino IDE, за да качите кода в Arduino Mega във вашия контролер.

Погледнете в долния десен ъгъл на Arduino IDE, за да разберете на кой сериен порт е контролерът (напр. /Dev/cu.usbmodem1421). Отворете файла config.xml от директорията с приставки и се уверете, че вашият порт е попълнен. Сега можете да започнете!

Можете да използвате режима за отстраняване на грешки, като поставите малкия превключвател за включване/изключване горе вляво в положение ON. LCD дисплеят трябва да показва низ от букви. Всяка буква представлява бутон или превключвател и превключва между малки и големи букви, когато натиснете бутона или превключите превключвателя. Задаването на превключвателите xyz в Xyz (включване/изключване/изключване) също ще показва стойностите на плъзгача на газта. xYz показва стойностите на джойстика за джойстика за превод (вляво). xyZ за джойстика за въртене (вдясно).

LCD режими

Следните режими на показване могат да бъдат избрани за показване на LCD дисплея с помощта на превключвателите x, y и z

Режим TakeOff: Suface Velocity / Acceleration (G)

Режим на орбита: Апоапсис + Време до Апоапсис / Периапсис + Време до Периапсис

Режим на маневриране: Време до следващия възел за маневриране / Оставащ Delta-V за следващия възел

Rendezvous Mode: Разстояние до целта / Скорост спрямо целта

Режим на повторно влизане: Процент прегряване (макс) / забавяне (G)

Режим на полет: Надморска височина / номер на Мах

Режим на кацане: Радарна височина / вертикална скорост

Допълнителен режим: не е приложен (все още)

За да видите различните режими в действие, погледнете видеоклипа в края на инструкциите.

Стъпка 11: Към Луната

Image
Image
До Луната!
До Луната!

Запалете KSP, заредете любимия си кораб или изградете нов и тръгвайте!

Съвети:

  • Използвайте персонализирана група действия 5 за вашите стълби
  • Използвайте персонализирана група действия 6 за вашите слънчеви панели
  • Използвайте персонализирана група за действие 7 за парашути или парашути
  • Задайте системата за бягство при стартиране и съответните разединители към групата за прекъсване
  • Не забравяйте, че трябва да активирате бутона за поставяне
Arduino конкурс 2017
Arduino конкурс 2017
Arduino конкурс 2017
Arduino конкурс 2017

Вицешампион в Arduino Contest 2017

Първи авторски конкурс 2018
Първи авторски конкурс 2018
Първи авторски конкурс 2018
Първи авторски конкурс 2018

Вицешампион в първия конкурс за автори 2018

Препоръчано: