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