Roboshark / Mbed 2 deprecated TestRegler

Dependencies:   mbed

Fork of Roboshark_V3 by Roboshark

Committer:
ahlervin
Date:
Mon Apr 30 22:11:38 2018 +0000
Revision:
7:b2a16b1cf487
Parent:
6:a4b745625dbe
Child:
8:d7dfee648545
Regler

Who changed what in which revision?

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