Tabla de contenido:

KerbalController: un panel de control personalizado para el programa espacial Kerbal de Rocket Game: 11 pasos (con imágenes)
KerbalController: un panel de control personalizado para el programa espacial Kerbal de Rocket Game: 11 pasos (con imágenes)

Video: KerbalController: un panel de control personalizado para el programa espacial Kerbal de Rocket Game: 11 pasos (con imágenes)

Video: KerbalController: un panel de control personalizado para el programa espacial Kerbal de Rocket Game: 11 pasos (con imágenes)
Video: Kerbal Space Program Controller [Maker Update] 2024, Noviembre
Anonim
KerbalController: un panel de control personalizado para el programa espacial Kerbal de Rocket Game
KerbalController: un panel de control personalizado para el programa espacial Kerbal de Rocket Game

¿Por qué construir un KerbalController?

Bueno, 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 cubierta, presionar el interruptor para armar tu cohete, iniciar la cuenta regresiva y 3.. 2.. 1.. ¡tenemos el despegue!

¿Qué es un KerbalController?

Un KerbalController, también conocido como Panel de control, Simpit (cabina simulada), DSKY (teclado de pantalla) o joystick personalizado, es un dispositivo de entrada personalizado para controlar el popular cohete construir y volar y, con suerte, no explotar. juego Kerbal Space Program combinado con salida opcional del juego, como luces de estado, pantallas de telemetría y / o indicadores de combustible.

Esta construcción específica incluye entradas como 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 a lo largo del camino, como mejor le parezca. Se incluyen:

  • una lista de piezas
  • dibujos de diseño digital listos para el corte por láser
  • Instrucciones de cableado
  • Código Arduino
  • Código para el complemento KSP adjunto
  • Muchas fotos

¿Listos para despegar? ¡Vamos!

Paso 1: las herramientas

Las herramientas
Las herramientas

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

Otras herramientas son un pelacables, un cortador de cables, pinzas y algunos destornilladores pequeños.

Paso 2: Partes y diseño básico

Piezas y diseño básico
Piezas y diseño básico
Piezas y diseño básico
Piezas y diseño básico

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

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

Si desea una construcción más fácil, puede simplemente copiar mi controlador y obtener las piezas que se enumeran en la lista de piezas adjunta.

Paso 3: crea un prototipo (opcional)

Crear un prototipo (opcional)
Crear un prototipo (opcional)
Crear un prototipo (opcional)
Crear un prototipo (opcional)

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

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

Paso 4: Consejos sobre cableado

Consejos sobre cableado
Consejos sobre cableado
Consejos sobre cableado
Consejos sobre cableado
Consejos sobre cableado
Consejos sobre cableado

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

Al conectar todos los componentes electrónicos a la placa frontal final, puede reducir el desorden creando bucles para 5V y tierra. No conecta todos los pines de tierra directamente al Arduino, sino que conecta a tierra en un botón a tierra en el siguiente botón y hace un bucle alrededor. Finalmente, te conectas al Arduino.

Después de crear bucles de alimentación y tierra, todas las conexiones a los pines Arduino permanecen. Recomiendo obtener algunas tiras de clavijas de encabezado y soldar los cables a ellas. Puede usarlos como un conector grande, por lo que aún puede desconectar su Arduino para probar.

La longitud de los cables es un acto de equilibrio entre lo suficientemente corto para mantener el gabinete libre de exceso de enredos de cable (lo que podría evitar que pueda cerrar la caja) y lo suficientemente largo para poder mover las piezas fuera del camino para soldar otras partes adentro, apriete los tornillos y hurgue con su multímetro mientras depura.

Paso 5: obtener el corte láser de la placa frontal

Conseguir el corte láser de la placa frontal
Conseguir el corte láser de la placa frontal
Conseguir el corte láser de la placa frontal
Conseguir el corte láser de la placa frontal
Conseguir el corte láser de la placa frontal
Conseguir el corte láser de la placa frontal

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

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

Me corté con láser la placa frontal en los Países Bajos en Lichtzwaard. Desde entonces han cerrado y las actividades han sido asumidas por Laserbeest, donde hice cortar la caja con láser. Cada tienda puede tener diferentes requisitos para el diseño, así que consulte con su tienda antes de enviar. 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ó. Tenga en cuenta que esto no se fija en los diseños adjuntos.
  • Incluso el texto se basa en vectores. ¡Así que convierte esas letras en curvas!
  • La medida. La medida. La medida. No tomé en cuenta el tamaño requerido para montar los joysticks y tuve que piratearlo. Resultó bien, afortunadamente. Tenga en cuenta que esto se fija en los diseños adjuntos.

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

Paso 6: Conexión de botones e interruptores

Conexión de botones e interruptores
Conexión de botones e interruptores
Conexión de botones e interruptores
Conexión de botones e interruptores
Conexión de botones e interruptores
Conexión de botones e interruptores

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

Interruptor o pulsador simple:

  • Tierra 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á cuando el pin se conecta a tierra y lo tratará como una entrada. El conector NO en el interruptor o botón está normalmente abierto, por lo que el circuito no está conectado. Cuando presiona el botón o cambia 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, conecte cables adicionales:

  • Tierra - (negativo)
  • Pin digital Arduino + (positivo)

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

