Simple interface to Xbox controller using Node.js
npm install xbox-controller-node
If you have problems with the instalation of the node-hid
these links can be usefull:
- Prerequisites of node-hid node-hid prerequisites
- node-gyp wiki documentation for windows node-gyp wiki
- libudev-dev
- libusb-1.0-0-dev
sudo apt-get install libudev-dev && sudo apt-get install libusb-1.0-0-dev
- kernel-modules-extra
- joystick
- libusbx-devel
sudo yum install kernel-modules-extra
sudo yum install joystick
sudo yum install libusbx-devel
See the complete API Xbox Controller API.
var xbox = require('xbox-controller-node');
xbox.on('a', function () {
console.log('[A] button press');
});
xbox.on('a:release', function () {
console.log('[A] button release');
});
xbox.on('start', function () {
console.log('[Start] button press');
});
xbox.on('left', function () {
console.log('[LEFT] button press');
});
xbox.on('left:release', function () {
console.log('[LEFT] button release');
});
xbox.on('upright', function () {
console.log('[UPRIGHT] buttons combination press');
});
xbox.on('leftstickpress', function () {
console.log('[LEFTSTICK] button press');
});
//Manage sticks events
xbox.on('leftstickLeft', function () {
console.log('Moving [LEFTSTICK] LEFT');
});
xbox.on('leftstickLeft:release', function () {
console.log('Released [LEFTSTICK] LEFT');
});
xbox.on('leftstickRight', function () {
console.log('Moving [LEFTSTICK] RIGHT');
});
xbox.on('leftstickRight:release', function () {
console.log('Released [LEFTSTICK] RIGHT');
})
xbox.on('leftstickDown', function () {
console.log('Moving [LEFTSTICK] DOWN');
});
xbox.on('leftstickUp', function () {
console.log('Moving [LEFTSTICK] UP');
});
xbox.on('rightstickLeft', function () {
console.log('Moving [RIGHTSTICK] LEFT');
});
xbox.on('rightstickLeft:release', function () {
console.log('Released [RIGHTSTICK] LEFT');
});
xbox.on('rightstickRight', function () {
console.log('Moving [RIGHTSTICK] RIGHT');
});
xbox.on('rightstickDown', function () {
console.log('Moving [RIGHTSTICK] DOWN');
});
xbox.on('rightstickUp', function () {
console.log('Moving [RIGHTSTICK] UP');
});
You can test the API running:
npm test
If the button commands coming wrong you can configure your own controller interface.
var xbox = require('xbox-controller-node');
xbox.configure();
This will launch a server page on browser to you configure your controller. The page will be available on http://localhost:3000
. See the complete Configuration Guide.
Yes. The triggers are not mapped :(. For this... contributions and improvements are very welcome. Thanks for see this.
Copyright (c) 2015 Matheus Paiva (MIT) The MIT License