Control up to two motors using filtered EMG signals and a PID controller

Dependencies:   FastPWM HIDScope MODSERIAL QEI Matrix biquadFilter controller errorFetch mbed motorConfig refGen MatrixMath inverseKinematics

Fork of Minor_test_serial by First Last

Revision:
36:f3f3327d1d5a
Parent:
35:99bf23b34ee3
Child:
37:633dd1901681
diff -r 99bf23b34ee3 -r f3f3327d1d5a main.cpp
--- a/main.cpp	Sun Oct 22 08:07:06 2017 +0000
+++ b/main.cpp	Sun Oct 22 08:39:28 2017 +0000
@@ -20,8 +20,8 @@
 biquadFilter HPbq2(1.0000, -2.0000, 1.0000, 1.0000, -1.9903, 0.9904);
 biquadChain HPbqc(HPbq1, HPbq2);
 // low pass
-biquadFilter LPbq1(1.0e-6*0.1202, 1.0e-6*0.2405, 1.0e-6*0.1202, 1.0000, -1.9313, 0.9327);
-biquadFilter LPbq2(1.0000, 2.0000, 1.0000, 1.0000, -1.9702, 0.9716);
+biquadFilter LPbq1(1.0e-5*1.3294, 1.0e-5*2.6587, 1.0e-5*1.3294, 1.0000, -1.7783, 0.7924);
+biquadFilter LPbq2(1.0000, 2.0000, 1.0000, 1.0000, -1.8934, 0.9085);
 biquadChain LPbqc(LPbq1, LPbq2);
 
 // Controller parameters
@@ -107,6 +107,7 @@
     m2counts = Encoder2.getPulses();
     float r1 = ref1.getReference();
     r1 = HPbqc.applyFilter(r1);
+    r1 = fabs(r1);
     r1 = LPbqc.applyFilter(r1);
     e1.fetchError(m1counts, r1);
     float motorValue = motorController1.control(e1.e_pos, e1.e_int, e1.e_der);