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:
jessekaiser
Date:
Thu Oct 16 12:51:13 2014 +0000
Parent:
1:099b19376f16
Child:
3:0895fa0a6ca4
Commit message:
Bezig omschrijven naar 2 emg signalen ;

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Wed Oct 15 14:11:33 2014 +0000
+++ b/main.cpp	Thu Oct 16 12:51:13 2014 +0000
@@ -10,20 +10,24 @@
 PwmOut     motorsignal(PTD4);
 
 //Define objects
-AnalogIn    emg0(PTB1); //Analog input
-HIDScope scope(2);
+AnalogIn    emg0(PTB1); //Analog input 
+AnalogIn    emg1(PTB2); //Analog input
+HIDScope scope(3);
 
 arm_biquad_casd_df1_inst_f32 lowpass;
-//constants for 5Hz lowpass
+//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;
-//constants for 0.5Hz highpass
+//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};
 //state values
 float highpass_states[4];
-float filtered_emg;
+
+//De globale variabele voor het gefilterde EMG signaal
+float filtered_biceps;
+float filtered_deltoid;
 
 
 /** Looper function
@@ -44,21 +48,32 @@
 void looper()
 {
     /*variable to store value in*/
-    uint16_t emg_value;
+    uint16_t emg_value1;
+    uint16_t emg_value2; 
 
-    float emg_value_f32;
+    float emg_value1_f32;
+    float emg_value2_f32;
     /*put raw emg value both in red and in emg_value*/
-    emg_value = emg0.read_u16(); // read direct ADC result, converted to 16 bit integer (0..2^16 = 0..65536 = 0..3.3V)
-    emg_value_f32 = emg0.read();
+    emg_value1 = emg0.read_u16(); // read direct ADC result, converted to 16 bit integer (0..2^16 = 0..65536 = 0..3.3V)
+    emg_value1_f32 = emg0.read();
+    
+    emg_value2 = emg1.read_u16();
+    emg_value2_f32 = emg1.read();
 
-    //process emg
-    arm_biquad_cascade_df1_f32(&highpass, &emg_value_f32, &filtered_emg, 1 );
-    filtered_emg = fabs(filtered_emg);
-    arm_biquad_cascade_df1_f32(&lowpass, &filtered_emg, &filtered_emg, 1 );
+    //process emg biceps
+    arm_biquad_cascade_df1_f32(&highpass, &emg_value1_f32, &filtered_biceps, 1 );
+    filtered_biceps = fabs(filtered_biceps);
+    arm_biquad_cascade_df1_f32(&lowpass, &filtered_biceps, &filtered_biceps, 1 );
+    
+    //process emg deltoid
+    arm_biquad_cascade_df1_f32(&highpass, &emg_value2_f32, &filtered_deltoid, 1 );
+    filtered_biceps = fabs(filtered_biceps);
+    arm_biquad_cascade_df1_f32(&lowpass, &filtered_deltoid, &filtered_deltoid, 1 );
 
     /*send value to PC. */
-    scope.set(0,emg_value);     //uint value
-    scope.set(1,filtered_emg);  //processed float
+    scope.set(0,emg_value1);     //uint value
+    scope.set(1,filtered_biceps);  //processed float biceps
+    scope.set(2,filtered_deltoid); //processed float deltoid
     scope.send();
 
 }
@@ -77,6 +92,20 @@
     }
 }
 
+void BlinkGreen (int n)
+{
+    for (int i=0; i<n; i++) {
+        myled1 = 1;
+        myled2 = 1;
+        myled3 = 1;
+        wait(1);
+        myled1 = 1;
+        myled2 = 0;
+        myled3 = 1;
+        wait(1);
+    }
+}
+
 int main()
 {
     pc.baud(115200);
@@ -106,9 +135,9 @@
 
                 }
             }
-            while(filtered_emg < 0.04);
+            while(filtered_biceps < 0.04);
             //c = pc.getc();
-            while(filtered_emg > 0.04) {    //Wanneer het EMG signaal een piek geeft wordt het volgende uitgevoerd.
+            while(filtered_biceps > 0.04) {    //Wanneer het EMG signaal een piek geeft wordt het volgende uitgevoerd.
                 c = '0';
                 BlinkRed(2);