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:
Mon Oct 12 11:46:05 2015 +0000
Revision:
60:20945383ad1b
Parent:
57:43f707648f2b
Child:
62:6c566e6f9664
pwm input stalling

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