Error same as we first had, don't know what to do :'(

Dependencies:   BiQuad4th_order Biquad HIDScope MODSERIAL biquadFilter mbed

Committer:
Duif
Date:
Wed Oct 31 13:30:40 2018 +0000
Revision:
1:f99650c5b9eb
Parent:
0:802c9c6b30d3
EMG calibration with unknown error

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
Duif 1:f99650c5b9eb 37 pc.printf("EMG1 = %f, EMG2 = %f \r\n",EMG_calibrated_max_1,EMG_calibrated_max_2);
Duif 0:802c9c6b30d3 38 wait(0.5f);
Duif 0:802c9c6b30d3 39 }
Duif 0:802c9c6b30d3 40 }
Duif 0:802c9c6b30d3 41
Duif 0:802c9c6b30d3 42
Duif 0:802c9c6b30d3 43
Duif 0:802c9c6b30d3 44 int main(){
Duif 0:802c9c6b30d3 45 pc.baud(115200);
Duif 1:f99650c5b9eb 46 // Attach the 'ReadEMG' function to the timer 'sample'. Frequency is 5 Hz.
Duif 1:f99650c5b9eb 47 sample.attach(&ReadEMG, 0.2f);
Duif 1:f99650c5b9eb 48
Duif 0:802c9c6b30d3 49 while (true) {
Duif 0:802c9c6b30d3 50 led = 0;
Duif 0:802c9c6b30d3 51 EMG_calibration();
Duif 0:802c9c6b30d3 52 led = 1;
Duif 1:f99650c5b9eb 53 pc.printf("Final: EMG1 = %f, EMG2 = %f \r\n",EMG_calibrated_max_1,EMG_calibrated_max_2);
Duif 0:802c9c6b30d3 54 }
Duif 0:802c9c6b30d3 55 }