Match 1
This commit is contained in:
parent
8bdffe821d
commit
d94cedd6e2
@ -438,22 +438,30 @@ 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_INIT, // On attend de ne pas voir la tirette dans la detection de l'adversaire
|
||||||
STRAT_RECULE_BANDEROLE, // Deplacement relatif
|
STRAT_RECULE_BANDEROLE, // Deplacement relatif
|
||||||
STRAT_ALLER_GRADINS_1_A, // Déplacement relatif
|
STRAT_ALLER_GRADINS_1_A, // Déplacement relatif
|
||||||
STRAT_ALLER_GRADINS_1_B, // Cherche gradin
|
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_1A, // Empile gradin
|
STRAT_DEPOSE_GRADIN_1A, // Empile gradin
|
||||||
STRAT_DEPOSE_GRADIN_1B, // Recule du gradin
|
STRAT_DEPOSE_GRADIN_1B, // Recule du gradin
|
||||||
STRAT_ALLER_PREPA_BACKSTAGE, // Déplacement absolu
|
STRAT_ALLER_PREPA_BACKSTAGE, // Déplacement relaif
|
||||||
STRAT_ALLER_BACKSTAGE // Déplacement relatif
|
STRAT_ATTENTE_BACKSTAGE, // Attente
|
||||||
|
STRAT_ALLER_BACKSTAGE, // Déplacement relatif
|
||||||
|
STRAT_FIN
|
||||||
|
|
||||||
}etat_strategie = STRAT_RECULE_BANDEROLE;
|
}etat_strategie = STRAT_RECULE_BANDEROLE;
|
||||||
enum etat_action_t etat_action;
|
enum etat_action_t etat_action;
|
||||||
int translation_x_mm, translation_y_mm;
|
int translation_x_mm, translation_y_mm;
|
||||||
|
static unsigned long temps_timer;
|
||||||
float rotation_rad;
|
float rotation_rad;
|
||||||
|
|
||||||
switch(etat_strategie){
|
switch(etat_strategie){
|
||||||
|
case STRAT_INIT:
|
||||||
|
temps_timer = millis();
|
||||||
|
break;
|
||||||
case STRAT_RECULE_BANDEROLE:
|
case STRAT_RECULE_BANDEROLE:
|
||||||
|
if(millis() - temps_timer > 300){
|
||||||
// Déplacement en X
|
// Déplacement en X
|
||||||
translation_x_mm = -300;
|
translation_x_mm = -300;
|
||||||
translation_y_mm = 0;
|
translation_y_mm = 0;
|
||||||
@ -462,15 +470,16 @@ enum etat_action_t Strategie(int couleur){
|
|||||||
if(etat_action == ACTION_TERMINEE){
|
if(etat_action == ACTION_TERMINEE){
|
||||||
etat_strategie = STRAT_ALLER_GRADINS_1_A;
|
etat_strategie = STRAT_ALLER_GRADINS_1_A;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case STRAT_ALLER_GRADINS_1_A:
|
case STRAT_ALLER_GRADINS_1_A:
|
||||||
translation_x_mm = -500;
|
translation_x_mm = -450;
|
||||||
rotation_rad = 0;
|
rotation_rad = 0;
|
||||||
if(couleur == COULEUR_JAUNE){
|
if(couleur == COULEUR_JAUNE){
|
||||||
translation_y_mm = -500;
|
translation_y_mm = -450;
|
||||||
}else{
|
}else{
|
||||||
translation_y_mm = 500;
|
translation_y_mm = 450;
|
||||||
}
|
}
|
||||||
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);
|
||||||
if(etat_action == ACTION_TERMINEE){
|
if(etat_action == ACTION_TERMINEE){
|
||||||
@ -480,7 +489,7 @@ enum etat_action_t Strategie(int couleur){
|
|||||||
|
|
||||||
case STRAT_ALLER_GRADINS_1_B:
|
case STRAT_ALLER_GRADINS_1_B:
|
||||||
etat_action = gradin_approche();
|
etat_action = gradin_approche();
|
||||||
if(etat_action == ACTION_TERMINEE){
|
if(etat_action == ACTION_TERMINEE || etat_action == ACTION_ECHEC){
|
||||||
etat_strategie = STRAT_ALLER_GRADINS_1_C;
|
etat_strategie = STRAT_ALLER_GRADINS_1_C;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -511,22 +520,31 @@ enum etat_action_t Strategie(int couleur){
|
|||||||
|
|
||||||
case STRAT_ALLER_PREPA_BACKSTAGE:
|
case STRAT_ALLER_PREPA_BACKSTAGE:
|
||||||
if(couleur == COULEUR_JAUNE){
|
if(couleur == COULEUR_JAUNE){
|
||||||
etat_action = deplacement_absolu(550, 1150, M_PI/2., 0);
|
etat_action = deplacement_relatif(0, 0, 165. / 180 * M_PI, 0);
|
||||||
}else{
|
}else{
|
||||||
etat_action = deplacement_absolu(3000 - 550, 1150, M_PI/2., 0);
|
etat_action = deplacement_relatif(0, 0, -165. / 180 * M_PI, 0);
|
||||||
}
|
}
|
||||||
if(etat_action == ACTION_TERMINEE){
|
if(etat_action == ACTION_TERMINEE){
|
||||||
|
etat_strategie = STRAT_ATTENTE_BACKSTAGE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case STRAT_ATTENTE_BACKSTAGE:
|
||||||
|
if (millis() - temps_timer > 95000){
|
||||||
etat_strategie = STRAT_ALLER_BACKSTAGE;
|
etat_strategie = STRAT_ALLER_BACKSTAGE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case STRAT_ALLER_BACKSTAGE:
|
case STRAT_ALLER_BACKSTAGE:
|
||||||
etat_action = deplacement_relatif(500, 0, 0, 0);
|
etat_action = deplacement_relatif(1140, 0, 0, 0);
|
||||||
if(etat_action == ACTION_TERMINEE){
|
if(etat_action == ACTION_TERMINEE){
|
||||||
etat_strategie = STRAT_RECULE_BANDEROLE;
|
etat_strategie = STRAT_FIN;
|
||||||
return ACTION_TERMINEE;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case STRAT_FIN:
|
||||||
|
return ACTION_TERMINEE;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return ACTION_EN_COURS;
|
return ACTION_EN_COURS;
|
||||||
@ -610,7 +628,6 @@ enum etat_action_t gradin_approche(void){
|
|||||||
|
|
||||||
case GA_GOTO_EN_FACE:
|
case GA_GOTO_EN_FACE:
|
||||||
case GA_GOTO_LARGE:
|
case GA_GOTO_LARGE:
|
||||||
Detect_gradin(&detect_gradin);
|
|
||||||
if(detect_gradin.status != 2){
|
if(detect_gradin.status != 2){
|
||||||
nb_erreur++;
|
nb_erreur++;
|
||||||
if(nb_erreur > 100){
|
if(nb_erreur > 100){
|
||||||
|
Loading…
Reference in New Issue
Block a user