Premier essai concluant de la séquence départ + empile

This commit is contained in:
Samuel 2025-05-26 15:53:21 +02:00
parent 74629edaa0
commit 598dbd2391
2 changed files with 20 additions and 11 deletions

View File

@ -344,7 +344,7 @@ void gestion_match(){
} }
delay(200); delay(200);
IHM_attente_match(&couleur); IHM_attente_match(&couleur);
tirette_enlevee = 1; tirette_enlevee = 0;
index_Maitre = MATCH_EN_COURS; index_Maitre = MATCH_EN_COURS;
@ -439,9 +439,10 @@ void IHM_attente_match(int * couleur){
enum etat_action_t Strategie(int couleur){ enum etat_action_t Strategie(int couleur){
static enum { static enum {
STRAT_RECULE_BANDEROLE, // Deplacement relatif STRAT_RECULE_BANDEROLE, // Deplacement relatif
STRAT_ALLER_GRADINS_1_A, // Déplacement absolu STRAT_ALLER_GRADINS_1_A, // Déplacement relatif
STRAT_ALLER_GRADINS_1_B, // Déplacement relatif STRAT_ALLER_GRADINS_1_B, // Cherche gradin
STRAT_ALLER_GRADINS_1_C, // Déplacement relatif STRAT_ALLER_GRADINS_1_C, // Déplacement relatif
STRAT_DEPOSE_GRADIN_1, // Empile gradin
STRAT_ALLER_PREPA_BACKSTAGE, // Déplacement absolu STRAT_ALLER_PREPA_BACKSTAGE, // Déplacement absolu
STRAT_ALLER_BACKSTAGE // Déplacement relatif STRAT_ALLER_BACKSTAGE // Déplacement relatif
@ -453,7 +454,7 @@ enum etat_action_t Strategie(int couleur){
switch(etat_strategie){ switch(etat_strategie){
case STRAT_RECULE_BANDEROLE: case STRAT_RECULE_BANDEROLE:
// Déplacement en X // Déplacement en X
translation_x_mm = -450; translation_x_mm = -300;
translation_y_mm = 0; translation_y_mm = 0;
rotation_rad = 0; rotation_rad = 0;
etat_action = deplacement_relatif(translation_x_mm, translation_y_mm, rotation_rad, 1); 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; break;
case STRAT_ALLER_GRADINS_1_A: case STRAT_ALLER_GRADINS_1_A:
translation_x_mm = -500;
rotation_rad = 0;
if(couleur == COULEUR_JAUNE){ if(couleur == COULEUR_JAUNE){
translation_x_mm = 0; translation_y_mm = -500;
translation_y_mm = 450;
rotation_rad = 0;
etat_action = deplacement_absolu(800, 800, -M_PI/2., 1);
}else{ }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){ if(etat_action == ACTION_TERMINEE){
etat_strategie = STRAT_ALLER_GRADINS_1_B; etat_strategie = STRAT_ALLER_GRADINS_1_B;
} }
break; break;
case STRAT_ALLER_GRADINS_1_B: case STRAT_ALLER_GRADINS_1_B:
etat_action = deplacement_relatif(300, 0, 0, 0); etat_action = gradin_approche();
if(etat_action == ACTION_TERMINEE){ if(etat_action == ACTION_TERMINEE){
etat_strategie = STRAT_ALLER_GRADINS_1_C; etat_strategie = STRAT_ALLER_GRADINS_1_C;
} }
break; break;
case STRAT_ALLER_GRADINS_1_C: 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){ if(etat_action == ACTION_TERMINEE){
etat_strategie = STRAT_ALLER_PREPA_BACKSTAGE; etat_strategie = STRAT_ALLER_PREPA_BACKSTAGE;
} }

View File

@ -8,6 +8,7 @@
#define ACTIONNEUR_DEPLACEMENT 2 #define ACTIONNEUR_DEPLACEMENT 2
#define ACTIONNEUR_PREPARE_PRISE 3 #define ACTIONNEUR_PREPARE_PRISE 3
#define ACTIONNEUR_PRISE 4 #define ACTIONNEUR_PRISE 4
#define ACTIONNEUR_EMPILE 5
struct com_actionneur_t{ struct com_actionneur_t{
char demande_action, action_terminee; char demande_action, action_terminee;