2 losse EMG signalen van de biceps en deltoid
Dependencies: HIDScope MODSERIAL mbed-dsp mbed Encoder
Fork of Lampje_EMG_Gr6 by
Diff: main.cpp
- Revision:
- 12:9e6e49af9304
- Parent:
- 11:bc24a271e6cf
- Child:
- 13:493a953a2a85
diff -r bc24a271e6cf -r 9e6e49af9304 main.cpp --- 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++) {