Nirvana Playing Madonna

    tessel-servo

    0.0.1 • Public • Published

    Tessel-Servo

    Module for driving servos off of Tessel 2 PWM pins

    Installation

    npm install tessel-servo

    Example

    /*********************************************
    This servo module demo turns the servo around
    1/10 of its full rotation  every 500ms, then
    resets it after 10 turns, reading out position
    to the console at each movement.
    *********************************************/
     
    var tessel = require('tessel');
    var servoLib = require('tessel-servo');
    var servo = servolib.use(tessel);
     
    var servo1 = 1; // We have a servo plugged in on the first PWM pin (Port A, tx)
     
    servo.on('ready', function () {
      var position = 0;  //  Target position of the servo between 0 (min) and 1 (max).
     
      //  Set the minimum and maximum duty cycle for servo 1.
      //  If the servo doesn't move to its full extent or stalls out
      //  and gets hot, try tuning these values (0.05 and 0.12).
      //  Moving them towards each other = less movement range
      //  Moving them apart = more range, more likely to stall and burn out
      servo.configure(servo1, 0.03, 0.12, function () {
        setInterval(function () {
          console.log('Position (in range 0-1):', position);
          //  Set servo #1 to position pos.
          servo.move(servo1, position);
     
          // Increment by 10% (~18 deg for a normal servo)
          position += 0.1;
          if (position > 1) {
            position = 0; // Reset servo position
          }
        }, 500); // Every 500 milliseconds
      });
    });

    Methods

    # servo.configure( whichServo, minPWM, maxPWM, callback(err) ) Sets the PWM max and min for the specified servo.

    # servo.move( whichServo, positionOrSpeed, callback(err) ) positionOrSpeed is a value between 0 and 1. On a normal servo, this value is the position to move to as a percent of the total available rotational range. On a continuous rotation servo, this value represents the rotation speed: 0 is fast in one direction, 1 is fast in the other direction, and 0.5 is stopped.

    # servo.setDutyCycle( whichServo, on, callback(err) ) Sets the duty cycle for the specified servo. on is duty cycle uptime, range from 0-1.

    Events

    # servo.on( 'error', callback(err) ) Emitted upon error.

    # servo.on( 'ready', callback() ) Emitted upon first successful communication between the Tessel and the module.

    License

    MIT or Apache 2.0, at your option

    Install

    npm i tessel-servo

    DownloadsWeekly Downloads

    2

    Version

    0.0.1

    License

    (MIT or Apache-2.0)

    Last publish

    Collaborators

    • technicalmachine
    • tesselproject