johnny-five
Version:
The JavaScript Robotics and Hardware Programming Framework. Use with: Arduino (all models), Electric Imp, Beagle Bone, Intel Galileo & Edison, Linino One, Pinoccio, pcDuino3, Raspberry Pi, Particle/Spark Core & Photon, Tessel 2, TI Launchpad and more!
67 lines (56 loc) • 1.53 kB
JavaScript
var five = require("../lib/johnny-five.js");
var keypress = require("keypress");
var board = new five.Board();
board.on("ready", function() {
var speed = 200;
var commands = null;
var configs = five.Motor.SHIELD_CONFIGS.POLOLU_DRV8835_SHIELD;
var motors = {
right: new five.Motor(configs.M1),
left: new five.Motor(configs.M2)
};
this.repl.inject({
motors: motors
});
function controller(ch, key) {
if (key) {
if (key.name === "space") {
motors.right.stop();
motors.left.stop();
}
if (key.name === "up") {
motors.right.fwd(speed);
motors.left.fwd(speed);
}
if (key.name === "down") {
motors.right.rev(speed);
motors.left.rev(speed);
}
if (key.name === "right") {
motors.right.rev(speed * 0.75);
motors.left.fwd(speed * 0.75);
}
if (key.name === "left") {
motors.right.fwd(speed * 0.75);
motors.left.rev(speed * 0.75);
}
commands = [].slice.call(arguments);
} else {
if (ch >= 1 && ch <= 9) {
speed = five.Fn.scale(ch, 1, 9, 0, 255);
controller.apply(null, commands);
}
}
}
keypress(process.stdin);
process.stdin.on("keypress", controller);
process.stdin.setRawMode(true);
process.stdin.resume();
});
// @markdown
//
// 
//
// 
//
// @markdown