Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of Movement by
Movement.cpp@5:d13de19a1eea, 2017-11-02 (annotated)
- Committer:
- DBerendsen
- Date:
- Thu Nov 02 10:17:17 2017 +0000
- Revision:
- 5:d13de19a1eea
- Parent:
- 4:c81764efe40d
Eerste keer super mooi werkend;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
peterknoben | 0:9c61094ffaac | 1 | #include "Movement.h" |
peterknoben | 0:9c61094ffaac | 2 | #include "mbed.h" |
peterknoben | 0:9c61094ffaac | 3 | |
peterknoben | 3:61733f7f1fea | 4 | float movement_left, movement_right; |
peterknoben | 0:9c61094ffaac | 5 | |
peterknoben | 0:9c61094ffaac | 6 | Movement::Movement(void) |
peterknoben | 0:9c61094ffaac | 7 | { |
peterknoben | 0:9c61094ffaac | 8 | |
peterknoben | 0:9c61094ffaac | 9 | } |
peterknoben | 0:9c61094ffaac | 10 | |
peterknoben | 3:61733f7f1fea | 11 | int Movement::getdirectionLeft(int mode){ |
peterknoben | 3:61733f7f1fea | 12 | int directionL; |
peterknoben | 3:61733f7f1fea | 13 | if(mode==1 || mode==2){ |
peterknoben | 3:61733f7f1fea | 14 | directionL = 1; |
peterknoben | 3:61733f7f1fea | 15 | } |
peterknoben | 3:61733f7f1fea | 16 | else if (mode==4 || mode==5){ |
peterknoben | 3:61733f7f1fea | 17 | directionL = -1; |
peterknoben | 3:61733f7f1fea | 18 | } |
peterknoben | 3:61733f7f1fea | 19 | else{ |
peterknoben | 3:61733f7f1fea | 20 | directionL = 0; |
peterknoben | 3:61733f7f1fea | 21 | } |
peterknoben | 3:61733f7f1fea | 22 | return directionL; |
peterknoben | 3:61733f7f1fea | 23 | } |
peterknoben | 3:61733f7f1fea | 24 | |
peterknoben | 3:61733f7f1fea | 25 | int Movement::getdirectionRight(int mode){ |
peterknoben | 3:61733f7f1fea | 26 | int directionR; |
peterknoben | 3:61733f7f1fea | 27 | if(mode==1 || mode==5){ |
peterknoben | 3:61733f7f1fea | 28 | directionR = 1; |
peterknoben | 3:61733f7f1fea | 29 | } |
peterknoben | 3:61733f7f1fea | 30 | else if (mode==2 || mode==4){ |
peterknoben | 3:61733f7f1fea | 31 | directionR = -1; |
peterknoben | 3:61733f7f1fea | 32 | } |
peterknoben | 3:61733f7f1fea | 33 | else{ |
peterknoben | 3:61733f7f1fea | 34 | directionR = 0; |
peterknoben | 3:61733f7f1fea | 35 | } |
peterknoben | 3:61733f7f1fea | 36 | return directionR; |
peterknoben | 3:61733f7f1fea | 37 | } |
peterknoben | 3:61733f7f1fea | 38 | |
peterknoben | 3:61733f7f1fea | 39 | |
peterknoben | 4:c81764efe40d | 40 | //Get the left position |
peterknoben | 3:61733f7f1fea | 41 | float Movement::getpositionLeft(int SignalNumber, int mode, float max_range){ |
peterknoben | 3:61733f7f1fea | 42 | static float positionLeft; //Define a position array |
peterknoben | 3:61733f7f1fea | 43 | int directionLeft = getdirectionLeft(mode); |
peterknoben | 3:61733f7f1fea | 44 | float position_math_left; |
peterknoben | 3:61733f7f1fea | 45 | switch(SignalNumber){ |
peterknoben | 3:61733f7f1fea | 46 | case 1: //Move slowest |
DBerendsen | 5:d13de19a1eea | 47 | movement_left = directionLeft*0.5; |
peterknoben | 3:61733f7f1fea | 48 | position_math_left = positionLeft + movement_left; |
peterknoben | 3:61733f7f1fea | 49 | if (position_math_left >= max_range || position_math_left <=0){ |
peterknoben | 3:61733f7f1fea | 50 | positionLeft = positionLeft; |
peterknoben | 3:61733f7f1fea | 51 | } |
peterknoben | 3:61733f7f1fea | 52 | else{ |
peterknoben | 3:61733f7f1fea | 53 | positionLeft += movement_left; |
peterknoben | 3:61733f7f1fea | 54 | } |
peterknoben | 3:61733f7f1fea | 55 | break; |
peterknoben | 3:61733f7f1fea | 56 | case 2: //Move slow |
DBerendsen | 5:d13de19a1eea | 57 | movement_left = directionLeft *1.5; |
peterknoben | 3:61733f7f1fea | 58 | position_math_left = positionLeft + movement_left; |
peterknoben | 3:61733f7f1fea | 59 | if (position_math_left >= max_range || position_math_left <=0){ |
peterknoben | 3:61733f7f1fea | 60 | positionLeft = positionLeft; |
peterknoben | 3:61733f7f1fea | 61 | } |
peterknoben | 3:61733f7f1fea | 62 | else{ |
peterknoben | 3:61733f7f1fea | 63 | positionLeft += movement_left; |
peterknoben | 3:61733f7f1fea | 64 | } |
peterknoben | 3:61733f7f1fea | 65 | break; |
peterknoben | 3:61733f7f1fea | 66 | default : //if something is wrong or no muscles are flexed, standstill |
peterknoben | 3:61733f7f1fea | 67 | positionLeft = positionLeft; |
peterknoben | 3:61733f7f1fea | 68 | break; |
peterknoben | 3:61733f7f1fea | 69 | } |
peterknoben | 3:61733f7f1fea | 70 | return positionLeft; |
peterknoben | 3:61733f7f1fea | 71 | } |
peterknoben | 3:61733f7f1fea | 72 | |
peterknoben | 4:c81764efe40d | 73 | // Get the right position |
peterknoben | 3:61733f7f1fea | 74 | float Movement::getpositionRight(int SignalNumber, int mode, float max_range){ |
peterknoben | 3:61733f7f1fea | 75 | static float positionRight; //Define a position array |
peterknoben | 3:61733f7f1fea | 76 | int directionRight = getdirectionRight(mode); |
peterknoben | 3:61733f7f1fea | 77 | float position_math_right; |
peterknoben | 3:61733f7f1fea | 78 | switch(SignalNumber){ |
peterknoben | 3:61733f7f1fea | 79 | case 1: //Move slowest |
peterknoben | 3:61733f7f1fea | 80 | movement_right = directionRight*0.25; |
peterknoben | 3:61733f7f1fea | 81 | position_math_right = positionRight + movement_right; |
peterknoben | 3:61733f7f1fea | 82 | if (position_math_right >= max_range || position_math_right <=0){ |
peterknoben | 3:61733f7f1fea | 83 | positionRight = positionRight; |
peterknoben | 3:61733f7f1fea | 84 | } |
peterknoben | 3:61733f7f1fea | 85 | else{ |
peterknoben | 3:61733f7f1fea | 86 | positionRight += movement_right; |
peterknoben | 3:61733f7f1fea | 87 | } |
peterknoben | 3:61733f7f1fea | 88 | break; |
peterknoben | 3:61733f7f1fea | 89 | case 2: //Move slow |
peterknoben | 3:61733f7f1fea | 90 | movement_right = directionRight *1; |
peterknoben | 3:61733f7f1fea | 91 | position_math_right = positionRight + movement_right; |
peterknoben | 3:61733f7f1fea | 92 | if (position_math_right >= max_range || position_math_right <=0){ |
peterknoben | 3:61733f7f1fea | 93 | positionRight = positionRight; |
peterknoben | 3:61733f7f1fea | 94 | } |
peterknoben | 3:61733f7f1fea | 95 | else{ |
peterknoben | 3:61733f7f1fea | 96 | positionRight += movement_right; |
peterknoben | 3:61733f7f1fea | 97 | } |
peterknoben | 3:61733f7f1fea | 98 | break; |
peterknoben | 3:61733f7f1fea | 99 | default : //if something is wrong or no muscles are flexed, standstill |
peterknoben | 3:61733f7f1fea | 100 | positionRight = positionRight; |
peterknoben | 3:61733f7f1fea | 101 | break; |
peterknoben | 3:61733f7f1fea | 102 | } |
peterknoben | 3:61733f7f1fea | 103 | return positionRight; |
peterknoben | 3:61733f7f1fea | 104 | } |