2 losse EMG signalen van de biceps en deltoid

Dependencies:   HIDScope MODSERIAL mbed-dsp mbed Encoder

Fork of Lampje_EMG_Gr6 by Jesse Kaiser

Files at this revision

API Documentation at this revision

Comitter:
irisl
Date:
Wed Oct 22 15:12:34 2014 +0000
Parent:
11:bc24a271e6cf
Child:
13:493a953a2a85
Commit message:
Van 50 samples wordt het gemiddelde genomen om zo de grafiek 'gladder'te maken

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Mon Oct 20 13:37:36 2014 +0000
+++ b/main.cpp	Wed Oct 22 15:12:34 2014 +0000
@@ -12,7 +12,7 @@
 //Define objects
 AnalogIn    emg0(PTB1); //Analog input
 AnalogIn    emg1(PTB2); //Analog input
-HIDScope scope(2);
+HIDScope scope(4);
 
 arm_biquad_casd_df1_inst_f32 lowpass_biceps;
 arm_biquad_casd_df1_inst_f32 lowpass_deltoid;
@@ -32,8 +32,36 @@
 //De globale variabele voor het gefilterde EMG signaal
 float filtered_biceps;
 float filtered_deltoid;
+float filtered_average_bi;
+float filtered_average_del;
 
 
+void average_biceps(float filtered_biceps,float *average)
+{
+    static float total=0;
+    static float number=0;
+    total = total + filtered_biceps;
+    number = number + 1;
+    if ( number == 50) {
+        *average = total/50;
+        total = 0;
+        number = 0;
+    }
+}
+
+void average_deltoid(float filtered_input,float *average_output)
+{
+    static float total=0;
+    static float number=0;
+    total = total + filtered_input;
+    number = number + 1;
+    if ( number == 50) {
+        *average_output = total/50;
+        total = 0;
+        number = 0;
+    }
+}
+
 /** Looper function
 * functions used for Ticker and Timeout should be of type void <name>(void)
 * i.e. no input arguments, no output arguments.
@@ -68,21 +96,26 @@
     arm_biquad_cascade_df1_f32(&highnotch_biceps, &emg_value1_f32, &filtered_biceps, 1 );
     filtered_biceps = fabs(filtered_biceps);
     arm_biquad_cascade_df1_f32(&lowpass_biceps, &filtered_biceps, &filtered_biceps, 1 );
-
+    average_biceps(filtered_biceps,&filtered_average_bi);
     //process emg deltoid
     arm_biquad_cascade_df1_f32(&highnotch_deltoid, &emg_value2_f32, &filtered_deltoid, 1 );
     filtered_deltoid = fabs(filtered_deltoid);
     arm_biquad_cascade_df1_f32(&lowpass_deltoid, &filtered_deltoid, &filtered_deltoid, 1 );
+    average_deltoid(filtered_deltoid, &filtered_average_del);
 
     /*send value to PC. */
     //scope.set(0,emg_value1);     //Raw EMG signal biceps
     //scope.set(1,emg_value2);    //Raw EMG signal Deltoid
     scope.set(0,filtered_biceps);  //processed float biceps
-    scope.set(1,filtered_deltoid); //processed float deltoid
+    scope.set(1,filtered_average_bi); //processed float deltoid
+    scope.set(2,filtered_deltoid);  //processed float biceps
+    scope.set(3,filtered_average_del); //processed float deltoid
     scope.send();
 
 }
 
+
+
 void BlinkRed(int n)
 {
     for (int i=0; i<n; i++) {