KerbalController: un panneau de commande personnalisé pour le programme spatial Kerbal de Rocket Game: 11 étapes (avec photos)

KerbalController: un panneau de commande personnalisé pour le programme spatial Kerbal de Rocket Game: 11 étapes (avec photos)

Table des matières:

Anonim

Pourquoi construire un KerbalController?

Eh bien, car appuyer sur des boutons et lancer des commutateurs physiques sont tellement plus substantiels que de cliquer avec votre souris. Surtout quand il s'agit d'un gros interrupteur de sécurité rouge, où vous devez ouvrir le couvercle en premier, actionner l'interrupteur pour armer votre fusée, lancer le compte à rebours et 3.. 2.. 1.. nous avons le décollage!

Qu'est-ce qu'un KerbalController?

Un KerbalController, également appelé Panneau de configuration, Simpit (cockpit simulé), DSKY (clavier d'affichage) ou manette de jeu personnalisée, est un périphérique d'entrée personnalisé permettant de contrôler le populaire système de construction de fusées, de voler et d'espérer sans l'exploser. jeu Kerbal Space Programme combiné à une sortie optionnelle du jeu, telle que voyants d'état, affichages de télémétrie et / ou jauges de carburant.

Cette construction spécifique comprend des entrées telles que des commandes de rotation et de translation via des manettes de jeu, un curseur d'étranglement, de nombreuses touches avec des voyants d'état, des jauges de carburant à DEL et un écran LCD de télémétrie avec plusieurs modes.

Ce guide comprend tout ce dont vous avez besoin pour créer une copie identique ou effectuer des ajustements et des améliorations en cours de route, à votre guise. Sont inclus:

  • une liste de pièces
  • dessins de conception numérique prêts pour le découpage au laser
  • Instructions de câblage
  • Code Arduino
  • Code pour le plugin KSP fourni
  • Beaucoup de photos

Prêt à décoller? Allons-y!

Provisions:

Étape 1: les outils

L'outil le plus important dont vous avez besoin pour cette construction est un fer à souder. Cela inclut de la soudure, une éponge de nettoyage en métal pour nettoyer la pointe du fer à souder et une "troisième main".

D'autres outils sont une pince à dénuder, un coupe-fil, des pincettes et des tournevis de petite taille.

Étape 2: Pièces et disposition de base

Faire le meilleur contrôleur possible pour vous signifie sélectionner exactement les boutons et commutateurs que vous souhaitez implémenter. Parce que tout le monde joue le jeu différemment. Certaines personnes pilotent des avions et construisent des SSTO (mono-étape sur orbite). D'autres préfèrent les rovers de stations spatiales. Et certains veulent juste que les choses explosent de manière spectaculaire!

Il est utile de dessiner toutes les pièces dans leur taille approximative et de les faire glisser dans un programme de dessin vectoriel (comme Affinity Designer ou Inkscape) ou un programme de dessin 3D (comme SketchUp).

Si vous voulez une construction plus facile, vous pouvez simplement copier mon contrôleur et obtenir les pièces listées sur le attaché Liste des pieces.

Étape 3: Créer un prototype (facultatif)

Si vous copiez mon contrôleur, vous pouvez ignorer cette étape.

Si vous optez pour une mise en page personnalisée, je vous recommande d'utiliser d'abord une boîte à chaussures pour créer un prototype fonctionnel avec les commandes principales. Cela aide vraiment à ajuster la position des commandes principales. Il est également agréable d’obtenir la confiance nécessaire pour que cela fonctionne avant de continuer à investir du temps et de l’argent dans la construction finale. En fait, j'ai joué au jeu pendant un bon bout de temps avec mon contrôleur de boîte à chaussures. N’est-ce pas la manière Kerbal d’utiliser des pièces récupérées pour pirater quelque chose ensemble?

Étape 4: Conseils sur le câblage

Lors de la création d'un prototype, ne soudez pas tous vos boutons sauf si vous souhaitez les dissoudre une fois dans le boîtier final. J'ai soudé quelques fils aux boutons et utilisé une planche à pain sans soudure pour établir les connexions temporaires avec l'Arduino.

Lorsque vous connectez tous les composants électroniques au bloc d'affichage final, vous pouvez réduire l'encombrement en créant des boucles pour 5V et la terre. Vous ne connectez pas toutes les broches de terre directement à l'Arduino, mais connectez plutôt la terre sur un bouton à la terre sur le bouton suivant et effectuez une boucle autour. Enfin, vous vous connectez à l'Arduino.

Après avoir créé des boucles pour l'alimentation et la terre, toutes les connexions aux broches Arduino restent. Je recommande d’obtenir des bandes d’épingles de tête et de souder les fils à ceux-ci. Vous pouvez les utiliser comme un gros connecteur pour pouvoir toujours débrancher votre Arduino à des fins de test.

La longueur des fils est un acte d’équilibre entre suffisamment court pour maintenir l’enceinte exempte d’enchevêtrements de fils (ce qui peut vous empêcher de fermer le boîtier) et suffisamment longue pour pouvoir déplacer les pièces à l’écart de la soudure. Serrez les vis et fouillez avec votre multimètre pendant le débogage.

Étape 5: Obtenir la plaque frontale Lasercut

Il est très difficile d’obtenir un aspect propre et professionnel lors du sciage et de la peinture à la main. Heureusement, la découpe au laser n’est plus très chère. Cela permet une précision extrême, à condition que votre conception soit précise.

La conception de ma plaque frontale est jointe en annexe, dans des formats appropriés pour Affinity Designer et d’autres programmes de dessin vectoriel comme le logiciel gratuit InkScape.

J'ai eu la plaque frontale lasercut aux Pays-Bas à Lichtzwaard. Depuis, ils ont fermé leurs portes et Laserbeest a repris les activités. J'ai eu la boîte coupée au laser. Chaque magasin peut avoir des exigences différentes pour la conception, alors renseignez-vous auprès de votre magasin avant de le soumettre. Ils offrent également presque toujours une aide à la conception à un taux horaire.

Points importants à garder à l'esprit:

  • Tout doit être vectoriel. C'est pourquoi le logo dans la conception de ma façade n'a pas été gravé à l'eau-forte. Notez que c'est ne pas fixé dans les dessins joints.
  • Même le texte est basé sur le vecteur. Alors convertissez ces lettres en courbes!
  • Mesure. Mesure. Mesure. J'ai omis de prendre en compte la taille requise pour monter les manettes de jeu et j'ai dû le pirater. Par chance, heureusement. Notez ceci est fixé dans les dessins ci-joints.

Après avoir tout vérifié à fond, envoyez-le à l'atelier de découpe laser. Attendez-vous à payer 40-50 euros aux Pays-Bas et obtenez ce beau résultat par la poste le lendemain!

Étape 6: Raccordement des boutons et des commutateurs

La plupart des commutateurs et des boutons ont les connecteurs étiquetés C, NO, NC, +, -. Voici comment les connecter à l'Arduino.

Interrupteur simple ou bouton poussoir:

  • Terre -> C (commun)
  • Arduino digital pin -> NO (normalement ouvert)

Nous allons configurer la broche numérique comme INPUT_PULLUP, ce qui signifie que l’Arduino gardera la broche à 5V et détectera le moment où la broche sera mise à la terre et traitera cela comme une entrée. Le connecteur NO de l'interrupteur ou du bouton est normalement ouvert et le circuit n'est donc pas connecté. Lorsque vous appuyez sur le bouton ou basculez le commutateur, le circuit se ferme et la broche est mise à la terre.

Bouton poussoir avec LED:

La partie bouton est la même que ci-dessus. Pour la LED, vous attachez des fils supplémentaires:

  • Terre -> - (négatif)
  • Arduino pin numérique -> + (positif)

Cette partie est assez simple. Nous allons utiliser la broche Arduino en mode OUTPUT normal.

Interrupteurs de sécurité à LED:

Celles-ci sont un peu différentes et ne permettent pas de contrôler la LED indépendamment de la position du commutateur. La LED ne s'allume toujours que lorsque le commutateur est activé. Ils ont un +, - et un connecteur de signal.

  • Terre -> - (négatif)
  • 5V -> + (positif)
  • Broche numérique Arduino -> S (signal)

Nous allons utiliser la broche Arduino en mode INPUT. Lorsque l'interrupteur est activé, le voyant s'allume et la broche du signal passe au niveau haut.

Étape 7: Raccordement des manettes de jeu et de l'écran LCD

LCD

L'écran LCD est très simple. Il faut juste pouvoir, terre et série.

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

Vous pouvez utiliser un connecteur JST ou souder les fils directement sur la carte.

Manettes de jeu

Les manettes peuvent sembler décourageantes au début, mais elles sont assez faciles à connecter. Il y a trois axes qui sont connectés de la même manière. Deux d’entre eux utilisent les connecteurs situés au bas du joystick. La troisième utilise des fils.

  • Sol
  • Essuie-glace -> Broche d'entrée analogique Arduino
  • 5V

Les connecteurs peuvent être attachés dans cet ordre. Ne vous inquiétez pas pour le faire revenir en arrière, l'essuie-glace est toujours celui du milieu. Si la puissance et la terre sont échangées, nous pouvons inverser l’axe dans le code Arduino ultérieurement.

Les fils peuvent avoir un schéma de couleur différent sur votre manette de jeu, mais en général: les deux fils avec des couleurs identiques sont pour le bouton sur le dessus. Le rouge ou l'orange est 5V, le noir ou le marron est moulu. Le fil restant est l'essuie-glace.

Étape 8: Jauges de carburant à barres DEL

D'accord. C'est la partie la plus difficile de toute la construction. N'hésitez pas à ignorer cela lors de votre première construction, ou à l'améliorer et faites le moi savoir!

J'ai ces superbes barres LED que je veux utiliser comme jauge à carburant. La DEL supérieure est bleue, puis verte, puis orange et enfin rouge. Si nous pouvons allumer une LED à la fois, nous pouvons la laisser représenter le niveau de carburant de notre vaisseau spatial.

J'ai initialement commandé des IC de pilotes avec eux. Ils travaillent très bien! Vous pouvez sélectionner le mode point ou le mode barre pour afficher une tension d'entrée analogique sous la forme d'une seule LED (point) ou d'une plage de LED (bar). Mais un Arduino n’émet pas de tension analogique! Et la fonction PWM qui vous permet d'atténuer une LED en émulant une tension analogique ne fonctionne pas avec ces circuits d'attaque.

Sur plan 2: registres à décalage. Vous devez utiliser ces éléments dans chaque kit de démarrage Arduino. Et vous pouvez en apprendre plus à leur sujet ici:

Le plan consiste à convertir les niveaux de carburant en une série de bits qui représenteront les niveaux de carburant sur les barres de DEL. Avec 5 jauges de carburant, tous les niveaux de carburant remplis devraient être de 1 000 000 100 000 000 000 000 000 000 à 100 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000.

Cela semble assez simple. Il y a des complications. Les registres à décalage ont 8 broches, tandis que les barres de LED ont 10 LED. J'utilise 7 registres à décalage pour obtenir 56 sorties. Lors de leur câblage, j'ai sauté une broche IC quelque part (nous l'insérerons dans le code). Et je cabler une barre de LED en commençant à l'autre extrémité (nous allons corriger cela dans le code). Oh, et les mathématiques Arduino dont nous avons besoin utilisent parfois l’arithmétique en virgule flottante, ce qui provoque des erreurs d’arrondi (nous allons corriger cela dans le code). Notez que je partage le code dans une étape ultérieure.

Ma version finale ne correspondait pas au schéma de câblage joint. Par conséquent, si vous reconstruisez ce contrôleur, certaines mises à jour du code sont nécessaires. Commentez ci-dessous si vous avez besoin d'aide.

Chaque LED nécessite sa propre résistance. Essayez différentes valeurs afin de faire correspondre la luminosité. Le vert apparaît beaucoup plus brillant que le rouge avec les mêmes résistances, il est donc utile d’équilibrer cela.

Résultat final: au lieu des 50 broches numériques nécessaires pour alimenter les 5 barres de LED, cela est réduit à 3: un signal d'horloge, un signal de verrouillage et un signal de données.

Étape 9: Construction de l'enceinte

Il est temps de prendre ma revanche avec ces logos!

J'ai converti les logos en dessins vectoriels appropriés pour qu'ils soient gravés correctement. Cette fois, j'ai un problème différent. Les trous de vis ne sont pas aux bons endroits pour un montage correct de la boîte. J'ai utilisé 6mm MDF pour la boîte. Malheureusement, le vissage des clous sur les bords provoque leur fente. Je l'ai piraté avec des morceaux de bois et de la colle supplémentaires. Beaucoup de colle.

Pour ceux qui préfèrent le bois, la colle et / ou les clous, j'ai joint une version des motifs sans les trous de vis.

Malgré les difficultés, le résultat final est plutôt lisse.

Étape 10: Logiciels et tests

Téléchargez le logiciel suivant pour que le contrôleur fonctionne avec Kerbal Space Program:

Plugin KSP:

Le fichier ZIP est le plugin compilé. Le reste est du code source que vous pouvez utiliser pour modifier le plugin et compiler votre propre version. Décompressez le plugin dans le répertoire GamaData.

Code Arduino:

Utilisez l'IDE Arduino pour télécharger le code sur l'Arduino Mega de votre contrôleur.

En bas à droite de l'EDI Arduino, vous trouverez le port série du contrôleur (par exemple, /dev/cu.usbmodem1421). Ouvrez le fichier config.xml à partir du répertoire du plugin et assurez-vous que votre port est bien renseigné. Maintenant, vous êtes prêt à partir!

Vous pouvez utiliser le mode débogage en plaçant le petit commutateur marche / arrêt en haut à gauche sur la position ON. L'écran LCD devrait afficher une chaîne de lettres. Chaque lettre représente un bouton ou un commutateur et bascule entre les majuscules et les minuscules lorsque vous appuyez sur le bouton ou basculez le commutateur. Le réglage des commutateurs xyz sur Xyz (marche / arrêt / arrêt) affichera également les valeurs du curseur de la manette des gaz. xYz affiche les valeurs du joystick pour le joystick de traduction (à gauche). xyZ pour le joystick de rotation (à droite).

Modes LCD

Les modes d'affichage suivants peuvent être sélectionnés pour l'affichage sur l'écran LCD à l'aide des commutateurs x, y et z.

Mode TakeOff: vitesse / accélération de la surface (G)

Mode Orbite: Apoapsis + Temps pour Apoapsis / Periapsis + Temps pour Periapsis

Mode manœuvre: durée jusqu'au nœud de manœuvre suivant / Delta-V restant pour le nœud suivant

Mode Rendez-vous: distance par rapport à la cible / vitesse par rapport à la cible

Mode de réentrée: pourcentage de surchauffe (max) / décélération (G)

Mode de vol: Altitude / nombre de Mach

Mode d'atterrissage: altitude du radar / vitesse verticale

Mode Extra: pas encore implémenté

Pour voir les différents modes en action, regardez la vidéo à la fin de l'instructable.

Étape 11: Vers la lune!

Lancez KSP, chargez votre bateau préféré ou construisez-en un nouveau et c'est parti!

Conseils:

  • Utilisez le groupe d'action personnalisé 5 pour vos échelles
  • Utilisez le groupe d’action personnalisé 6 pour vos panneaux solaires
  • Utilisez le groupe d’activités personnalisé 7 pour les parachutes ou les chutes de drogue.
  • Affecter le système d'échappement de lancement et les découpleurs appropriés au groupe d'action Abandonner
  • N'oubliez pas que vous devez armer le bouton Mise en scène

Runner Up dans le

Concours Arduino 2017

Runner Up dans le

Premier concours d'auteur 2018