Skip to content

Instantly share code, notes, and snippets.

@techdubb
Created March 8, 2014 22:00
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 techdubb/9439558 to your computer and use it in GitHub Desktop.
Save techdubb/9439558 to your computer and use it in GitHub Desktop.
Key Input for Node Bot
var five = require("johnny-five"),
board = new five.Board(),
keypress = require('keypress');
board.on("ready", function() {
keypress(process.stdin);
servoRight = new five.Servo({
pin: 10,
type: "continuous"
});
servoLeft = new five.Servo({
pin: 11,
type: "continuous"
});
function controller(ch, key) {
if (key) {
if (key.name === "space") {
servoLeft.center();
servoRight.center();
}
if (key.name === "up") {
servoLeft.cw();
servoRight.ccw();
}
if (key.name === "down") {
servoLeft.ccw();
servoRight.cw();
}
if (key.name === "right") {
servoLeft.cw();
servoRight.cw();
}
if (key.name === "left") {
servoLeft.ccw();
servoRight.ccw();
}
}
}
// listen for the "keypress" event
process.stdin.on('keypress', controller);
board.repl.inject({
servoLeft: servoLeft,
servoRight: servoRight,
back: function () {
servoLeft.ccw();
servoRight.cw();
},
forward: function () {
servoLeft.cw();
servoRight.ccw();
},
stop: function () {
servoLeft.center();
servoRight.center();
},
left: function () {
servoLeft.ccw();
servoRight.ccw();
},
right: function () {
servoLeft.cw();
servoRight.cw();
}
});
process.stdin.setRawMode(true);
process.stdin.resume();
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment