![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Error same as we first had, don't know what to do :'(
Dependencies: BiQuad4th_order Biquad HIDScope MODSERIAL biquadFilter mbed
main.cpp@1:f99650c5b9eb, 2018-10-31 (annotated)
- 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?
User | Revision | Line number | New 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 | } |