Mirjam Bos / Mbed 2 deprecated emg_calibration

Dependencies:   BiQuad4th_order Biquad HIDScope MODSERIAL biquadFilter mbed

Fork of emg_calibration by Silvie van den Bogaard

Committer:
Mirjam
Date:
Wed Oct 31 19:59:10 2018 +0000
Revision:
2:a4148186b3e3
Parent:
1:f99650c5b9eb
Child:
3:274fb751b92d
Werkende calibratie met extra waardes die worden laten zien op de pc ter controle

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Duif 0:802c9c6b30d3 1 #include "mbed.h"
Duif 0:802c9c6b30d3 2 #include "MODSERIAL.h"
Duif 0:802c9c6b30d3 3 #include "BiQuad.h"
Duif 0:802c9c6b30d3 4 #include "BiQuad4.h"
Duif 0:802c9c6b30d3 5 #include "FilterDesign.h"
Duif 0:802c9c6b30d3 6 #include "FilterDesign2.h"
Duif 1:f99650c5b9eb 7 #include "HIDScope.h"
Duif 0:802c9c6b30d3 8 MODSERIAL pc(USBTX, USBRX); //makes sure the computer is hooked up
Duif 1:f99650c5b9eb 9 Ticker sample;
Duif 0:802c9c6b30d3 10
Duif 0:802c9c6b30d3 11 AnalogIn emg1_raw(A0);
Duif 0:802c9c6b30d3 12 AnalogIn emg2_raw(A1);
Duif 0:802c9c6b30d3 13 DigitalOut led(LED_RED);
Duif 0:802c9c6b30d3 14
Duif 0:802c9c6b30d3 15 //global variables
Duif 0:802c9c6b30d3 16 double emg1_cal = 0.00000; //measured value of the first emg
Duif 0:802c9c6b30d3 17 double emg2_cal = 0.00000; //measured value of the second emg
Duif 0:802c9c6b30d3 18 double EMG_calibrated_max_1 = 0.00000; //final calibration value of EMG1
Duif 0:802c9c6b30d3 19 double EMG_calibrated_max_2 = 0.00000; //final calibration value of EMG2
Duif 0:802c9c6b30d3 20
Duif 1:f99650c5b9eb 21 void ReadEMG()
Duif 1:f99650c5b9eb 22 {
Duif 1:f99650c5b9eb 23 emg1_cal = FilterDesign(emg1_raw.read());
Duif 1:f99650c5b9eb 24 emg2_cal = FilterDesign2(emg2_raw.read());
Duif 1:f99650c5b9eb 25 }
Duif 0:802c9c6b30d3 26
Duif 1:f99650c5b9eb 27 void EMG_calibration()
Duif 1:f99650c5b9eb 28 {
Duif 0:802c9c6b30d3 29 for (int i = 0; i <= 10; i++) //10 measuring points
Duif 1:f99650c5b9eb 30 {
Duif 0:802c9c6b30d3 31 if (emg1_cal > EMG_calibrated_max_1){
Duif 0:802c9c6b30d3 32 EMG_calibrated_max_1 = emg1_cal;}
Duif 0:802c9c6b30d3 33
Duif 0:802c9c6b30d3 34 if (emg2_cal > EMG_calibrated_max_2){
Duif 0:802c9c6b30d3 35 EMG_calibrated_max_2 = emg2_cal;}
Duif 1:f99650c5b9eb 36
Mirjam 2:a4148186b3e3 37 pc.printf("EMG1_max = %f, EMG2_max = %f \r\nEMG1_filtered = %f \r\nEMG2_filtered = %f \r\n",EMG_calibrated_max_1,EMG_calibrated_max_2, emg1_cal, emg2_cal);
Duif 0:802c9c6b30d3 38 wait(0.5f);
Duif 0:802c9c6b30d3 39 }
Duif 0:802c9c6b30d3 40 }
Duif 0:802c9c6b30d3 41
Duif 0:802c9c6b30d3 42 int main(){
Duif 0:802c9c6b30d3 43 pc.baud(115200);
Mirjam 2:a4148186b3e3 44 // Attach the 'ReadEMG' function to the timer 'sample'. Frequency is 50 Hz.
Mirjam 2:a4148186b3e3 45 sample.attach(&ReadEMG, 0.02f);
Duif 1:f99650c5b9eb 46
Duif 0:802c9c6b30d3 47 while (true) {
Duif 0:802c9c6b30d3 48 led = 0;
Duif 0:802c9c6b30d3 49 EMG_calibration();
Duif 0:802c9c6b30d3 50 led = 1;
Duif 1:f99650c5b9eb 51 pc.printf("Final: EMG1 = %f, EMG2 = %f \r\n",EMG_calibrated_max_1,EMG_calibrated_max_2);
Duif 0:802c9c6b30d3 52 }
Duif 0:802c9c6b30d3 53 }