Índice:

KerbalController: um painel de controle personalizado para o jogo de foguetes Kerbal Space Program: 11 etapas (com imagens)
KerbalController: um painel de controle personalizado para o jogo de foguetes Kerbal Space Program: 11 etapas (com imagens)

Vídeo: KerbalController: um painel de controle personalizado para o jogo de foguetes Kerbal Space Program: 11 etapas (com imagens)

Vídeo: KerbalController: um painel de controle personalizado para o jogo de foguetes Kerbal Space Program: 11 etapas (com imagens)
Vídeo: Создание и вывод на орбиту гигантского ракетного корабля — НОВАЯ космическая программа Кербала — игровой процесс SimpleRockets 2 2024, Julho
Anonim
KerbalController: um painel de controle personalizado para o Rocket Game Kerbal Space Program
KerbalController: um painel de controle personalizado para o Rocket Game Kerbal Space Program

Por que construir um KerbalController?

Bem, porque apertar botões e lançar interruptores físicos parece muito mais substancial do que clicar com o mouse. Especialmente quando é um grande interruptor de segurança vermelho, onde você tem que abrir a tampa primeiro, apertar o interruptor para armar seu foguete, iniciar a contagem regressiva e 3.. 2.. 1.. nós temos a decolagem!

O que é um KerbalController?

Um KerbalController, também conhecido como Painel de Controle, Simpit (cockpit simulado), DSKY (teclado de exibição) ou joystick personalizado, é um dispositivo de entrada personalizado para controlar o popular foguete-construção-e-vôo-e-esperançosamente-não-explodir jogo Kerbal Space Program combinado com saída opcional do jogo, como luzes de status, telas de telemetria e / ou medidores de combustível.

Esta construção específica inclui entradas como controles de rotação e translação por meio de joysticks, um controle deslizante do acelerador, muitos botões com luzes de status, medidores de combustível LED e um display LCD de telemetria com vários modos.

Este guia incluirá tudo que você precisa para construir uma cópia idêntica ou fazer ajustes e melhorias ao longo do caminho, como você achar necessário. Incluem-se:

  • uma lista de peças
  • desenhos de design digital prontos para corte a laser
  • Instruções de ligação
  • Código Arduino
  • Código para o plugin KSP que o acompanha
  • Muitas fotos

Pronto para decolagem? Vamos lá!

Etapa 1: as ferramentas

As ferramentas
As ferramentas

A ferramenta mais importante que você precisa para esta construção é um ferro de solda. Isso inclui um pouco de solda, uma esponja de limpeza de metal para limpar a ponta do ferro de solda e uma "terceira mão".

Outras ferramentas são um descascador de fios, um cortador de fios, uma pinça e algumas chaves de fenda de tamanho pequeno.

Etapa 2: Peças e Layout Básico

Peças e layout básico
Peças e layout básico
Peças e layout básico
Peças e layout básico

Tornar o melhor controlador possível para você significa selecionar exatamente quais botões e interruptores você deseja implementar. Porque todo mundo joga de forma diferente. Algumas pessoas pilotam aviões e constroem SSTO's (estágio único para órbita). Outros preferem rovers de estações espaciais. E alguns só querem que as coisas explodam de maneira espetacular!

Isso ajuda a desenhar todas as peças em seu tamanho aproximado e arrastá-las em um programa de desenho vetorial (como Affinity Designer ou Inkscape) ou programa de desenho 3D (como SketchUp).

Se você quiser uma construção mais fácil, pode apenas copiar meu controlador e obter as peças listadas na lista de peças em anexo.

Etapa 3: Crie um protótipo (opcional)

Crie um protótipo (opcional)
Crie um protótipo (opcional)
Crie um protótipo (opcional)
Crie um protótipo (opcional)

Se você estiver copiando meu controlador, pode pular esta etapa.

Se você está indo para um layout personalizado, eu recomendo usar uma caixa de sapatos primeiro para criar um protótipo funcional com os controles principais. Realmente ajuda a ajustar a posição dos controles principais. Também é bom ter a confiança de que pode fazê-lo funcionar antes de continuar a investir tempo e dinheiro na construção final. Na verdade, eu joguei o jogo por um bom tempo com meu controlador de caixa de sapato. Não é a maneira Kerbal de usar partes recuperadas para hackear algo juntos?

