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(); |     AsserMoteur_Init(); | ||||||
|     Localisation_init(); |     Localisation_init(); | ||||||
| 
 | 
 | ||||||
|     while(mode_test()); |     //while(mode_test());
 | ||||||
|     i2c_maitre_init(); |     i2c_maitre_init(); | ||||||
|     Trajet_init(); |     Trajet_init(); | ||||||
|     Balise_VL53L1X_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_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_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_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[0]= objectif_1; | ||||||
|                 objectifs[1]= objectif_2; |                 objectifs[1]= objectif_2; | ||||||
|                 objectifs[2]= objectif_3; |                 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); |                 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_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_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_3 = { .priorite = 3, .etat = FAIT, .cible = CERISE_DROITE}; | ||||||
|                 struct objectif_t objectif_4 = { .priorite = 4, .etat = A_FAIRE, .cible = CERISE_GAUCHE}; |                 struct objectif_t objectif_4 = { .priorite = 4, .etat = FAIT, .cible = CERISE_GAUCHE}; | ||||||
|                 objectifs[0]= objectif_1; |                 objectifs[0]= objectif_1; | ||||||
|                 objectifs[1]= objectif_2; |                 objectifs[1]= objectif_2; | ||||||
|                 objectifs[2]= objectif_3; |                 objectifs[2]= objectif_3; | ||||||
| @ -178,12 +178,13 @@ void Strategie(enum couleur_t couleur, uint32_t step_ms){ | |||||||
|             break; |             break; | ||||||
| 
 | 
 | ||||||
|         case ALLER_CERISE_GAUCHE: |         case ALLER_CERISE_GAUCHE: | ||||||
|  |             Trajet_config(300, 250); | ||||||
|             angle_fin = Geometrie_get_angle_optimal(Localisation_get().angle_radian, -150. * DEGRE_EN_RADIAN); |             angle_fin = Geometrie_get_angle_optimal(Localisation_get().angle_radian, -150. * DEGRE_EN_RADIAN); | ||||||
|             if(couleur == COULEUR_BLEU){ |             if(couleur == COULEUR_BLEU){ | ||||||
|                 Trajectoire_bezier(&trajectoire, Localisation_get().x_mm, Localisation_get().y_mm, |                 Trajectoire_bezier(&trajectoire, Localisation_get().x_mm, Localisation_get().y_mm, | ||||||
|                         740, 3000 - 550, |                         740, 3000 - 550, | ||||||
|                         510, 3000 - 1580, |                         510, 3000 - 1580, | ||||||
|                         180, 3000 - (1500 - 45), |                         180, 1500, | ||||||
|                         Localisation_get().angle_radian, angle_fin); |                         Localisation_get().angle_radian, angle_fin); | ||||||
|             }else{ |             }else{ | ||||||
|                 Trajectoire_bezier(&trajectoire, Localisation_get().x_mm, Localisation_get().y_mm, |                 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){ |             if(parcourt_trajet_simple(trajectoire, step_ms) == ACTION_TERMINEE){ | ||||||
|                 etat_strategie = ATTRAPER_CERISE_GAUCHE; |                 etat_strategie = ATTRAPER_CERISE_GAUCHE; | ||||||
|  |                 Trajet_config(500, 500); | ||||||
|             } |             } | ||||||
|             break; |             break; | ||||||
| 
 | 
 | ||||||
|         case ATTRAPER_CERISE_GAUCHE: |         case ATTRAPER_CERISE_GAUCHE: | ||||||
|             // 1 accoster
 |             if(cerises_attraper_cerises_gauches(step_ms) == ACTION_TERMINEE){ | ||||||
|             // 2 Longer en aspirant
 |                 etat_strategie = ALLER_PANIER; | ||||||
|             // 3 avancer en aspirant
 |             } | ||||||
|             // 4 Revenir au milieu
 |  | ||||||
|             // 5 accoster
 |  | ||||||
|             // 6 longer en aspirant
 |  | ||||||
|             // 7 avancer en aspirant
 |  | ||||||
|             break; |             break; | ||||||
|              |              | ||||||
|         case ALLER_PANIER: |         case ALLER_PANIER: | ||||||
| @ -243,10 +241,10 @@ void Strategie(enum couleur_t couleur, uint32_t step_ms){ | |||||||
|                         etat_strategie = ALLER_CERISE_HAUT; |                         etat_strategie = ALLER_CERISE_HAUT; | ||||||
|                         break; |                         break; | ||||||
|                     case CERISE_GAUCHE: |                     case CERISE_GAUCHE: | ||||||
|                         etat_strategie = STRATEGIE_FIN; |                         etat_strategie = ALLER_CERISE_GAUCHE; | ||||||
|                         break; |                         break; | ||||||
|                     case CERISE_DROITE: |                     case CERISE_DROITE: | ||||||
|                         etat_strategie = STRATEGIE_FIN; |                         etat_strategie = ALLER_CERISE_DROITE; | ||||||
|                         break; |                         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()){ |         if(Robot_est_dans_quart_haut_gauche()){ | ||||||
|             Trajectoire_droite(&trajectoire,Localisation_get().x_mm, Localisation_get().y_mm,  |             Trajectoire_droite(&trajectoire,Localisation_get().x_mm, Localisation_get().y_mm,  | ||||||
|                 465,2830, |                 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{ |         }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,  | ||||||
|                 485, Localisation_get().y_mm, |                 485, Localisation_get().y_mm, | ||||||
|                 465, 857, |                 465, 857, | ||||||
|                 465,2830, |                 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
 |     }else{ // COULEUR_VERT
 | ||||||
|         // Si le robot est déjà dans le quart haut droit, 
 |         // 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; |             break; | ||||||
|          |          | ||||||
|         case RECULE_PANIER: |         case RECULE_PANIER: | ||||||
|             Trajet_config(250, 500); |             Trajet_config(120, 250); | ||||||
|             if(couleur == COULEUR_BLEU){ |             if(couleur == COULEUR_BLEU){ | ||||||
|                 point_x = 180; |                 point_x = 180; | ||||||
|                 point_y = 3000 - (RAYON_ROBOT/(RACINE_DE_3/2)) - 80; |                 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){ |             if(parcourt_trajet_simple_sans_evitement(trajectoire, step_ms) == ACTION_TERMINEE){ | ||||||
|                 etat_lance_balles_dans_panier = LANCE_DANS_PANIER; |                 etat_lance_balles_dans_panier = LANCE_DANS_PANIER; | ||||||
|  |                 Trajet_config(500, 500); | ||||||
|             } |             } | ||||||
|             break; |             break; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -73,8 +73,8 @@ void i2c_annexe_couleur_balise(uint8_t couleur, uint16_t masque_led){ | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void i2c_annexe_active_turbine(void){ | void i2c_annexe_active_turbine(void){ | ||||||
|     donnees_emission[ADRESSE_TURBINE_PORTE - ADRESSE_DEBUT_W] |= 0x01; |     //donnees_emission[ADRESSE_TURBINE_PORTE - ADRESSE_DEBUT_W] |= 0x01;
 | ||||||
|     donnees_a_envoyer=1; |     //donnees_a_envoyer=1;
 | ||||||
| } | } | ||||||
| void i2c_annexe_desactive_turbine(void){ | void i2c_annexe_desactive_turbine(void){ | ||||||
|     donnees_emission[ADRESSE_TURBINE_PORTE - ADRESSE_DEBUT_W] &= 0xFE; |     donnees_emission[ADRESSE_TURBINE_PORTE - ADRESSE_DEBUT_W] &= 0xFE; | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user