control for robotic arm that can play chess using a granular gripper
Dependencies: Encoder mbed HIDScope Servo MODSERIAL
Fork of chessRobot by
PID/PID.h@55:ee5257fb73df, 2015-10-09 (annotated)
- 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?
User | Revision | Line number | New 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 |