Total control sjoel robot

Dependencies:   HIDScope MODSERIAL QEI TextLCD mbed

Committer:
RichardRoos
Date:
Tue Oct 20 13:54:54 2015 +0000
Revision:
37:090ba5b1e655
Parent:
30:8ae855348d22
Kalibratie rotatie werkt nog niet zo goed. Blijft vast zitten in aim calibration

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
RemcoDas 25:c97d079e07f3 5 //AnalogIn emg2(A0); //Analog input van emg kabels
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
RemcoDas 25:c97d079e07f3 12 void Init(){
Bartvaart 17:cfe44346645c 13 LedGreen = 1;
Bartvaart 17:cfe44346645c 14 LedRed = 1;
Bartvaart 17:cfe44346645c 15 }
Bartvaart 17:cfe44346645c 16
RemcoDas 30:8ae855348d22 17 double KalibratieMax(AnalogIn& emg, bool side){ //Kalibratie van de maximum waarde
Bartvaart 17:cfe44346645c 18 LedGreen.write(0); //Led aan
Bartvaart 17:cfe44346645c 19 double ymax = 0;
RemcoDas 25:c97d079e07f3 20
RemcoDas 24:ddd69385b55f 21 for(int i = 1; i <= samples; i++) { //Als timer onder de 5 seconden is dit uitvoeren
RemcoDas 25:c97d079e07f3 22 double u = emg.read();
RemcoDas 30:8ae855348d22 23 double y = 0;
RemcoDas 30:8ae855348d22 24 if(side){ // links
RemcoDas 30:8ae855348d22 25 y = FilterdesignsLeft(u);
RemcoDas 30:8ae855348d22 26 }
RemcoDas 30:8ae855348d22 27 else {
RemcoDas 30:8ae855348d22 28 y = FilterdesignsRight(u); // rechts
RemcoDas 30:8ae855348d22 29 }
Bartvaart 22:c1811e60bfce 30 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 31 ymax = y;
RemcoDas 25:c97d079e07f3 32 }
Bartvaart 22:c1811e60bfce 33 wait(0.05);
RemcoDas 27:f62e450bb411 34 }
RemcoDas 25:c97d079e07f3 35 LedGreen.write(1); //Led aan
Bartvaart 17:cfe44346645c 36 return ymax;
RemcoDas 27:f62e450bb411 37 }
Bartvaart 17:cfe44346645c 38
RemcoDas 30:8ae855348d22 39 double KalibratieMin(AnalogIn& emg, bool side){ //Kalibratie van de minimum waarde
Bartvaart 17:cfe44346645c 40 LedRed.write(0);
Bartvaart 17:cfe44346645c 41 double ymin = 10;
Bartvaart 17:cfe44346645c 42
Bartvaart 22:c1811e60bfce 43 for(int i = 1; i <= samples; i++) {
RemcoDas 26:d9855716ced7 44 double u = emg.read();
RemcoDas 30:8ae855348d22 45 double y = 0;
RemcoDas 30:8ae855348d22 46 if(side){ // links
RemcoDas 30:8ae855348d22 47 y = FilterdesignsLeft(u);
RemcoDas 30:8ae855348d22 48 }
RemcoDas 30:8ae855348d22 49 else {
RemcoDas 30:8ae855348d22 50 y = FilterdesignsRight(u); // rechts
RemcoDas 30:8ae855348d22 51 }
Bartvaart 17:cfe44346645c 52
Bartvaart 22:c1811e60bfce 53 if (y < ymin && i >= samples / 10) {
Bartvaart 17:cfe44346645c 54 ymin = y;
RemcoDas 25:c97d079e07f3 55 }
Bartvaart 22:c1811e60bfce 56 wait(0.05);
RemcoDas 25:c97d079e07f3 57 }
Bartvaart 17:cfe44346645c 58 LedRed.write(1);
Bartvaart 17:cfe44346645c 59 return ymin;
Bartvaart 17:cfe44346645c 60 }