Оглавление:

KerbalController: настраиваемая панель управления для ракетной игры Программа Kerbal Space: 11 шагов (с изображениями)
KerbalController: настраиваемая панель управления для ракетной игры Программа Kerbal Space: 11 шагов (с изображениями)

Видео: KerbalController: настраиваемая панель управления для ракетной игры Программа Kerbal Space: 11 шагов (с изображениями)

Видео: KerbalController: настраиваемая панель управления для ракетной игры Программа Kerbal Space: 11 шагов (с изображениями)
Видео: Полное руководство по MechJeb 2024, Июль
Anonim
KerbalController: настраиваемая панель управления для программы Rocket Game Kerbal Space
KerbalController: настраиваемая панель управления для программы Rocket Game Kerbal Space

Зачем создавать KerbalController?

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

Что такое KerbalController?

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

Эта конкретная сборка включает в себя такие входы, как управление вращением и перемещением с помощью джойстиков, ползунок дроссельной заслонки, множество кнопок со световыми индикаторами, светодиодные указатели уровня топлива и ЖК-дисплей телеметрии с несколькими режимами.

Это руководство будет включать в себя все, что вам нужно для создания идентичной копии или внесения корректировок и улучшений по ходу дела, как вы сочтете нужным. Включены:

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

Готовы к взлету? Пойдем!

Шаг 1. Инструменты

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

Самый важный инструмент, который вам понадобится для этой сборки, - это паяльник. Сюда входит припой, губка для чистки металла для очистки кончика паяльника и «третья рука».

Другие инструменты - это инструмент для зачистки проводов, кусачки, пинцет и несколько небольших отверток.

Шаг 2: Детали и базовая компоновка

Детали и базовая компоновка
Детали и базовая компоновка
Детали и базовая компоновка
Детали и базовая компоновка

Создание лучшего контроллера для вас означает выбор именно тех кнопок и переключателей, которые вы хотите реализовать. Потому что все играют по-разному. Некоторые люди летают на самолетах и строят SSTO (одноступенчатые системы вывода на орбиту). Другие предпочитают марсоходы космических станций. А некоторым просто хочется, чтобы вещи эффектно взорвались!

Это помогает нарисовать все части примерно до их размера и перетащить их в программу векторного рисования (например, Affinity Designer или Inkscape) или программу для трехмерного рисования (например, SketchUp).

Если вам нужна более простая сборка, вы можете просто скопировать мой контроллер и получить детали, перечисленные в прилагаемом списке деталей.

Шаг 3. Создайте прототип (необязательно)

Создать прототип (необязательно)
Создать прототип (необязательно)
Создать прототип (необязательно)
Создать прототип (необязательно)

Если вы копируете мой контроллер, вы можете пропустить этот шаг.

Если вы собираетесь использовать нестандартный макет, я рекомендую сначала использовать коробку из-под обуви, чтобы создать рабочий прототип с основными элементами управления. Это действительно помогает точно настроить положение основных элементов управления. Также приятно получить уверенность в том, что вы сможете заставить его работать, прежде чем продолжать вкладывать время и деньги в окончательную сборку. На самом деле я довольно долго играл в игру с контроллером коробки из-под обуви. Разве это не способ Кербала использовать восстановленные части, чтобы что-то вместе взломать?

Шаг 4: Советы по подключению

Советы по подключению
Советы по подключению
Советы по подключению
Советы по подключению
Советы по подключению
Советы по подключению

При создании прототипа не припаивайте все свои кнопки, если только вы не хотите распаять их, когда дойдете до окончательного корпуса. Я припаял несколько проводов к кнопкам и использовал макетную плату без пайки для временных подключений к Arduino.

При подключении всей электроники к окончательной лицевой панели вы можете уменьшить беспорядок, создав петли для 5 В и заземления. Вы не подключаете все контакты заземления напрямую к Arduino, а скорее соединяете заземление на одной кнопке с землей на следующей кнопке и зацикливаете все вокруг. Наконец, вы подключаетесь к Arduino.

После создания петель для питания и заземления все соединения с выводами Arduino остаются. Я рекомендую достать полоски контактов разъема и припаять к ним провода. Вы можете использовать их как большой разъем, так что вы все равно можете отключить Arduino для тестирования.

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

Шаг 5: Получение лазерной резки лицевой панели

Получение лазерной резки лицевой панели
Получение лазерной резки лицевой панели
Получение лазерной резки лицевой панели
Получение лазерной резки лицевой панели
Получение лазерной резки лицевой панели
Получение лазерной резки лицевой панели

При ручной резке и покраске очень сложно добиться чистого профессионального вида. К счастью, лазерная резка перестала быть очень дорогой. Он обеспечивает высочайшую точность, если ваш дизайн точен.

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

Я делал лазерную резку лицевой панели в Нидерландах, в Лихтцварде. С тех пор они закрылись, и деятельность перешла к Laserbeest, где я вырезал коробку лазером. В каждом магазине могут быть разные требования к дизайну, поэтому перед отправкой посоветуйтесь со своим магазином. Они также почти всегда предлагают помощь по дизайну с почасовой оплатой.

Важно помнить:

  • Все должно быть векторным. Вот почему логотип на моем дизайне лицевой панели не выгравирован. Обратите внимание, что это не исправлено в прилагаемых рисунках.
  • Даже текст может быть векторным. Так что превратите эти буквы в кривые!
  • Мера. Мера. Мера. Я не учел размер, необходимый для установки джойстиков, и пришлось его взламывать. К счастью, все обошлось. Обратите внимание, это зафиксировано в прилагаемых рисунках.

После тщательной проверки отправьте в цех лазерной резки. Будьте готовы заплатить 40-50 евро в Нидерландах и на следующий день получите прекрасный результат по почте!

Шаг 6: подключение кнопок и переключателей

Подключение кнопок и переключателей
Подключение кнопок и переключателей
Подключение кнопок и переключателей
Подключение кнопок и переключателей
Подключение кнопок и переключателей
Подключение кнопок и переключателей

Большинство переключателей и кнопок имеют разъемы с маркировкой C, NO, NC, +, -. Вот как их подключить к Arduino.

Простой переключатель или кнопка:

  • Земля C (общий)
  • Цифровой контакт Arduino NO (нормально открытый)

Мы настроим цифровой вывод как INPUT_PULLUP, что означает, что Arduino будет держать вывод на уровне 5 В и определять, когда вывод заземляется, и рассматривать это как ввод. Разъем NO на переключателе или кнопке нормально разомкнут, поэтому цепь не подключена. Когда вы нажимаете кнопку или переключаете переключатель, цепь замыкается, и штифт заземляется.

Кнопка со светодиодом:

Кнопочная часть такая же, как и выше. Для светодиода присоединяете дополнительные провода:

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

Эта часть довольно проста. Мы будем использовать вывод Arduino в обычном режиме ВЫХОДА.

Выключатели безопасности со светодиодами:

Они немного отличаются и не позволяют управлять светодиодом независимо от положения переключателя. Светодиод всегда загорается только при включении переключателя. У них есть +, - и сигнальный разъем.

  • Земля - (отрицательный)
  • 5 В + (положительный)
  • Цифровой вывод S Arduino (сигнал)

Мы будем использовать вывод Arduino в режиме INPUT. Когда переключатель включен, загорается светодиод, и на сигнальном контакте устанавливается высокий уровень.

Шаг 7: Подключение джойстиков и ЖК-дисплея

Подключение джойстиков и ЖК-дисплея
Подключение джойстиков и ЖК-дисплея
Подключение джойстиков и ЖК-дисплея
Подключение джойстиков и ЖК-дисплея
Подключение джойстиков и ЖК-дисплея
Подключение джойстиков и ЖК-дисплея

ЖК-дисплей

ЖК-дисплей очень простой. Ему просто нужно питание, заземление и последовательный порт.

  • 5В VDD
  • Земля GND
  • ПИН-код Arduino Tx RX

Вы можете использовать разъем JST или припаять провода напрямую к плате.

Джойстики

Поначалу джойстики могут показаться устрашающими, но их довольно легко подключить. Точно так же подключены три оси. Двое из них используют разъемы в нижней части джойстика. Третий использует несколько проводов.

  • Земля
  • Аналоговый вход Wiper Arduino

Разъемы можно подключать в таком порядке. Не беспокойтесь о том, что он перевернется, дворник всегда средний. Если поменять местами питание и землю, мы можем позже перевернуть ось в коде Arduino.

На вашем джойстике провода могут иметь другую цветовую схему, но в целом: два провода с одинаковыми цветами предназначены для кнопки сверху. Красный или оранжевый - 5 В, черный или коричневый - заземление. Остающийся провод - дворник.

Шаг 8: указатели уровня топлива со светодиодной полосой

Светодиодные индикаторы уровня топлива
Светодиодные индикаторы уровня топлива
Светодиодные индикаторы уровня топлива
Светодиодные индикаторы уровня топлива
Светодиодные индикаторы уровня топлива
Светодиодные индикаторы уровня топлива

Хорошо. Это самая сложная часть всей сборки. Не стесняйтесь пропустить это в своей первой сборке или улучшить и сообщить мне!

У меня есть отличные светодиодные полосы, которые я хочу использовать в качестве указателей уровня топлива. Верхний светодиод горит синим, затем зеленым, затем оранжевым и, наконец, красным. Если мы можем зажигать по одному светодиоду за раз, мы можем позволить ему отображать уровень топлива в нашем космическом корабле.

Я изначально заказал драйверные ИС с ними. Они отлично работают! Вы можете выбрать точечный или линейный режим, и аналоговое входное напряжение будет отображаться в виде одного светодиода (точка) или ряда светодиодов (полоса). Но Arduino не выводит аналоговое напряжение! А функция PWM, которая позволяет уменьшить яркость светодиода путем имитации аналогового напряжения, не работает с этими микросхемами драйверов.

