Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: HIDScope MODSERIAL mbed-dsp mbed
Fork of emg_filter by
Diff: EMGfilter.cpp
- Revision:
- 58:b5bb78380767
- Parent:
- 57:5136d9823508
- Child:
- 59:fa8d6909d8ac
--- a/EMGfilter.cpp Mon Oct 20 12:14:14 2014 +0000
+++ b/EMGfilter.cpp Mon Oct 20 12:22:55 2014 +0000
@@ -54,30 +54,30 @@
pc.printf("Calibratie drempelwaarde Triceps stand 1\n");
wait(0.5);
{
-int i;
-int j=19;
+ int i;
+ int j=19;
-for (i = 0, i<=j; i ++)
-{
- /*variable to store value in*/
- uint16_t emg_valueT1i_C;
+ for (i = 0, i<=j; i ++) {
+ /*variable to store value in*/
+ uint16_t emg_valueT1i_C;
+
+ float emg_value_f32T1i_C;
+ /*put raw emg value both in red and in emg_value*/
+ emg_valueT1i_C = emgT1i_C.read_u16(); // read direct ADC result, converted to 16 bit integer (0..2^16 = 0..65536 = 0..3.3V)
+ emg_value_f32T1i_C = emgT1i_C.read();
- float emg_value_f32T1i_C;
- /*put raw emg value both in red and in emg_value*/
- emg_valueT1i_C = emgT1i_C.read_u16(); // read direct ADC result, converted to 16 bit integer (0..2^16 = 0..65536 = 0..3.3V)
- emg_value_f32T1i_C = emgT1i_C.read();
+ //process emg
+ arm_biquad_cascade_df1_f32(&highpass, &emg_value_f32T1i_C, &filtered_emgT1i_C, 1 );
+ filtered_emgT1i_C = fabs(filtered_emgT1i_C);
+ arm_biquad_cascade_df1_f32(&lowpass, &filtered_emgT1i_C, &filtered_emgT1i_C, 1 );
+ }
+}
+// Mean Triceps stand 1
- //process emg
- arm_biquad_cascade_df1_f32(&highpass, &emg_value_f32T1i_C, &filtered_emgT1i_C, 1 );
- filtered_emgT1i_C = fabs(filtered_emgT1i_C);
- arm_biquad_cascade_df1_f32(&lowpass, &filtered_emgT1i_C, &filtered_emgT1i_C, 1 );
-}}
- // Mean Triceps stand 1
-
- float MeanT1=filtered_emgT10_C*0.05+filtered_emgT11_C*0.05+filtered_emgT12_C*0.05+filtered_emgT13_C*0.05+filtered_emgT14_C*0.05+filtered_emgT15_C*0.05+filtered_emgT16_C*0.05+filtered_emgT17_C*0.05+filtered_emgT18_C*0.05+filtered_emgT19_C*0.05+filtered_emgT110_C*0.05+filtered_emgT111_C*0.05+filtered_emgT112_C*0.05+filtered_emgT113_C*0.05+filtered_emgT114_C*0.05+filtered_emgT115_C*0.05+filtered_emgT116_C*0.05+filtered_emgT117_C*0.05+filtered_emgT118_C*0.05+filtered_emgT119_C*0.05;
+float MeanT1=filtered_emgT10_C*0.05+filtered_emgT11_C*0.05+filtered_emgT12_C*0.05+filtered_emgT13_C*0.05+filtered_emgT14_C*0.05+filtered_emgT15_C*0.05+filtered_emgT16_C*0.05+filtered_emgT17_C*0.05+filtered_emgT18_C*0.05+filtered_emgT19_C*0.05+filtered_emgT110_C*0.05+filtered_emgT111_C*0.05+filtered_emgT112_C*0.05+filtered_emgT113_C*0.05+filtered_emgT114_C*0.05+filtered_emgT115_C*0.05+filtered_emgT116_C*0.05+filtered_emgT117_C*0.05+filtered_emgT118_C*0.05+filtered_emgT119_C*0.05;
-
+
@@ -103,7 +103,7 @@
scope.send();
// Moving Average Filter Biceps
-
+
{
B0=filtered_emgB;
MOVAVG_B=B0*0.1+B1*0.1+B2*0.1+B3*0.1+B4*0.1+B5*0.1+B6*0.1+B7*0.1+B8*0.1+B9*0.1;
@@ -139,21 +139,21 @@
scope.set(3,filtered_emgT); //processed float
scope.send();
- // Moving Average Filter Triceps
-{
- T0=filtered_emgT;
- MOVAVG_T=T0*0.1+T1*0.1+T2*0.1+T3*0.1+T4*0.1+T5*0.1+T6*0.1+T7*0.1+T8*0.1+T9*0.1;
+ // Moving Average Filter Triceps
+ {
+ T0=filtered_emgT;
+ MOVAVG_T=T0*0.1+T1*0.1+T2*0.1+T3*0.1+T4*0.1+T5*0.1+T6*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;
-}
+ T9=T8;
+ T8=T7;
+ T7=T6;
+ T6=T5;
+ T5=T4;
+ T4=T3;
+ T3=T2;
+ T2=T1;
+ T1=T0;
+ }
}
int main()
@@ -183,35 +183,37 @@
drempelwaardeT1=4.99;
drempelwaardeT2=7;
int yT1, yT2;
-
- if (MOVAVG_T > drempelwaardeT1) {
- yT1=1;
- if (MOVAVG_T > drempelwaardeT2) {
+
+ if (MOVAVG_T > drempelwaardeT1) {
+ yT1=1;
+ if (MOVAVG_T > drempelwaardeT2) {
yT2=1;
} else {
- yT2=0; }
- } else {
- yT1=0;
+ yT2=0;
}
-
-int positie;
-
- positie=yT1+yT2;
- if (positie==0) {
- pc.printf("Motor 2 beweegt niet\n");
- } else {
- pc.printf("Motor 2 gaat beweegen\n"); }
- if (positie==1) {
- pc.printf("Motor 2 beweegt naar positie 1\n");
- } else {
- pc.printf("Motor 1 beweegt niet naar positie 1\n");
- }
- if (positie==2) {
- pc.printf("Motor 1 beweegt naar positie 2\n");
- } else {
- pc.printf("Motor 1 beweegt niet naar positie 2\n");
- }
-
+ } else {
+ yT1=0;
+ }
+
+ int positie;
+
+ positie=yT1+yT2;
+ if (positie==0) {
+ pc.printf("Motor 2 beweegt niet\n");
+ } else {
+ pc.printf("Motor 2 gaat beweegen\n");
+ }
+ if (positie==1) {
+ pc.printf("Motor 2 beweegt naar positie 1\n");
+ } else {
+ pc.printf("Motor 1 beweegt niet naar positie 1\n");
+ }
+ if (positie==2) {
+ pc.printf("Motor 1 beweegt naar positie 2\n");
+ } else {
+ pc.printf("Motor 1 beweegt niet naar positie 2\n");
+ }
+}
void AntwoordB() {
drempelwaardeB1=4.99;
@@ -224,32 +226,35 @@
if (MOVAVG_B > drempelwaardeB1) {
yB1=1;
if (MOVAVG_B > drempelwaardeB2) {
- yB2=1;
- if (MOVAVG_B > drempelwaardeB3) {
- yB3=1;}
- else {
- yB3=0;}
+ yB2=1;
+ if (MOVAVG_B > drempelwaardeB3) {
+ yB3=1;
+ } else {
+ yB3=0;
+ }
+ } else {
+ yB2=0;
+ }
} else {
- yB2=0; }
- } else {
yB1=0;
}
-
+
int snelheidsstand;
-
+
snelheidsstand=yB1+yB2+yB3;
if (snelheidsstand==1) {
- pc.printf("Motor 1 beweegt met snelheid 1\n");
- } else {
- pc.printf("Motor 1 beweegt niet met snelheid 1\n"); }
- if (snelheidsstand==2) {
- pc.printf("Motor 1 beweegt met snelheid 2\n");
- } else {
- pc.printf("Motor 1 beweegt niet met snelheid 2\n");
- }
- if (snelheidsstand==3) {
- pc.printf("Motor 1 beweegt met snelheid 3\n");
- } else {
- pc.printf("Motor 1 beweegt niet met snelheid 3\n");
- }
+ pc.printf("Motor 1 beweegt met snelheid 1\n");
+ } else {
+ pc.printf("Motor 1 beweegt niet met snelheid 1\n");
}
+ if (snelheidsstand==2) {
+ pc.printf("Motor 1 beweegt met snelheid 2\n");
+ } else {
+ pc.printf("Motor 1 beweegt niet met snelheid 2\n");
+ }
+ if (snelheidsstand==3) {
+ pc.printf("Motor 1 beweegt met snelheid 3\n");
+ } else {
+ pc.printf("Motor 1 beweegt niet met snelheid 3\n");
+ }
+ }
