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:
- 3:0895fa0a6ca4
- Parent:
- 2:39e1bde54e73
- Child:
- 4:40aa1fb60a24
diff -r 39e1bde54e73 -r 0895fa0a6ca4 main.cpp --- 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();