EMG filter. Waarden nog niet perfekt.

Dependencies:   HIDScope mbed

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?

UserRevisionLine numberNew 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 }