Script of MBR Group 20. Control of robot by EMG and/or potmeters
Dependencies: Encoder HIDScope MODSERIAL biquadFilter mbed
Fork of Script_Group_20 by
Diff: main.cpp
- Revision:
- 4:5607088ef6f5
- Parent:
- 3:36e706d6b3d2
- Child:
- 5:daa916945271
diff -r 36e706d6b3d2 -r 5607088ef6f5 main.cpp --- a/main.cpp Mon Oct 23 15:26:44 2017 +0000 +++ b/main.cpp Mon Oct 30 12:11:06 2017 +0000 @@ -40,6 +40,7 @@ double GetReferencePosition() { + double emgNotch = NF.step(emg.read() ); // Notch filter double emgHP = HPF.step(emgNotch); // High-pass filter: also normalises around 0. double emgAbsHP = abs(emgHP); // Take absolute value @@ -53,17 +54,19 @@ scope.set(0,emgFiltered); scope.set(1,emg.read()); scope.send(); - //pcbaud moet erbij - printf("emgFiltered = %d", emgFiltered); + pc.baud(115200); + printf("emgread = %d , emgFiltered = %d \r\n",emg.read(), emgFiltered); int maxwaarde = 4096; // = 64x64 double refP = emgFiltered*maxwaarde; return refP; // value between 0 and 4096 } + double Encoder () { double Huidigepositie = motor1.getPosition (); return Huidigepositie; // huidige positie = current position } +/* 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) { double kp = 0.001; // has jet to be scaled @@ -82,7 +85,7 @@ double motorValue = Proportional + Integrator + Derivative; return motorValue; } - +*/ void SetMotor1(double motorValue) { if (motorValue >= 0) @@ -107,9 +110,10 @@ { // hier the control of the control system double refP = GetReferencePosition(); - double Huidigepositie = Encoder(); - double error = (refP - Huidigepositie);// make an error - double motorValue = FeedBackControl(error, e_prev, e_int); + //double Huidigepositie = Encoder(); + //double error = (refP - Huidigepositie);// make an error + //double motorValue = FeedBackControl(error, e_prev, e_int); + double motorValue = refP; SetMotor1(motorValue); }