KerbalController: un panel de control personalizado para el programa Kerbal Space del juego Rocket: 11 pasos (con fotos)

KerbalController: un panel de control personalizado para el programa Kerbal Space del juego Rocket: 11 pasos (con fotos)

Tabla de contenido:

Anonim

¿Por qué construir un controlador Kerbal?

Bien, porque presionar botones y lanzar interruptores físicos se siente mucho más sustancial que hacer clic con el mouse. Especialmente cuando se trata de un gran interruptor de seguridad rojo, donde primero tienes que abrir la tapa, presiona el interruptor para armar tu cohete, comienza la cuenta regresiva y 3.. 2.. 1.. ¡tenemos un despegue!

¿Qué es un controlador Kerbal?

Un KerbalController, también conocido como Panel de control, Simpit (cabina de mando simulado), DSKY (teclado de pantalla) o joystick personalizado, es un dispositivo de entrada personalizado para controlar el popular cohete que construye y vuela y que, con suerte, no explota El programa Kerbal Space Program del juego se combinó con una salida opcional del juego, como luces de estado, pantallas de telemetría y / o indicadores de combustible.

Esta compilación específica incluye entradas como los controles de rotación y traslación a través de joysticks, un control deslizante del acelerador, un montón de botones con luces de estado, indicadores de combustible LED y una pantalla LCD de telemetría con múltiples modos.

Esta guía incluirá todo lo que necesita para crear una copia idéntica o realizar ajustes y mejoras en el camino, según lo considere conveniente. Incluido son:

  • una lista de partes
  • Dibujos de diseño digital listos para el corte por láser.
  • Instrucciones de cableado
  • Código arduino
  • Código para el complemento KSP que lo acompaña
  • Muchas fotos

¿Listos para despegar? ¡Vamonos!

Suministros:

Paso 1: Las herramientas

La herramienta más importante que necesita tener para esta construcción es un soldador. Eso incluye algo de soldadura, una esponja de limpieza de metal para limpiar la punta del soldador y una "tercera mano".

Otras herramientas son un pelador de cables, un cortador de alambre, pinzas y algunos destornilladores de tamaño pequeño.

Paso 2: Partes y diseño básico

Haciendo el mejor controlador posible para tú significa seleccionar exactamente qué botones e interruptores desea implementar. Porque todo el mundo juega el juego de manera diferente. Algunas personas vuelan aviones y construyen SSTO's (de etapa única a órbita). Otros prefieren rovers de estaciones espaciales. ¡Y algunos solo quieren que las cosas exploten espectacularmente!

Es útil dibujar todas las partes en su tamaño aproximado y arrastrarlas a un programa de dibujo vectorial (como Affinity Designer o Inkscape) o un programa de dibujo en 3D (como SketchUp).

Si desea una compilación más fácil, solo puede copiar mi controlador y obtener las partes enumeradas en el adjunto lista de partes.

Paso 3: Crear un prototipo (opcional)

Si está copiando mi controlador, puede omitir este paso.

Si va a buscar un diseño personalizado, le recomiendo que use una caja de zapatos primero para crear un prototipo funcional con los controles principales. Realmente ayuda a afinar la posición de los controles principales. También es bueno tener la confianza de que puede funcionar antes de seguir invirtiendo tiempo y dinero en la construcción final. De hecho, jugué el juego durante bastante tiempo con mi controlador de caja de zapatos. ¿No es la forma Kerbal de usar partes rescatadas para hackear algo juntos?

Paso 4: Consejos sobre cableado

Al crear un prototipo, no suelde todos sus botones a menos que quiera desoldarlos cuando llegue al gabinete final. Soldé algunos cables a los botones y usé una placa de pruebas sin soldadura para hacer las conexiones temporales con el Arduino.

Cuando conecte todos los componentes electrónicos a la placa frontal final, puede reducir el desorden al crear bucles para 5 V y tierra. No conectas todas las clavijas de tierra directamente al Arduino, sino que conectas la tierra en un botón a tierra en el siguiente botón y giras alrededor. Finalmente, te conectas al Arduino.

Después de crear bucles para la alimentación y la conexión a tierra, todas las conexiones a los pines Arduino permanecen. Recomiendo obtener algunas tiras de pines de cabecera y soldar los cables a esos. Puede usarlos como un conector grande, por lo que aún puede desenchufar su Arduino para realizar pruebas.

La longitud de los cables es un acto de equilibrio entre lo suficientemente corto como para mantener el envolvente libre de enredos de cable (lo que podría impedirle poder cerrar la caja) y el tiempo suficiente para poder mover partes fuera del camino para soldar En otras partes, apriete los tornillos y golpee con su multímetro mientras realiza la depuración.

Paso 5: Obtención de la placa frontal Lasercut

Lograr un aspecto profesional y limpio es muy difícil cuando se corta y se pinta a mano. Por suerte, el corte por láser ya no es muy caro. Permite una precisión extrema, siempre que su diseño sea preciso.

Se adjunta el diseño de mi placa frontal, en formatos adecuados para Affinity Designer y otros programas de dibujo vectorial como el InkScape gratuito.

Tuve la placa frontal en Holanda en Lichtzwaard. Desde entonces, se han cerrado y las actividades han sido asumidas por Laserbeest, donde me cortaron la caja con láser. Cada tienda puede tener diferentes requisitos para el diseño, así que consulte con su tienda antes de enviarla. También casi siempre ofrecen ayuda de diseño a una tarifa por hora.

Cosas importantes a tener en cuenta:

  • Todo debe estar basado en vectores. Es por eso que el logotipo en el diseño de mi placa frontal no se grabó. Nota esto es no Fijado en los diseños adjuntos.
  • Incluso el texto ha sido basado en vectores. ¡Así que convierte esas letras en curvas!
  • Medida. Medida. Medida. No pude tener en cuenta el tamaño requerido para montar los joysticks y tuve que hackearlo. Resultó bien, por suerte. Nota esto es Fija en los diseños adjuntos.

Después de revisar todo a fondo, envíelo a la tienda de corte por láser. ¡Espere pagar de 40 a 50 euros en los Países Bajos y reciba este hermoso resultado por correo al día siguiente!

Paso 6: Conectar botones e interruptores

La mayoría de los interruptores y botones tienen los conectores etiquetados C, NO, NC, +, -. He aquí cómo conectarlos al Arduino.

Interruptor simple o pulsador:

  • Terreno -> C (común)
  • Pin digital Arduino -> NO (normalmente abierto)

Configuraremos el pin digital como INPUT_PULLUP, lo que significa que Arduino mantendrá el pin a 5V y detectará cuándo el pin se conecta a tierra y tratará eso como una entrada. El conector NO en el interruptor o botón normalmente está abierto, por lo que el circuito no está conectado. Cuando se presiona el botón o se alterna el interruptor, el circuito se cierra y el pin se conecta a tierra.

Pulsador con led:

La parte del botón es la misma que la anterior. Para el LED, se conectan cables adicionales:

  • Terreno -> - (negativo)
  • Pin digital Arduino -> + (positivo)

Esta parte es bastante sencilla. Usaremos el pin Arduino en el modo de SALIDA normal.

Interruptores de seguridad con LED:

Estos son un poco diferentes y no permiten el control sobre el LED independientemente de la posición del interruptor. El LED siempre se iluminará solo cuando se encienda el interruptor. Tienen un +, - y conector de señal.

  • Terreno -> - (negativo)
  • 5V -> + (positivo)
  • Pin digital Arduino -> S (señal)

Usaremos el pin Arduino en modo ENTRADA. Cuando se enciende el interruptor, el LED se ilumina y el pin de señal se eleva.

Paso 7: Conectar Joysticks y la pantalla LCD

LCD

La pantalla LCD es muy simple. Solo necesita potencia, tierra y serial.

  • 5V -> VDD
  • Terreno -> GND
  • Arduino Tx PIN -> RX

Puede usar un conector JST o soldar los cables a la placa directamente.

Joysticks

Los joysticks pueden parecer desalentadores al principio, pero son muy fáciles de conectar. Hay tres ejes que están conectados de la misma manera. Dos de ellos están usando los conectores en la parte inferior del joystick. El tercero utiliza algunos cables.

  • Suelo
  • Limpiaparabrisas -> Arduino pin de entrada analógica
  • 5V

Los conectores se pueden unir en este orden. No te preocupes por hacerlo al revés, el limpiador siempre es el medio. Si se intercambian la potencia y la tierra, podemos cambiar el eje en el código Arduino más adelante.

Los cables pueden tener un esquema de color diferente en su joystick, pero en general: los dos cables con colores idénticos son para el botón en la parte superior. Rojo o naranja es 5V, Negro o marrón es tierra. El cable restante es el limpiaparabrisas.

Paso 8: Indicadores de combustible de barra LED

Bueno. Esta es la parte más difícil de toda la construcción. Siéntase libre de omitir esto en su primera versión, o mejorarlo y hágamelo saber!

Tengo estas grandes barras de LED que quiero usar como medidores de combustible. El LED superior es azul, luego algo verde, luego naranja y finalmente rojo. Si podemos encender un LED a la vez, podemos dejar que represente el nivel de combustible en nuestra nave espacial.

Inicialmente ordené un controlador de IC con ellos. ¡Funcionan muy bien! Puede seleccionar el modo de punto o el modo de barra y mostrará un voltaje de entrada analógica como un solo LED (punto) o un rango de LED (barra). ¡Pero un Arduino no genera una tensión analógica! Y la función PWM que le permite atenuar un LED al emular una tensión analógica, no funciona con estos controladores de circuitos integrados.

En el plan 2: registros de desplazamiento. Puedes trabajar con estos en cada kit de inicio Arduino. Y puede obtener más información sobre ellos aquí:

El plan es convertir de alguna manera los niveles de combustible en la cadena de bits adecuada que representará los niveles de combustible en las barras LED. Con 5 medidores de combustible, todos los niveles de combustible llenados deberían ser 1000000000100000000010000000001000000000100000000000. Con el monopropelente vacío, se convertiría en: 100000000010000000000000000000000000000000000000001.

Suena bastante simple. Hay algunas complicaciones. Los registros de desplazamiento tienen 8 pines, mientras que las barras de LED tienen 10 LED. Yo uso 7 registros de cambio para obtener 56 salidas. Al cablearlos, me salté un pin IC en algún lugar (lo ajustaremos en el código). Y cableando una barra de LED comenzando en el otro extremo (lo arreglaremos en el código). Ah, y las matemáticas Arduino que necesitamos a veces usan aritmética de punto flotante que causa errores de redondeo (lo arreglaremos en el código). Tenga en cuenta que comparto el código en un paso posterior.

Mi compilación final no coincide con el diagrama de cableado adjunto, por lo que si reconstruye este controlador, se requieren algunas actualizaciones para el código. Comenta abajo si necesitas ayuda.

Cada LED requiere su propia resistencia. Pruebe algunos valores diferentes para que coincida con el brillo. El verde parece mucho más brillante que el rojo con las mismas resistencias, por lo que ayuda a equilibrarlo.

Resultado final: en lugar de 50 pines digitales necesarios para alimentar las 5 barras LED, que se reducen a 3: una señal de reloj, una señal de enclavamiento y una señal de datos.

Paso 9: Construyendo el recinto

¡Es hora de vengarme con esos logos!

Convertí el logotipo en dibujos vectoriales adecuados para que queden grabados. Esta vez, tengo un problema diferente. Los orificios de los tornillos no están en los lugares correctos para el montaje correcto de la caja. Usé MDF de 6 mm para la caja. Desafortunadamente, el atornillado de clavar en los bordes hace que se partan. Lo hackeé junto con restos de madera y pegamento adicionales. Mucho pegamento.

Para aquellos de ustedes que son mejores con madera, pegamento y / o clavos, he adjuntado una versión de los diseños sin los agujeros de los tornillos por completo.

A pesar de las dificultades, el resultado final es bastante resbaladizo.

Paso 10: Software y Pruebas

Descargue el siguiente software para que el controlador funcione con Kerbal Space Program:

Complemento KSP:

El archivo ZIP es el complemento compilado. El resto es el código fuente que puede usar para modificar el complemento y compilar su propia versión. Desempaquetar el plugin en el directorio GamaData.

Código Arduino:

Utilice el IDE de Arduino para cargar el código en el Arduino Mega en su controlador.

Mire la parte inferior derecha del IDE de Arduino para averiguar en qué puerto serie está el controlador (por ejemplo, /dev/cu.usbmodem1421). Abra el archivo config.xml desde el directorio del complemento y asegúrese de que su puerto esté completo. ¡Ya está listo!

Puede usar el modo de depuración colocando el pequeño interruptor de encendido / apagado en la parte superior izquierda en la posición de ENCENDIDO. La pantalla LCD debe mostrar una cadena de letras. Cada letra representa un botón o interruptor y cambia entre mayúsculas y minúsculas cuando se presiona el botón o se alterna el interruptor. Al configurar los interruptores xyz en Xyz (encendido / apagado / apagado) también se mostrarán los valores del control deslizante del acelerador. xYz muestra los valores del joystick para el joystick de Traducción (izquierda). xyZ para el joystick de rotación (derecha).

Modos de pantalla LCD

Los siguientes modos de visualización se pueden seleccionar para mostrar en la pantalla LCD usando los interruptores x, y, z.

Modo TakeOff: velocidad de aceleración / aceleración (G)

Modo órbita: Apoapsis + Tiempo hasta Apoapsis / Periapsis + Tiempo hasta Periapsis

Modo de maniobra: Tiempo hasta el siguiente nodo de maniobra / Delta-V restante para el próximo nodo

Modo de encuentro: Distancia al objetivo / Velocidad relativa al objetivo

Modo de reingreso: porcentaje de sobrecalentamiento (máx.) / Desaceleración (G)

Modo de vuelo: Altitud / número de Mach

Modo de aterrizaje: altitud de radar / velocidad vertical

Modo Extra: no implementado (todavía)

Para ver los diferentes modos en acción, mire el video al final de la instrucción.

Paso 11: ¡A la luna!

¡Encienda KSP, cargue su embarcación favorita o construya una nueva y listo!

Consejos:

  • Usa el grupo de acción personalizado 5 para tus escaleras.
  • Usa el grupo de acción personalizado 6 para tus paneles solares.
  • Utilice el grupo de acción personalizado 7 para paracaídas o tolvas drogue
  • Asigne el sistema de escape de lanzamiento y los desacopladores apropiados al grupo de acción Abortar
  • No olvides que necesitas armar el botón de puesta en escena.

Runner Up en el

Concurso Arduino 2017

Runner Up en el

Concurso de autores por primera vez 2018