Filter emg 7-10-15 v1

Dependencies:   HIDScope mbed MODSERIAL

Committer:
Bartvaart
Date:
Wed Oct 12 15:31:14 2016 +0000
Revision:
24:38cd27737a43
Parent:
22:c1811e60bfce
andries

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Bartvaart 16:8f175d2a472f 1 #include "Kalibratie.h"
Bartvaart 17:cfe44346645c 2 #include "Filterdesigns.h"
Bartvaart 22:c1811e60bfce 3 //#include "MODSERIAL.h" //bugfix
Bartvaart 17:cfe44346645c 4
Bartvaart 24:38cd27737a43 5 //AnalogIn emg2(A0); //Analog input van emg kabels niet meer nodig
Bartvaart 22:c1811e60bfce 6 //MODSERIAL pc2(USBTX, USBRX); //bugfix
Bartvaart 22:c1811e60bfce 7 DigitalOut LedGreen(LED2);
Bartvaart 22:c1811e60bfce 8 DigitalOut LedRed(LED1);
Bartvaart 22:c1811e60bfce 9
Bartvaart 22:c1811e60bfce 10 int samples = 100;
Bartvaart 17:cfe44346645c 11
Bartvaart 17:cfe44346645c 12 void Init()
Bartvaart 17:cfe44346645c 13 {
Bartvaart 17:cfe44346645c 14 LedGreen = 1;
Bartvaart 17:cfe44346645c 15 LedRed = 1;
Bartvaart 17:cfe44346645c 16 }
Bartvaart 17:cfe44346645c 17
Bartvaart 24:38cd27737a43 18 double KalibratieMax(bool &readymax, AnalogIn emg) //Kalibratie van de maximum waarde
Bartvaart 17:cfe44346645c 19 {
Bartvaart 22:c1811e60bfce 20 //pc2.baud(115200);
Bartvaart 17:cfe44346645c 21 LedGreen.write(0); //Led aan
Bartvaart 17:cfe44346645c 22 double ymax = 0;
Bartvaart 16:8f175d2a472f 23
Bartvaart 22:c1811e60bfce 24 for(int i = 1; i <= samples; i++) { //Als timer onder de 5 seconden is dit uitvoeren
Bartvaart 24:38cd27737a43 25 double u = emg.read();
Bartvaart 20:11e1244ad2ad 26 double y = Filterdesigns(u);
Bartvaart 22:c1811e60bfce 27
Bartvaart 22:c1811e60bfce 28 if (y > ymax && i >= samples / 10) { //Als de gemeten waarde groter is dan de opgeslagen waarde wordt dit de nieuwe opgeslagen waarde
Bartvaart 17:cfe44346645c 29 ymax = y;
Bartvaart 17:cfe44346645c 30 }
Bartvaart 22:c1811e60bfce 31 else {}
Bartvaart 22:c1811e60bfce 32 //pc2.printf("y = %f en ymax = %f \n",y,ymax); //bugfix
Bartvaart 22:c1811e60bfce 33 wait(0.05);
Bartvaart 17:cfe44346645c 34 }
Bartvaart 19:6c0245063b96 35
Bartvaart 17:cfe44346645c 36 LedGreen.write(1); //Led aan
Bartvaart 17:cfe44346645c 37 readymax = 1; // Zodat systeem weet wanneer kalibratie voltooid is
Bartvaart 17:cfe44346645c 38 return ymax;
Bartvaart 17:cfe44346645c 39 }
Bartvaart 17:cfe44346645c 40
Bartvaart 24:38cd27737a43 41 double KalibratieMin(bool &readymin, AnalogIn emg) //Kalibratie van de minimum waarde
Bartvaart 17:cfe44346645c 42 {
Bartvaart 22:c1811e60bfce 43 //pc2.baud(115200);
Bartvaart 17:cfe44346645c 44 LedRed.write(0);
Bartvaart 17:cfe44346645c 45 double ymin = 10;
Bartvaart 17:cfe44346645c 46
Bartvaart 22:c1811e60bfce 47 for(int i = 1; i <= samples; i++) {
Bartvaart 24:38cd27737a43 48 double u = emg.read();
Bartvaart 20:11e1244ad2ad 49 double y = Filterdesigns(u);
Bartvaart 17:cfe44346645c 50
Bartvaart 22:c1811e60bfce 51 if (y < ymin && i >= samples / 10) {
Bartvaart 17:cfe44346645c 52 ymin = y;
Bartvaart 17:cfe44346645c 53 }
Bartvaart 22:c1811e60bfce 54 else {}
Bartvaart 22:c1811e60bfce 55 //pc2.printf("y = %f en ymin = %f \n",y,ymin); //bugfix
Bartvaart 22:c1811e60bfce 56 wait(0.05);
Bartvaart 17:cfe44346645c 57 }
Bartvaart 17:cfe44346645c 58
Bartvaart 17:cfe44346645c 59 LedRed.write(1);
Bartvaart 17:cfe44346645c 60 readymin = 1;
Bartvaart 17:cfe44346645c 61 return ymin;
Bartvaart 17:cfe44346645c 62 }