diff --git a/Deplacement-robot/bluetooth_control/bluetooth_control.ino b/Deplacement-robot/bluetooth_control/bluetooth_control.ino index f4b8278..c31827c 100644 --- a/Deplacement-robot/bluetooth_control/bluetooth_control.ino +++ b/Deplacement-robot/bluetooth_control/bluetooth_control.ino @@ -1,5 +1,4 @@ #include -const int analogPin = A0; // Analog input pin on Arduino #define RX_PIN 13 // Connected to HC-05 TX pin #define TX_PIN 12 // Connected to HC-05 RX pin #define LED_PIN 2 // Connected to LED pin @@ -72,7 +71,6 @@ void RotateRelative() { //We move X steps from the current position of the stepper motor in a given direction. //The direction is determined by the multiplier (+1 or -1) - runallowed = true; //allow running - this allows entering the RunTheMotor() function. stepper.setMaxSpeed(receivedSpeed); //set speed stepper.move(directionMultiplier * receivedSteps); //set relative distance and direction @@ -124,12 +122,12 @@ void RotateAbsolute2() //The AccelStepper library keeps track of the position. //The direction is determined by the multiplier (+1 or -1) //Why do we need negative numbers? - If you drive a threaded rod and the zero position is in the middle of the rod... - runallowed = true; //allow running - this allows entering the RunTheMotor() function. stepper2.setMaxSpeed(receivedSpeed); //set speed stepper2.moveTo(directionMultiplier2 * receivedSteps); //set relative distance } + void readinfo() { if (bluetooth.available() > 0) //if something comes from the computer @@ -144,9 +142,11 @@ void readinfo() case 'L': digitalWrite(LED_PIN, HIGH); break; + case 'O': digitalWrite(LED_PIN, LOW); break; + case 'P': //P uses the move() function of the AccelStepper library, which means that it moves relatively to the current position. receivedSteps = bluetooth.parseFloat(); //value for the steps @@ -154,85 +154,72 @@ void readinfo() directionMultiplier = 1; //We define the direction bluetooth.println("Positive direction."); //print the action RotateRelative(); //Run the function - - //example: P2000 400 - 2000 steps (5 revolution with 400 step/rev microstepping) and 400 steps/s speed //In theory, this movement should take 5 seconds break; - case 'N': //N uses the move() function of the AccelStepper library, which means that it moves relatively to the current position. - + case 'N': //N uses the move() function of the AccelStepper library, which means that it moves relatively to the current position. + receivedSteps = bluetooth.parseFloat(); //value for the steps receivedSpeed = bluetooth.parseFloat(); //value for the speed directionMultiplier = -1; //We define the direction bluetooth.println("Negative direction."); //print action RotateRelative(); //Run the function - //example: N2000 400 - 2000 steps (5 revolution with 400 step/rev microstepping) and 500 steps/s speed; will rotate in the other direction //In theory, this movement should take 5 seconds break; - case '1': //avancer - - receivedSteps = bluetooth.parseFloat(); //value for the steps - receivedSpeed = bluetooth.parseFloat(); //value for the speed - directionMultiplier = -1; //We define the direction - directionMultiplier2 = 1; - bluetooth.println("CA AVANCE."); //print the action - RotateRelative(); - RotateRelative2(); //Run the function - - //example: P2000 400 - 2000 steps (5 revolution with 400 step/rev microstepping) and 400 steps/s speed - //In theory, this movement should take 5 seconds - break; + case '1': //avancer + + receivedSteps = bluetooth.parseFloat(); //value for the steps + receivedSpeed = bluetooth.parseFloat(); //value for the speed + directionMultiplier = -1; //We define the direction + directionMultiplier2 = 1; + bluetooth.println("CA AVANCE."); //print the action + RotateRelative(); + RotateRelative2(); //Run the function + //example: P2000 400 - 2000 steps (5 revolution with 400 step/rev microstepping) and 400 steps/s speed + //In theory, this movement should take 5 seconds + break; + case '2': //reculer - receivedSteps = bluetooth.parseFloat(); //value for the steps - receivedSpeed = bluetooth.parseFloat(); //value for the speed - directionMultiplier = 1; //We define the direction - directionMultiplier2 = -1; - bluetooth.println("CA RECULE"); //print the action - RotateRelative(); - RotateRelative2(); //Run the function - + receivedSteps = bluetooth.parseFloat(); //value for the steps + receivedSpeed = bluetooth.parseFloat(); //value for the speed + directionMultiplier = 1; //We define the direction + directionMultiplier2 = -1; + bluetooth.println("CA RECULE"); //print the action + RotateRelative(); + RotateRelative2(); //Run the function + //example: P2000 400 - 2000 steps (5 revolution with 400 step/rev microstepping) and 400 steps/s speed + //In theory, this movement should take 5 seconds + break; - //example: P2000 400 - 2000 steps (5 revolution with 400 step/rev microstepping) and 400 steps/s speed - //In theory, this movement should take 5 seconds - break; case '3': //a gauche - receivedSteps = bluetooth.parseFloat(); //value for the steps - receivedSpeed = bluetooth.parseFloat(); //value for the speed - directionMultiplier = 1; //We define the direction - directionMultiplier2 = 1; - bluetooth.println("CA TOURNE A GAUCHE"); //print the action - RotateRelative(); - RotateRelative2(); //Run the function - - - //example: P2000 400 - 2000 steps (5 revolution with 400 step/rev microstepping) and 400 steps/s speed - //In theory, this movement should take 5 seconds - break; + receivedSteps = bluetooth.parseFloat(); //value for the steps + receivedSpeed = bluetooth.parseFloat(); //value for the speed + directionMultiplier = 1; //We define the direction + directionMultiplier2 = 1; + bluetooth.println("CA TOURNE A GAUCHE"); //print the action + RotateRelative(); + RotateRelative2(); //Run the function + break; case '4': //a droite. - receivedSteps = bluetooth.parseFloat(); //value for the steps - receivedSpeed = bluetooth.parseFloat(); //value for the speed - directionMultiplier = -1; //We define the direction - directionMultiplier2 = -1; - bluetooth.println("CA TOURNE A DROITE"); //print the action - RotateRelative(); - RotateRelative2(); //Run the function - - - //example: P2000 400 - 2000 steps (5 revolution with 400 step/rev microstepping) and 400 steps/s speed - //In theory, this movement should take 5 seconds - break; + receivedSteps = bluetooth.parseFloat(); //value for the steps + receivedSpeed = bluetooth.parseFloat(); //value for the speed + directionMultiplier = -1; //We define the direction + directionMultiplier2 = -1; + bluetooth.println("CA TOURNE A DROITE"); //print the action + RotateRelative(); + RotateRelative2(); //Run the function + break; - default: + default: break; } } } - }