Interruptores de seguridad con LED:

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

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

Usaremos el pin Arduino en modo INPUT. Cuando el interruptor está encendido, el LED se enciende y el pin de señal sube.

Paso 7: Conexión de los joysticks y la pantalla LCD

Conexión de los joysticks y la pantalla LCD
Conexión de los joysticks y la pantalla LCD
Conexión de los joysticks y la pantalla LCD
Conexión de los joysticks y la pantalla LCD
Conexión de los joysticks y la pantalla LCD
Conexión de los joysticks y la pantalla LCD

LCD

La pantalla LCD es muy sencilla. Solo necesita energía, tierra y serial.

  • VDD de 5 V
  • Tierra GND
  • Arduino Tx PIN RX

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

Joysticks

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

  • Suelo
  • Pin de entrada analógica Wiper Arduino
  • 5V

Los conectores se pueden colocar en este orden. No se preocupe por ponerlo al revés, el limpiaparabrisas siempre es el del medio. Si se intercambian la energía y la tierra, podemos voltear el eje en el código Arduino más tarde.

Los cables pueden tener un esquema de colores diferente en su joystick, pero en general: los dos cables con colores idénticos son para el botón de 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 la barra LED

Medidores de combustible de barra LED
Medidores de combustible de barra LED
Medidores de combustible de barra LED
Medidores de combustible de barra LED
Medidores de combustible de barra LED
Medidores de combustible de barra LED

Bueno. Esta es la parte más difícil de toda la construcción. ¡Siéntete libre de omitir esto en tu primera compilación o mejorarlo y avísame!

Obtuve estas excelentes barras de LED que quiero usar como indicadores de combustible. El LED superior es azul, luego 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é IC de conductor con ellos. ¡Funcionan muy bien! Puede seleccionar el modo de puntos 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 emite un voltaje analógico! Y la función PWM que le permite atenuar un LED emulando un voltaje analógico, no funciona con estos controladores IC.

En el plan 2: registros de cambios. Puedes trabajar con estos en cada kit de inicio de 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 adecuada de bits que representarán los niveles de combustible en las barras LED. Con 5 indicadores de combustible, todos los niveles de combustible llenados tendrían que ser 10000000001000000000100000000010000000001000000000. Con monopropelente vacío, sería: 10000000001000000000100000000010000000000000000001.

Suena bastante simple. Hay algunas complicaciones. Los registros de desplazamiento tienen 8 pines, mientras que las barras LED tienen 10 LED. Utilizo 7 registros de desplazamiento para obtener 56 salidas. Al conectarlos, me salté un pin IC en alguna parte (lo ajustaremos en el código). Y conecto una barra LED comenzando en el otro extremo (lo arreglaremos en el código). Ah, y las matemáticas de 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 coincidía con el diagrama de cableado adjunto, por lo que si reconstruye este controlador, se requieren algunas actualizaciones del código. Comente a continuación si necesita ayuda.

Cada LED requiere su propia resistencia. Pruebe algunos valores diferentes para igualar 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, eso se reduce a 3: una señal de reloj, una señal de pestillo y una señal de datos.

Paso 9: construcción del recinto

Construyendo el recinto
Construyendo el recinto
Construyendo el recinto
Construyendo el recinto
Construyendo el recinto
Construyendo el recinto
Construyendo el recinto
Construyendo el recinto

¡Es hora de vengarme con esos logotipos!

Convertí los logotipos en dibujos vectoriales adecuados para que se graben bien. Esta vez, tengo un problema diferente. Los orificios de los tornillos no están en los lugares correctos para un correcto montaje de la caja. Usé MDF de 6 mm para la caja. Desafortunadamente, atornillar o clavar en los bordes hace que se partan. Lo corté junto con trozos de madera adicionales y pegamento. 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 orificios de los tornillos.

A pesar de las dificultades, el resultado final es bastante hábil.

Paso 10: software y pruebas

Image
Image
Software y pruebas
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 código fuente que puede utilizar para modificar el complemento y compilar su propia versión. Desempaquete el complemento 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 del directorio de complementos y asegúrese de que su puerto esté completo. ¡Ahora está listo para comenzar!

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 presiona el botón o cambia 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 LCD

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

Modo de despegue: velocidad superficial / 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 siguiente nodo

Modo de encuentro: distancia al objetivo / velocidad relativa al objetivo

Modo de reentrada: 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 del instructivo.

Paso 11: ¡A la Luna

Image
Image
¡A la Luna!
¡A la Luna!

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

Consejos:

  • Utilice el grupo de acción personalizado 5 para sus escaleras
  • Utilice el grupo de acción personalizado 6 para sus paneles solares
  • Utilice el grupo de acción personalizado 7 para paracaídas o toboganes
  • Asignar el sistema de escape de lanzamiento y los desacopladores adecuados al grupo de acción Abortar
  • No olvide que necesita armar el botón de puesta en escena
Concurso Arduino 2017
Concurso Arduino 2017
Concurso Arduino 2017
Concurso Arduino 2017

Finalista en el Concurso Arduino 2017

Concurso de autores por primera vez 2018
Concurso de autores por primera vez 2018
Concurso de autores por primera vez 2018
Concurso de autores por primera vez 2018

Finalista en el Concurso de Autor por Primera Vez 2018

Recomendado: