Jan-Willem Bisschop
/
EMG_filter
EMG filter. Waarden nog niet perfekt.
main.cpp@1:70dc835f3a37, 2016-10-28 (annotated)
- Committer:
- janwillembisschop
- Date:
- Fri Oct 28 08:55:20 2016 +0000
- Revision:
- 1:70dc835f3a37
- Parent:
- 0:2956e3501f8a
EMG filter met goede waarden
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
janwillembisschop | 0:2956e3501f8a | 1 | #include "mbed.h" |
janwillembisschop | 0:2956e3501f8a | 2 | #include "HIDScope.h" |
janwillembisschop | 0:2956e3501f8a | 3 | #include "Filter.h" |
janwillembisschop | 0:2956e3501f8a | 4 | #include "FilterDesign.h" |
janwillembisschop | 1:70dc835f3a37 | 5 | #include "Filter2.h" |
janwillembisschop | 1:70dc835f3a37 | 6 | #include "FilterDesign2.h" |
janwillembisschop | 0:2956e3501f8a | 7 | |
janwillembisschop | 1:70dc835f3a37 | 8 | AnalogIn emg1(A0); |
janwillembisschop | 1:70dc835f3a37 | 9 | AnalogIn emg2(A1); |
janwillembisschop | 0:2956e3501f8a | 10 | |
janwillembisschop | 0:2956e3501f8a | 11 | Ticker sample_timer; |
janwillembisschop | 1:70dc835f3a37 | 12 | HIDScope scope(4); // 2 scopes |
janwillembisschop | 1:70dc835f3a37 | 13 | |
janwillembisschop | 1:70dc835f3a37 | 14 | |
janwillembisschop | 1:70dc835f3a37 | 15 | // Motor aanroepen |
janwillembisschop | 1:70dc835f3a37 | 16 | DigitalOut motor_1(D7); //richting (1 of 0) |
janwillembisschop | 1:70dc835f3a37 | 17 | PwmOut pwm_motor_1(D6); //snelheid (tussen 0 en 1?) |
janwillembisschop | 1:70dc835f3a37 | 18 | DigitalOut motor_2(D4); //richting (1 of 0) |
janwillembisschop | 1:70dc835f3a37 | 19 | PwmOut pwm_motor_2(D5); //snelheid (tussen 0 en 1?) |
janwillembisschop | 1:70dc835f3a37 | 20 | InterruptIn stop(SW3); //stoppen |
janwillembisschop | 1:70dc835f3a37 | 21 | InterruptIn turn_1(D9); //wisselen van kant (button 1) |
janwillembisschop | 1:70dc835f3a37 | 22 | InterruptIn turn_2(D10); //wisselen van kant (button 2) |
janwillembisschop | 1:70dc835f3a37 | 23 | Serial pc(USBTX, USBRX); //USB ports aanroepen |
janwillembisschop | 1:70dc835f3a37 | 24 | Ticker faster_slower; //Ticker voor functie om sneller en langzamer te gaan |
janwillembisschop | 1:70dc835f3a37 | 25 | |
janwillembisschop | 1:70dc835f3a37 | 26 | DigitalOut led1(D2); |
janwillembisschop | 1:70dc835f3a37 | 27 | DigitalOut led2(D3); |
janwillembisschop | 1:70dc835f3a37 | 28 | |
janwillembisschop | 1:70dc835f3a37 | 29 | DigitalOut led_red(LED_RED); |
janwillembisschop | 1:70dc835f3a37 | 30 | DigitalOut led_green(LED_GREEN); |
janwillembisschop | 1:70dc835f3a37 | 31 | DigitalOut led_blue(LED_BLUE); |
janwillembisschop | 1:70dc835f3a37 | 32 | |
janwillembisschop | 1:70dc835f3a37 | 33 | volatile double y1; |
janwillembisschop | 1:70dc835f3a37 | 34 | volatile double y2; |
janwillembisschop | 1:70dc835f3a37 | 35 | volatile double u1; |
janwillembisschop | 1:70dc835f3a37 | 36 | volatile double u2; |
janwillembisschop | 0:2956e3501f8a | 37 | |
janwillembisschop | 0:2956e3501f8a | 38 | void sample() |
janwillembisschop | 0:2956e3501f8a | 39 | { |
janwillembisschop | 0:2956e3501f8a | 40 | |
janwillembisschop | 1:70dc835f3a37 | 41 | double u1 = emg1.read(); // ongefitlerd |
janwillembisschop | 1:70dc835f3a37 | 42 | double y1 = FilterDesign(u1); // gefilterd |
janwillembisschop | 1:70dc835f3a37 | 43 | double u2 = emg2.read(); // ongefitlerd |
janwillembisschop | 1:70dc835f3a37 | 44 | double y2 = FilterDesign2(u2); // gefilterd |
janwillembisschop | 0:2956e3501f8a | 45 | |
janwillembisschop | 1:70dc835f3a37 | 46 | scope.set(0,u1); // ongefilterd emg1 naar scope 0 |
janwillembisschop | 1:70dc835f3a37 | 47 | scope.set(1,y1); // gefilterd emg1 naar scope 1 |
janwillembisschop | 1:70dc835f3a37 | 48 | scope.set(2,u2); // ongefilterd emg2 naar scope 2 |
janwillembisschop | 1:70dc835f3a37 | 49 | scope.set(3,y2); // gefilterd emg2 naar scope 3 |
janwillembisschop | 0:2956e3501f8a | 50 | |
janwillembisschop | 0:2956e3501f8a | 51 | scope.send(); |
janwillembisschop | 1:70dc835f3a37 | 52 | |
janwillembisschop | 1:70dc835f3a37 | 53 | /* |
janwillembisschop | 1:70dc835f3a37 | 54 | if (y1 > 0.05) |
janwillembisschop | 1:70dc835f3a37 | 55 | { |
janwillembisschop | 1:70dc835f3a37 | 56 | motor_1 = 1; |
janwillembisschop | 1:70dc835f3a37 | 57 | pwm_motor_1 = 0.6; |
janwillembisschop | 1:70dc835f3a37 | 58 | } |
janwillembisschop | 1:70dc835f3a37 | 59 | else |
janwillembisschop | 1:70dc835f3a37 | 60 | { |
janwillembisschop | 1:70dc835f3a37 | 61 | pwm_motor_1 = 0; |
janwillembisschop | 1:70dc835f3a37 | 62 | } |
janwillembisschop | 1:70dc835f3a37 | 63 | |
janwillembisschop | 1:70dc835f3a37 | 64 | if (y2 > 0.05) |
janwillembisschop | 1:70dc835f3a37 | 65 | { |
janwillembisschop | 1:70dc835f3a37 | 66 | motor_2 = 1; |
janwillembisschop | 1:70dc835f3a37 | 67 | pwm_motor_2 = 0.6; |
janwillembisschop | 1:70dc835f3a37 | 68 | } |
janwillembisschop | 1:70dc835f3a37 | 69 | else |
janwillembisschop | 1:70dc835f3a37 | 70 | { |
janwillembisschop | 1:70dc835f3a37 | 71 | pwm_motor_2 = 0; |
janwillembisschop | 1:70dc835f3a37 | 72 | } |
janwillembisschop | 1:70dc835f3a37 | 73 | */ |
janwillembisschop | 1:70dc835f3a37 | 74 | |
janwillembisschop | 1:70dc835f3a37 | 75 | if (y1 >= 0.06) |
janwillembisschop | 1:70dc835f3a37 | 76 | { |
janwillembisschop | 1:70dc835f3a37 | 77 | led_red.write(0); // aan |
janwillembisschop | 1:70dc835f3a37 | 78 | led_green.write(1); // uit |
janwillembisschop | 1:70dc835f3a37 | 79 | led_blue.write(1); // uit |
janwillembisschop | 1:70dc835f3a37 | 80 | } |
janwillembisschop | 1:70dc835f3a37 | 81 | if (y2 >= 0.09) |
janwillembisschop | 1:70dc835f3a37 | 82 | { |
janwillembisschop | 1:70dc835f3a37 | 83 | led_red.write(1); // uit |
janwillembisschop | 1:70dc835f3a37 | 84 | led_green.write(0); // aan |
janwillembisschop | 1:70dc835f3a37 | 85 | led_blue.write(1); // uit |
janwillembisschop | 1:70dc835f3a37 | 86 | } |
janwillembisschop | 1:70dc835f3a37 | 87 | if (y1 >= 0.06 & y2 >= 0.09) |
janwillembisschop | 1:70dc835f3a37 | 88 | { |
janwillembisschop | 1:70dc835f3a37 | 89 | led_red.write(1); // uit |
janwillembisschop | 1:70dc835f3a37 | 90 | led_green.write(1); // uit |
janwillembisschop | 1:70dc835f3a37 | 91 | led_blue.write(0); // aan |
janwillembisschop | 1:70dc835f3a37 | 92 | } |
janwillembisschop | 1:70dc835f3a37 | 93 | else if (y1 < 0.06 & y2 < 0.09) |
janwillembisschop | 1:70dc835f3a37 | 94 | { |
janwillembisschop | 1:70dc835f3a37 | 95 | led_red.write(1); // uit |
janwillembisschop | 1:70dc835f3a37 | 96 | led_green.write(1); // uit |
janwillembisschop | 1:70dc835f3a37 | 97 | led_blue.write(1); // uit |
janwillembisschop | 1:70dc835f3a37 | 98 | } |
janwillembisschop | 1:70dc835f3a37 | 99 | |
janwillembisschop | 0:2956e3501f8a | 100 | } |
janwillembisschop | 0:2956e3501f8a | 101 | |
janwillembisschop | 1:70dc835f3a37 | 102 | |
janwillembisschop | 1:70dc835f3a37 | 103 | |
janwillembisschop | 0:2956e3501f8a | 104 | int main() |
janwillembisschop | 0:2956e3501f8a | 105 | { |
janwillembisschop | 1:70dc835f3a37 | 106 | pc.baud(115200); |
janwillembisschop | 1:70dc835f3a37 | 107 | sample_timer.attach(&sample, 0.01); // 500 Hz |
janwillembisschop | 0:2956e3501f8a | 108 | |
janwillembisschop | 0:2956e3501f8a | 109 | while(1) {} |
janwillembisschop | 0:2956e3501f8a | 110 | } |