Total control sjoel robot
Dependencies: HIDScope MODSERIAL QEI TextLCD mbed
Kalibratie.cpp@37:090ba5b1e655, 2015-10-20 (annotated)
- 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?
User | Revision | Line number | New 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 | } |