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@51:1e6334b993a3, 2015-10-09 (annotated)
- 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?
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 | 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 |