Je veux utiliser mon joystick pour controller une caméra IP.
J'ai utiliser le module gamepad.
Voilà comment j'ai fais:

1)Démarrage

var gamepad = require("gamepad"); //Plugin for gamepad
var chalk = require("chalk"); //Plugin for colors

gamepad.init()

// List the state of all currently attached devices
for (var i = 0, l = gamepad.numDevices(); i < l; i++) {
  console.log(i, gamepad.deviceAtIndex());
}

// Create a game loop and poll for events
setInterval(gamepad.processEvents, 16);
// Scan for new gamepads as a slower rate
setInterval(gamepad.detectDevices, 500);

2)Gestions des events

Pour cela il faut jouer avec sa manette en utilisant ces fonctions:

// Listen for move events on all gamepads
gamepad.on("move", function (id, axis, value) {
  console.log("move", {
    id: id,
    axis: axis,
    value: value,
  });
});

// Listen for button up events on all gamepads
gamepad.on("up", function (id, num) {
  console.log("up", {
    id: id,
    num: num,
  });
});

// Listen for button down events on all gamepads
gamepad.on("down", function (id, num) {
  console.log("down", {
    id: id,
    num: num,
  });
});

id = la manette
axis= l'axe
value= la valeur
num= le button appuyé

Puis remplacer le code au fur à mesure:

// Listen for move events on all gamepads
gamepad.on("move", function (id, axis, value) {
  if(axis == 5 && value == 0){
      console.log(chalk.yellow('Gauche') + ' du petit controller');
      return;
  }
  if(axis == 5 && value == 1){
      console.log(chalk.yellow('Droite') + ' du petit controller');
      return;
  }
  if(axis == 6 && value == 0){
      console.log(chalk.yellow('Haut') + ' du petit controller');
      return;
  }
  if(axis == 6 && value == 1){
      console.log(chalk.yellow('Bas') + ' du petit controller');
      return;
  }

  if(axis == 3 && value < 0 && value >= -1){
      if(value == -1){
        console.log(chalk.yellow('Haut stict') + ' du grand controller');
        return;
      }
      console.log(chalk.yellow('Haut') + ' du grand controller');
      return;
  }

  if(axis == 3 && value > 0 && value <= 1){
      if(value == 1){
        console.log(chalk.yellow('Bas stict') + ' du grand controller');
        return;  
      }
      console.log(chalk.yellow('Bas') + ' du grand controller');
      return;
  }    

  if(axis == 4 && value < 0 && value >= -1){
      if(value == -1){
        console.log(chalk.yellow('Gauche stict') + ' du grand controller');
        return;
      }
      console.log(chalk.yellow('Gauche') + ' du grand controller');
      return;
  }

  if(axis == 4 && value > 0 && value <= 1){
      if(value == 1){
        console.log(chalk.yellow('Droite stict') + ' du grand controller');
        return;  
      }
      console.log(chalk.yellow('Droite') + ' du grand controller');
      return;
  }    
});

gamepad.on("up", function (id, num) {
  num++;
  console.log('Numéro '+ chalk.yellow(num) + ' relaché');
});

gamepad.on("down", function (id, num) {
  num++;
  console.log('Numéro '+ chalk.yellow(num) + ' appuyé');
});

Je voudrai savoir si d'autre on utiliser un module ou une méthode plus simple. Merci de vos réponses.

Aucune réponse