Initialisation du test de l'homologation + fonction pour définir la position
This commit is contained in:
		
							parent
							
								
									2710dadaa2
								
							
						
					
					
						commit
						0e66ae9e4b
					
				| @ -13,6 +13,24 @@ void Localisation_init(){ | ||||
|     position.angle_radian = 0; | ||||
| } | ||||
| 
 | ||||
| void Localisation_set(double x_mm, double y_mm, double angle_radian){ | ||||
|     position.x_mm = x_mm; | ||||
|     position.y_mm = y_mm; | ||||
|     position.angle_radian = angle_radian; | ||||
| } | ||||
| 
 | ||||
| void Localisation_set_x(double x_mm){ | ||||
|     position.x_mm = x_mm; | ||||
| } | ||||
| 
 | ||||
| void Localisation_set_y(double y_mm){ | ||||
|     position.y_mm = y_mm; | ||||
| } | ||||
| 
 | ||||
| void Localisation_set_angle(double angle_radian){ | ||||
|     position.angle_radian = angle_radian; | ||||
| } | ||||
| 
 | ||||
| void Localisation_gestion(){ | ||||
|     struct t_angle_gyro_double angle_gyro; | ||||
|     // Voir http://poivron-robotique.fr/Robot-holonome-localisation-partie-2.html
 | ||||
|  | ||||
| @ -3,3 +3,8 @@ | ||||
| struct position_t Localisation_get(void); | ||||
| void Localisation_gestion(); | ||||
| void Localisation_init(); | ||||
| 
 | ||||
| void Localisation_set(double x_mm, double y_mm, double angle_radian); | ||||
| void Localisation_set_x(double x_mm); | ||||
| void Localisation_set_y(double y_mm); | ||||
| void Localisation_set_angle(double angle_radian); | ||||
							
								
								
									
										12
									
								
								Strategie.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								Strategie.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,12 @@ | ||||
| 
 | ||||
| 
 | ||||
| void Homologation(void){ | ||||
|     static enum etat_strategie_t{ | ||||
|         STRATEGIE_INIT | ||||
|     }etat_strategie; | ||||
| 
 | ||||
|     switch(etat_strategie){ | ||||
|         case STRATEGIE_INIT: | ||||
|              | ||||
|     } | ||||
| } | ||||
| @ -9,4 +9,5 @@ enum longer_direction_t{ | ||||
| }; | ||||
| 
 | ||||
| enum etat_action_t cerise_accostage(void); | ||||
| enum etat_action_t cerise_longer_bord(enum longer_direction_t longer_direction); | ||||
| enum etat_action_t cerise_longer_bord(enum longer_direction_t longer_direction); | ||||
| void Homologation(void); | ||||
| @ -15,8 +15,9 @@ | ||||
| #include "Trajectoire.h" | ||||
| #include "Test.h" | ||||
| 
 | ||||
| int test_accostage(); | ||||
| int test_longe(); | ||||
| int test_accostage(void); | ||||
| int test_longe(void); | ||||
| int test_homologation(void); | ||||
| 
 | ||||
| void affichage_test_strategie(){ | ||||
|     uint32_t temps; | ||||
| @ -34,20 +35,28 @@ void affichage_test_strategie(){ | ||||
| int test_strategie(){ | ||||
|     printf("L - longer.\n"); | ||||
|     printf("A - Accoster.\n"); | ||||
|     printf("H - Homologation.\n"); | ||||
|     int lettre; | ||||
|     do{ | ||||
|         lettre = getchar_timeout_us(0); | ||||
|     }while(lettre == PICO_ERROR_TIMEOUT || lettre == 0); | ||||
|     switch(lettre){ | ||||
|         case 'a': | ||||
|         case 'A': | ||||
|             while(test_accostage()); | ||||
|             break; | ||||
| 
 | ||||
|         case 'h': | ||||
|         case 'H': | ||||
|             while(test_homologation()); | ||||
|             break; | ||||
| 
 | ||||
|         case 'l': | ||||
|         case 'L': | ||||
|             while(test_longe()); | ||||
|             break; | ||||
| 
 | ||||
|         case 'a': | ||||
|         case 'A': | ||||
|             while(test_accostage()); | ||||
|             break; | ||||
|          | ||||
| 
 | ||||
|         case 'q': | ||||
|         case 'Q': | ||||
| @ -57,6 +66,53 @@ int test_strategie(){ | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| int test_homologation(){ | ||||
|     int lettre, _step_ms = 1, temps_ms=0, _step_ms_gyro=2,temps_ms_init; | ||||
| 
 | ||||
|     i2c_maitre_init(); | ||||
|     Trajet_init(); | ||||
|     //printf("Init gyroscope\n");
 | ||||
|     Gyro_Init(); | ||||
| 
 | ||||
|     stdio_flush(); | ||||
| 
 | ||||
|     set_position_avec_gyroscope(1); | ||||
| 
 | ||||
|     temps_ms = Temps_get_temps_ms(); | ||||
|     temps_ms_init = temps_ms; | ||||
|     do{ | ||||
|         i2c_gestion(i2c0); | ||||
|         i2c_annexe_gestion(); | ||||
|         // Routines à 1 ms
 | ||||
|         if(temps_ms != Temps_get_temps_ms()){ | ||||
|             temps_ms = Temps_get_temps_ms(); | ||||
|             QEI_update(); | ||||
|             Localisation_gestion(); | ||||
|             AsserMoteur_Gestion(_step_ms); | ||||
| 
 | ||||
|             // Routine à 2 ms
 | ||||
|             if(temps_ms % _step_ms_gyro == 0){ | ||||
|             //    Gyro_Read(_step_ms_gyro);
 | ||||
|             } | ||||
| 
 | ||||
|             if(temps_ms > temps_ms_init + 200){ | ||||
|                 if(cerise_longer_bord(LONGER_VERS_A) == ACTION_TERMINEE){ | ||||
|                     printf("Accostage_terminee\n"); | ||||
|                 } | ||||
|             } | ||||
| 
 | ||||
|         } | ||||
|         lettre = getchar_timeout_us(0); | ||||
|     }while((lettre == PICO_ERROR_TIMEOUT) || (lettre == 0)); | ||||
|     printf("Lettre : %d; %c\n", lettre, lettre); | ||||
|      | ||||
|     if(lettre == 'q' && lettre == 'Q'){ | ||||
|         return 0; | ||||
|     } | ||||
|     return 1; | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| int test_longe(){ | ||||
|     int lettre, _step_ms = 1, temps_ms=0, _step_ms_gyro=2,temps_ms_init; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user