"use strict";

var Cylon = require("cylon");

Cylon.robot({
  connections: {
    digispark: { adaptor: "digispark" }
  },

  // when declaring the servo driver you can add an optional `angleLimits` param
  // (defaults to min: 30 max 150). This param sets limits for the angle,
  // so sot he servo can't be damaged if it cannot move in the full 0-180
  // range, most servos are not capable of this.
  devices: {
    servo: { driver: "servo", pin: 0, limits: { bottom: 20, top: 160 } }
  },

  work: function(my) {
    var angle = 0,
        increment = 20;

    every((1).seconds(), function() {
      angle += increment;

      my.servo.angle(angle);

      console.log("Current Angle: " + (my.servo.currentAngle()));

      if ((angle === 0) || (angle === 180)) {
        increment = -increment;
      }
    });
  }
}).start();