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:
Fri Oct 09 13:32:29 2015 +0200
Revision:
51:1e6334b993a3
Child:
54:c14c3bc48b8a
wrote own PID library

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 51:1e6334b993a3 8
annesteenbeek 51:1e6334b993a3 9 PID(float*, float*, float*, float, float, float);
annesteenbeek 51:1e6334b993a3 10
annesteenbeek 51:1e6334b993a3 11 void SetMode(int Mode);
annesteenbeek 51:1e6334b993a3 12
annesteenbeek 51:1e6334b993a3 13 bool Compute(); // returns false when in Manual mode
annesteenbeek 51:1e6334b993a3 14
annesteenbeek 51:1e6334b993a3 15 void SetOutputLimits(float, float);
annesteenbeek 51:1e6334b993a3 16
annesteenbeek 51:1e6334b993a3 17 void SetSampleTime(float);
annesteenbeek 51:1e6334b993a3 18
annesteenbeek 51:1e6334b993a3 19 void SetTunings(float, float, float);
annesteenbeek 51:1e6334b993a3 20
annesteenbeek 51:1e6334b993a3 21 private:
annesteenbeek 51:1e6334b993a3 22 void Initialize();
annesteenbeek 51:1e6334b993a3 23
annesteenbeek 51:1e6334b993a3 24 float curTime;
annesteenbeek 51:1e6334b993a3 25 float prevTime;
annesteenbeek 51:1e6334b993a3 26 float timeChange;
annesteenbeek 51:1e6334b993a3 27
annesteenbeek 51:1e6334b993a3 28 float *myInput; // * Pointers to the Input, Output, and Setpoint variables
annesteenbeek 51:1e6334b993a3 29 float *myOutput; // This creates a hard link between the variables and the
annesteenbeek 51:1e6334b993a3 30 float *mySetpoint; // PID, freeing the user from having to constantly tell us
annesteenbeek 51:1e6334b993a3 31 // what these values are. with pointers we'll just know.
annesteenbeek 51:1e6334b993a3 32 float error, errSum, dErr;
annesteenbeek 51:1e6334b993a3 33 float SampleTime = 1; // 1 second
annesteenbeek 51:1e6334b993a3 34 float Kp, Ki, Kd;
annesteenbeek 51:1e6334b993a3 35 float outMin, outMax;
annesteenbeek 51:1e6334b993a3 36 bool inAuto;
annesteenbeek 51:1e6334b993a3 37
annesteenbeek 51:1e6334b993a3 38 };
annesteenbeek 51:1e6334b993a3 39
annesteenbeek 51:1e6334b993a3 40 #endif