Skip to content

Instantly share code, notes, and snippets.

@HallM
Created July 30, 2016 21:02
Show Gist options
  • Save HallM/bbc9a8c998ab67c3722eb2291a98ed23 to your computer and use it in GitHub Desktop.
Save HallM/bbc9a8c998ab67c3722eb2291a98ed23 to your computer and use it in GitHub Desktop.
var five = require("johnny-five");
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var path = require('path');
var board = new five.Board();
app.get('/', function(req, res) {
res.sendFile(path.resolve('index.html'));
});
board.on("ready", function() {
var left = new five.Servo({pin: 11, type: "continuous"});
var right = new five.Servo({pin: 10, invert: true, type: "continuous"});
var servos = new five.Servos([left, right]);
// // var commands = {
// // left: function() { left.cw();right.ccw(); },
// // right: function() { left.ccw();right.cw(); },
// // fwd: function(speed) { servos.cw(speed); },
// // rev: function(speed) { servos.ccw(speed); },
// // stop: function() { servos.stop(); }
// // };
var keys = {
up: false,
down: false,
left: false,
right: false
};
function resetMovements() {
if (keys.up) {
if (keys.left) {
left.ccw(0.1);
right.ccw(1);
} else if (keys.right) {
left.ccw(1);
right.ccw(0.1);
} else {
left.ccw(1);
right.ccw(1);
}
} else if (keys.down) {
if (keys.left) {
left.cw(0.1);
right.cw(1);
} else if (keys.right) {
left.cw(1);
right.cw(0.1);
} else {
left.cw(1);
right.cw(1);
}
} else if (keys.left) {
left.cw();
right.ccw();
} else if (keys.right) {
left.ccw();
right.cw();
} else {
servos.stop();
}
}
io.on('connection', function(socket) {
console.log('a user connected');
socket.on('keydown', function(key) {
keys[key] = true;
resetMovements();
});
socket.on('keyup', function(key) {
keys[key] = false;
resetMovements();
});
});
http.listen(3000, function(){
console.log('listening on localhost:3000');
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment