cerise guache quasi-fonctionnelle - une bizarrerie au niveau de la position Y...
This commit is contained in:
parent
2537c5d371
commit
c7fb4b5ef8
@ -82,7 +82,7 @@ int main() {
|
||||
AsserMoteur_Init();
|
||||
Localisation_init();
|
||||
|
||||
while(mode_test());
|
||||
//while(mode_test());
|
||||
i2c_maitre_init();
|
||||
Trajet_init();
|
||||
Balise_VL53L1X_init();
|
||||
|
33
Strategie.c
33
Strategie.c
@ -85,7 +85,7 @@ void Strategie(enum couleur_t couleur, uint32_t step_ms){
|
||||
struct objectif_t objectif_1 = { .priorite = 1, .etat = A_FAIRE, .cible = CERISE_BAS};
|
||||
struct objectif_t objectif_2 = { .priorite = 2, .etat = A_FAIRE, .cible = CERISE_HAUT};
|
||||
struct objectif_t objectif_3 = { .priorite = 3, .etat = A_FAIRE, .cible = CERISE_GAUCHE};
|
||||
struct objectif_t objectif_4 = { .priorite = 4, .etat = A_FAIRE, .cible = CERISE_DROITE};
|
||||
struct objectif_t objectif_4 = { .priorite = 4, .etat = FAIT, .cible = CERISE_DROITE};
|
||||
objectifs[0]= objectif_1;
|
||||
objectifs[1]= objectif_2;
|
||||
objectifs[2]= objectif_3;
|
||||
@ -94,8 +94,8 @@ void Strategie(enum couleur_t couleur, uint32_t step_ms){
|
||||
Localisation_set(2000 - 775., 109., (-60.+CORR_ANGLE_DEPART_DEGREE) * DEGRE_EN_RADIAN);
|
||||
struct objectif_t objectif_1 = { .priorite = 1, .etat = A_FAIRE, .cible = CERISE_BAS};
|
||||
struct objectif_t objectif_2 = { .priorite = 2, .etat = A_FAIRE, .cible = CERISE_HAUT};
|
||||
struct objectif_t objectif_3 = { .priorite = 3, .etat = A_FAIRE, .cible = CERISE_DROITE};
|
||||
struct objectif_t objectif_4 = { .priorite = 4, .etat = A_FAIRE, .cible = CERISE_GAUCHE};
|
||||
struct objectif_t objectif_3 = { .priorite = 3, .etat = FAIT, .cible = CERISE_DROITE};
|
||||
struct objectif_t objectif_4 = { .priorite = 4, .etat = FAIT, .cible = CERISE_GAUCHE};
|
||||
objectifs[0]= objectif_1;
|
||||
objectifs[1]= objectif_2;
|
||||
objectifs[2]= objectif_3;
|
||||
@ -178,12 +178,13 @@ void Strategie(enum couleur_t couleur, uint32_t step_ms){
|
||||
break;
|
||||
|
||||
case ALLER_CERISE_GAUCHE:
|
||||
Trajet_config(300, 250);
|
||||
angle_fin = Geometrie_get_angle_optimal(Localisation_get().angle_radian, -150. * DEGRE_EN_RADIAN);
|
||||
if(couleur == COULEUR_BLEU){
|
||||
Trajectoire_bezier(&trajectoire, Localisation_get().x_mm, Localisation_get().y_mm,
|
||||
740, 3000 - 550,
|
||||
510, 3000 - 1580,
|
||||
180, 3000 - (1500 - 45),
|
||||
180, 1500,
|
||||
Localisation_get().angle_radian, angle_fin);
|
||||
}else{
|
||||
Trajectoire_bezier(&trajectoire, Localisation_get().x_mm, Localisation_get().y_mm,
|
||||
@ -196,17 +197,14 @@ void Strategie(enum couleur_t couleur, uint32_t step_ms){
|
||||
|
||||
if(parcourt_trajet_simple(trajectoire, step_ms) == ACTION_TERMINEE){
|
||||
etat_strategie = ATTRAPER_CERISE_GAUCHE;
|
||||
Trajet_config(500, 500);
|
||||
}
|
||||
break;
|
||||
|
||||
case ATTRAPER_CERISE_GAUCHE:
|
||||
// 1 accoster
|
||||
// 2 Longer en aspirant
|
||||
// 3 avancer en aspirant
|
||||
// 4 Revenir au milieu
|
||||
// 5 accoster
|
||||
// 6 longer en aspirant
|
||||
// 7 avancer en aspirant
|
||||
if(cerises_attraper_cerises_gauches(step_ms) == ACTION_TERMINEE){
|
||||
etat_strategie = ALLER_PANIER;
|
||||
}
|
||||
break;
|
||||
|
||||
case ALLER_PANIER:
|
||||
@ -243,10 +241,10 @@ void Strategie(enum couleur_t couleur, uint32_t step_ms){
|
||||
etat_strategie = ALLER_CERISE_HAUT;
|
||||
break;
|
||||
case CERISE_GAUCHE:
|
||||
etat_strategie = STRATEGIE_FIN;
|
||||
etat_strategie = ALLER_CERISE_GAUCHE;
|
||||
break;
|
||||
case CERISE_DROITE:
|
||||
etat_strategie = STRATEGIE_FIN;
|
||||
etat_strategie = ALLER_CERISE_DROITE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -272,14 +270,16 @@ enum etat_action_t Strategie_aller_panier(enum couleur_t couleur, uint32_t step
|
||||
if(Robot_est_dans_quart_haut_gauche()){
|
||||
Trajectoire_droite(&trajectoire,Localisation_get().x_mm, Localisation_get().y_mm,
|
||||
465,2830,
|
||||
+30. * DEGRE_EN_RADIAN, +120. * DEGRE_EN_RADIAN);
|
||||
Localisation_get().angle_radian,
|
||||
Geometrie_get_angle_optimal(Localisation_get().angle_radian, +120. * DEGRE_EN_RADIAN));
|
||||
}else{
|
||||
// Sinon, on a une courbe de bézier
|
||||
Trajectoire_bezier(&trajectoire,Localisation_get().x_mm, Localisation_get().y_mm,
|
||||
485, Localisation_get().y_mm,
|
||||
465, 857,
|
||||
465,2830,
|
||||
+30. * DEGRE_EN_RADIAN, +120. * DEGRE_EN_RADIAN);
|
||||
Localisation_get().angle_radian,
|
||||
Geometrie_get_angle_optimal(Localisation_get().angle_radian, +120. * DEGRE_EN_RADIAN));
|
||||
}
|
||||
}else{ // COULEUR_VERT
|
||||
// Si le robot est déjà dans le quart haut droit,
|
||||
@ -356,7 +356,7 @@ enum etat_action_t lance_balles_dans_panier(enum couleur_t couleur, uint32_t ste
|
||||
break;
|
||||
|
||||
case RECULE_PANIER:
|
||||
Trajet_config(250, 500);
|
||||
Trajet_config(120, 250);
|
||||
if(couleur == COULEUR_BLEU){
|
||||
point_x = 180;
|
||||
point_y = 3000 - (RAYON_ROBOT/(RACINE_DE_3/2)) - 80;
|
||||
@ -372,6 +372,7 @@ enum etat_action_t lance_balles_dans_panier(enum couleur_t couleur, uint32_t ste
|
||||
|
||||
if(parcourt_trajet_simple_sans_evitement(trajectoire, step_ms) == ACTION_TERMINEE){
|
||||
etat_lance_balles_dans_panier = LANCE_DANS_PANIER;
|
||||
Trajet_config(500, 500);
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -73,8 +73,8 @@ void i2c_annexe_couleur_balise(uint8_t couleur, uint16_t masque_led){
|
||||
}
|
||||
|
||||
void i2c_annexe_active_turbine(void){
|
||||
donnees_emission[ADRESSE_TURBINE_PORTE - ADRESSE_DEBUT_W] |= 0x01;
|
||||
donnees_a_envoyer=1;
|
||||
//donnees_emission[ADRESSE_TURBINE_PORTE - ADRESSE_DEBUT_W] |= 0x01;
|
||||
//donnees_a_envoyer=1;
|
||||
}
|
||||
void i2c_annexe_desactive_turbine(void){
|
||||
donnees_emission[ADRESSE_TURBINE_PORTE - ADRESSE_DEBUT_W] &= 0xFE;
|
||||
|
Loading…
Reference in New Issue
Block a user