Dependencies: mbed HIDScope biquadFilter
Diff: main.cpp
- Revision:
- 23:4c66541f00d3
- Parent:
- 22:65c90d816235
- Child:
- 24:2637e0160301
--- a/main.cpp Fri Oct 11 09:59:08 2019 +0000 +++ b/main.cpp Mon Oct 14 10:36:54 2019 +0000 @@ -1,6 +1,7 @@ #include "mbed.h" #include "HIDScope.h" #include "BiQuad.h" +Serial pc(USBTX, USBRX); InterruptIn but1(PTC6); BiQuad bq1 (0.881889334678067, -1.76377866935613, 0.8818893346780671, -1.77069673005903, 0.797707797506027); @@ -23,19 +24,27 @@ * this function samples the emg and sends it to HIDScope **/ - float sample_max = 0; - float sample_min = 1; + float sample_max = 0.0f; + float sample_min = 1.0f; - float emg0_value = emg0.read(); + float emg0_value = emg0.read(); float emg1_value = emg1.read(); float filter_value = fabs(bq2.step(fabs(bq1.step(emg0_value - emg1_value)))); + void calibrate() { - + if (filter_value > sample_max) { + sample_max = filter_value; + } + if (sample_min > filter_value) { + sample_min = filter_value; + } filter_value = filter_value-sample_min; filter_value = filter_value/(sample_max-sample_min); + pc.printf("Calibrate function has been called\n\r"); } + void sample() { @@ -45,19 +54,26 @@ //double filter_value = bqc.step(emg1_value); float filter_value = fabs(bq2.step(fabs(bq1.step(emg0_value - emg1_value)))); + //float filter_value = fabs(bq2.step(fabs(bq1.step(emg0_value)))); //alleen emg0 geeft een betere baseline dan emg0 - emg1 + /* if (filter_value > sample_max) { sample_max = filter_value; } if (sample_min > filter_value) { sample_min = filter_value; } + */ - but1.mode(PullUp); - but1.rise(&calibrate); + + //but1.mode(PullUp); + //but1.rise(&calibrate); + + calibrate(); + scope.set(0, emg0.read() ); scope.set(1, emg1.read() ); - //scope.set(2, filter_value); + scope.set(2, filter_value); /* Repeat the step above if required for more channels of required (channel 0 up to 5 = 6 channels) * Ensure that enough channels are available (HIDScope scope( 2 )) * Finally, send all channels to the PC at once */ @@ -69,11 +85,13 @@ int main() { + pc.baud(115200); bqc.add( &bq1); /**Attach the 'sample' function to the timer 'sample_timer'. * this ensures that 'sample' is executed every... 0.002 seconds = 500 Hz */ sample_timer.attach(&sample, 0.002); /*empty loop, sample() is executed periodically*/ - while(1) {} + while(1) { + } }