mirror of
https://github.com/modelec/PAMI-2025.git
synced 2026-03-18 21:40:36 +01:00
amélioration tirette et scénario
This commit is contained in:
27
src/main.cpp
27
src/main.cpp
@@ -5,7 +5,7 @@
|
|||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
|
|
||||||
// Côté bleu = 1 et Côté jaune = 2
|
// Côté bleu = 1 et Côté jaune = 2
|
||||||
#define PAMI_SIDE 2
|
#define PAMI_SIDE 1
|
||||||
|
|
||||||
volatile int32_t speed_steps_per_sec = 0; // target speed (signed)
|
volatile int32_t speed_steps_per_sec = 0; // target speed (signed)
|
||||||
uint32_t last_step_time = 0;
|
uint32_t last_step_time = 0;
|
||||||
@@ -20,6 +20,7 @@ bool movementInProgress = false;
|
|||||||
|
|
||||||
// Chaque étape du scénario
|
// Chaque étape du scénario
|
||||||
Step scenario[] = {
|
Step scenario[] = {
|
||||||
|
{STEP_ROTATE, PAMI_SIDE == 1 ? -1 : 1},
|
||||||
{STEP_FORWARD, 105},
|
{STEP_FORWARD, 105},
|
||||||
{STEP_ROTATE, PAMI_SIDE == 1 ? -90 : 90}, // Tourner à gauche si côté bleu, droite si jaune
|
{STEP_ROTATE, PAMI_SIDE == 1 ? -90 : 90}, // Tourner à gauche si côté bleu, droite si jaune
|
||||||
{STEP_FORWARD_UNTIL_END, 27}};
|
{STEP_FORWARD_UNTIL_END, 27}};
|
||||||
@@ -231,13 +232,13 @@ void detectObstacles()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// On gère le scénario du robot
|
// On gère le scénario du robot, retourne 0 si le scénario est terminé, 1 si en cours
|
||||||
void processScenario()
|
int processScenario()
|
||||||
{
|
{
|
||||||
if (!scenarioInProgress)
|
if (!scenarioInProgress)
|
||||||
return;
|
return 1;
|
||||||
if (movementInProgress)
|
if (movementInProgress)
|
||||||
return;
|
return 1;
|
||||||
|
|
||||||
// Si on est en phase de recherche de place
|
// Si on est en phase de recherche de place
|
||||||
if (recherchePlace)
|
if (recherchePlace)
|
||||||
@@ -268,14 +269,14 @@ void processScenario()
|
|||||||
recherchePlace = false;
|
recherchePlace = false;
|
||||||
rechercheStep = 0;
|
rechercheStep = 0;
|
||||||
}
|
}
|
||||||
return;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (currentScenarioStep >= scenarioLength)
|
if (currentScenarioStep >= scenarioLength)
|
||||||
{
|
{
|
||||||
Serial.println("Scénario terminé !");
|
Serial.println("Scénario terminé !");
|
||||||
scenarioInProgress = false;
|
scenarioInProgress = false;
|
||||||
return;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
Step &step = scenario[currentScenarioStep];
|
Step &step = scenario[currentScenarioStep];
|
||||||
@@ -295,6 +296,8 @@ void processScenario()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
currentScenarioStep++;
|
currentScenarioStep++;
|
||||||
|
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
bool tirettePose = false;
|
bool tirettePose = false;
|
||||||
void loop()
|
void loop()
|
||||||
@@ -316,7 +319,15 @@ void loop()
|
|||||||
|
|
||||||
detectObstacles(); // Vérification des obstacles
|
detectObstacles(); // Vérification des obstacles
|
||||||
|
|
||||||
processScenario(); // Gestion du scénario
|
// Gestion du scénario
|
||||||
|
if (processScenario() == 0)
|
||||||
|
{
|
||||||
|
Serial.println("Scénario terminé, arrêt des moteurs.");
|
||||||
|
stopMotors();
|
||||||
|
// On redémarre le robot pour recommencer la partie
|
||||||
|
ESP.restart();
|
||||||
|
break;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user