Ajout de la fonction Trajet_config, à tester

This commit is contained in:
Samuel 2023-03-03 15:36:58 +01:00
parent 240c308cb7
commit e667d33c4c
2 changed files with 18 additions and 7 deletions

View File

@ -4,32 +4,41 @@
#include "Trajet.h"
#include "Asser_Position.h"
#define VITESSE_MAX_MM_S 300
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 vitesse_mm_s;
double vitesse_max_trajet_mm_s=1000;
double acceleration_mm_ss;
struct trajectoire_t trajet_trajectoire;
struct position_t position_consigne;
/// @brief Initialise le module Trajet. A appeler en phase d'initilisation
void Trajet_init(){
abscisse = 0;
vitesse_mm_s = 0;
acceleration_mm_ss = 300;
acceleration_mm_ss = 500;
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){
abscisse = 0;
vitesse_mm_s = 0;
acceleration_mm_ss = 500;
position_mm = 0;
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){
double distance_mm;
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(){
return position_consigne;
}
@ -91,8 +101,8 @@ double Trajet_calcul_vitesse(double pas_de_temps_s){
if(vitesse > vitesse_max_contrainte){
vitesse = vitesse_max_contrainte;
}
if(vitesse > VITESSE_MAX_MM_S){
vitesse = VITESSE_MAX_MM_S;
if(vitesse > vitesse_max_trajet_mm_s){
vitesse = vitesse_max_trajet_mm_s;
}
return vitesse;
}

View File

@ -7,6 +7,7 @@ enum trajet_etat_t{
void Trajet_init();
void Trajet_config(double _vitesse_max_trajet_mm_s, double _acceleration_mm_ss);
void Trajet_debut_trajectoire(struct trajectoire_t trajectoire);
enum trajet_etat_t Trajet_avance(double temps_s);
struct position_t Trajet_get_consigne(void);