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

Readme

Keywords

Package Sidebar

Install

npm i tessel-servo

Weekly Downloads

0

Version

0.0.1

License

(MIT or Apache-2.0)

Last publish

Collaborators

  • technicalmachine
  • tesselproject