Vous êtes ici :   Accueil » Joystick maison
    Imprimer la page...

Joystick maison

Je passe beaucoup de temps a jouer sur mon PC, et je joue a IL2-Sturmovick

je dispose de

Hotas Warthog un palonnier
hotasWardog.jpg rudder-pedals.jpg

Mais pas asses de boutons (ou mal placés)

Je me suis donc fais un boitier en PLA avec des potentiomètres et boutons qui se branche en USB

et est reconnue comme Joystick par le PC

Boitier USB

Fichiers STL pour imprimante 3D

la boite Le couvercle
Box_USB.PNG Box_couvercle_USB.PNG
Fichier STL Fichier STL

  • Pour les achats : (les liens amazones sont juste la pour donner une idée du produit, j'achète ou c'est le moins cher)
  • _5 potentiomètres 10K : exemple lien amazone mais chez les chinois aussi, attention au 20% de taxe début juillet 2021
  • _5 interrupteurs à bascule momentanés (ON) OFF (ON): exemple lien Amazone, beaucoup moins cher sur aliexpress
  • _5 interrupteurs boutons poussoir : lien Amazone
  • _Fils électrique de couleur : lien amazone
  • _1 ARDUINO Pro Micro Atmega32U4 5V 16 MHz :(absolument celui la , car il est de suite reconnue en JOYSTICK sans rien faire) lien Amazone
  • _1 cable USB type A d'1 coté et USB Micro de l'autre longueur , (charge téléphone année < 2020)
  • et bien sur, un fer a souder


j'ai fais un support pour l'arduino, mais ce n'est pas utile ,et j'ai rajouté un écran qui affiche la valeur en % des potentiomètres, mais  c'est un gadget

pour programmer l'arduino il faut installer une application : ICI
et ensuite télécharger 2 librairies ,
_ ArduinoJoystickLibrary-master : lien
_Keypad-master : lien

voici le shéma de branchement (j'utilise la librairie keypad pour une facilité de fonctionnement)

Image

Le code arduino (pas de moi , mais modifié pour s'adapter à mon projet)  ,fonctionnel avec 5 axes (5 potentiomètres 10K ), et 15 boutons (5 interrupteurs à bascule momentanés (ON) OFF (ON) + 5 interrupteurs boutons poussoir), (pas terminé dans le sens ou il me faudrait optimiser le code, mais comme je n'ai pas vraiment volé énormément avec, j'attend un peu)


Le code a entrer dans l'arduino

// -----Joystick
Joystick_ Joystick(JOYSTICK_DEFAULT_REPORT_ID,
JOYSTICK_TYPE_JOYSTICK,
16, //nbre de boutons
0,  //Nbre de hat switches
false,  // y axis
false,  // x axis
true ,  // z axis
true ,  // ry axis
true ,  // rx axis
true ,  // rz axis
false,  // rudder(gouvernail)
true,   // throttle(Manette de Gaz)
false , // accelerator
false , // brake
false );// steering wheel


int zAxis_ = 0;     int Ecran_zAxis_ = 0;    int Ecran_zAxis_Old = 0;
int RxAxis_ = 0;    int Ecran_RxAxis_ = 0;   int Ecran_RxAxis_Old = 0;                   
int RyAxis_ = 0;    int Ecran_RyAxis_ = 0;   int Ecran_RyAxis_Old = 0;
int RzAxis_ = 0;    int Ecran_RzAxis_ = 0;   int Ecran_RzAxis_Old = 0;       
int Throttle_ = 0;  int Ecran_Throttle_ = 0; int Ecran_Throttle_Old = 0;       

int tempo = 150;
int Pot1 = 10;
int Pot2 = A0;
int Pot3 = A1;
int Pot4 = A2;
int Pot5 = A3;
const bool initAutoSendState = true;

// ----- Keypad
#define ENABLE_PULLUPS
#define NUMBUTTONS 16
const byte ROWS = 4;    // Nbres de lignes
const byte COLS = 4;    // Nbres de colonnes
byte keys [ROWS] [COLS] = {
                {'6','a','d','2'},
                {'5','9','e','1'},
                {'4','8','f','b'},
                {'3','7','x','c'}
};
//-----Affectation Pins Keypad avec Arduino Pro micro
byte rowPins [ROWS] = {4, 5, 6, 7};
byte colPins [COLS] = {8, 9, 16, 14};
Keypad keypad = Keypad (makeKeymap (keys), rowPins, colPins, ROWS, COLS);


//***************************
void setup(){
//-------Ecran OLEG
  if(!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
                Serial.println(F("SSD1306 l'allocation a echoue"));
                for(;;); // Don't proceed, loop forever
  }
  display.display();
  delay(10); // Pause 1/2 seconde
//--------- Clear the buffer Ecran OLEG
  display.clearDisplay();
  display.setTextColor(WHITE);
  display.setTextSize(1);
  Ecran();

//Serial.begin(9600);
  keypad.addEventListener(keypadEvent); // Add an event listener for this keypad
// -----Joystick
  Joystick.begin();
}



Page lue 864 fois