Skip to content

Instantly share code, notes, and snippets.

@adedip
Last active August 29, 2015 14:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save adedip/bbd4763eca91987f62bb to your computer and use it in GitHub Desktop.
Save adedip/bbd4763eca91987f62bb to your computer and use it in GitHub Desktop.
Arduino websocket gamepad with Noduino
// noduino/examples/gamepad.js
// npm install --save socket.io-client
// cd noduino/examples
// node gamepad.js
var requirejs = require('requirejs');
var socket = require('socket.io-client')('http://localhost:3000');
requirejs.config({nodeRequire: require});
requirejs(['../public/scripts/libs/Noduino', '../public/scripts/libs/Noduino.Serial', '../public/scripts/libs/Logger'], function (NoduinoObj, NoduinoConnector, Logger) {
var Noduino = new NoduinoObj({'debug': false}, NoduinoConnector, Logger);
Noduino.connect(function(err, board) {
if (err) { return console.log(err); }
var board_serial = board.c.boards[0].serial.path;
socket.emit('controller','Arduino: '+board_serial);
var led_4;
board.withLED({pin: 4}, function(err, LED) {
if (err) { return console.log(err); }
led_4 = LED;
led_4.on('on',function(){
setTimeout(function () {
led_4.setOff();
}, 250);
});
});
board.withButton({pin: 3}, function(err, Button) {
if (err) { return console.log(err); }
Button.on('push', function() {
console.log('Button left');
socket.emit('controls','turn left');
led_4.setOn();
});
});
var led_7;
board.withLED({pin: 7}, function(err, LED) {
if (err) { return console.log(err); }
led_7 = LED;
led_7.on('on',function(){
setTimeout(function () {
led_7.setOff();
}, 250);
});
});
board.withButton({pin: 6}, function(err, Button) {
if (err) { return console.log(err); }
Button.on('push', function() {
console.log('Button right');
socket.emit('controls','turn right');
led_7.setOn();
});
});
socket.on('you won', function(msg){
console.log("YOU WON");
setInterval(function () {
led_7.blink(250);
led_4.blink(250);
}, 500);
});
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment