Stratégie d'homologation : sans évitement, sans tirette, sans gestion du côté.
This commit is contained in:
		
							parent
							
								
									30977bb4f1
								
							
						
					
					
						commit
						1bc1514b23
					
				
							
								
								
									
										23
									
								
								Strategie.c
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								Strategie.c
									
									
									
									
									
								
							| @ -1,5 +1,6 @@ | |||||||
| #include "hardware/gpio.h" | #include "hardware/gpio.h" | ||||||
| #include "i2c_annexe.h" | #include "i2c_annexe.h" | ||||||
|  | #include "Asser_Position.h" | ||||||
| #include "Geometrie_robot.h" | #include "Geometrie_robot.h" | ||||||
| #include "Localisation.h" | #include "Localisation.h" | ||||||
| #include "Moteurs.h" | #include "Moteurs.h" | ||||||
| @ -61,6 +62,16 @@ void Homologation(uint32_t step_ms){ | |||||||
|                                 465,2830, |                                 465,2830, | ||||||
|                                 +30. * DEGREE_EN_RADIAN, +120. * DEGREE_EN_RADIAN); |                                 +30. * DEGREE_EN_RADIAN, +120. * DEGREE_EN_RADIAN); | ||||||
| 
 | 
 | ||||||
|  |             if(parcourt_trajet_simple(trajectoire, step_ms) == ACTION_TERMINEE){ | ||||||
|  |                 etat_strategie = CALAGE_PANIER_1; | ||||||
|  |             } | ||||||
|  |             break; | ||||||
|  | 
 | ||||||
|  |         case APPROCHE_PANIER_2: | ||||||
|  |             Trajectoire_droite(&trajectoire,Localisation_get().x_mm, Localisation_get().y_mm,  | ||||||
|  |                                 265,2830, | ||||||
|  |                                 +120. * DEGREE_EN_RADIAN, +120. * DEGREE_EN_RADIAN); | ||||||
|  | 
 | ||||||
