emg eind code

Dependencies:   MODSERIAL mbed

Fork of EMGStdevV3 by Dan August

Revision:
3:e609cd999fd2
Parent:
1:1ffb9e3ae00f
Child:
4:117c0bb09513
--- a/main.cpp	Mon Nov 04 13:26:18 2013 +0000
+++ b/main.cpp	Mon Nov 04 20:09:22 2013 +0000
@@ -91,18 +91,18 @@
             sig_out=sqrt(sum/size);
             sum=0;
             break;
-        /*case 3:
+        case 3:
             keeper_flexoren[count_flexoren]=input;
             count_flexoren++;
             if(count_flexoren==size) count_flexoren=0;
     
-            size=sizeof(keeper_flexoren)/sizeof(float);
-            for(int i; i < size; i++){
+            //size=sizeof(keeper_flexoren)/sizeof(float);
+            for(int i=0; i < size; i++){
                 sum+=keeper_flexoren[i];        
             }
             mean=sum/size;
             sum=0;
-            for(int i; i < size; i++){
+            for(int i=0; i < size; i++){
                 sum+=(keeper_flexoren[i]-mean)*(keeper_flexoren[i]-mean);
             }
             sig_out=sqrt(sum/size);
@@ -113,18 +113,18 @@
             count_extensoren++;
             if(count_extensoren==size) count_extensoren=0;
     
-            size=sizeof(keeper_extensoren)/sizeof(float);
-            for(int i; i < size; i++){
+            //size=sizeof(keeper_extensoren)/sizeof(float);
+            for(int i=0; i < size; i++){
                 sum+=keeper_extensoren[i];        
             }
             mean=sum/size;
             sum=0;
-            for(int i; i < size; i++){
+            for(int i=0; i < size; i++){
                 sum+=(keeper_extensoren[i]-mean)*(keeper_extensoren[i]-mean);
             }
             sig_out=sqrt(sum/size);
             sum=0;
-            break;*/
+            break;
             } // einde switch
         return sig_out;
         } // einde if startcount ...
@@ -140,9 +140,21 @@
             case 2:
                 keeper_triceps[count_triceps]=input;
                 count_triceps++;
-                if(count_triceps>=size)
+                if(count_triceps >= size)
                     count_triceps=0;
                 break;
+            case 3:
+                keeper_flexoren[count_flexoren]=input;
+                count_flexoren++;
+                if(count_flexoren >= size)
+                    count_flexoren=0;
+                break;
+            case 4:
+                keeper_extensoren[count_extensoren]=input;
+                count_extensoren++;
+                if(count_extensoren >= size)
+                    count_extensoren=0;
+                break;    
             } // einde switch
         } // einde else
 } // einde std_dev
@@ -282,27 +294,36 @@
     float dy;
     //static int sig_count = 1;
 emg_value_biceps=std_dev(filter(1),1);
-emg_value_triceps=std_dev(filter(2),2);  
-dy = emg_value_biceps-emg_value_triceps;
-    
+emg_value_triceps=std_dev(filter(2),2);
+/*emg_value_flexoren = (100*filter(3)-44);
+emg_value_extensoren = (100*filter(4)-44);*/
+
+    if(emg_value_biceps < 4.5)
+        emg_value_biceps=0;
+    else if (emg_value_biceps > 13)
+         emg_value_biceps = 13;
+    //emg_value_biceps =  emg_value_biceps;
     
-    /*emg_value_flexoren = (100*filter(3)-44);
-    emg_value_extensoren = (100*filter(4)-44);*/
-    
-    /*if(emg_value_biceps < 0.10){
+    if(emg_value_triceps < 2.5)
         emg_value_biceps=0;
-        }
-    else {
-        emg_value_biceps = emg_value_biceps;
-         }
-    if(emg_value_triceps < 0.10){
-        emg_value_triceps=0;
-         }
-    else {
-        emg_value_triceps=emg_value_triceps;
-         }
-    */     
-    //dy = emg_value_biceps-emg_value_triceps;
+    else if (emg_value_biceps > 10)
+         emg_value_biceps = 10;
+    //emg_value_triceps =  emg_value_triceps;
+    
+    if(emg_value_flexoren < 2)
+        emg_value_flexoren=0;
+    else if (emg_value_flexoren > 8)
+         emg_value_flexoren = 8;
+    emg_value_flexoren = 2*emg_value_flexoren;
+    
+    if(emg_value_extensoren < 5)
+        emg_value_extensoren=0;
+    else if (emg_value_extensoren > 13)
+         emg_value_extensoren = 13;
+ 
+dy = emg_value_biceps - emg_value_triceps;
+dx = 2*(emg_value_flexoren - emg_value_extensoren);
+    
     if(pc.rxBufferGetSize(0)-pc.rxBufferGetCount() > 30)
         pc.printf("%.6f, %.6f, %.6f\n",emg_value_biceps, emg_value_triceps, dy);
     /**When not using the LED, the above could also have been done this way: