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.
Dependencies: mbed
Fork of Roboshark_V3 by
Fahren.cpp@6:a4b745625dbe, 2018-04-30 (annotated)
- Committer:
- ahlervin
- Date:
- Mon Apr 30 13:22:32 2018 +0000
- Revision:
- 6:a4b745625dbe
- Parent:
- 4:767fd282dd9c
- Child:
- 7:b2a16b1cf487
villicht funktionierts... (30.4.18, 15:30)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Jacqueline | 0:6d0671ae4648 | 1 | #include "Fahren.h" |
Jacqueline | 0:6d0671ae4648 | 2 | #include <mbed.h> |
Jacqueline | 0:6d0671ae4648 | 3 | |
Jacqueline | 0:6d0671ae4648 | 4 | |
Jacqueline | 0:6d0671ae4648 | 5 | //Konstruktor |
ahlervin | 6:a4b745625dbe | 6 | Fahren::Fahren(Controller& controller, EncoderCounter& counterLeft, EncoderCounter& counterRight, float SpeedR, float SpeedL): |
ahlervin | 6:a4b745625dbe | 7 | controller(controller), counterLeft(counterLeft), counterRight(counterRight), SpeedR(SpeedR), SpeedL(SpeedL) |
Jacqueline | 0:6d0671ae4648 | 8 | |
Jacqueline | 0:6d0671ae4648 | 9 | {} |
Jacqueline | 0:6d0671ae4648 | 10 | //Dekonstruktor |
Jacqueline | 0:6d0671ae4648 | 11 | Fahren::~Fahren() {} |
Jacqueline | 0:6d0671ae4648 | 12 | |
Jacqueline | 0:6d0671ae4648 | 13 | |
Jacqueline | 0:6d0671ae4648 | 14 | |
ahlervin | 6:a4b745625dbe | 15 | //Implementation der Methode geradeaus fahren ungeregelt |
ahlervin | 6:a4b745625dbe | 16 | void Fahren::geradeausU(){ |
Jacqueline | 0:6d0671ae4648 | 17 | |
Jacqueline | 0:6d0671ae4648 | 18 | //einlesen des aktuellen Encoder standes |
Jacqueline | 0:6d0671ae4648 | 19 | initialClicksRight = counterRight.read(); |
Jacqueline | 0:6d0671ae4648 | 20 | initialClicksLeft = counterLeft.read(); |
Jacqueline | 0:6d0671ae4648 | 21 | |
Jacqueline | 0:6d0671ae4648 | 22 | //Anzahl Clicks die der Encoder zählen soll |
Jacqueline | 0:6d0671ae4648 | 23 | wegRechts = 1767; |
Jacqueline | 0:6d0671ae4648 | 24 | wegLinks = 1767; |
Jacqueline | 0:6d0671ae4648 | 25 | |
Jacqueline | 0:6d0671ae4648 | 26 | //Geschwindigkeit |
ahlervin | 4:767fd282dd9c | 27 | speedRight = 25; |
ahlervin | 4:767fd282dd9c | 28 | speedLeft = 25; |
Jacqueline | 0:6d0671ae4648 | 29 | |
Jacqueline | 0:6d0671ae4648 | 30 | //Zustand, dass der Roboter nicht gestoppt hat |
Jacqueline | 0:6d0671ae4648 | 31 | stopRight = false; |
Jacqueline | 0:6d0671ae4648 | 32 | stopLeft = false; |
Jacqueline | 0:6d0671ae4648 | 33 | |
Jacqueline | 0:6d0671ae4648 | 34 | //Drehrichtung der Motoren |
Jacqueline | 0:6d0671ae4648 | 35 | controller.setDesiredSpeedRight(speedRight); |
Jacqueline | 0:6d0671ae4648 | 36 | controller.setDesiredSpeedLeft(-(speedLeft)); |
Jacqueline | 0:6d0671ae4648 | 37 | |
Jacqueline | 0:6d0671ae4648 | 38 | |
Jacqueline | 0:6d0671ae4648 | 39 | while(1){ |
Jacqueline | 0:6d0671ae4648 | 40 | |
Jacqueline | 0:6d0671ae4648 | 41 | // printf("Encoderrechts %d \n\r", counterRight.read()); //Debugging Zweck (Putty benutzen!) |
Jacqueline | 0:6d0671ae4648 | 42 | // printf("Encoderlinks %d \n\r", counterLeft.read()); //Debugging Zweck (Putty benutzen!) |
Jacqueline | 0:6d0671ae4648 | 43 | |
Jacqueline | 0:6d0671ae4648 | 44 | //If Schleife, wenn Clicks erreicht sind, muss der Motor stoppen |
Jacqueline | 0:6d0671ae4648 | 45 | if(counterRight.read() - initialClicksRight >= wegRechts || counterRight.read() - initialClicksRight <= -wegRechts){ |
Jacqueline | 0:6d0671ae4648 | 46 | controller.setDesiredSpeedRight(0); |
Jacqueline | 0:6d0671ae4648 | 47 | stopRight = true; |
Jacqueline | 0:6d0671ae4648 | 48 | } |
Jacqueline | 0:6d0671ae4648 | 49 | |
Jacqueline | 0:6d0671ae4648 | 50 | //If Schleife, wenn Clicks erreicht sind, muss der Motor stoppen |
Jacqueline | 0:6d0671ae4648 | 51 | if(counterLeft.read() - initialClicksLeft >= wegLinks || counterLeft.read() - initialClicksLeft <= -wegLinks ){ |
Jacqueline | 0:6d0671ae4648 | 52 | controller.setDesiredSpeedLeft(0); |
Jacqueline | 0:6d0671ae4648 | 53 | stopLeft = true; |
Jacqueline | 0:6d0671ae4648 | 54 | } |
Jacqueline | 0:6d0671ae4648 | 55 | |
Jacqueline | 0:6d0671ae4648 | 56 | if(stopRight == true && stopLeft == true){ |
Jacqueline | 0:6d0671ae4648 | 57 | return; |
Jacqueline | 0:6d0671ae4648 | 58 | } |
Jacqueline | 0:6d0671ae4648 | 59 | |
Jacqueline | 0:6d0671ae4648 | 60 | } |
Jacqueline | 0:6d0671ae4648 | 61 | |
Jacqueline | 0:6d0671ae4648 | 62 | } |
Jacqueline | 0:6d0671ae4648 | 63 | |
ahlervin | 6:a4b745625dbe | 64 | //Implementation der Methode geradeaus fahren geregelt |
ahlervin | 6:a4b745625dbe | 65 | void Fahren::geradeausG(){ |
Jacqueline | 0:6d0671ae4648 | 66 | |
ahlervin | 6:a4b745625dbe | 67 | //einlesen des aktuellen Encoder standes |
ahlervin | 6:a4b745625dbe | 68 | initialClicksRight = counterRight.read(); |
ahlervin | 6:a4b745625dbe | 69 | initialClicksLeft = counterLeft.read(); |
ahlervin | 6:a4b745625dbe | 70 | |
ahlervin | 6:a4b745625dbe | 71 | //Anzahl Clicks die der Encoder zählen soll |
ahlervin | 6:a4b745625dbe | 72 | wegRechts = 1767; |
ahlervin | 6:a4b745625dbe | 73 | wegLinks = 1767; |
ahlervin | 6:a4b745625dbe | 74 | |
ahlervin | 6:a4b745625dbe | 75 | //Geschwindigkeit |
ahlervin | 6:a4b745625dbe | 76 | speedRight = SpeedR; // SpeedR |
ahlervin | 6:a4b745625dbe | 77 | speedLeft = SpeedL; // SpeedL |
ahlervin | 6:a4b745625dbe | 78 | |
ahlervin | 6:a4b745625dbe | 79 | //Zustand, dass der Roboter nicht gestoppt hat |
ahlervin | 6:a4b745625dbe | 80 | stopRight = false; |
ahlervin | 6:a4b745625dbe | 81 | stopLeft = false; |
ahlervin | 6:a4b745625dbe | 82 | |
ahlervin | 6:a4b745625dbe | 83 | //Drehrichtung der Motoren |
ahlervin | 6:a4b745625dbe | 84 | controller.setDesiredSpeedRight(speedRight); |
ahlervin | 6:a4b745625dbe | 85 | controller.setDesiredSpeedLeft(-(speedLeft)); |
ahlervin | 6:a4b745625dbe | 86 | |
ahlervin | 6:a4b745625dbe | 87 | |
ahlervin | 6:a4b745625dbe | 88 | while(1){ |
ahlervin | 6:a4b745625dbe | 89 | |
ahlervin | 6:a4b745625dbe | 90 | // printf("Encoderrechts %d \n\r", counterRight.read()); //Debugging Zweck (Putty benutzen!) |
ahlervin | 6:a4b745625dbe | 91 | // printf("Encoderlinks %d \n\r", counterLeft.read()); //Debugging Zweck (Putty benutzen!) |
ahlervin | 6:a4b745625dbe | 92 | |
ahlervin | 6:a4b745625dbe | 93 | //If Schleife, wenn Clicks erreicht sind, muss der Motor stoppen |
ahlervin | 6:a4b745625dbe | 94 | if(counterRight.read() - initialClicksRight >= wegRechts || counterRight.read() - initialClicksRight <= -wegRechts){ |
ahlervin | 6:a4b745625dbe | 95 | controller.setDesiredSpeedRight(0); |
ahlervin | 6:a4b745625dbe | 96 | stopRight = true; |
ahlervin | 6:a4b745625dbe | 97 | } |
ahlervin | 6:a4b745625dbe | 98 | |
ahlervin | 6:a4b745625dbe | 99 | //If Schleife, wenn Clicks erreicht sind, muss der Motor stoppen |
ahlervin | 6:a4b745625dbe | 100 | if(counterLeft.read() - initialClicksLeft >= wegLinks || counterLeft.read() - initialClicksLeft <= -wegLinks ){ |
ahlervin | 6:a4b745625dbe | 101 | controller.setDesiredSpeedLeft(0); |
ahlervin | 6:a4b745625dbe | 102 | stopLeft = true; |
ahlervin | 6:a4b745625dbe | 103 | } |
ahlervin | 6:a4b745625dbe | 104 | |
ahlervin | 6:a4b745625dbe | 105 | if(stopRight == true && stopLeft == true){ |
ahlervin | 6:a4b745625dbe | 106 | return; |
ahlervin | 6:a4b745625dbe | 107 | } |
ahlervin | 6:a4b745625dbe | 108 | |
ahlervin | 6:a4b745625dbe | 109 | } |
ahlervin | 6:a4b745625dbe | 110 | |
ahlervin | 6:a4b745625dbe | 111 | } |
ahlervin | 6:a4b745625dbe | 112 | |
Jacqueline | 0:6d0671ae4648 | 113 | |
Jacqueline | 0:6d0671ae4648 | 114 | //Implementation der Methode 90 Grad Rechtsdrehen |
Jacqueline | 0:6d0671ae4648 | 115 | void Fahren::rechts90() { |
Jacqueline | 0:6d0671ae4648 | 116 | |
Jacqueline | 0:6d0671ae4648 | 117 | //einlesen des aktuellen Encoder standes |
Jacqueline | 0:6d0671ae4648 | 118 | initialClicksRight = counterRight.read(); |
Jacqueline | 0:6d0671ae4648 | 119 | initialClicksLeft = counterLeft.read(); |
Jacqueline | 0:6d0671ae4648 | 120 | |
Jacqueline | 0:6d0671ae4648 | 121 | //Anzahl Clicks die der Encoder zählen soll |
Jacqueline | 3:e4264cb5b9a9 | 122 | wegRechts = 878; |
Jacqueline | 3:e4264cb5b9a9 | 123 | wegLinks = 878; |
Jacqueline | 0:6d0671ae4648 | 124 | |
Jacqueline | 0:6d0671ae4648 | 125 | //Geschwindigkeit |
Jacqueline | 0:6d0671ae4648 | 126 | speedRight = 50; |
Jacqueline | 0:6d0671ae4648 | 127 | speedLeft = 50; |
Jacqueline | 0:6d0671ae4648 | 128 | |
Jacqueline | 0:6d0671ae4648 | 129 | //Zustand, dass der Roboter nicht gestoppt hat |
Jacqueline | 0:6d0671ae4648 | 130 | stopRight = false; |
Jacqueline | 0:6d0671ae4648 | 131 | stopLeft = false; |
Jacqueline | 0:6d0671ae4648 | 132 | |
Jacqueline | 0:6d0671ae4648 | 133 | //Drehrichtung der Motoren |
Jacqueline | 0:6d0671ae4648 | 134 | controller.setDesiredSpeedRight((speedRight)); |
Jacqueline | 0:6d0671ae4648 | 135 | controller.setDesiredSpeedLeft((speedLeft)); |
Jacqueline | 0:6d0671ae4648 | 136 | |
Jacqueline | 0:6d0671ae4648 | 137 | while(1){ |
Jacqueline | 0:6d0671ae4648 | 138 | |
Jacqueline | 0:6d0671ae4648 | 139 | // printf("Encoderrechts %d \n\r", counterRight.read()); //Debugging Zweck (Putty benutzen!) |
Jacqueline | 0:6d0671ae4648 | 140 | // printf("Encoderlinks %d \n\r", counterLeft.read()); //Debugging Zweck (Putty benutzen!) |
Jacqueline | 0:6d0671ae4648 | 141 | |
Jacqueline | 0:6d0671ae4648 | 142 | //If Schleife, wenn Clicks erreicht sind, muss der Motor stoppen |
Jacqueline | 0:6d0671ae4648 | 143 | if(counterRight.read() - initialClicksRight >= wegRechts || counterRight.read() - initialClicksRight <= -wegRechts){ |
Jacqueline | 0:6d0671ae4648 | 144 | controller.setDesiredSpeedRight(0); |
Jacqueline | 0:6d0671ae4648 | 145 | stopRight = true; |
Jacqueline | 0:6d0671ae4648 | 146 | } |
Jacqueline | 0:6d0671ae4648 | 147 | |
Jacqueline | 0:6d0671ae4648 | 148 | //If Schleife, wenn Clicks erreicht sind, muss der Motor stoppen |
Jacqueline | 0:6d0671ae4648 | 149 | if(counterLeft.read() - initialClicksLeft >= wegLinks || counterLeft.read() - initialClicksLeft <= -wegLinks ){ |
Jacqueline | 0:6d0671ae4648 | 150 | controller.setDesiredSpeedLeft(0); |
Jacqueline | 0:6d0671ae4648 | 151 | stopLeft = true; |
Jacqueline | 0:6d0671ae4648 | 152 | } |
Jacqueline | 0:6d0671ae4648 | 153 | |
Jacqueline | 0:6d0671ae4648 | 154 | if(stopRight == true && stopLeft == true){ |
Jacqueline | 0:6d0671ae4648 | 155 | return; |
Jacqueline | 0:6d0671ae4648 | 156 | } |
Jacqueline | 0:6d0671ae4648 | 157 | |
Jacqueline | 0:6d0671ae4648 | 158 | } |
Jacqueline | 0:6d0671ae4648 | 159 | |
Jacqueline | 0:6d0671ae4648 | 160 | } |
Jacqueline | 0:6d0671ae4648 | 161 | |
Jacqueline | 0:6d0671ae4648 | 162 | |
Jacqueline | 0:6d0671ae4648 | 163 | |
Jacqueline | 0:6d0671ae4648 | 164 | //Implementation der Methode 180 Grad Rechtsdrehen |
Jacqueline | 0:6d0671ae4648 | 165 | void Fahren::rechts180() { |
Jacqueline | 0:6d0671ae4648 | 166 | |
Jacqueline | 0:6d0671ae4648 | 167 | //einlesen des aktuellen Encoder standes |
Jacqueline | 0:6d0671ae4648 | 168 | initialClicksRight = counterRight.read(); |
Jacqueline | 0:6d0671ae4648 | 169 | initialClicksLeft = counterLeft.read(); |
Jacqueline | 0:6d0671ae4648 | 170 | |
Jacqueline | 0:6d0671ae4648 | 171 | //Anzahl Clicks die der Encoder zählen soll |
Jacqueline | 0:6d0671ae4648 | 172 | wegRechts = 1755; |
Jacqueline | 0:6d0671ae4648 | 173 | wegLinks = 1755; |
Jacqueline | 0:6d0671ae4648 | 174 | |
Jacqueline | 0:6d0671ae4648 | 175 | //Geschwindigkeit |
Jacqueline | 0:6d0671ae4648 | 176 | speedRight = 50; |
Jacqueline | 0:6d0671ae4648 | 177 | speedLeft = 50; |
Jacqueline | 0:6d0671ae4648 | 178 | |
Jacqueline | 0:6d0671ae4648 | 179 | //Zustand, dass der Roboter nicht gestoppt hat |
Jacqueline | 0:6d0671ae4648 | 180 | stopRight = false; |
Jacqueline | 0:6d0671ae4648 | 181 | stopLeft = false; |
Jacqueline | 0:6d0671ae4648 | 182 | |
Jacqueline | 0:6d0671ae4648 | 183 | //Drehrichtung der Motoren |
Jacqueline | 0:6d0671ae4648 | 184 | controller.setDesiredSpeedRight((speedRight)); |
Jacqueline | 0:6d0671ae4648 | 185 | controller.setDesiredSpeedLeft((speedLeft)); |
Jacqueline | 0:6d0671ae4648 | 186 | |
Jacqueline | 0:6d0671ae4648 | 187 | while(1){ |
Jacqueline | 0:6d0671ae4648 | 188 | |
Jacqueline | 0:6d0671ae4648 | 189 | // printf("Encoderrechts %d \n\r", counterRight.read()); //Debugging Zweck (Putty benutzen!) |
Jacqueline | 0:6d0671ae4648 | 190 | // printf("Encoderlinks %d \n\r", counterLeft.read()); //Debugging Zweck (Putty benutzen!) |
Jacqueline | 0:6d0671ae4648 | 191 | |
Jacqueline | 0:6d0671ae4648 | 192 | //If Schleife, wenn Clicks erreicht sind, muss der Motor stoppen |
Jacqueline | 0:6d0671ae4648 | 193 | if(counterRight.read() - initialClicksRight >= wegRechts || counterRight.read() - initialClicksRight <= -wegRechts){ |
Jacqueline | 0:6d0671ae4648 | 194 | controller.setDesiredSpeedRight(0); |
Jacqueline | 0:6d0671ae4648 | 195 | stopRight = true; |
Jacqueline | 0:6d0671ae4648 | 196 | } |
Jacqueline | 0:6d0671ae4648 | 197 | |
Jacqueline | 0:6d0671ae4648 | 198 | //If Schleife, wenn Clicks erreicht sind, muss der Motor stoppen |
Jacqueline | 0:6d0671ae4648 | 199 | if(counterLeft.read() - initialClicksLeft >= wegLinks || counterLeft.read() - initialClicksLeft <= -wegLinks ){ |
Jacqueline | 0:6d0671ae4648 | 200 | controller.setDesiredSpeedLeft(0); |
Jacqueline | 0:6d0671ae4648 | 201 | stopLeft = true; |
Jacqueline | 0:6d0671ae4648 | 202 | } |
Jacqueline | 0:6d0671ae4648 | 203 | |
Jacqueline | 0:6d0671ae4648 | 204 | if(stopRight == true && stopLeft == true){ |
Jacqueline | 0:6d0671ae4648 | 205 | return; |
Jacqueline | 0:6d0671ae4648 | 206 | } |
Jacqueline | 0:6d0671ae4648 | 207 | |
Jacqueline | 0:6d0671ae4648 | 208 | } |
Jacqueline | 0:6d0671ae4648 | 209 | |
Jacqueline | 0:6d0671ae4648 | 210 | } |
Jacqueline | 0:6d0671ae4648 | 211 | |
Jacqueline | 0:6d0671ae4648 | 212 | |
Jacqueline | 2:402b1a74fff6 | 213 | //Implementation der Methode 90 Grad Linksdrehen |
Jacqueline | 2:402b1a74fff6 | 214 | void Fahren::links90() { |
Jacqueline | 0:6d0671ae4648 | 215 | |
Jacqueline | 0:6d0671ae4648 | 216 | //einlesen des aktuellen Encoder standes |
Jacqueline | 0:6d0671ae4648 | 217 | initialClicksRight = counterRight.read(); |
Jacqueline | 0:6d0671ae4648 | 218 | initialClicksLeft = counterLeft.read(); |
Jacqueline | 0:6d0671ae4648 | 219 | |
Jacqueline | 0:6d0671ae4648 | 220 | //Anzahl Clicks die der Encoder zählen soll |
Jacqueline | 2:402b1a74fff6 | 221 | wegRechts = 878; |
Jacqueline | 2:402b1a74fff6 | 222 | wegLinks = 878; |
Jacqueline | 0:6d0671ae4648 | 223 | |
Jacqueline | 0:6d0671ae4648 | 224 | //Geschwindigkeit |
Jacqueline | 0:6d0671ae4648 | 225 | speedRight = 50; |
Jacqueline | 0:6d0671ae4648 | 226 | speedLeft = 50; |
Jacqueline | 0:6d0671ae4648 | 227 | |
Jacqueline | 0:6d0671ae4648 | 228 | //Zustand, dass der Roboter nicht gestoppt hat |
Jacqueline | 0:6d0671ae4648 | 229 | stopRight = false; |
Jacqueline | 0:6d0671ae4648 | 230 | stopLeft = false; |
Jacqueline | 0:6d0671ae4648 | 231 | |
Jacqueline | 0:6d0671ae4648 | 232 | //Drehrichtung der Motoren |
Jacqueline | 2:402b1a74fff6 | 233 | controller.setDesiredSpeedRight((-speedRight)); |
Jacqueline | 2:402b1a74fff6 | 234 | controller.setDesiredSpeedLeft((-speedLeft)); |
Jacqueline | 0:6d0671ae4648 | 235 | |
Jacqueline | 0:6d0671ae4648 | 236 | while(1){ |
Jacqueline | 0:6d0671ae4648 | 237 | |
Jacqueline | 0:6d0671ae4648 | 238 | // printf("Encoderrechts %d \n\r", counterRight.read()); //Debugging Zweck (Putty benutzen!) |
Jacqueline | 0:6d0671ae4648 | 239 | // printf("Encoderlinks %d \n\r", counterLeft.read()); //Debugging Zweck (Putty benutzen!) |
Jacqueline | 0:6d0671ae4648 | 240 | |
Jacqueline | 0:6d0671ae4648 | 241 | //If Schleife, wenn Clicks erreicht sind, muss der Motor stoppen |
Jacqueline | 0:6d0671ae4648 | 242 | if(counterRight.read() - initialClicksRight >= wegRechts || counterRight.read() - initialClicksRight <= -wegRechts){ |
Jacqueline | 0:6d0671ae4648 | 243 | controller.setDesiredSpeedRight(0); |
Jacqueline | 0:6d0671ae4648 | 244 | stopRight = true; |
Jacqueline | 0:6d0671ae4648 | 245 | } |
Jacqueline | 0:6d0671ae4648 | 246 | |
Jacqueline | 0:6d0671ae4648 | 247 | //If Schleife, wenn Clicks erreicht sind, muss der Motor stoppen |
Jacqueline | 0:6d0671ae4648 | 248 | if(counterLeft.read() - initialClicksLeft >= wegLinks || counterLeft.read() - initialClicksLeft <= -wegLinks ){ |
Jacqueline | 0:6d0671ae4648 | 249 | controller.setDesiredSpeedLeft(0); |
Jacqueline | 0:6d0671ae4648 | 250 | stopLeft = true; |
Jacqueline | 0:6d0671ae4648 | 251 | } |
Jacqueline | 0:6d0671ae4648 | 252 | |
Jacqueline | 0:6d0671ae4648 | 253 | if(stopRight == true && stopLeft == true){ |
Jacqueline | 0:6d0671ae4648 | 254 | return; |
Jacqueline | 0:6d0671ae4648 | 255 | } |
Jacqueline | 0:6d0671ae4648 | 256 | |
Jacqueline | 0:6d0671ae4648 | 257 | } |
Jacqueline | 0:6d0671ae4648 | 258 | |
Jacqueline | 0:6d0671ae4648 | 259 | } |
Jacqueline | 0:6d0671ae4648 | 260 | |
ahlervin | 4:767fd282dd9c | 261 | |
ahlervin | 4:767fd282dd9c | 262 | //Implementation der Methode Ziel erreicht |
ahlervin | 4:767fd282dd9c | 263 | void Fahren::ziel() { |
ahlervin | 4:767fd282dd9c | 264 | |
ahlervin | 4:767fd282dd9c | 265 | //einlesen des aktuellen Encoder standes |
ahlervin | 4:767fd282dd9c | 266 | initialClicksRight = counterRight.read(); |
ahlervin | 4:767fd282dd9c | 267 | initialClicksLeft = counterLeft.read(); |
Jacqueline | 0:6d0671ae4648 | 268 | |
ahlervin | 4:767fd282dd9c | 269 | //Anzahl Clicks die der Encoder zählen soll |
ahlervin | 4:767fd282dd9c | 270 | wegRechts = 7050; |
ahlervin | 4:767fd282dd9c | 271 | wegLinks = 7050; |
ahlervin | 4:767fd282dd9c | 272 | |
ahlervin | 4:767fd282dd9c | 273 | //Geschwindigkeit |
ahlervin | 4:767fd282dd9c | 274 | speedRight = 80; |
ahlervin | 4:767fd282dd9c | 275 | speedLeft = 80; |
ahlervin | 4:767fd282dd9c | 276 | |
ahlervin | 4:767fd282dd9c | 277 | //Zustand, dass der Roboter nicht gestoppt hat |
ahlervin | 4:767fd282dd9c | 278 | stopRight = false; |
ahlervin | 4:767fd282dd9c | 279 | stopLeft = false; |
ahlervin | 4:767fd282dd9c | 280 | |
ahlervin | 4:767fd282dd9c | 281 | //Drehrichtung der Motoren |
ahlervin | 4:767fd282dd9c | 282 | controller.setDesiredSpeedRight((speedRight)); |
ahlervin | 4:767fd282dd9c | 283 | controller.setDesiredSpeedLeft((speedLeft)); |
ahlervin | 4:767fd282dd9c | 284 | |
ahlervin | 4:767fd282dd9c | 285 | while(1){ |
ahlervin | 4:767fd282dd9c | 286 | |
ahlervin | 4:767fd282dd9c | 287 | // printf("Encoderrechts %d \n\r", counterRight.read()); //Debugging Zweck (Putty benutzen!) |
ahlervin | 4:767fd282dd9c | 288 | // printf("Encoderlinks %d \n\r", counterLeft.read()); //Debugging Zweck (Putty benutzen!) |
ahlervin | 4:767fd282dd9c | 289 | |
ahlervin | 4:767fd282dd9c | 290 | //If Schleife, wenn Clicks erreicht sind, muss der Motor stoppen |
ahlervin | 4:767fd282dd9c | 291 | if(counterRight.read() - initialClicksRight >= wegRechts || counterRight.read() - initialClicksRight <= -wegRechts){ |
ahlervin | 4:767fd282dd9c | 292 | controller.setDesiredSpeedRight(0); |
ahlervin | 4:767fd282dd9c | 293 | stopRight = true; |
ahlervin | 4:767fd282dd9c | 294 | } |
ahlervin | 4:767fd282dd9c | 295 | |
ahlervin | 4:767fd282dd9c | 296 | //If Schleife, wenn Clicks erreicht sind, muss der Motor stoppen |
ahlervin | 4:767fd282dd9c | 297 | if(counterLeft.read() - initialClicksLeft >= wegLinks || counterLeft.read() - initialClicksLeft <= -wegLinks ){ |
ahlervin | 4:767fd282dd9c | 298 | controller.setDesiredSpeedLeft(0); |
ahlervin | 4:767fd282dd9c | 299 | stopLeft = true; |
ahlervin | 4:767fd282dd9c | 300 | } |
ahlervin | 4:767fd282dd9c | 301 | |
ahlervin | 4:767fd282dd9c | 302 | if(stopRight == true && stopLeft == true){ |
ahlervin | 4:767fd282dd9c | 303 | return; |
ahlervin | 4:767fd282dd9c | 304 | } |
ahlervin | 4:767fd282dd9c | 305 | } |
ahlervin | 4:767fd282dd9c | 306 | |
ahlervin | 4:767fd282dd9c | 307 | } |
Jacqueline | 0:6d0671ae4648 | 308 | |
ahlervin | 4:767fd282dd9c | 309 | //Implementation der Methode stopp |
ahlervin | 4:767fd282dd9c | 310 | void Fahren::stopp(){ |
ahlervin | 4:767fd282dd9c | 311 | |
ahlervin | 4:767fd282dd9c | 312 | //einlesen des aktuellen Encoder standes |
ahlervin | 4:767fd282dd9c | 313 | initialClicksRight = counterRight.read(); |
ahlervin | 4:767fd282dd9c | 314 | initialClicksLeft = counterLeft.read(); |
ahlervin | 4:767fd282dd9c | 315 | |
ahlervin | 4:767fd282dd9c | 316 | //Anzahl Clicks die der Encoder zählen soll |
ahlervin | 4:767fd282dd9c | 317 | wegRechts = 0; |
ahlervin | 4:767fd282dd9c | 318 | wegLinks = 0; |
ahlervin | 4:767fd282dd9c | 319 | |
ahlervin | 4:767fd282dd9c | 320 | //Geschwindigkeit |
ahlervin | 4:767fd282dd9c | 321 | speedRight = 0; |
ahlervin | 4:767fd282dd9c | 322 | speedLeft = 0; |
ahlervin | 4:767fd282dd9c | 323 | |
ahlervin | 4:767fd282dd9c | 324 | //Zustand, dass der Roboter nicht gestoppt hat |
ahlervin | 4:767fd282dd9c | 325 | stopRight = false; |
ahlervin | 4:767fd282dd9c | 326 | stopLeft = false; |
ahlervin | 4:767fd282dd9c | 327 | |
ahlervin | 4:767fd282dd9c | 328 | //Drehrichtung der Motoren |
ahlervin | 4:767fd282dd9c | 329 | controller.setDesiredSpeedRight(speedRight); |
ahlervin | 4:767fd282dd9c | 330 | controller.setDesiredSpeedLeft(-(speedLeft)); |
ahlervin | 4:767fd282dd9c | 331 | |
ahlervin | 4:767fd282dd9c | 332 | |
ahlervin | 4:767fd282dd9c | 333 | while(1){ |
ahlervin | 4:767fd282dd9c | 334 | |
ahlervin | 4:767fd282dd9c | 335 | // printf("Encoderrechts %d \n\r", counterRight.read()); //Debugging Zweck (Putty benutzen!) |
ahlervin | 4:767fd282dd9c | 336 | // printf("Encoderlinks %d \n\r", counterLeft.read()); //Debugging Zweck (Putty benutzen!) |
ahlervin | 4:767fd282dd9c | 337 | |
ahlervin | 4:767fd282dd9c | 338 | //If Schleife, wenn Clicks erreicht sind, muss der Motor stoppen |
ahlervin | 4:767fd282dd9c | 339 | if(counterRight.read() - initialClicksRight >= wegRechts || counterRight.read() - initialClicksRight <= -wegRechts){ |
ahlervin | 4:767fd282dd9c | 340 | controller.setDesiredSpeedRight(0); |
ahlervin | 4:767fd282dd9c | 341 | stopRight = true; |
ahlervin | 4:767fd282dd9c | 342 | } |
ahlervin | 4:767fd282dd9c | 343 | |
ahlervin | 4:767fd282dd9c | 344 | //If Schleife, wenn Clicks erreicht sind, muss der Motor stoppen |
ahlervin | 4:767fd282dd9c | 345 | if(counterLeft.read() - initialClicksLeft >= wegLinks || counterLeft.read() - initialClicksLeft <= -wegLinks ){ |
ahlervin | 4:767fd282dd9c | 346 | controller.setDesiredSpeedLeft(0); |
ahlervin | 4:767fd282dd9c | 347 | stopLeft = true; |
ahlervin | 4:767fd282dd9c | 348 | } |
ahlervin | 4:767fd282dd9c | 349 | |
ahlervin | 4:767fd282dd9c | 350 | if(stopRight == true && stopLeft == true){ |
ahlervin | 4:767fd282dd9c | 351 | return; |
ahlervin | 4:767fd282dd9c | 352 | } |
ahlervin | 4:767fd282dd9c | 353 | |
ahlervin | 4:767fd282dd9c | 354 | } |
ahlervin | 4:767fd282dd9c | 355 | |
ahlervin | 4:767fd282dd9c | 356 | } |