Ajout de la fonction Trajet_config, à tester
This commit is contained in:
		
							parent
							
								
									240c308cb7
								
							
						
					
					
						commit
						e667d33c4c
					
				
							
								
								
									
										24
									
								
								Trajet.c
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								Trajet.c
									
									
									
									
									
								
							| @ -4,32 +4,41 @@ | |||||||
| #include "Trajet.h" | #include "Trajet.h" | ||||||
| #include "Asser_Position.h" | #include "Asser_Position.h" | ||||||
| 
 | 
 | ||||||
| #define VITESSE_MAX_MM_S 300 |  | ||||||
| 
 |  | ||||||
| double Trajet_calcul_vitesse(double temps_s); | double Trajet_calcul_vitesse(double temps_s); | ||||||
| 
 | 
 | ||||||
| double abscisse; | double abscisse;    // Position entre 0 et 1 sur la trajectoire
 | ||||||
| double position_mm; // Position en mm sur la trajectoire
 | double position_mm; // Position en mm sur la trajectoire
 | ||||||
| double vitesse_mm_s; | double vitesse_mm_s; | ||||||
|  | double vitesse_max_trajet_mm_s=1000; | ||||||
| double acceleration_mm_ss; | double acceleration_mm_ss; | ||||||
| struct trajectoire_t trajet_trajectoire; | struct trajectoire_t trajet_trajectoire; | ||||||
| struct position_t position_consigne; | struct position_t position_consigne; | ||||||
| 
 | 
 | ||||||
|  | /// @brief Initialise le module Trajet. A appeler en phase d'initilisation
 | ||||||
| void Trajet_init(){ | void Trajet_init(){ | ||||||
|     abscisse = 0; |     abscisse = 0; | ||||||
|     vitesse_mm_s = 0; |     vitesse_mm_s = 0; | ||||||
|     acceleration_mm_ss = 300; |     acceleration_mm_ss = 500; | ||||||
|     position_mm = 0; |     position_mm = 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | /// @brief Configure la vitesse maximale et l'acceleration pour les futurs trajets
 | ||||||
|  | /// @param _vitesse_max_trajet_mm_s 
 | ||||||
|  | /// @param _acceleration_mm_ss 
 | ||||||
|  | void Trajet_config(double _vitesse_max_trajet_mm_s, double _acceleration_mm_ss){ | ||||||
|  |     vitesse_max_trajet_mm_s = _vitesse_max_trajet_mm_s; | ||||||
|  |     acceleration_mm_ss = _acceleration_mm_ss; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| void Trajet_debut_trajectoire(struct trajectoire_t trajectoire){ | void Trajet_debut_trajectoire(struct trajectoire_t trajectoire){ | ||||||
|     abscisse = 0; |     abscisse = 0; | ||||||
|     vitesse_mm_s = 0; |     vitesse_mm_s = 0; | ||||||
|     acceleration_mm_ss = 500; |  | ||||||
|     position_mm = 0; |     position_mm = 0; | ||||||
|     trajet_trajectoire = trajectoire; |     trajet_trajectoire = trajectoire; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | /// @brief Avance la consigne de position sur la trajectoire
 | ||||||
|  | /// @param pas_de_temps_s : temps écoulé depuis le dernier appel en seconde 
 | ||||||
| enum trajet_etat_t Trajet_avance(double pas_de_temps_s){ | enum trajet_etat_t Trajet_avance(double pas_de_temps_s){ | ||||||
|     double distance_mm; |     double distance_mm; | ||||||
|     enum trajet_etat_t trajet_etat = TRAJET_EN_COURS; |     enum trajet_etat_t trajet_etat = TRAJET_EN_COURS; | ||||||
| @ -63,6 +72,7 @@ enum trajet_etat_t Trajet_avance(double pas_de_temps_s){ | |||||||
| 
 | 
 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | /// @brief Envoie la consigne de position calculée par le module trajet. Principalement pour le débug/réglage asservissement.
 | ||||||
| struct position_t Trajet_get_consigne(){ | struct position_t Trajet_get_consigne(){ | ||||||
|     return position_consigne; |     return position_consigne; | ||||||
| } | } | ||||||
| @ -91,8 +101,8 @@ double Trajet_calcul_vitesse(double pas_de_temps_s){ | |||||||
|     if(vitesse > vitesse_max_contrainte){ |     if(vitesse > vitesse_max_contrainte){ | ||||||
|         vitesse = vitesse_max_contrainte; |         vitesse = vitesse_max_contrainte; | ||||||
|     } |     } | ||||||
|     if(vitesse > VITESSE_MAX_MM_S){ |     if(vitesse > vitesse_max_trajet_mm_s){ | ||||||
|         vitesse = VITESSE_MAX_MM_S; |         vitesse = vitesse_max_trajet_mm_s; | ||||||
|     } |     } | ||||||
|     return vitesse; |     return vitesse; | ||||||
| } | } | ||||||
|  | |||||||
							
								
								
									
										1
									
								
								Trajet.h
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								Trajet.h
									
									
									
									
									
								
							| @ -7,6 +7,7 @@ enum trajet_etat_t{ | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| void Trajet_init(); | void Trajet_init(); | ||||||
|  | void Trajet_config(double _vitesse_max_trajet_mm_s, double _acceleration_mm_ss); | ||||||
| void Trajet_debut_trajectoire(struct trajectoire_t trajectoire); | void Trajet_debut_trajectoire(struct trajectoire_t trajectoire); | ||||||
| enum trajet_etat_t Trajet_avance(double temps_s); | enum trajet_etat_t Trajet_avance(double temps_s); | ||||||
| struct position_t Trajet_get_consigne(void); | struct position_t Trajet_get_consigne(void); | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user