Etapa 4: dicas sobre fiação

Dicas sobre fiação
Dicas sobre fiação
Dicas sobre fiação
Dicas sobre fiação
Dicas sobre fiação
Dicas sobre fiação

Ao criar um protótipo, não solde todos os seus botões, a menos que queira dessoldá-los quando chegar ao gabinete final. Soldei alguns fios aos botões e usei uma placa de ensaio sem solda para fazer as conexões temporárias com o Arduino.

Ao conectar todos os componentes eletrônicos ao painel frontal final, você pode reduzir a desordem criando loops para 5 V e aterramento. Você não conecta todos os pinos de aterramento diretamente ao Arduino, mas sim conecta o aterramento em um botão ao aterramento no botão seguinte e faz um loop ao redor. Finalmente, você se conecta ao Arduino.

Depois de criar loops para alimentação e aterramento, todas as conexões com os pinos do Arduino permanecem. Eu recomendo pegar algumas tiras de pinos de cabeçalho e soldar os fios a eles. Você pode usá-los como um grande conector, para que ainda possa desconectar o Arduino para testes.

O comprimento dos fios é um ato de equilíbrio entre curto o suficiente para manter o invólucro livre de emaranhados excessivos de fio (o que pode impedir que você seja capaz de fechar a caixa) e longo o suficiente para ser capaz de mover as peças para fora do caminho da solda outras partes, aperte os parafusos e mexa no multímetro durante a depuração.

Etapa 5: Obtendo o Lasercut do painel frontal

Obtendo o Lasercut do Faceplate
Obtendo o Lasercut do Faceplate
Obtendo o Lasercut do Faceplate
Obtendo o Lasercut do Faceplate
Obtendo o Lasercut do Faceplate
Obtendo o Lasercut do Faceplate

É muito difícil conseguir uma aparência limpa e profissional ao serrar e pintar à mão. Felizmente, o corte a laser não é mais muito caro. Permite extrema precisão, contanto que seu design seja preciso.

Em anexo está o design do meu painel frontal, em formatos apropriados para Affinity Designer e outros programas de desenho vetorial, como o InkScape gratuito.

Eu fiz o lasercut do painel frontal na Holanda em Lichtzwaard. Desde então, eles fecharam e as atividades foram assumidas pela Laserbeest, onde eu cortei a caixa a laser. Cada loja pode ter requisitos diferentes para o design, portanto, verifique com sua loja antes de enviar. Eles também quase sempre oferecem ajuda de design por hora.

Coisas importantes para ter em mente:

  • Tudo deve ser baseado em vetores. É por isso que o logotipo no design do meu painel frontal não foi gravado. Observe que isso não é corrigido nos designs anexados.
  • Mesmo o texto deve ser baseado em vetores. Portanto, converta essas letras em curvas!
  • Medir. Medir. Medir. Não levei em consideração o tamanho necessário para montar os joysticks e tive que hackear. Acabou bem, felizmente. Observe que isso é corrigido nos designs anexados.

Depois de verificar tudo cuidadosamente, envie-o para a oficina de corte a laser. Espere pagar 40-50 euros na Holanda e receba este lindo resultado pelo correio no dia seguinte!

Etapa 6: conectando botões e interruptores

Botões e interruptores de conexão
Botões e interruptores de conexão
Botões e interruptores de conexão
Botões e interruptores de conexão
Botões e interruptores de conexão
Botões e interruptores de conexão

A maioria dos interruptores e botões têm os conectores identificados como C, NO, NC, +, -. Veja como conectá-los ao Arduino.

Interruptor ou botão simples:

  • Ground C (comum)
  • Pino digital do Arduino NÃO (normalmente aberto)

Vamos configurar o pino digital como INPUT_PULLUP, o que significa que o Arduino manterá o pino em 5 V e detectará quando o pino for aterrado e tratará isso como uma entrada. O conector NO na chave ou botão está normalmente aberto, então o circuito não está conectado. Quando você pressiona o botão ou alterna a chave, o circuito é fechado e o pino é aterrado.

Botão de pressão com LED:

A parte do botão é igual à anterior. Para o LED, você conecta fios adicionais:

  • Ground - (negativo)
  • Pin digital do Arduino + (positivo)

Esta parte é bastante direta. Usaremos o pino do Arduino no modo OUTPUT normal.

Chaves de segurança com LED:

Eles são um pouco diferentes e não permitem o controle do LED independente da posição da chave. O LED sempre acenderá apenas quando a chave for ligada. Eles têm um +, - e um conector de sinal.

  • Ground - (negativo)
  • 5V + (positivo)
  • Pino digital S do Arduino (sinal)

Usaremos o pino do Arduino no modo INPUT. Quando a chave é ativada, o LED acende e o pino de sinal fica alto.

Etapa 7: conectando joysticks e LCD

Conectando Joysticks e o LCD
Conectando Joysticks e o LCD
Conectando Joysticks e o LCD
Conectando Joysticks e o LCD
Conectando Joysticks e o LCD
Conectando Joysticks e o LCD

LCD

O LCD é muito simples. Ele só precisa de energia, aterramento e serial.

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

Você pode usar um conector JST ou soldar os fios na placa diretamente.

Joysticks

Os joysticks podem parecer assustadores no início, mas são muito fáceis de conectar. Existem três eixos que estão conectados da mesma maneira. Dois deles estão usando os conectores na parte inferior do joystick. O terceiro usa alguns fios.

  • Chão
  • Pino de entrada analógica Wiper Arduino
  • 5V

Os conectores podem ser colocados nesta ordem. Não se preocupe em inverter, o limpador é sempre o do meio. Se a alimentação e o aterramento forem trocados, podemos inverter o eixo no código do Arduino mais tarde.

Os fios podem ter um esquema de cores diferente no seu joystick, mas em geral: os dois fios com cores idênticas são para o botão superior. Vermelho ou laranja é 5V, preto ou marrom é aterrado. O fio restante é o limpador.

Etapa 8: medidores de combustível com barra de LED

Indicadores de combustível com barra de LED
Indicadores de combustível com barra de LED
Indicadores de combustível com barra de LED
Indicadores de combustível com barra de LED
Indicadores de combustível com barra de LED
Indicadores de combustível com barra de LED

OK. Esta é a parte mais difícil de toda a construção. Sinta-se à vontade para pular isso em sua primeira construção ou melhorar e me avisar!

Eu tenho essas ótimas barras de LED que quero usar como medidores de combustível. O LED superior é azul, depois um pouco verde, depois laranja e finalmente vermelho. Se pudermos acender um LED de cada vez, podemos deixá-lo representar o nível de combustível de nossa espaçonave.

Eu inicialmente encomendei ICs do driver com eles. Eles funcionam muito bem! Você pode selecionar o modo de pontos ou o modo de barra e exibirá uma tensão de entrada analógica como um único LED (ponto) ou uma gama de LEDs (barra). Mas um Arduino não produz uma tensão analógica! E o recurso PWM, que permite diminuir a intensidade de um LED, emulando uma tensão analógica, não funciona com esses CIs de driver.

Avanço para o plano 2: registradores de deslocamento. Você pode trabalhar com eles em todos os kits iniciais do Arduino. E você pode aprender mais sobre eles aqui:

O plano é converter de alguma forma os níveis de combustível na sequência adequada de bits que representará os níveis de combustível nas barras de LED. Com 5 medidores de combustível, todos os níveis de combustível preenchidos precisariam ser 10000000001000000000100000000010000000001000000000. Com o monopropelente vazio, seria: 10000000001000000000100000000010000000000000000001.

Parece bastante simples. Existem algumas complicações. Os registradores de deslocamento têm 8 pinos, enquanto as barras de LED têm 10 LEDs. Eu uso 7 registradores de deslocamento para obter 56 saídas. Ao conectá-los, pulei um pino IC em algum lugar (vamos encaixar isso no código). E eu estou conectando uma barra de LED começando na outra extremidade (vamos consertar isso no código). Ah, e a matemática do Arduino de que precisamos às vezes usa aritmética de ponto flutuante que causa erros de arredondamento (vamos consertar isso no código). Observe que compartilho o código em uma etapa posterior.

Minha compilação final não correspondeu ao diagrama de fiação anexado, portanto, se você reconstruir este controlador, algumas atualizações são necessárias para o código. Comente abaixo se precisar de ajuda.

Cada LED requer seu próprio resistor. Experimente alguns valores diferentes para corresponder ao brilho. O verde parece muito mais brilhante do que o vermelho com os mesmos resistores, por isso ajuda a equilibrar isso.

Resultado final: em vez dos 50 pinos digitais necessários para alimentar as 5 barras de LED, isso é reduzido para 3: um sinal de clock, um sinal de trava e um sinal de dados.

Etapa 9: Construindo o Gabinete

Construindo o Recinto
Construindo o Recinto
Construindo o Recinto
Construindo o Recinto
Construindo o Recinto
Construindo o Recinto
Construindo o Recinto
Construindo o Recinto

É hora de me vingar com aqueles logo!

Converti o logotipo em desenhos vetoriais adequados para que fiquem perfeitamente gravados. Desta vez, tenho um problema diferente. Os orifícios dos parafusos não estão nos lugares certos para a montagem adequada da caixa. Usei MDF de 6 mm para a caixa. Infelizmente, aparafusar ou pregar nas bordas faz com que elas se rompam. Cortei-o junto com restos de madeira adicionais e cola. Muita cola.

Para aqueles que são melhores com madeira, cola e / ou pregos, anexei uma versão dos designs sem os orifícios dos parafusos.

Apesar das dificuldades, o resultado final é bastante bom.

Etapa 10: Software e Teste

Image
Image
Software e Teste
Software e Teste

Baixe o seguinte software para fazer o controlador funcionar com o Kerbal Space Program:

Plug-in KSP:

O arquivo ZIP é o plugin compilado. O resto é o código-fonte que você pode usar para modificar o plugin e compilar sua própria versão. Descompacte o plugin no diretório GamaData.

Código Arduino:

Use o IDE do Arduino para fazer o upload do código para o Arduino Mega em seu controlador.

Observe a parte inferior direita do IDE do Arduino para descobrir em qual porta serial o controlador está (por exemplo, /dev/cu.usbmodem1421). Abra o arquivo config.xml do diretório de plug-ins e certifique-se de que sua porta esteja preenchida. Agora você está pronto para prosseguir!

Você pode usar o modo de depuração colocando o pequeno botão liga / desliga superior esquerdo na posição LIGADO. O LCD deve exibir uma sequência de letras. Cada letra representa um botão ou switch e alterna entre maiúsculas e minúsculas quando você pressiona o botão ou alterna o switch. Definir os interruptores xyz em Xyz (ligar / desligar / desligar) também exibirá os valores do controle deslizante do acelerador. xYz exibe os valores do joystick para o joystick de translação (esquerda). xyZ para o joystick de rotação (direita).

Modos LCD

Os modos de exibição a seguir podem ser selecionados para exibição no LCD usando os interruptores x, y e z

Modo TakeOff: Velocidade / aceleração da superfície (G)

Modo de órbita: Apoapsis + Tempo para Apoapsis / Periapsis + Tempo para Periapsis

Modo de manobra: Tempo para o próximo nó de manobra / Delta-V restante para o próximo nó

Modo Rendezvous: Distância ao alvo / Velocidade em relação ao alvo

Modo de reentrada: porcentagem de superaquecimento (máx.) / Desaceleração (G)

Modo de vôo: Altitude / número de Mach

Modo de pouso: Altitude do radar / velocidade vertical

Modo Extra: não implementado (ainda)

Para ver os diferentes modos de ação, veja o vídeo no final do instrutível.

Etapa 11: Para a Lua

Image
Image
Para a lua!
Para a lua!

Abra o KSP, carregue sua embarcação favorita ou construa um novo e pronto!

Pontas:

  • Use o grupo de ação personalizada 5 para suas escadas
  • Use o grupo de ação personalizada 6 para seus painéis solares
  • Use o grupo de ação personalizada 7 para pára-quedas ou rampas
  • Atribua o sistema de escape de lançamento e os desacopladores apropriados para o grupo de ação Abortar
  • Não se esqueça que você precisa armar o botão Staging
Arduino Contest 2017
Arduino Contest 2017
Arduino Contest 2017
Arduino Contest 2017

Vice-campeão no Arduino Contest 2017

Concurso de Autor pela Primeira Vez 2018
Concurso de Autor pela Primeira Vez 2018
Concurso de Autor pela Primeira Vez 2018
Concurso de Autor pela Primeira Vez 2018

Vice-campeão no Concurso de Autoria pela Primeira Vez 2018

Recomendado: