#ifndef SERVO_BEHAVIOUR_h #define SERVO_BEHAVIOUR_h #include <Arduino.h> #include "Behaviours.h" #include <Servo.h> /** * [ServoGoto description] * @param servo [description] * @param name [description] */ class ServoGoTo : public Behaviour { Servo _servo; public: ServoGoTo(Servo servo, String name = "GoTo"); /** @brief What does this do? */ char* args(); String start(String args); }; class ServoWiggle : public Behaviour { Servo _servo; int _start_time = 0; int _wiggle_time = 300; int _num_wiggles = 5; int _wiggles = 0; int _wiggle_angle = 0; //Calculate wiggle time by multiplying the angle by this... int _wiggle_factor = 5; public: ServoWiggle(Servo servo, String name = "Wiggle", int slowness=3); /** @brief What does this do? */ char* args(); /** @brief What does this do? */ String start(String args); /** @brief What does this do? */ void update(); }; class ServoGoAndReturn : public Behaviour { Servo _servo; int _start_angle = 0; int _end_angle = 180; int _delay = 30; int _num_rotations = 1; int _rotations = 0; int _pause = 500; public: ServoGoAndReturn(Servo servo, String name="GoAndReturn", int delay=30, int pause=500, int start_angle = 2, int end_angle=178 ); /** @brief What does this do? */ char* args(); /** @brief What does this do? */ String start(String args); /** @brief What does this do? */ void update(); }; #endif