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 13:25:38 2014 +0000
Parent:
2:39e1bde54e73
Child:
4:40aa1fb60a24
Commit message:
2 EMG signalen meten, gefilterd. Poging 1;

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Thu Oct 16 12:51:13 2014 +0000
+++ b/main.cpp	Thu Oct 16 13:25:38 2014 +0000
@@ -10,9 +10,9 @@
 PwmOut     motorsignal(PTD4);
 
 //Define objects
-AnalogIn    emg0(PTB1); //Analog input 
+AnalogIn    emg0(PTB1); //Analog input
 AnalogIn    emg1(PTB2); //Analog input
-HIDScope scope(3);
+HIDScope scope(4);
 
 arm_biquad_casd_df1_inst_f32 lowpass;
 //lowpass filter settings: Fc = 225 Hz, Fs = 500 Hz, Gain = -3 dB
@@ -49,14 +49,14 @@
 {
     /*variable to store value in*/
     uint16_t emg_value1;
-    uint16_t emg_value2; 
+    uint16_t emg_value2;
 
     float emg_value1_f32;
     float emg_value2_f32;
     /*put raw emg value both in red and in emg_value*/
     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();
 
@@ -64,16 +64,17 @@
     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);
+    filtered_deltoid = fabs(filtered_deltoid);
     arm_biquad_cascade_df1_f32(&lowpass, &filtered_deltoid, &filtered_deltoid, 1 );
 
     /*send value to PC. */
-    scope.set(0,emg_value1);     //uint value
-    scope.set(1,filtered_biceps);  //processed float biceps
-    scope.set(2,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(2,filtered_biceps);  //processed float biceps
+    scope.set(3,filtered_deltoid); //processed float deltoid
     scope.send();
 
 }
@@ -84,25 +85,39 @@
         myled1 = 1;
         myled2 = 1;
         myled3 = 1;
-        wait(1);
+        wait(0.1);
         myled1 = 0;
         myled2 = 1;
         myled3 = 1;
-        wait(1);
+        wait(0.1);
     }
 }
 
-void BlinkGreen (int n)
+void BlinkGreen ()
+{
+
+    myled1 = 1;
+    myled2 = 1;
+    myled3 = 1;
+    wait(0.1);
+    myled1 = 1;
+    myled2 = 0;
+    myled3 = 1;
+    wait(0.1);
+}
+
+
+void BlinkBlue(int n)
 {
     for (int i=0; i<n; i++) {
         myled1 = 1;
         myled2 = 1;
         myled3 = 1;
-        wait(1);
+        wait(0.1);
         myled1 = 1;
-        myled2 = 0;
-        myled3 = 1;
-        wait(1);
+        myled2 = 1;
+        myled3 = 0;
+        wait(0.1);
     }
 }
 
@@ -126,73 +141,49 @@
         {
             char c = '0';
             while(1) {
-                pc.printf("Het programma blijft knipperen totdat er op '1' wordt gedrukt.\n");
+                pc.printf("Span de biceps aan om het instellen te starten");
                 do {
-                    myled1 = 1;
-                    myled2 = 0;
-                    myled3 = 1;
+                    BlinkGreen();
 
 
                 }
-            }
-            while(filtered_biceps < 0.04);
-            //c = pc.getc();
-            while(filtered_biceps > 0.04) {    //Wanneer het EMG signaal een piek geeft wordt het volgende uitgevoerd.
-                c = '0';
-                BlinkRed(2);
 
-                if (pc.readable()) { //Wanneer er binnen de vastgestelde tijd weer op 1 wordt gedrukt, gaat het lampje blauw knipperen, anders reset.
-                    c = pc.getc();
-                    c = '0';
-                    myled1 = 1;
-                    myled2 = 1;
-                    myled3 = 1;
-                    wait(1);
-                    myled1 = 1;
-                    myled2 = 1;
-                    myled3 = 0;
-                    wait(1);
-                    myled1 = 1;
-                    myled2 = 1;
-                    myled3 = 1;
-                    wait(1);
-                    myled1 = 1;
-                    myled2 = 1;
-                    myled3 = 0;
-                    wait(1);
-                } else if (c != '1') {
-                    break;
-                }
+                while(filtered_biceps < 0.04);
+                while(filtered_biceps > 0.04) {    //Wanneer het EMG signaal een piek geeft wordt het volgende uitgevoerd.
+                    BlinkRed(2);
+                    if (pc.readable()) { //Wanneer er binnen de vastgestelde tijd weer op 1 wordt gedrukt, gaat het lampje blauw knipperen, anders reset.
+                        c = pc.getc();
+                        c = '0';
+                        myled1 = 1;
+                        myled2 = 1;
+                        myled3 = 1;
+                        wait(1);
+                        myled1 = 1;
+                        myled2 = 1;
+                        myled3 = 0;
+                        wait(1);
+                        myled1 = 1;
+                        myled2 = 1;
+                        myled3 = 1;
+                        wait(1);
+                        myled1 = 1;
+                        myled2 = 1;
+                        myled3 = 0;
+                        wait(1);
+                    } else if (c != '1') {
+                        break;
+                    }
 
-                if(pc.readable()) {
-                    c = pc.getc();
-                    myled1 = 1;
-                    myled2 = 0;
-                    myled3 = 1;
-                    wait(5); //Dit wordt de duur van het slaan en teruggaan naar de beginpositie totdat er opnieuw gemeten kan worden.
-                    c = '0';
+                    if(pc.readable()) {
+                        c = pc.getc();
+                        myled1 = 1;
+                        myled2 = 0;
+                        myled3 = 1;
+                        wait(5); //Dit wordt de duur van het slaan en teruggaan naar de beginpositie totdat er opnieuw gemeten kan worden.
+                        c = '0';
+                    }
                 }
             }
         }
     }
 }
-}
-
-int i;
-
-int a(void)
-{
-    i=22;
-    return i;
-}
-
-void b (void)
-{
-    int i;
-
-    i=66;
-    int j = a();
-    pc.print(i);
-}
-
-b();