control for robotic arm that can play chess using a granular gripper

Dependencies:   Encoder mbed HIDScope Servo MODSERIAL

Fork of chessRobot by a steenbeek

Committer:
annesteenbeek
Date:
Tue Oct 20 14:25:31 2015 +0200
Revision:
81:71e7e98deb2c
Parent:
62:6c566e6f9664
Child:
82:4cc8f9ad3fec
added PID direction

Who changed what in which revision?

UserRevisionLine numberNew contents of line
annesteenbeek 51:1e6334b993a3 1 #ifndef PID_H
annesteenbeek 51:1e6334b993a3 2 #define PID_H
annesteenbeek 51:1e6334b993a3 3
annesteenbeek 51:1e6334b993a3 4 class PID{
annesteenbeek 51:1e6334b993a3 5 public:
annesteenbeek 51:1e6334b993a3 6 #define MANUAL 0
annesteenbeek 51:1e6334b993a3 7 #define AUTOMATIC 1
annesteenbeek 81:71e7e98deb2c 8 #define DIRECT 0
annesteenbeek 81:71e7e98deb2c 9 #define REVERSE 1
annesteenbeek 51:1e6334b993a3 10
annesteenbeek 62:6c566e6f9664 11 PID(double*, double*, double*, double, double, double);
annesteenbeek 51:1e6334b993a3 12
annesteenbeek 51:1e6334b993a3 13 void SetMode(int Mode);
annesteenbeek 51:1e6334b993a3 14
annesteenbeek 51:1e6334b993a3 15 bool Compute(); // returns false when in Manual mode
annesteenbeek 51:1e6334b993a3 16
annesteenbeek 62:6c566e6f9664 17 void SetOutputLimits(double, double);
annesteenbeek 51:1e6334b993a3 18
annesteenbeek 62:6c566e6f9664 19 void SetSampleTime(double);
annesteenbeek 51:1e6334b993a3 20
annesteenbeek 62:6c566e6f9664 21 void SetTunings(double, double, double);
annesteenbeek 60:20945383ad1b 22
annesteenbeek 62:6c566e6f9664 23 double getKp();
annesteenbeek 62:6c566e6f9664 24 double getKi();
annesteenbeek 62:6c566e6f9664 25 double getKd();
annesteenbeek 51:1e6334b993a3 26
annesteenbeek 51:1e6334b993a3 27 private:
annesteenbeek 51:1e6334b993a3 28 void Initialize();
annesteenbeek 51:1e6334b993a3 29
annesteenbeek 62:6c566e6f9664 30 double SampleTime;
annesteenbeek 62:6c566e6f9664 31 double *myInput; // * Pointers to the Input, Output, and Setpoint variables
annesteenbeek 62:6c566e6f9664 32 double *myOutput; // This creates a hard link between the variables and the
annesteenbeek 62:6c566e6f9664 33 double *mySetpoint; // PID, freeing the user from having to constantly tell us
annesteenbeek 51:1e6334b993a3 34 // what these values are. with pointers we'll just know.
annesteenbeek 62:6c566e6f9664 35 double error, ITerm, dErr;
annesteenbeek 62:6c566e6f9664 36 double lastErr, lastInput;
annesteenbeek 62:6c566e6f9664 37 double kp, ki, kd;
annesteenbeek 62:6c566e6f9664 38 double outMin, outMax;
annesteenbeek 51:1e6334b993a3 39 bool inAuto;
annesteenbeek 51:1e6334b993a3 40
annesteenbeek 51:1e6334b993a3 41 };
annesteenbeek 51:1e6334b993a3 42
annesteenbeek 51:1e6334b993a3 43 #endif