mirror of
https://github.com/modelec/pami.git
synced 2026-03-18 21:40:35 +01:00
correctifs reglèment et trajectoire
This commit is contained in:
52
src/main.cpp
52
src/main.cpp
@@ -9,6 +9,8 @@
|
|||||||
// Numéro du pami pour les différents robots car chemins différents
|
// Numéro du pami pour les différents robots car chemins différents
|
||||||
#define PAMI_NUM 2
|
#define PAMI_NUM 2
|
||||||
|
|
||||||
|
uint32_t startTime = 0;
|
||||||
|
|
||||||
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,32 +22,27 @@ volatile int32_t steps_target = 0;
|
|||||||
volatile int32_t steps_done = 0;
|
volatile int32_t steps_done = 0;
|
||||||
bool movementInProgress = false;
|
bool movementInProgress = false;
|
||||||
|
|
||||||
// Les différents scénario possibles: le superstar et les autres
|
// Les différents scénario possibles : le superstar et les autres
|
||||||
// #if PAMI_NUM == 1
|
#if PAMI_NUM == 1
|
||||||
// // Chaque étape du scénario
|
// Chaque étape du scénario
|
||||||
// Step scenario[] = {
|
|
||||||
// {STEP_FORWARD, 105, 2500},
|
|
||||||
// {STEP_ROTATE, PAMI_SIDE == 1 ? -90 : 90, 1000}, // Tourner à gauche si côté bleu, droite si jaune
|
|
||||||
// {STEP_FORWARD_UNTIL_END, 50, 2500}};
|
|
||||||
// #else
|
|
||||||
// Step scenario[] = {
|
|
||||||
// {STEP_FORWARD, 45, 3000},
|
|
||||||
// {STEP_ROTATE, PAMI_SIDE == 1 ? -90 : 90, 1000},
|
|
||||||
// {STEP_FORWARD, 30, 3000},
|
|
||||||
// {STEP_ROTATE, PAMI_SIDE == 1 ? 90 : -90, 1000},
|
|
||||||
// {STEP_FORWARD, 65 + 10 * (4 - PAMI_NUM), 3000},
|
|
||||||
// {STEP_ROTATE, PAMI_SIDE == 1 ? -90 : 90, 1000},
|
|
||||||
// #if PAMI_NUM > 2
|
|
||||||
// {STEP_BACKWARD, 10 * PAMI_NUM, 500}
|
|
||||||
// #endif
|
|
||||||
|
|
||||||
// };
|
|
||||||
// #endif
|
|
||||||
|
|
||||||
// Homologation
|
|
||||||
Step scenario[] = {
|
Step scenario[] = {
|
||||||
{STEP_FORWARD, 105, 2500},
|
{STEP_FORWARD, 105, 2500},
|
||||||
|
{STEP_ROTATE, PAMI_SIDE == 1 ? -90 : 90, 1000}, // Tourner à gauche si côté bleu, droite si jaune
|
||||||
|
{STEP_FORWARD_UNTIL_END, 50, 2500}};
|
||||||
|
#else
|
||||||
|
Step scenario[] = {
|
||||||
|
{STEP_FORWARD, 45, 3000},
|
||||||
|
{STEP_ROTATE, PAMI_SIDE == 1 ? -90 : 90, 1000},
|
||||||
|
{STEP_FORWARD, 30, 3000},
|
||||||
|
{STEP_ROTATE, PAMI_SIDE == 1 ? 90 : -90, 1000},
|
||||||
|
{STEP_FORWARD, 65 + 10 * (4 - PAMI_NUM), 3000},
|
||||||
|
{STEP_ROTATE, PAMI_SIDE == 1 ? -90 : 90, 1000},
|
||||||
|
#if PAMI_NUM > 2
|
||||||
|
{STEP_BACKWARD, 10 * PAMI_NUM, 500}
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
const int scenarioLength = sizeof(scenario) / sizeof(Step);
|
const int scenarioLength = sizeof(scenario) / sizeof(Step);
|
||||||
int currentScenarioStep = 0;
|
int currentScenarioStep = 0;
|
||||||
@@ -354,15 +351,18 @@ void loop()
|
|||||||
else if (digitalRead(TIRETTE_PIN) == HIGH && tirettePose)
|
else if (digitalRead(TIRETTE_PIN) == HIGH && tirettePose)
|
||||||
{
|
{
|
||||||
// Tirette activée
|
// Tirette activée
|
||||||
delay(5000);
|
uint32_t startDelay = 85000 + (PAMI_NUM - 1) * 3;
|
||||||
|
delay(startDelay);
|
||||||
|
uint32_t startTime = millis();
|
||||||
|
|
||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
updateSteppers(); // Mise à jour des moteurs asynchrone
|
updateSteppers(); // Mise à jour des moteurs asynchrone
|
||||||
|
|
||||||
detectObstacles(); // Vérification des obstacles
|
detectObstacles(); // Vérification des obstacles
|
||||||
|
|
||||||
// Gestion du scénario
|
// Gestion du scénario puis arrêt si terminé ou si temps dépassé
|
||||||
if (processScenario() == 0)
|
if (processScenario() == 0 || millis() - startTime >= 100000 - startDelay)
|
||||||
{
|
{
|
||||||
Serial.println("Scénario terminé, arrêt des moteurs.");
|
Serial.println("Scénario terminé, arrêt des moteurs.");
|
||||||
stopMotors();
|
stopMotors();
|
||||||
|
|||||||
Reference in New Issue
Block a user