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);
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;
}

View File

@ -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;