
Lol smth
Dependencies: LocalPositionSystem MMA8451Q Motor_Driver Sensors mbed
Fork of TDP_main_BartFork by
Diff: main.cpp
- Revision:
- 25:8be440e10126
- Parent:
- 24:c1b1b0ea0cb9
- Child:
- 26:cbbfe012a757
--- a/main.cpp Sun Mar 22 14:57:21 2015 +0000 +++ b/main.cpp Sun Mar 22 23:55:20 2015 +0000 @@ -40,7 +40,7 @@ mode driveMode; //declaring the variable for the states int sensorsCheckSum; //varibale used for sensors mapping access int passedTime1,passedTime2; -int values_old[5] = {0}; +int oldValues[5] = {0}; int k = 0; @@ -56,11 +56,11 @@ sensorsCheckSum += (i+1)*(i+1); } } - if (values_old[0] != sensorsCheckSum) { + if (oldValues[0] != sensorsCheckSum) { for (k = 5; k > 0; k--) { - values_old[k] = values_old[k-1]; + oldValues[k] = oldValues[k-1]; } - values_old[0] = sensorsCheckSum; + oldValues[0] = sensorsCheckSum; } //pc.printf("sensorsCheckSum is %i",sensorsCheckSum); } @@ -120,7 +120,7 @@ wait(1); //give time to set up the system sensorTimer.start(); // start timer for sensors - float normalSpeed = 0.01f; +// float normalSpeed = 0.01f; // HC06.baud(9600); // HC06.printf("working.."); // motors.setSpeed(normalSpeed); @@ -130,11 +130,11 @@ // // // wait(3); - while(1){ - if (pc.getc() == 'r') { - measureSensors(); + // while(1){ +// if (pc.getc() == 'r') { +// measureSensors(); //measureTimer.reset(); - printBluetooth(); +// printBluetooth(); //passedTime1 = measureTimer.read_ms(); //if (sensorsCheckSum == 0) { // motors.setSpeed(normalSpeed); @@ -151,8 +151,8 @@ // else { // motors.setSpeed(normalSpeed); // } - } - } +// } +// } //HC06.printf("AT"); //HC06.printf("AT+PIN5555"); @@ -169,39 +169,91 @@ measureSensors(); switch (sensorsCheckSum) { case 0: // all black, turn around by 180 degrees - goto turnAround; + for (k=0;k<6;k++) { //right turn situation + if (oldValues[k] == 194) { + motors.stop(); + motors.setSteeringMode(NORMAL); + motors.reverse(); + motors.setSpeed(0.1f); + motors.start(); + wait(1); + } else { + motors.stop(); + motors.setSteeringMode(NORMAL); + motors.reverse(); + motors.setSpeed(0.1f); + motors.start(); + wait(2); + motors.stop(); + motors.setSteeringMode(PIVOT_CCW); + motors.setSpeed(0.1f); + do + { + motors.start(); + measureSensors(); + } while (sensorsCheckSum != 96); + motors.stop(); + motors.setSteeringMode(NORMAL); + } break; case 30: //all right are white, left all black >> turn right(move left wheel) motors.setRightSpeed(0.15f); motors.setLeftSpeed(0.5f); break; - case 46: //left 5 white, right only 3 black >> turn right - motors.setRightSpeed(0.15f); - motors.setLeftSpeed(0.5f); - break; +// case 46: //left 5 white, right only 3 black >> turn right +// motors.setRightSpeed(0.15f); +// motors.setLeftSpeed(0.1f); +// break; case 94: //normal starting position, half of right and half of left are white, (move right wheel) + motors.setSteeringMode(NORMAL); motors.setSpeed(0.1f); - motors.forward; - motors.start; + motors.forward(); + motors.start(); break; - case 104: //right all white, left half white >> turn right 90 degrees - - break; - case 154: //right 4 white, left only 6 black >> turn left - + case 104: //right all white, left half white >> turn right + motors.setRightSpeed(0.1f); + motors.setLeftSpeed(0.15f); break; +// case 154: //right 4 white, left only 6 black >> turn left +// break; case 174: //left all white, right all black >> turn left (move right wheel) - - + motors.setRightSpeed(0.05f); + motors.setLeftSpeed(0.15f); break; - case 194 : //left all white, right half white >> go straight, turn right if 194 goes to 204 - + case 194 : //left all white, right half white >> go straight, turn right if 194 goes to 204 break; case 204 : //all sensors are white + + for (k=0;k<6;k++) { //situation when a square is entered, need to follow right line + if (oldValues[k] == 194) { //checks whether black line on the right was present before + motors.setRightSpeed(0.15f); + motors.setLeftSpeed(0.05f); + } + + if (oldValues[k] == 104) { //right turn 90 situation + motors.stop(); + motors.setSteeringMode(PIVOT_CW); + motors.setRightSpeed(0.1f); + motors.setLeftSpeed(0.1f); + do + { + motors.start(); + measureSensors(); + } while (sensorsCheckSum != 94); + motors.stop(); + motors.setSteeringMode(NORMAL); + } + break; + default: //checksum is zero , all are black measureSensors(); break; } + } +} +} +} +} // if (testOtherCases == 1) { // if (sensorsCheckSum < 96){ // adjust right @@ -209,8 +261,7 @@ // else {//adjust left // } // testOtherCases = 0; -// } - +// } // // // @@ -223,27 +274,3 @@ // // } // - -} - -turnAround: - motors.reverse; - motors.setSpeed(0.1f); - motors.start; - wait(2); - motors.stop; - motors.setSteeringMode(PIVOT_CCW); - motors.setSpeed(0.1f); - do - { - motors.start; - } while (sensorsCheckSum != 96); - return 0; -} - - - - - - -