Run this example from the command line with:

node eg/accelerometer-pan-tilt.js
var five = require("johnny-five"),
  board;

board = new five.Board();

board.on("ready", function() {

  var range, pan, tilt, accel;

  range = [0, 170];

  // Servo to control panning
  pan = new five.Servo({
    pin: 9,
    range: range
  });

  // Servo to control tilt
  tilt = new five.Servo({
    pin: 10,
    range: range
  });

  // Accelerometer to control pan/tilt
  accel = new five.Accelerometer({
    pins: ["A3", "A4", "A5"],
    freq: 250
  });

  // Center all servos
  (five.Servos()).center();

  accel.on("acceleration", function() {
    // console.log( "acceleration", this.axis );

    tilt.to(Math.abs(Math.ceil(170 * this.pitch.toFixed(2)) - 180));
    pan.to(Math.ceil(170 * this.roll.toFixed(2)));

    // TODO: Math.abs(v - 180) as inversion function ?
  });
});

 

Component Classes in this example:

Hi! The Johnny-Five community is building new projects every day. We made this newsletter to tell you about what's new, what's good, and what's next for Open Source robotics. Join us in exploring what we can make together.

Fork me on GitHub