|             if(parcourt_trajet_simple(trajectoire, step_ms) == ACTION_TERMINEE){ |             if(parcourt_trajet_simple(trajectoire, step_ms) == ACTION_TERMINEE){ | ||||||
|                 etat_strategie = CALAGE_PANIER_1; |                 etat_strategie = CALAGE_PANIER_1; | ||||||
|             } |             } | ||||||
| @ -68,7 +79,7 @@ void Homologation(uint32_t step_ms){ | |||||||
|             break; |             break; | ||||||
| 
 | 
 | ||||||
|         case CALAGE_PANIER_1: |         case CALAGE_PANIER_1: | ||||||
|             if(calage_angle(LONGER_VERS_A, RAYON_ROBOT, 3000 - (RAYON_ROBOT/(RACINE_DE_3/2)), 120. *DEGREE_EN_RADIAN) == ACTION_TERMINEE){ |             if(calage_angle(LONGER_VERS_A, RAYON_ROBOT, 3000 - (RAYON_ROBOT/(RACINE_DE_3/2.)), 120. *DEGREE_EN_RADIAN) == ACTION_TERMINEE){ | ||||||
|                 etat_strategie = RECULE_PANIER; |                 etat_strategie = RECULE_PANIER; | ||||||
|             } |             } | ||||||
|             break; |             break; | ||||||
| @ -76,8 +87,8 @@ void Homologation(uint32_t step_ms){ | |||||||
|         case RECULE_PANIER: |         case RECULE_PANIER: | ||||||
|             Trajet_config(250, 500); |             Trajet_config(250, 500); | ||||||
|             Trajectoire_droite(&trajectoire,Localisation_get().x_mm, Localisation_get().y_mm,  |             Trajectoire_droite(&trajectoire,Localisation_get().x_mm, Localisation_get().y_mm,  | ||||||
|                                 225, 3000 - (RAYON_ROBOT/(RACINE_DE_3/2)) - 120, |                                 180, 3000 - (RAYON_ROBOT/(RACINE_DE_3/2)) - 80, | ||||||
|                                 120. * DEGREE_EN_RADIAN, +240. * DEGREE_EN_RADIAN); |                                 120. * DEGREE_EN_RADIAN, +270. * DEGREE_EN_RADIAN); | ||||||
| 
 | 
 | ||||||
|             if(parcourt_trajet_simple(trajectoire, step_ms) == ACTION_TERMINEE){ |             if(parcourt_trajet_simple(trajectoire, step_ms) == ACTION_TERMINEE){ | ||||||
|                 etat_strategie = LANCE_DANS_PANIER; |                 etat_strategie = LANCE_DANS_PANIER; | ||||||
| @ -85,6 +96,7 @@ void Homologation(uint32_t step_ms){ | |||||||
|             break; |             break; | ||||||
| 
 | 
 | ||||||
|         case LANCE_DANS_PANIER: |         case LANCE_DANS_PANIER: | ||||||
|  |             Asser_Position_maintien(); | ||||||
|             if(lance_balles(step_ms) == ACTION_TERMINEE){ |             if(lance_balles(step_ms) == ACTION_TERMINEE){ | ||||||
|                 etat_strategie = STRATEGIE_FIN; |                 etat_strategie = STRATEGIE_FIN; | ||||||
|             } |             } | ||||||
| @ -120,7 +132,8 @@ enum etat_action_t lance_balles(uint32_t step_ms){ | |||||||
|          |          | ||||||
|         case LANCE_TEMPO_PROP_ON: |         case LANCE_TEMPO_PROP_ON: | ||||||
|             if (tempo_ms < step_ms){ |             if (tempo_ms < step_ms){ | ||||||
|                 etat_lance_balle = LANCE_PORTE_OUVERTE; |                 //etat_lance_balle = LANCE_PORTE_OUVERTE;
 | ||||||
|  |                 etat_lance_balle = LANCE_TEMPO_PROP_ON; | ||||||
|                 i2c_annexe_ouvre_porte(); |                 i2c_annexe_ouvre_porte(); | ||||||
|                 tempo_ms = 6000; |                 tempo_ms = 6000; | ||||||
|             }else{ |             }else{ | ||||||
| @ -133,6 +146,8 @@ enum etat_action_t lance_balles(uint32_t step_ms){ | |||||||
|                 etat_lance_balle = LANCE_PROPULSEUR_ON; |                 etat_lance_balle = LANCE_PROPULSEUR_ON; | ||||||
|                 i2c_annexe_desactive_propulseur(); |                 i2c_annexe_desactive_propulseur(); | ||||||
|                 etat_action = ACTION_TERMINEE; |                 etat_action = ACTION_TERMINEE; | ||||||
|  |             }else{ | ||||||
|  |                 tempo_ms -= step_ms; | ||||||
|             } |             } | ||||||
|             break; |             break; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -27,9 +27,10 @@ extern enum etat_strategie_t{ | |||||||
|     APPROCHE_CERISE_1_B=2, |     APPROCHE_CERISE_1_B=2, | ||||||
|     ATTRAPE_CERISE_1=3, |     ATTRAPE_CERISE_1=3, | ||||||
|     APPROCHE_PANIER_1=4, |     APPROCHE_PANIER_1=4, | ||||||
|     CALAGE_PANIER_1=5, |     APPROCHE_PANIER_2=5, | ||||||
|     RECULE_PANIER=6, |     CALAGE_PANIER_1=6, | ||||||
|     LANCE_DANS_PANIER=7, |     RECULE_PANIER=7, | ||||||
|  |     LANCE_DANS_PANIER=8, | ||||||
|     STRATEGIE_FIN=254, |     STRATEGIE_FIN=254, | ||||||
| }etat_strategie; | }etat_strategie; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -15,7 +15,7 @@ | |||||||
| #define MAX_LONGE_MM 240 | #define MAX_LONGE_MM 240 | ||||||
| 
 | 
 | ||||||
| // Translation en mm/s pour aspirer les cerises
 | // Translation en mm/s pour aspirer les cerises
 | ||||||
| #define TRANSLATION_CERISE 45 | #define TRANSLATION_CERISE 70 | ||||||
| 
 | 
 | ||||||
| void commande_rotation_contacteur_longer_A(); | void commande_rotation_contacteur_longer_A(); | ||||||
| void commande_rotation_contacteur_longer_C(); | void commande_rotation_contacteur_longer_C(); | ||||||
| @ -58,10 +58,9 @@ enum etat_action_t cerise_attraper_bordure(enum longer_direction_t longer_direct | |||||||
|          |          | ||||||
|         case TURBINE_DEMARRAGE: |         case TURBINE_DEMARRAGE: | ||||||
|             i2c_annexe_ferme_porte(); |             i2c_annexe_ferme_porte(); | ||||||
|             //i2c_annexe_active_turbine();
 |             i2c_annexe_active_turbine(); | ||||||
|             i2c_annexe_active_propulseur(); |  | ||||||
|             commande_vitesse_stop(); |             commande_vitesse_stop(); | ||||||
|             tempo_ms = 2000; |             tempo_ms = 1000; | ||||||
|             etat_attrape = TURBINE_DEMARRAGE_TEMPO; |             etat_attrape = TURBINE_DEMARRAGE_TEMPO; | ||||||
| 
 | 
 | ||||||
|             break; |             break; | ||||||
| @ -90,6 +89,7 @@ enum etat_action_t cerise_attraper_bordure(enum longer_direction_t longer_direct | |||||||
| 
 | 
 | ||||||
|         case ASPIRE_LIBRE: |         case ASPIRE_LIBRE: | ||||||
|             commande_vitesse_stop(); |             commande_vitesse_stop(); | ||||||
|  |             i2c_annexe_desactive_turbine(); | ||||||
|             etat_action = ACTION_TERMINEE; |             etat_action = ACTION_TERMINEE; | ||||||
|             break; |             break; | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -103,11 +103,14 @@ int test_homologation(){ | |||||||
|     i2c_maitre_init(); |     i2c_maitre_init(); | ||||||
|     Trajet_init(); |     Trajet_init(); | ||||||
|     //printf("Init gyroscope\n");
 |     //printf("Init gyroscope\n");
 | ||||||
|     //Gyro_Init();
 |     set_position_avec_gyroscope(1); | ||||||
|  |     if(get_position_avec_gyroscope()){ | ||||||
|  |         Gyro_Init(); | ||||||
|  |     } | ||||||
| 
 | 
 | ||||||
|     stdio_flush(); |     stdio_flush(); | ||||||
| 
 | 
 | ||||||
|     //set_position_avec_gyroscope(1);
 |      | ||||||
| 
 | 
 | ||||||
|     multicore_launch_core1(affichage_test_strategie); |     multicore_launch_core1(affichage_test_strategie); | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user