:)
Dependencies: HIDScope MODSERIAL mbed-dsp mbed
Fork of emg_filter by
Revision 36:82fd9d862266, committed 2014-10-17
- Comitter:
- Tanja2211
- Date:
- Fri Oct 17 11:24:22 2014 +0000
- Parent:
- 35:7556e792c260
- Child:
- 37:c5b3935e59a6
- Commit message:
- :)
Changed in this revision
EMGfilter.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/EMGfilter.cpp Fri Oct 17 11:15:18 2014 +0000 +++ b/EMGfilter.cpp Fri Oct 17 11:24:22 2014 +0000 @@ -101,7 +101,7 @@ scope.send(); float B0, B1, B2, B3, B4, B5, B6, B7, B8, B9, MOVAVG_B; - { + { B0=filtered_emgB; MOVAVG_B=B0*0.1+B1*0.1+B2*0.1+B3*0.1+B4*0.1+B5*0.1+B7*0.1+B8*0.1+B9*0.1; B9=B8; @@ -115,82 +115,79 @@ B1=B0; } - - float T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, MOVAVG_T; - { - T0=filtered_emgT; - MOVAVG_T=T0*0.1+T1*0.1+T2*0.1+T3*0.1+T4*0.1+T5*0.1+T7*0.1+T8*0.1+T9*0.1; - T9=T8; - T8=T7; - T7=T6; - T6=T5; - T5=T4; - T4=T3; - T3=T2; - T2=T1; - T1=T0; + + + + void looperT() { + /*variable to store value in*/ + uint16_t emg_valueT; -} + float emg_value_f32T; + /*put raw emg value both in red and in emg_value*/ + emg_valueT = emgT.read_u16(); // read direct ADC result, converted to 16 bit integer (0..2^16 = 0..65536 = 0..3.3V) + emg_value_f32T = emgT.read(); -void looperT() -{ - /*variable to store value in*/ - uint16_t emg_valueT; - - float emg_value_f32T; - /*put raw emg value both in red and in emg_value*/ - emg_valueT = emgT.read_u16(); // read direct ADC result, converted to 16 bit integer (0..2^16 = 0..65536 = 0..3.3V) - emg_value_f32T = emgT.read(); + //process emg + arm_biquad_cascade_df1_f32(&highpass, &emg_value_f32T, &filtered_emgT, 1 ); + filtered_emgT = fabs(filtered_emgT); + arm_biquad_cascade_df1_f32(&lowpass, &filtered_emgT, &filtered_emgT, 1 ); - //process emg - arm_biquad_cascade_df1_f32(&highpass, &emg_value_f32T, &filtered_emgT, 1 ); - filtered_emgT = fabs(filtered_emgT); - arm_biquad_cascade_df1_f32(&lowpass, &filtered_emgT, &filtered_emgT, 1 ); - - /*send value to PC. */ - scope.set(2,emg_valueT); //uint value - scope.set(3,filtered_emgT); //processed float - scope.send(); - -} + /*send value to PC. */ + scope.set(2,emg_valueT); //uint value + scope.set(3,filtered_emgT); //processed float + scope.send(); + float T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, MOVAVG_T; + { + T0=filtered_emgT; + MOVAVG_T=T0*0.1+T1*0.1+T2*0.1+T3*0.1+T4*0.1+T5*0.1+T7*0.1+T8*0.1+T9*0.1; + T9=T8; + T8=T7; + T7=T6; + T6=T5; + T5=T4; + T4=T3; + T3=T2; + T2=T1; + T1=T0; + } -int main() -{ - Ticker log_timer; - //set up filters. Use external array for constants - arm_biquad_cascade_df1_init_f32(&lowpass,1 , lowpass_const, lowpass_states); - arm_biquad_cascade_df1_init_f32(&highpass,1 ,highpass_const, highpass_states); + } + + int main() { + Ticker log_timer; + //set up filters. Use external array for constants + arm_biquad_cascade_df1_init_f32(&lowpass,1 , lowpass_const, lowpass_states); + arm_biquad_cascade_df1_init_f32(&highpass,1 ,highpass_const, highpass_states); - /**Here you attach the 'void looper(void)' function to the Ticker object - * The looper() function will be called every 0.01 seconds. - * Please mind that the parentheses after looper are omitted when using attach. - */ - log_timer.attach(looperB, 0.005);//?? - log_timer.attach(looperT, 0.005);//?? - while(1) { //Loop - /*Empty!*/ - /*Everything is handled by the interrupt routine now!*/ + /**Here you attach the 'void looper(void)' function to the Ticker object + * The looper() function will be called every 0.01 seconds. + * Please mind that the parentheses after looper are omitted when using attach. + */ + log_timer.attach(looperB, 0.005);//?? + log_timer.attach(looperT, 0.005);//?? + while(1) { //Loop + /*Empty!*/ + /*Everything is handled by the interrupt routine now!*/ + } } -} //filtered_emgB //filtered_emgT -void Antwoord() -{ - float drempelwaarde=4.99; - int y; + void Antwoord() { + float drempelwaarde=4.99; + int y; - if (filtered_emgB > drempelwaarde) { - y=1; - } else { - y=0; - } + if (filtered_emgB > drempelwaarde) { + y=1; + } else { + y=0; + } - if (y==1) { - pc.printf("Motor 1 beweegt\n"); - } else { - pc.printf("Motor 1 beweegt niet\n"); + if (y==1) { + pc.printf("Motor 1 beweegt\n"); + } else { + pc.printf("Motor 1 beweegt niet\n"); + } } -} //drempelwaarde..... \ No newline at end of file