По плану 2: регистры сдвига. Вы можете работать с ними в каждом стартовом наборе Arduino. И вы можете узнать о них больше здесь:

План состоит в том, чтобы каким-то образом преобразовать уровни топлива в правильную строку битов, которые будут отображать уровни топлива на светодиодных полосах. С 5 указателями уровня топлива все уровни заправки должны быть 10000000001000000000100000000010000000001000000000. При пустом монотопливе это будет: 10000000001000000000100000000010000000000000000001.

Звучит достаточно просто. Есть некоторые сложности. Регистры сдвига имеют 8 контактов, а светодиодные полосы - 10 светодиодов. Я использую 7 регистров сдвига, чтобы получить 56 выходов. При их подключении я где-то пропустил вывод IC (мы впишем это в код). И я подключаю одну светодиодную панель к другому концу (мы исправим это в коде). Да и математика Arduino, которая нам нужна, иногда использует арифметику с плавающей запятой, что вызывает ошибки округления (мы исправим это в коде). Обратите внимание, что я передаю код на более позднем этапе.

Моя окончательная сборка не соответствовала прилагаемой схеме подключения, поэтому, если вы перестроите этот контроллер, в код потребуются некоторые обновления. Прокомментируйте ниже, если вам нужна помощь.

Для каждого светодиода требуется собственный резистор. Попробуйте разные значения для соответствия яркости. Зеленый цвет выглядит намного ярче красного при тех же резисторах, поэтому это помогает уравновесить это.

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

Шаг 9: Сборка корпуса

Строительство корпуса
Строительство корпуса
Строительство корпуса
Строительство корпуса
Строительство корпуса
Строительство корпуса
Строительство корпуса
Строительство корпуса

Пора отомстить за эти логотипы!

Я преобразовал логотип в правильные векторные рисунки, чтобы они были хорошо выгравированы. На этот раз у меня другая проблема. Отверстия под винты находятся не в нужных местах для правильной сборки коробки. Для коробки я использовал МДФ толщиной 6 мм. К сожалению, ввинчивание гвоздей в края приводит к их расколу. Я срубил его вместе с дополнительными обрезками дерева и клеем. Много клея.

Для тех из вас, кто лучше разбирается в дереве, клее и / или гвоздях, я прикрепил вариант дизайна без отверстий для шурупов.

Несмотря на трудности, конечный результат получился отличным.

Шаг 10: Программное обеспечение и тестирование

Image
Image
Программное обеспечение и тестирование
Программное обеспечение и тестирование

Загрузите следующее программное обеспечение, чтобы контроллер работал с Kerbal Space Program:

Плагин KSP:

ZIP-файл - это скомпилированный плагин. Остальное - это исходный код, который вы можете использовать для изменения плагина и компиляции собственной версии. Распакуйте плагин в каталог GamaData.

Код Arduino:

Используйте Arduino IDE, чтобы загрузить код на Arduino Mega в вашем контроллере.

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

Вы можете использовать режим отладки, установив небольшой переключатель включения / выключения в верхнем левом углу в положение ON. На ЖК-дисплее должна отображаться строка букв. Каждая буква представляет кнопку или переключатель и переключается между нижним и верхним регистром при нажатии кнопки или переключении переключателя. Установка переключателей xyz в положение Xyz (вкл. / Выкл. / Выкл.) Также отобразит значения ползунка газа. xYz отображает значения джойстика перемещения (слева). xyZ для джойстика вращения (правый).

ЖК-режимы

Следующие режимы отображения можно выбрать для отображения на ЖК-дисплее с помощью переключателей x, y и z

TakeOff Mode: скорость / ускорение поверхности (G)

Режим орбиты: апоапсис + время до апоапсиса / периапсиса + время до периапсиса

Режим маневра: время до следующего узла маневра / оставшаяся дельта-V для следующего узла

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

Режим повторного входа: процент перегрева (макс.) / Замедление (G)

Режим полета: высота / число Маха

Режим посадки: высота радара / вертикальная скорость

Дополнительный режим: не реализован (пока)

Чтобы увидеть различные режимы в действии, посмотрите видео в конце инструкции.

Шаг 11: На Луну

Image
Image
На Луну!
На Луну!

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

Подсказки:

  • Используйте настраиваемую группу действий 5 для своих лестниц
  • Используйте настраиваемую группу действий 6 для ваших солнечных панелей
  • Использовать группу настраиваемых действий 7 для парашютов или тормозных парашютов
  • Назначьте систему аварийного выхода и соответствующие разъединители группе действий Прервать
  • Не забывайте, что вам нужно активировать кнопку постановки
Конкурс Arduino 2017
Конкурс Arduino 2017
Конкурс Arduino 2017
Конкурс Arduino 2017

Финалист конкурса Arduino Contest 2017

Конкурс впервые авторов 2018
Конкурс впервые авторов 2018
Конкурс впервые авторов 2018
Конкурс впервые авторов 2018

Финалист Первого авторского конкурса 2018 г.

Рекомендуемые: