Remco Dasselaar / Mbed 2 deprecated TotalControlEmg2

Dependencies:   HIDScope MODSERIAL QEI TextLCD mbed

Fork of TotalControlEmg2 by Remco Dasselaar

Files at this revision

API Documentation at this revision

Comitter:
Bartvaart
Date:
Tue Oct 06 14:25:53 2015 +0000
Parent:
3:344b173f85fe
Child:
5:b400209df739
Commit message:
Gemiddelde waarde toegevoegd, zodat er hopelijk minder hoog frequente ruis is.

Changed in this revision

Meanvalue.cpp Show annotated file Show diff for this revision Revisions of this file
Meanvalue.h Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Meanvalue.cpp	Tue Oct 06 14:25:53 2015 +0000
@@ -0,0 +1,21 @@
+#include "Meanvalue.h"
+
+double sum = 0;
+int a = 0;
+
+double Meanvalue(double y){
+    
+    double sum = sum + y;
+    int a = a + 1;
+    
+    if a == 10
+    {
+        ymean = sum / a;
+        sum = 0;
+        a = 0;    
+        return ymean;
+    }
+    else{
+        return 0;
+        }
+    }
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Meanvalue.h	Tue Oct 06 14:25:53 2015 +0000
@@ -0,0 +1,3 @@
+#include "mbed.h"
+
+double Meanvalue(double y)
\ No newline at end of file
--- a/main.cpp	Tue Oct 06 13:18:52 2015 +0000
+++ b/main.cpp	Tue Oct 06 14:25:53 2015 +0000
@@ -5,26 +5,26 @@
 
 AnalogIn    emg(A0); //Analog input van emg kabels
 Ticker      EMGticker;
-HIDScope    scope(2); //2 scopes
+HIDScope    scope(3); //2 scopes
 
 // constante variabelen:
 
 //Sample frequentie
 double Fs = 500; //Hz
 double t = 1/ Fs; // voor EMGticker
-
+double gem = 0.4557; // gemiddelde waarde emgsignaal
 
 // Filter1a: 50Hz Notch
 double v1_50a = 0, v2_50a = 0;
-const double a1_50a = -1.61803398875, a2_50a = 1.00000000000;
-const double b0_50a = 1.00000000000, b1_50a = -1.61803398875, b2_50a = 1.00000000000;
+const double a1_50a = -1.56858163817, a2_50a = 0.96424138921;
+const double b0_50a = 1.00000000000, b1_50a = -1.61854514265, b2_50a = 1.00000000000;
 const double gain_50a = 1.000000;
 
 // Filter1b: 50Hz Notch
 double v1_50b = 0, v2_50b = 0;
-const double a1_50b = -1.61803398875, a2_50b = 1.00000000000;
-const double b0_50b = 1.00000000000, b1_50b = -1.61803398875, b2_50b = 1.00000000000;
-const double gain_50b = 1.000000;
+const double a1_50b = -1.61100357834, a2_50b = 0.96592171046;
+const double b0_50b = 1.00000000000, b1_50b = -1.61854514265, b2_50b = 1.00000000000;
+const double gain_50b = 0.965081;
 
 
 // Filter1: 20Hz HighPass
@@ -44,7 +44,7 @@
     //u = input waarde
     //y = output waarde
 
-    double u = emg.read(); // lees waarde van emg signaal uit
+    double u = emg.read() - gem; // lees waarde van emg signaal uit
     
     // Op deze manier worden de waardes ingelezen in Filter. Zorg dus voor dezelfde volgorde, zodat de waardes goed uitgelezen worden!:
     // Filter(double u, double &v1, double &v2, const double a1, const double a2, const double b0, const double b1, const double b2, const double gain)
@@ -64,9 +64,12 @@
     
     double y = 10 * yLP;
     
+    double ymean = Meanvalue(y);
+    
     // Plotten in HIDscope
     scope.set(0,u); //ongefilterde waarde naar scope 1
     scope.set(1,y); //gefilterde waarde naar scope 2
+    scope.set(2,ymean); // gefilterde en gemiddelde waarde naar scope 3
     scope.send(); //stuur de waardes naar HIDscope
 }