Table des matières:

KerbalController : un panneau de contrôle personnalisé pour Rocket Game Kerbal Space Program : 11 étapes (avec photos)
KerbalController : un panneau de contrôle personnalisé pour Rocket Game Kerbal Space Program : 11 étapes (avec photos)

Vidéo: KerbalController : un panneau de contrôle personnalisé pour Rocket Game Kerbal Space Program : 11 étapes (avec photos)

Vidéo: KerbalController : un panneau de contrôle personnalisé pour Rocket Game Kerbal Space Program : 11 étapes (avec photos)
Vidéo: Why is Starship still getting damaged by a static fire? 2024, Juillet
Anonim
KerbalController: un panneau de contrôle personnalisé pour le programme spatial Kerbal de Rocket Game
KerbalController: un panneau de contrôle personnalisé pour le programme spatial Kerbal de Rocket Game

Pourquoi construire un KerbalController ?

Eh bien, parce qu'appuyer sur des boutons et actionner des commutateurs physiques est bien plus substantiel que de cliquer sur votre souris. Surtout quand il s'agit d'un gros interrupteur de sécurité rouge, où il faut d'abord ouvrir le couvercle, 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 commande, Simpit (cockpit simulé), DSKY (clavier d'affichage) ou joystick personnalisé, est un périphérique d'entrée personnalisé pour contrôler le populaire fusée-construction-et-vol-et-espérons-pas-explosion jeu Kerbal Space Program combiné à une sortie optionnelle du jeu, telle que des voyants d'état, des affichages de télémétrie et/ou des jauges de carburant.

Cette version spécifique comprend des entrées telles que des commandes de rotation et de translation via des joysticks, un curseur d'accélérateur, de nombreux boutons avec voyants d'état, des jauges de carburant à LED et un écran LCD de télémétrie avec plusieurs modes.

Ce guide comprendra tout ce dont vous avez besoin pour créer une copie identique ou apporter des ajustements et des améliorations en cours de route, comme bon vous semble. Sont inclus:

  • une liste de pièces
  • dessins de conception numérique prêts à être découpés au laser
  • Instructions de câblage
  • Code Arduino
  • Code pour le plugin KSP d'accompagnement
  • Beaucoup de photos

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

Étape 1: Les outils

Les outils
Les outils

L'outil le plus important dont vous avez besoin pour cette construction est un fer à souder. Cela comprend 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, une pince à épiler et des tournevis de petite taille.

Étape 2: Pièces et disposition de base

Pièces et disposition de base
Pièces et disposition de base
Pièces et disposition de base
Pièces et disposition de base

Faire le meilleur contrôleur possible pour vous signifie sélectionner exactement les boutons et les commutateurs que vous souhaitez mettre en œuvre. Parce que tout le monde joue le jeu différemment. Certaines personnes pilotent des avions et construisent des SSTO (single-stage-to-orbit). D'autres préfèrent les rovers des stations spatiales. Et certains veulent juste que les choses explosent de façon 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 répertoriées dans la liste de pièces jointe.

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

Créer un prototype (facultatif)
Créer un prototype (facultatif)
Créer un prototype (facultatif)
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 à affiner la position des commandes principales. Il est également agréable d'avoir la confiance nécessaire pour le faire fonctionner avant de continuer à investir du temps et de l'argent dans la construction finale. En fait, j'ai joué au jeu pendant un bon moment avec ma manette de boîte à chaussures. N'est-ce pas la façon Kerbal d'utiliser des pièces récupérées pour pirater quelque chose ensemble ?

Étape 4: Conseils sur le câblage

Conseils sur le câblage
Conseils sur le câblage
Conseils sur le câblage
Conseils sur le câblage
Conseils sur le câblage
Conseils sur le câblage

Lors de la création d'un prototype, ne soudez pas tous vos boutons à moins que vous ne souhaitiez les dessouder lorsque vous arrivez au boîtier final. J'ai soudé des fils aux boutons et utilisé une planche à pain sans soudure pour établir les connexions temporaires à l'Arduino.

Lors de la connexion de tous les composants électroniques à la façade finale, vous pouvez réduire l'encombrement en créant des boucles pour 5 V et la terre. Vous ne connectez pas toutes les broches de masse directement à l'Arduino, mais connectez plutôt la masse d'un bouton à la masse du bouton suivant et faites une boucle tout 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 de broches d'en-tête et de souder les fils à celles-ci. Vous pouvez les utiliser comme un gros connecteur, vous pouvez donc toujours débrancher votre Arduino pour le tester.

La longueur des fils est un équilibre entre assez court pour garder le boîtier exempt d'enchevêtrements de fils excessifs (ce qui pourrait vous empêcher de pouvoir fermer le boîtier) et assez long pour pouvoir déplacer les pièces hors du chemin à souder d'autres pièces, serrez les vis et fouillez avec votre multimètre pendant le débogage.

Étape 5: Obtention de la découpe laser de la façade

Obtenir la découpe au laser de la plaque frontale
Obtenir la découpe au laser de la plaque frontale
Obtenir la découpe au laser de la plaque frontale
Obtenir la découpe au laser de la plaque frontale
Obtenir la découpe au laser de la plaque frontale
Obtenir la découpe au laser de la plaque frontale

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 laser n'est plus très chère. Il permet une précision extrême, tant que votre conception est précise.

Ci-joint ma conception de façade, dans des formats appropriés pour Affinity Designer et d'autres programmes de dessin vectoriel comme le InkScape gratuit.

J'ai fait découper la façade au laser aux Pays-Bas chez Lichtzwaard. Ils ont depuis fermé et les activités ont été reprises par Laserbeest, où j'ai fait découper la boîte au laser. Chaque boutique peut avoir des exigences différentes pour la conception, alors vérifiez auprès de votre boutique avant de 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 de ma conception de plaque frontale n'a pas été gravé. Notez que ce n'est pas fixé dans les conceptions ci-jointes.
  • Même le texte doit être basé sur un vecteur. Alors convertissez ces lettres en courbes !
  • Mesure. Mesure. Mesure. J'ai omis de prendre en compte la taille requise pour le montage des joysticks et j'ai dû le bidouiller. Ça s'est bien passé, heureusement. Notez que cela est corrigé dans les conceptions ci-jointes.

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

Étape 6: Branchement des boutons et des commutateurs

Branchement des boutons et des commutateurs
Branchement des boutons et des commutateurs
Branchement des boutons et des commutateurs
Branchement des boutons et des commutateurs
Branchement des boutons et des commutateurs
Branchement 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 (commune)
  • Broche numérique Arduino NON (normalement ouverte)

Nous allons configurer la broche numérique comme INPUT_PULLUP, ce qui signifie que l'Arduino gardera la broche à 5V et détectera quand la broche est mise à la terre et la traitera comme une entrée. Le connecteur NO de l'interrupteur ou du bouton est normalement ouvert, le circuit n'est donc pas connecté. Lorsque vous appuyez sur le bouton ou basculez l'interrupteur, 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:

  • Sol - (négatif)
  • Broche numérique Arduino + (positive)

Cette partie est assez simple. Nous utiliserons la broche Arduino en mode SORTIE normal.

Interrupteurs de sécurité avec 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'allumera toujours que lorsque l'interrupteur est activé. Ils ont un connecteur +, - et signal.

  • Sol - (négatif)
  • 5V + (positif)
  • Pin numérique Arduino S (signal)

Nous utiliserons la broche Arduino en mode INPUT. Lorsque l'interrupteur est activé, la LED s'allume et la broche de signal passe au niveau haut.

Étape 7: Branchement des joysticks et de l'écran LCD

Branchement des joysticks et de l'écran LCD
Branchement des joysticks et de l'écran LCD
Branchement des joysticks et de l'écran LCD
Branchement des joysticks et de l'écran LCD
Branchement des joysticks et de l'écran LCD
Branchement des joysticks et de l'écran LCD

ACL

L'écran LCD est très simple. Il a juste besoin d'alimentation, de terre et de série.

  • Disque dur 5V
  • Terre GND
  • Arduino Tx PIN RX

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

Joysticks

Les joysticks peuvent sembler intimidants au début, mais ils 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 en bas du joystick. Le troisième utilise des fils.

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

Les connecteurs peuvent être fixés dans cet ordre. Ne vous inquiétez pas de le faire reculer, l'essuie-glace est toujours celui du milieu. Si l'alimentation et la terre sont permutées, nous pouvons inverser l'axe dans le code Arduino plus tard.

Les fils peuvent avoir un schéma de coloration différent sur votre joystick, mais en général: les deux fils de couleurs identiques sont pour le bouton du dessus. Le rouge ou l'orange correspond à 5V, le noir ou le marron correspond à la masse. Le fil restant est l'essuie-glace.

Étape 8: Jauges de carburant à barre LED

Jauges de carburant à barre LED
Jauges de carburant à barre LED
Jauges de carburant à barre LED
Jauges de carburant à barre LED
Jauges de carburant à barre LED
Jauges de carburant à barre LED

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

J'ai ces superbes barres LED que je veux utiliser comme jauges de carburant. La LED du haut est bleue, puis un peu 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 d'abord commandé des circuits intégrés de pilote avec eux. Ils fonctionnent très bien ! Vous pouvez sélectionner le mode point ou le mode barre et il affichera une tension d'entrée analogique sous la forme d'une seule LED (point) ou d'une plage de LED (bar). Mais un Arduino ne délivre pas de tension analogique ! Et la fonction PWM qui vous permet d'atténuer une LED en émulant en quelque sorte une tension analogique, ne fonctionne pas avec ces circuits intégrés de pilote.

Au plan 2: registres à décalage. Vous pouvez les utiliser dans chaque kit de démarrage Arduino. Et vous pouvez en apprendre plus à leur sujet ici:

Le plan est de convertir en quelque sorte les niveaux de carburant en une chaîne de bits appropriée qui représentera les niveaux de carburant sur les barres LED. Avec 5 jauges de carburant, tous les niveaux de carburant remplis devraient être 10000000001000000000100000000010000000001000000000. Avec monergol vide, il deviendrait: 10000000001000000000100000000010000000000000000001.

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 du câblage, j'ai sauté une broche IC quelque part (nous l'intégrerons dans le code). Et je câble 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 à virgule flottante qui provoque des erreurs d'arrondi (nous corrigerons 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 ci-joint, donc 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 semble beaucoup plus brillant que le rouge avec les mêmes résistances, il aide donc à équilibrer cela.

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

Étape 9: Construire l'enceinte

Construire l'enceinte
Construire l'enceinte
Construire l'enceinte
Construire l'enceinte
Construire l'enceinte
Construire l'enceinte
Construire l'enceinte
Construire l'enceinte

Il est temps de me venger avec ces logos !

J'ai converti les logos en dessins vectoriels appropriés afin qu'ils soient bien gravés. Cette fois, j'ai un autre problème. Les trous de vis ne sont pas aux bons endroits pour un bon assemblage de la boîte. J'ai utilisé du MDF de 6 mm pour la boîte. Malheureusement, le vissage des clous dans les bords les fait se fendre. Je l'ai piraté avec des restes de bois et de la colle supplémentaires. Beaucoup de colle.

Pour ceux d'entre vous qui sont meilleurs avec le bois, la colle et/ou les clous, j'ai attaché une version des motifs sans les trous de vis.

Malgré les difficultés, le résultat final est assez lisse.

Étape 10: Logiciel et test

Image
Image
Logiciels et tests
Logiciels et tests

Téléchargez le logiciel suivant pour faire fonctionner le contrôleur 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 dans votre contrôleur.

Regardez en bas à droite de l'IDE Arduino pour déterminer sur quel port série se trouve le contrôleur (par exemple /dev/cu.usbmodem1421). Ouvrez le fichier config.xml depuis le répertoire du plugin et assurez-vous que votre port est renseigné. Maintenant, vous êtes prêt à partir !

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

Modes d'affichage à cristaux liquides

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 de décollage: vitesse de surface / accélération (G)

Mode Orbite: Apoapsis + Temps jusqu'à Apoapsis / Periapsis + Temps jusqu'à Periapsis

Mode de manœuvre: temps jusqu'au prochain nœud de manœuvre/Delta-V restant pour le nœud suivant

Mode Rendez-vous: Distance à la cible / Vitesse relative à la cible

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

Mode de vol: Altitude / nombre de Mach

Mode d'atterrissage: altitude 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

Image
Image
Vers la Lune!
Vers la Lune!

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

Des astuces:

  • 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'action personnalisé 7 pour les parachutes ou les parachutes de freinage
  • Affectez 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 de mise en scène
Concours Arduino 2017
Concours Arduino 2017
Concours Arduino 2017
Concours Arduino 2017

Finaliste du concours Arduino 2017

Concours d'auteur pour la première fois 2018
Concours d'auteur pour la première fois 2018
Concours d'auteur pour la première fois 2018
Concours d'auteur pour la première fois 2018

Finaliste du concours d'auteur pour la première fois 2018

Conseillé: