diff --git a/Cerveau/Cerveau.ino b/Cerveau/Cerveau.ino index ba6cd41..46824e3 100644 --- a/Cerveau/Cerveau.ino +++ b/Cerveau/Cerveau.ino @@ -344,7 +344,7 @@ void gestion_match(){ } delay(200); IHM_attente_match(&couleur); - tirette_enlevee = 1; + tirette_enlevee = 0; index_Maitre = MATCH_EN_COURS; @@ -439,9 +439,10 @@ void IHM_attente_match(int * couleur){ enum etat_action_t Strategie(int couleur){ static enum { STRAT_RECULE_BANDEROLE, // Deplacement relatif - STRAT_ALLER_GRADINS_1_A, // Déplacement absolu - STRAT_ALLER_GRADINS_1_B, // Déplacement relatif + STRAT_ALLER_GRADINS_1_A, // Déplacement relatif + STRAT_ALLER_GRADINS_1_B, // Cherche gradin STRAT_ALLER_GRADINS_1_C, // Déplacement relatif + STRAT_DEPOSE_GRADIN_1, // Empile gradin STRAT_ALLER_PREPA_BACKSTAGE, // Déplacement absolu STRAT_ALLER_BACKSTAGE // Déplacement relatif @@ -453,7 +454,7 @@ enum etat_action_t Strategie(int couleur){ switch(etat_strategie){ case STRAT_RECULE_BANDEROLE: // Déplacement en X - translation_x_mm = -450; + translation_x_mm = -300; translation_y_mm = 0; rotation_rad = 0; etat_action = deplacement_relatif(translation_x_mm, translation_y_mm, rotation_rad, 1); @@ -463,28 +464,35 @@ enum etat_action_t Strategie(int couleur){ break; case STRAT_ALLER_GRADINS_1_A: + translation_x_mm = -500; + rotation_rad = 0; if(couleur == COULEUR_JAUNE){ - translation_x_mm = 0; - translation_y_mm = 450; - rotation_rad = 0; - etat_action = deplacement_absolu(800, 800, -M_PI/2., 1); + translation_y_mm = -500; }else{ - etat_action = deplacement_absolu(3000 - 800, 800, -M_PI/2., 1); + translation_y_mm = 500; } + etat_action = deplacement_relatif(translation_x_mm, translation_y_mm, rotation_rad, 1); if(etat_action == ACTION_TERMINEE){ etat_strategie = STRAT_ALLER_GRADINS_1_B; } break; case STRAT_ALLER_GRADINS_1_B: - etat_action = deplacement_relatif(300, 0, 0, 0); + etat_action = gradin_approche(); if(etat_action == ACTION_TERMINEE){ etat_strategie = STRAT_ALLER_GRADINS_1_C; } break; case STRAT_ALLER_GRADINS_1_C: - etat_action = deplacement_relatif(-250, 0, 0, 0); + etat_action = deplacement_relatif(120, 0, 0, 0); + if(etat_action == ACTION_TERMINEE){ + etat_strategie = STRAT_DEPOSE_GRADIN_1; + } + break; + + case STRAT_DEPOSE_GRADIN_1: + etat_action = actionneur_action(ACTIONNEUR_EMPILE); if(etat_action == ACTION_TERMINEE){ etat_strategie = STRAT_ALLER_PREPA_BACKSTAGE; } diff --git a/Cerveau/Com_actionneur.h b/Cerveau/Com_actionneur.h index fb900b6..7e05c3c 100644 --- a/Cerveau/Com_actionneur.h +++ b/Cerveau/Com_actionneur.h @@ -8,6 +8,7 @@ #define ACTIONNEUR_DEPLACEMENT 2 #define ACTIONNEUR_PREPARE_PRISE 3 #define ACTIONNEUR_PRISE 4 +#define ACTIONNEUR_EMPILE 5 struct com_actionneur_t{ char demande_action, action_terminee;