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@81:71e7e98deb2c, 2015-10-20 (annotated)
- 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?
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 | 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 |