Er is uitleg bijgeschreven en pwm_percentage heeft een andere naam

Dependencies:   Encoder HIDScope MODSERIAL mbed-dsp mbed

Fork of Lampje_EMG_Gr6 by Iris van Leeuwen

Files at this revision

API Documentation at this revision

Comitter:
irisl
Date:
Mon Oct 20 12:37:25 2014 +0000
Parent:
7:1ca320a12035
Child:
10:9547c2a4f9c6
Child:
11:bc24a271e6cf
Commit message:
2 EMG signalen, high+notch filter (dubbel biquad) en lowpass filter; lampjes aansturen moet nog afgesteld worden

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Fri Oct 17 12:57:01 2014 +0000
+++ b/main.cpp	Mon Oct 20 12:37:25 2014 +0000
@@ -12,23 +12,22 @@
 //Define objects
 AnalogIn    emg0(PTB1); //Analog input
 AnalogIn    emg1(PTB2); //Analog input
-HIDScope scope(4);
+HIDScope scope(2);
 
-arm_biquad_casd_df1_inst_f32 lowpass;
+arm_biquad_casd_df1_inst_f32 lowpass_biceps;
+arm_biquad_casd_df1_inst_f32 lowpass_deltoid;
 //lowpass filter settings: Fc = 225 Hz, Fs = 500 Hz, Gain = -3 dB
 float lowpass_const[] = {0.8005910266528647, 1.6011820533057295, 0.8005910266528647, -1.5610153912536877, -0.6413487153577715};
 //state values
-float lowpass_states[4];
-arm_biquad_casd_df1_inst_f32 highpass;
+float lowpass_biceps_states[4];
+float lowpass_deltoid_states[4];
+arm_biquad_casd_df1_inst_f32 highnotch_biceps;
+arm_biquad_casd_df1_inst_f32 highnotch_deltoid;
 //highpass filter settings: Fc = 20 Hz, Fs = 500 Hz, Gain = -3 dB
-float highpass_const[] = {0.956542835577484, -1.913085671154968, 0.956542835577484, 1.911196288237583, -0.914975054072353};
+float highnotch_const[] = {0.956542835577484, -1.913085671154968, 0.956542835577484, 1.911196288237583, -0.914975054072353,0.7063988100714527, -1.1429772843080923, 0.7063988100714527, 1.1429772843080923, -0.41279762014290533};
 //state values
-float highpass_states[4];
-arm_biquad_casd_df1_inst_f32 notch;
-//highpass filter settings: Fc = 50 Hz, Fs = 500 Hz, Gain = -3 dB
-float notch_const[] = {0.7063988100714527, -1.1429772843080923, 0.7063988100714527, 1.1429772843080923, -0.41279762014290533};
-//state values
-float notch_states[4];
+float highnotch_biceps_states[8];
+float highnotch_deltoid_states[8];
 
 //De globale variabele voor het gefilterde EMG signaal
 float filtered_biceps;
@@ -66,22 +65,20 @@
     emg_value2_f32 = emg1.read();
 
     //process emg biceps
-    arm_biquad_cascade_df1_f32(&highpass, &emg_value1_f32, &filtered_biceps, 1 );
+    arm_biquad_cascade_df1_f32(&highnotch_biceps, &emg_value1_f32, &filtered_biceps, 1 );
     filtered_biceps = fabs(filtered_biceps);
-    arm_biquad_cascade_df1_f32(&notch, &filtered_biceps, &filtered_biceps, 1 );
-    arm_biquad_cascade_df1_f32(&lowpass, &filtered_biceps, &filtered_biceps, 1 );
+    arm_biquad_cascade_df1_f32(&lowpass_biceps, &filtered_biceps, &filtered_biceps, 1 );
 
     //process emg deltoid
-    arm_biquad_cascade_df1_f32(&highpass, &emg_value2_f32, &filtered_deltoid, 1 );
+    arm_biquad_cascade_df1_f32(&highnotch_deltoid, &emg_value2_f32, &filtered_deltoid, 1 );
     filtered_deltoid = fabs(filtered_deltoid);
-    arm_biquad_cascade_df1_f32(&notch, &filtered_deltoid, &filtered_deltoid, 1 );
-    arm_biquad_cascade_df1_f32(&lowpass, &filtered_deltoid, &filtered_deltoid, 1 );
+    arm_biquad_cascade_df1_f32(&lowpass_deltoid, &filtered_deltoid, &filtered_deltoid, 1 );
 
     /*send value to PC. */
-    scope.set(0,emg_value1);     //Raw EMG signal biceps
-    scope.set(1,emg_value2);    //Raw EMG signal Deltoid
-    scope.set(2,filtered_biceps);  //processed float biceps
-    scope.set(3,filtered_deltoid); //processed float deltoid
+    //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.send();
 
 }
@@ -134,9 +131,10 @@
 
     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);
-
+    arm_biquad_cascade_df1_init_f32(&lowpass_biceps,1 , lowpass_const, lowpass_biceps_states);
+    arm_biquad_cascade_df1_init_f32(&lowpass_deltoid,1 , lowpass_const, lowpass_deltoid_states);
+    arm_biquad_cascade_df1_init_f32(&highnotch_biceps,2 ,highnotch_const,highnotch_biceps_states);
+    arm_biquad_cascade_df1_init_f32(&highnotch_deltoid,2 ,highnotch_const,highnotch_deltoid_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.