Encore des soucis de gyroscope, mais les bug principaux systématiques corrigés

This commit is contained in:
Samuel 2023-05-19 01:11:46 +02:00
parent 1dfbce4f09
commit 4b89949265
2 changed files with 14 additions and 4 deletions

View File

@ -95,6 +95,8 @@ int main() {
set_position_avec_gyroscope(1); set_position_avec_gyroscope(1);
if(get_position_avec_gyroscope()){ if(get_position_avec_gyroscope()){
Gyro_Init(); Gyro_Init();
}else{
sleep_ms(5000);
} }

View File

@ -49,6 +49,7 @@ int Robot_est_dans_quart_haut_gauche();
int Robot_est_dans_quart_haut_droit(); int Robot_est_dans_quart_haut_droit();
int Robot_est_dans_zone_cerise_haut(enum couleur_t couleur); int Robot_est_dans_zone_cerise_haut(enum couleur_t couleur);
int Robot_est_dans_zone_cerise_gauche(); int Robot_est_dans_zone_cerise_gauche();
int Robot_est_dans_zone_cerise_droite();
enum etat_action_t Strategie_aller_cerises_laterales_proches(enum couleur_t couleur, uint32_t step_ms); enum etat_action_t Strategie_aller_cerises_laterales_proches(enum couleur_t couleur, uint32_t step_ms);
enum etat_action_t Strategie_aller_cerises_laterales_opposees(enum couleur_t couleur, uint32_t step_ms); enum etat_action_t Strategie_aller_cerises_laterales_opposees(enum couleur_t couleur, uint32_t step_ms);
@ -369,15 +370,22 @@ enum etat_action_t Strategie_aller_panier(enum couleur_t couleur, uint32_t step
// On va en ligne droite // On va en ligne droite
if(Robot_est_dans_quart_haut_droit()){ if(Robot_est_dans_quart_haut_droit()){
Trajectoire_droite(&trajectoire,Localisation_get().x_mm, Localisation_get().y_mm, Trajectoire_droite(&trajectoire,Localisation_get().x_mm, Localisation_get().y_mm,
2000-465, 2830, 2000-180, 2800,
-150. * DEGRE_EN_RADIAN, -240. * DEGRE_EN_RADIAN); Localisation_get().angle_radian ,Geometrie_get_angle_optimal(Localisation_get().angle_radian, -240. * DEGRE_EN_RADIAN));
}else if (Robot_est_dans_zone_cerise_droite()){
Trajectoire_bezier(&trajectoire,Localisation_get().x_mm, Localisation_get().y_mm,
Localisation_get().x_mm + 330, Localisation_get().y_mm - 100,
2000 - 745, 3000 - 475,
2000 - 180, 3000 - 200,
Localisation_get().angle_radian,
Geometrie_get_angle_optimal(Localisation_get().angle_radian, -240. * DEGRE_EN_RADIAN));
}else{ }else{
// Sinon, on a une courbe de bézier // Sinon, on a une courbe de bézier
Trajectoire_bezier(&trajectoire,Localisation_get().x_mm, Localisation_get().y_mm, Trajectoire_bezier(&trajectoire,Localisation_get().x_mm, Localisation_get().y_mm,
2000-485, Localisation_get().y_mm, 2000-485, Localisation_get().y_mm,
2000-465, 857, 2000-465, 857,
2000-465, 2830, 2000-465, 2830,
-150. * DEGRE_EN_RADIAN, -240. * DEGRE_EN_RADIAN); Localisation_get().angle_radian, Geometrie_get_angle_optimal(Localisation_get().angle_radian, -240. * DEGRE_EN_RADIAN));
} }
} }
@ -536,7 +544,7 @@ enum etat_action_t lance_balles_dans_panier(enum couleur_t couleur, uint32_t ste
point_x = 1735; point_x = 1735;
point_y = 3000 - (RAYON_ROBOT/(RACINE_DE_3/2)) - 80; point_y = 3000 - (RAYON_ROBOT/(RACINE_DE_3/2)) - 80;
} }
angle_depart = Geometrie_get_angle_optimal(Localisation_get().angle_radian, 120. * DEGRE_EN_RADIAN); angle_depart = Localisation_get().angle_radian;
angle_arrivee = Geometrie_get_angle_optimal(angle_depart, 270. * DEGRE_EN_RADIAN); angle_arrivee = Geometrie_get_angle_optimal(angle_depart, 270. * DEGRE_EN_RADIAN);
Trajectoire_droite(&trajectoire, Localisation_get().x_mm, Localisation_get().y_mm, Trajectoire_droite(&trajectoire, Localisation_get().x_mm, Localisation_get().y_mm,
point_x, point_y, point_x, point_y,