![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
State Machine, bezig met mooimaken
Dependencies: Encoder HIDScope MODSERIAL biquadFilter mbed
Fork of vanEMGnaarMOTORPauline_States_nacht by
Diff: main.cpp
- Revision:
- 19:591572f4e4b5
- Parent:
- 18:1e4f697a92cb
- Child:
- 20:14edaecd7413
--- a/main.cpp Fri Nov 03 02:06:37 2017 +0000 +++ b/main.cpp Fri Nov 03 02:10:11 2017 +0000 @@ -442,41 +442,41 @@ return refP2; // value between 0 and 4096 } -float FeedBackControl(float error, float &e_prev, float &e_int) // schaalt de snelheid naar de snelheid zodat onze chip het begrijpt (is nog niet in werking) +double FeedBackControl(double error, double &e_prev, double &e_int) // schaalt de snelheid naar de snelheid zodat onze chip het begrijpt (is nog niet in werking) { - float kp = 0.0015; // kind of scaled. - float Proportional= kp*error; + double kp = 0.0015; // kind of scaled. + double Proportional= kp*error; - float kd = 0.000008; // kind of scaled. - float VelocityError = (error - e_prev)/Ts; - float Derivative = kd*VelocityError; + double kd = 0.000008; // kind of scaled. + double VelocityError = (error - e_prev)/Ts; + double Derivative = kd*VelocityError; e_prev = error; - float ki = 0.0001; // kind of scaled. + double ki = 0.0001; // kind of scaled. e_int = e_int+Ts*error; - float Integrator = ki*e_int; + double Integrator = ki*e_int; - float motorValue = Proportional + Integrator + Derivative; + double motorValue = Proportional + Integrator + Derivative; return motorValue; } -float FeedBackControl2(float error2, float &e_prev2, float &e_int2) // schaalt de snelheid naar de snelheid zodat onze chip het begrijpt (is nog niet in werking) +double FeedBackControl2(double error2, double &e_prev2, double &e_int2) // schaalt de snelheid naar de snelheid zodat onze chip het begrijpt (is nog niet in werking) { - float kp2 = 0.002; // kind of scaled. - float Proportional2= kp2*error2; + double kp2 = 0.002; // kind of scaled. + double Proportional2= kp2*error2; - float kd2 = 0.000008; // kind of scaled. - float VelocityError2 = (error2 - e_prev2)/Ts; - float Derivative2 = kd2*VelocityError2; + double kd2 = 0.000008; // kind of scaled. + double VelocityError2 = (error2 - e_prev2)/Ts; + double Derivative2 = kd2*VelocityError2; e_prev2 = error2; - float ki2 = 0.00005; // kind of scaled. + double ki2 = 0.00005; // kind of scaled. e_int2 = e_int2+Ts*error2; - float Integrator2 = ki2*e_int2; + double Integrator2 = ki2*e_int2; - float motorValue2 = Proportional2 + Integrator2 + Derivative2; + double motorValue2 = Proportional2 + Integrator2 + Derivative2; return motorValue2; } @@ -555,26 +555,27 @@ { switch(State){ case Cal1: //Calibration motor 1 + State=Cal2; // naar achteren bewegen( als voorbeeld Arvid), daarna deze waarde opslaan als offset. Dan bewegen naar home middels PID en verschil encodervalue uiterste stand en home1. - motorValue1 = 0.1f; motorValue2=0; + /* motorValue1 = 0.1f; motorValue2=0; M2E = fabs(motorValue2); M1E = fabs(motorValue1); - if + if (Huidigepositie1== 0) { SetMotor1(value); //value is waarde encoder voor loodrechte hoeken,. - if (fabs(Huidigepositie1-)<0.01) { + //if (fabs(Huidigepositie1<0.01) { State=Cal2; - } + //} } else { SetMotor1(0); Loop_funtion(); - } + }*/ break; case Cal2: //Calibration motor 2 - if (Huidigepositie2== 0) + /* if (Huidigepositie2== 0) { if (Huidigepositie2<0.01){ State=CalEMG; @@ -582,7 +583,7 @@ else { SetMotor2(0); Loop_funtion(); - } + } */ break; case CalEMG: // Calibration EMG CalibrationEMG(); //calculates average EMGFiltered at rest and measures max signal EMGFiltered. @@ -618,7 +619,7 @@ //} } */ -int main();//deze moet ooit nog weg --> pas op voor errors +int main()//deze moet ooit nog weg --> pas op voor errors { //voor EMG filteren //Left Bicep