Ajouter des boutons de votre manette de jeu X52-Pro avec un Arduino Micro (7 / 12 étapes)

Étape 7: Développez vos croquis pour envoyer les données

Maintenant, votre environnement est configuré, vous pouvez ajouter le code à votre script de test à faire utiliser le descripteur HID.

Prenez une copie de votre script de test et modifiez-la comme suit. Tout d’abord, en haut du script que vous devrez ajouter une variable devant contenir l’état de la manette et l’autre pour suivre le commutateur de chapeau

 // Create a variable to hold the entire state of the device to pass over USB to the HID driverJoyState_t joySt; // A variable to help us manage the 4 hat buttons to make an 8-way hat if we want byte hatButtons; 

Ensuite, ajoutez une ligne au bas de la fonction setup() pour définir l’état initial :

 joySt.buttons = 0; // Set the initial state of the buttons 

Dans cet exemple les 8 premiers boutons sont des boutons simples si nous pouvons compter simplement par le biais de tous les boutons, moins le dernier carré pour la hat. et ensemble ou désactivez le bit approprié sur la variable joySt.buttons.

 if (i < (switchCount - 4)) { // We're looking at all but the last 4 pins as simple buttons in this section // if the button state has changed and it's currently pressed if ((buttonState != buttonLastState[i]) && (buttonState == LOW)) { // Set the button bit joySt.buttons = bitSet(joySt.buttons, i); } // if the button state has changed and it's currently released if ((buttonState != buttonLastState[i]) && (buttonState == HIGH)) { // Unset the buttonbit joySt.buttons = bitClear(joySt.buttons, i); } // save the current button state for comparison next time: buttonLastState[i] = buttonState;} else { ... 

Nous traitons les quatre derniers boutons comme un commutateur de chapeau. Il y a deux façons de traiter un commutateur de chapeau. Vous pouvez la traiter comme un simple chapeau 4 directions (Nord, est, Sud, Ouest), ou vous pouvez aller chercher un chapeau 8 directions (N, NE, E, SE, S, SW, W, NW). Un chapeau de 4 voies est assez simple à gérer, donc je vais vous montrer la version 8 voies ici. La fonctionnalité de 8 voies signifie que vous devez gérer plus d’un bouton pressé donc vous ne pouvez pas définir les choses que vous avancez comme pour les boutons. Ainsi, après le code précédent, pour les quatre derniers boutons vous devrait enregistrer l’état de chacune d’elles dans la variable que nous avons créé précédemment. J’utilise un masque de bits pour rendre les choses plus simples que nous pouvons lire juste la valeur entière par la suite pour obtenir la « direction » du chapeau.

 } else { // We're now looking at the remaining four buttons as hat switches in this section // Using a bit-mask, set the bit that corresponds to each button so we can // determine the state of all four buttons in one go later on if (buttonState == LOW) { // Set the bit if the button is pressed bitSet(hatButtons, i - 8); } else { // Clear the bit if the button is NOT pressed bitClear(hatButtons, i - 8); } } 

Maintenant, nous savons qui, du chapeau boutons sont pressés, nous pouvons lire la valeur de la variable hatButtons et passez la valeur correcte à l’objet de joySt :

 // Determine value for hatSw1 according to the buttons that are pressed// This uses the last four bits in the byte so we just need to check the value of // the byte and set the joySt.hatSw1 value if we have a single button pressed or // a valid pair of buttons pressed. Below i've shown what's pressed using UPPER // case and what's not pressed using lower case. i.e. ULdr = UP and LEFT pressed // Key: UP = bit 1, LEFT = bit 2, DOWN = bit 3, RIGHT = bit 4 switch (hatButtons) { case 0: joySt.hatSw1 = 8; break; // uldr : center : hatButtons = B00000000 case 1: joySt.hatSw1 = 0; break; // Uldr : 0 : hatButtons = B00000001 case 3: joySt.hatSw1 = 1; break; // ULdr : 45 : hatButtons = B00000011 case 2: joySt.hatSw1 = 2; break; // uLdr : 90 : hatButtons = B00000010 case 6: joySt.hatSw1 = 3; break; // uLDr : 135 : hatButtons = B00000110 case 4: joySt.hatSw1 = 4; break; // ulDr : 180 : hatButtons = B00000100 case 12: joySt.hatSw1 = 5; break; // ulDR : 225 : hatButtons = B00001100 case 8: joySt.hatSw1 = 6; break; // uldR : 270 : hatButtons = B00001000 case 9: joySt.hatSw1 = 7; break; // UldR : 315 : hatButtons = B00001001 } 

Maintenant, tout ce qui reste à faire est de sortir de l’état actuel pour mettre à jour l’ordinateur

 // Call Joystick.setState and send the data to the computerJoystick.setState(&joySt); 

J’ai joint le code de cet exemple à cette étape pour enregistrer vos doigts.

Articles Liés

Ajouter des boutons de votre souris

Ajouter des boutons de votre souris

J'ai joué FPS jeux sur mon PC pendant un certain temps maintenant et j'ai souvent trouvé moi-même nécessitant plus de boutons sur ma souris. C'est pourquoi j'ai acheté en même temps un Logitech G9, mais dans certains jeux même que les boutons C' est
Ajouter un petit joystick de pouce deux axes analogiques à votre manette de jeu existante.

Ajouter un petit joystick de pouce deux axes analogiques à votre manette de jeu existante.

Après que j'ai acheté un Thrustmaster Hotas Flight Stick X pour Elite dangereux, j'ai voulu deux axes analogiques supplémentaires pour Poussée vertical/latéral.Après quelques recherches sur Google, je suis tombé sur cette entrée de blog sympa : tourn
Comment ajouter des boutons de médias sociaux à votre Blog Blogger (Blogspot)

Comment ajouter des boutons de médias sociaux à votre Blog Blogger (Blogspot)

Je suis passé par le sang, sueur, larmes et beaucoup d'idées différentes pourenfin trouver la bonne façon d'ajouter des boutons de médias sociaux à mon blog. Étant donné que c'était si difficile pour moi, j'ai décidé de faire un tutoriel pour vous dé
Comment faire pour changer la porte/plaque de bride de votre manette de jeu

Comment faire pour changer la porte/plaque de bride de votre manette de jeu

Gates bride modifier la zone de l'espace que votre manette de jeu peut se déplacer. Parfois changer votre assiette peut vous aider selon votre façon de jouer.Par défaut, la plupart des manettes équipées d'une porte carrée, dans ce tutoriel, je vais v
Ajouter des liens vers votre blog

Ajouter des liens vers votre blog

ajouter des liens vers votre blog.Etape 1: Mettre en évidence les mots que vous voulez lié Cliquez et faites glisser votre curseur pour mettre en surbrillance les mots dans votre message vous voulez lié.Étape 2: Cliquez sur « Lien » dans la barre de
Transformer une N64 Controller une manette de jeu USB en utilisant un Arduino Leonardo

Transformer une N64 Controller une manette de jeu USB en utilisant un Arduino Leonardo

Pour transformer une manette de jeu USB de controleur de la N64, la méthode la plus simple consiste à acheter un N64 Controller Adapter pour environ £15. Cependant il peut aussi être fait si vous avez un Arduino Leonardo ou tout autre carte Arduino a
Ajouter des boutons ergonomiques ou pédales à votre clavier d’ordinateur

Ajouter des boutons ergonomiques ou pédales à votre clavier d’ordinateur

transformer eSmacks doigts endoloris en excellence d'emacs.tappity-plongeur-tappity-tap.Vue d'ensembleEn appuyant sur un bouton sur un clavier ferme un circuit. Ajout d'un commutateur plu en parallèle à un bouton particulier par brasage/cuivre taping
Ajoutez des itinéraires à votre 3D imprimer pour qu’il allume

Ajoutez des itinéraires à votre 3D imprimer pour qu’il allume

Ce que nous voulons atteindre :Bonjour DYI'ers dans cette i´m instructable va vous montrer comment ajouter des routes et des compartiments à vos impressions 3D.Avec ce you´ll être en mesure d'ajouter LED / électronique pour rendre l'accessoire parfai
Ajouter des effets sonores à votre voiture R/C

Ajouter des effets sonores à votre voiture R/C

R/C Animator vous permet d'ajouter des sons et éclairage à votre voiture R/C, avion, hélicoptère ou bateau. Les effets sont déclenchées avec votre contrôleur de R/C et peuvent être combinés.  Voici une démo ;Animateur de R/C est basé sur l' Hélice pl
Ajouter des tiroirs de votre établi

Ajouter des tiroirs de votre établi

Ce Instructable montre comment j'ai ajouté des tiroirs sur un établi de 2 x 4 pour faire un meilleur usage de l'espace sous la table de travail.Les principes discutés dans ce Instructable devraient s'appliquer à presque n'importe quel établi ou autre
Améliorer une scie à chantourner peu coûteux - ajouter des boutons !

Améliorer une scie à chantourner peu coûteux - ajouter des boutons !

Cette instructable vous montrera comment améliorer une scie à chantourner peu coûteux. Généralement, ce type de scie à chantourner accepte les lames avec des épingles, mais est livré avec adaptateurs pour lames pinless, qui sont plus couramment utili
Comment : Ajouter un bouton de la souris pour Apple Macbook Pro pour (presque) gratuit !

Comment : Ajouter un bouton de la souris pour Apple Macbook Pro pour (presque) gratuit !

j'ai jamais aimé l'idée de ne pas avoir un bouton de clic de souris standard sur mon nouveau Unibody Macbook Pro, après avoir fait quelques regardant autour en ligne j'ai trouvé une excellente solution. À l'aide d'une vieille affaire de DVD et de rub
Pirater un contrôleur de jeu vidéo avec un Arduino pour une plus grande accessibilité (ou de la tricherie)

Pirater un contrôleur de jeu vidéo avec un Arduino pour une plus grande accessibilité (ou de la tricherie)

Tout le monde aime les jeux vidéo. Mais il peut être difficile d'apprécier certains jeux si vous êtes blessé ou désactivé et n'avez pas la dextérité nécessaire à la réalisation des combos de touche rapide. Heureusement, nous pouvons utiliser un Ardui
Ajouter des effets sonores à votre moto électrique

Ajouter des effets sonores à votre moto électrique

ajouter n'importe quel son que vous souhaitez pour votre moto électrique avec certains haut-parleurs portables et un lecteur MP3 !Étape 1: Télécharger MP3s Télécharger amusement bruitages provenant d'internet, utilisez un CD de bruitages, ou sortez e