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 12:59:00 2015 +0000
Revision:
55:ee5257fb73df
Parent:
54:c14c3bc48b8a
Child:
57:43f707648f2b
bug fixes for PID filter

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 55:ee5257fb73df 20 float output;
annesteenbeek 55:ee5257fb73df 21 float getOutput();
annesteenbeek 51:1e6334b993a3 22
annesteenbeek 51:1e6334b993a3 23 private:
annesteenbeek 51:1e6334b993a3 24 void Initialize();
annesteenbeek 51:1e6334b993a3 25
annesteenbeek 54:c14c3bc48b8a 26 float SampleTime;
annesteenbeek 51:1e6334b993a3 27 float *myInput; // * Pointers to the Input, Output, and Setpoint variables
annesteenbeek 51:1e6334b993a3 28 float *myOutput; // This creates a hard link between the variables and the
annesteenbeek 51:1e6334b993a3 29 float *mySetpoint; // PID, freeing the user from having to constantly tell us
annesteenbeek 51:1e6334b993a3 30 // what these values are. with pointers we'll just know.
annesteenbeek 51:1e6334b993a3 31 float error, errSum, dErr;
annesteenbeek 54:c14c3bc48b8a 32 float lastErr, lastInput;
annesteenbeek 55:ee5257fb73df 33 float kp, ki, kd;
annesteenbeek 51:1e6334b993a3 34 float outMin, outMax;
annesteenbeek 51:1e6334b993a3 35 bool inAuto;
annesteenbeek 51:1e6334b993a3 36
annesteenbeek 51:1e6334b993a3 37 };
annesteenbeek 51:1e6334b993a3 38
annesteenbeek 51:1e6334b993a3 39 #endif