Table des matières:

Boîte à boutons Sim Racing : 8 étapes
Boîte à boutons Sim Racing : 8 étapes

Vidéo: Boîte à boutons Sim Racing : 8 étapes

Vidéo: Boîte à boutons Sim Racing : 8 étapes
Vidéo: LA POSITION DE PILOTAGE EN SIMRACING - Le tuto made in TONDEUZ AGAZON ! 2024, Juillet
Anonim
Boîte à boutons Sim Racing
Boîte à boutons Sim Racing

Bienvenue aux accros aux courses de sim !

Êtes-vous à court de raccourcis clavier pour mapper toutes les commandes de votre voiture ? Vous avez probablement besoin d'une boîte à boutons ! Dans ce Instructable, nous allons en créer un à partir de zéro. La boîte à boutons aura 32 (!) états de bouton disponibles. Aucun logiciel supplémentaire n'est requis pour utiliser cette boîte à boutons. Vous apprendrez à configurer une matrice de boutons et à écrire (ou copier) le code à télécharger sur votre Arduino.

Il est important de savoir que la boîte à boutons ne prend pas en charge beaucoup de boutons enfoncés simultanément.

Commençons!

Étape 1: Préparation

Préparation
Préparation

Vous aurez besoin d'outils, de boutons et d'autres éléments pour créer la boîte à boutons. N'hésitez pas à créer la boîte à boutons selon vos envies.

Électronique:

  • Boutons
  • Bascule
  • Encodeurs rotatifs
  • Arduino Pro Micro
  • Câble mini USB vers USB
  • Fils

Outils:

  • Percer
  • Souder
  • Étrier
  • Tournevis
  • Coupeur
  • Clé

Logiciel:

  • IDE Arduino
  • Photoshop/Paint (facultatif; peut être dessiné à la main)

Autre:

  • Boîtier (une boîte; peut être acheté ou imprimé en 3D sur mesure)
  • Film de vinyle carbone (facultatif)
  • Boutons d'encodeur rotatif
  • Couvercles d'interrupteur (facultatif)
  • Imprimante d'étiquettes (en option)
  • Oeillet en caoutchouc

Une fois que vous avez tous les éléments (ou assez pour commencer), nous pouvons commencer à concevoir la disposition de la boîte à boutons.

Étape 2: Concevoir la disposition de la boîte

Outils requis pour cette étape:

Photoshop/Paint (facultatif; peut être dessiné à la main)

La conception d'une boîte à boutons peut être différente pour tout le monde. Cependant, pour ce Instructable, nous utiliserons une mise en page qui se compose de:

  • 4x interrupteurs à bascule à trois voies
  • 2x interrupteurs à bascule unidirectionnels
  • 10x boutons poussoirs simples
  • 4x encodeur rotatif avec simple bouton

Interrupteurs à bascule à trois voies:

Il existe de nombreux types d'interrupteurs à bascule. Certains sont momentanés et d'autres restent en place jusqu'à ce qu'ils soient rétablis. C'est à vous de décider quel type utiliser, mais je conseille d'utiliser des interrupteurs momentanés car cette boîte à boutons n'est pas capable d'avoir plusieurs boutons actifs en même temps. Étant donné que les interrupteurs à bascule sont à trois voies (marche/arrêt/marche), nous avons huit (4x2) boutons disponibles.

Interrupteurs à bascule à sens unique:

Ceux-ci peuvent être considérés comme de simples boutons (off/on). Ceux-ci peuvent également être momentanés ou à bascule. Encore une fois, selon vos préférences personnelles. Ceux-ci nous donnent deux (2) boutons disponibles.

Boutons poussoirs simples:

Des boutons comme ceux-ci peuvent être utilisés en les poussant simplement (off/on). Ceux-ci nous donneront dix (10) boutons.

Encodeurs rotatifs avec simple bouton poussoir:

La plupart (sinon tous) des encodeurs rotatifs peuvent être tournés dans les deux sens à l'infini. Chaque fois que vous les faites pivoter dans une direction, il est utilisé comme une pression sur un bouton. Ces encodeurs rotatifs peuvent également être enfoncés en leur donnant un autre bouton. Les encodeurs rotatifs donnent douze (12 = 4x3; tourner à gauche/tourner à droite/pousser).

32 boutons:

Les avoir tous ensemble nous donne 32 (8+2+10+12) pressions sur les boutons !

Satisfait de la mise en page ? Il est temps de commencer à construire !

Étape 3: Mesurez et percez

Mesurer et percer
Mesurer et percer
Mesurer et percer
Mesurer et percer

Outils requis pour cette étape:

  • Étrier
  • Percer
  • Electronique (boutons, interrupteurs, etc.)

Mesurez tous les boutons que vous souhaitez ajouter à votre boîte à boutons. Si vous avez du mal à trouver les dimensions de vos appareils électroniques, utilisez un pied à coulisse (numérique) pour en connaître le diamètre.

Marquez les points centraux de l'électronique sur la face de votre boîtier et percez des trous avec les tailles correctes. Vous cherchez à rendre l'enceinte un peu plus esthétique ? Attendez avec le montage des boutons!

Une fois que vous avez fini de percer les trous, nous pouvons commencer à ressembler à une vraie boîte à boutons !

Étape 4: ajustez les boutons, les rotatives et les bascules

Monter les boutons, les rotatives et les bascules
Monter les boutons, les rotatives et les bascules
Monter les boutons, les rotatives et les bascules
Monter les boutons, les rotatives et les bascules

Outils requis pour cette étape:

  • Electronique (boutons, interrupteurs, etc.)
  • Clé
  • Film de vinyle carbone (facultatif)
  • Cutter (facultatif)

Tous vos appareils électroniques doivent être livrés avec un écrou pour les visser en place. Si non; mesurez-les et achetez l'écrou de la bonne taille.

Si vous souhaitez améliorer (opinion personnelle) l'apparence de votre boîte à boutons, vous pouvez utiliser une pellicule de vinyle en fibre de carbone. Coupez-le à la taille (et un peu plus grande) de la face de votre boîtier dans lequel vous avez percé les trous. Appliquez le vinyle et enroulez-le autour des coins jusqu'à l'arrière. Cela garantira que l'enveloppe reste en place lorsque l'enceinte est fermée. L'excès de vinyle qui bloque maintenant les trous peut être retiré à l'aide d'un cutter.

Après avoir mis l'écharpe (ou non), vous pouvez intégrer l'électronique pour créer la façade de votre boîte à boutons. Vous devriez maintenant avoir quelque chose qui y ressemble déjà vraiment ! Malheureusement, cela ne fonctionne pas encore…

Étape 5: Concevoir la disposition du câblage

Concevoir la disposition du câblage
Concevoir la disposition du câblage

Outils requis pour cette étape:

Photoshop/Paint (facultatif; peut être dessiné à la main)

Création d'une matrice:

L'utilisation d'une matrice nous fera gagner du temps et beaucoup de câblage et de soudure inutiles. Je n'entrerai pas dans les détails moi-même, mais je vous suggère de jeter un œil à cet article si vous n'êtes pas familier avec le concept de matrice.

Concevez votre propre matrice ou utilisez la mise en page de ce Instructable. Dans la matrice, nous utiliserons cinq groupes. Les groupes sont connectés aux brochages suivants sur l'Arduino:

  • 15: quatre encodeurs rotatifs
  • A0: cinq boutons poussoirs
  • A1: deux bascules à trois voies et un bouton-poussoir
  • A2: deux bascules à trois voies et un bouton-poussoir
  • A3: cinq boutons poussoirs

Étape 6: Souder

Soudure
Soudure
Soudure
Soudure

Outils requis pour cette étape:

  • Fer à souder
  • Souder
  • Electronique (montée sur votre boîtier)
  • Arduino Pro Micro
  • Fils

Optionnel:

Téléchargez d'abord le code de l'étape suivante si vous êtes inquiet au sujet de la soudure. Cela vous permettra de vérifier vos connexions

Nous voulons appliquer la matrice conçue à l'étape précédente à la boîte à boutons réelle. Prenez un peu de temps pour cela, surtout s'il s'agit de votre première soudure.

Quelques conseils:

  • Faire un groupe à la fois
  • Connectez l'Arduino à votre ordinateur pour tester de temps en temps
  • Ne chauffez pas trop les boutons en plastique car ils peuvent fondre et casser les connexions
  • N'utilisez pas trop de soudure, moins c'est mieux
  • Utilisez des fils de couleur différente pour chaque groupe/masse

Étape 7: écriture du code

Outils requis pour cette étape:

  • IDE Arduino
  • Bibliothèque de manettes
  • Keypad.h (Arduino IDE > Sketch > Inclure la bibliothèque > Gérer les bibliothèques… > Rechercher le clavier et installer celui créé par Mark Stanley et Alexander Brevig)

#include #include

#define ENABLE_PULLUPS

#define NUMROTARIES 4 #define NUMBUTTONS 24 #define NUMROWS 5 #define NUMCOLS 5

boutons d'octets[NUMROWS][NUMCOLS] = {

{0, 1, 2, 3, 4}, {5, 6, 7, 8, 9}, {10, 11, 12, 13, 14}, {15, 16, 17, 18, 19}, {20, 21, 22, 23}, };

struct rotariesdef {

octet pin1; octet pin2; int ccwchar; int cwchar; état de caractère volatil non signé; };

rotariesdef rotaries[NUMROTAIRES] {

{0, 1, 24, 25, 0}, {2, 3, 26, 27, 0}, {4, 5, 28, 29, 0}, {6, 7, 30, 31, 0}, };

#définir DIR_CCW 0x10

#définir DIR_CW 0x20 #définir R_START 0x0

#ifdef DEMI_STEP

#define R_CCW_BEGIN 0x1 #define R_CW_BEGIN 0x2 #define R_START_M 0x3 #define R_CW_BEGIN_M 0x4 #define R_CCW_BEGIN_M 0x5 const table de caractères non signé[6][4] = { // R_START_MCC R_START (00, R_START,IN_IN} R_CCW_BEGIN {R_START_M | DIR_CCW, R_START, R_CCW_BEGIN, R_START}, // R_CW_BEGIN {R_START_M | DIR_CW, R_CW_BEGIN, R_START, R_START}, // R_START_M (11) {R_START_M, R_CCW_BEGIN_M, R_CW_BEGIN_M, R_START}, // R_CW_BEGIN_M {R_START_M, R_START_M, R_CW_BEGIN | DIR_CW}, // R_CCW_BEGIN_M {R_START_M, R_CCW_BEGIN_M, R_START_M, R_START | DIR_CCW}, }; #else #define R_CW_FINAL 0x1 #define R_CW_BEGIN 0x2 #define R_CW_NEXT 0x3 #define R_CCW_BEGIN 0x4 #define R_CCW_FINAL 0x5 #define R_CCW_NEXT 0x6

tableau de diagrammes const non signé[7][4] = {

// R_START {R_START, R_CW_BEGIN, R_CCW_BEGIN, R_START}, // R_CW_FINAL {R_CW_NEXT, R_START, R_CW_FINAL, R_START | DIR_CW}, // R_CW_BEGIN {R_CW_NEXT, R_CW_BEGIN, R_START, R_START}, // R_CW_NEXT {R_CW_NEXT, R_CW_BEGIN, R_CW_FINAL, R_START}, // R_CCW_START_BEGN}, R_CCW_BEGN} {R,CCW_BEGIN_ R_START, R_START | DIR_CCW}, // R_CCW_NEXT {R_CCW_NEXT, R_CCW_FINAL, R_CCW_BEGIN, R_START}, }; #fin si

octet rowPins[NUMROWS] = {21, 20, 19, 18, 15};

octet colPins[NUMCOLS] = {14, 16, 10, 9, 8};

Keypad buttbx = Keypad(makeKeymap(boutons), rowPins, colPins, NUMROWS, NUMCOLS);

Joystick_ Joystick(JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_JOYSTICK, 32, 0, faux, faux, faux, faux, faux, faux, faux, faux, faux, faux, faux);

void setup() {

Joystick.begin(); Rotary_init();}

boucle vide() {

CheckAllEncoders();

CheckAllButtons();

}

void CheckAllButtons(void) {

if (buttbx.getKeys()) { pour (int i=0; i

void Rotary_init() {

pour (int i=0;i

caractère non signé Rotary_process(int _i) {

unsigned char pinstate = (digitalRead(rotaries[_i].pin2) << 1) | digitalRead(rotaries[_i].pin1); rotaries[_i].state = ttable[rotaries[_i].state & 0xf][pinstate]; return (rotaries[_i].state & 0x30); }

void CheckAllEncoders(void) { pour (int i=0; i < NUMROTARIES;i++) {

résultat de caractère non signé = Rotary_process(i); if (résultat == DIR_CCW) { Joystick.setButton(rotaries.ccwchar, 1); retard (50); Joystick.setButton(rotaries.ccwchar, 0); }; if (résultat == DIR_CW) { Joystick.setButton(rotaries.cwchar, 1); retard (50); Joystick.setButton(rotaries.cwchar, 0); }; } }

  1. Connectez votre Arduino Pro Micro à votre ordinateur en branchant le câble USB
  2. Pour télécharger le code, sélectionnez le type Arduino en allant dans Outils > Carte:… > Arduino/Genuino Micro.
  3. Pour sélectionner le bon port USB, allez dans Outils > Port: > COM x (Arduino/Genuino Micro)
  4. Vérifiez le croquis en cliquant sur le ✓ dans le coin supérieur gauche (sous Fichier)
  5. Appuyez sur → à côté pour le télécharger sur l'Arduino

Étape 8: Ajoutez à votre plate-forme

Ajouter à votre plate-forme
Ajouter à votre plate-forme

Toutes nos félicitations! Vous êtes venu de si loin. Il est maintenant temps de courir !

Conseillé: