Het EMG verwerkingsdeel

Dependencies:   mbed

Revision:
0:3db1f2a9d605
Child:
1:3cc91fc2fb1c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Oct 26 07:47:32 2018 +0000
@@ -0,0 +1,98 @@
+#include "mbed.h"
+
+// inputs EMG
+AnalogIn emg0( A0 );
+AnalogIn emg1( A1 );
+AnalogIn emg3( A2 );
+
+// Variabelen EMG
+const double a1 =
+const double a2 =
+const double b0 =
+const double b1 =
+const double b2 =
+const double c1 =
+const double c2 =
+const double d0 =
+const double d1 =
+const double d2 =
+
+double highpassFilter1 = 0;
+double lowpassFilter1 = 0;
+double highpassFilter2 = 0;
+double lowpassFilter2 = 0;
+
+// Filteren
+void filterEMG()
+{
+highpassFilter1 = fabs(biquad(emg0.read(), a1, a2, b0, b1, b2));
+lowpassFilter1 = biquad(highpassFilter1, c1, c2, d0, d1, d2);
+highpassFilter2 = fabs(biquad(emg1.read(), a1, a2, b0, b1, b2));
+lowpassFilter2 = biquad(highpassFilter2, c1, c2, d0, d1, d2);
+highpassFilter3 = fabs(biquad(emg2.read(), a1, a2, b0, b1, b2));
+lowpassFilter3 = biquad(highpassFilter3, c1, c2, d0, d1, d2);
+}
+
+//calibrate (hier moet iets met maximale waarden enzo
+dempelwaarde = int 0.5 * max_lowpassFilter3 
+
+//Direction control
+enum direction {Pos_RB, Pos_LB, Pos_RO, Pos_LO};
+direction currentdirection = Pos_RB;
+bool directionchanged = true;
+
+int main()
+{
+    while ()
+    {
+        switch (currentdirection)
+        {
+            case Pos_RB:
+            
+            lowpassFilter1 = lowpassFilter1;
+            lowpassFilter2 = lowpassFilter2;
+            
+            if (lowpassFilter3 > drempelwaarde)
+            {
+                currentdirection == Pos_LB;
+                cirectionchanged = true;
+                }
+            break;    
+            
+            case Pos_LB:
+            
+            lowpassFilter1 = lowpassFilter1 * int -1;
+            lowpassFilter2 = lowpassFilter2;
+            
+            if (lowpassFilter3 > drempelwaarde)
+            
+            {
+                currentdirection == Pos_RO;
+                cirectionchanged = true;
+                }
+            break;
+                        
+            case Pos_RO:
+            
+            lowpassFilter1 = lowpassFilter1;
+            lowpassFilter2 = lowpassFilter2 * int -1;
+                    
+            if (lowpassFilter3 > drempelwaarde)
+            {
+                currentdirection == Pos_LO;
+                cirectionchanged = true;
+                }
+            break;
+                
+            case Pos_LO:
+            
+            lowpassFilter1 = lowpassFilter1 * int -1;
+            lowpassFilter2 = lowpassFilter2 * int -1;
+            
+            if (lowpassFilter3 > drempelwaarde)
+            {
+                currentdirection == Pos_RB;
+                cirectionchanged = true;
+                }
+            break;
+}
\ No newline at end of file