From a3996a7db6ad102a83fc79a190570492f0ae5780 Mon Sep 17 00:00:00 2001 From: Samuel Date: Fri, 18 Nov 2022 15:16:13 +0100 Subject: [PATCH] Test de compilation OK --- APDS_9960.c | 2 +- Asser_Moteurs.c | 54 +++++++++++++++++++++++++++++++++++++++++++++++++ Asser_Moteurs.h | 2 ++ Moteurs.c | 12 +++++------ Moteurs.h | 8 ++++---- QEI.c | 46 +++++++++++++++++++++++++++++------------ QEI.h | 7 ++++++- 7 files changed, 106 insertions(+), 25 deletions(-) create mode 100644 Asser_Moteurs.c create mode 100644 Asser_Moteurs.h diff --git a/APDS_9960.c b/APDS_9960.c index 5abc159..7db55d2 100644 --- a/APDS_9960.c +++ b/APDS_9960.c @@ -1,4 +1,4 @@ -APDS9960_Init(){ +int APDS9960_Init(){ // Registres à configurer diff --git a/Asser_Moteurs.c b/Asser_Moteurs.c new file mode 100644 index 0000000..5c1595f --- /dev/null +++ b/Asser_Moteurs.c @@ -0,0 +1,54 @@ +#include "QEI.h" +#include "Moteurs.h" + +/*** C'est ici que ce fait la conversion en mm + * ***/ + +// Roues 60 mm de diamètre, 188,5 mm de circonférence +// Réduction Moteur 30:1 +// Réduction poulie 16:12 +// Nombre d'impulsions par tour moteur : 200 +// Nombre d'impulsions par tour réducteur : 6000 +// Nombre d'impulsions par tour de roue : 8000 +// Impulsion / mm : 42,44 + +#define IMPULSION_PAR_MM (42.44f) +#define ASSERMOTEUR_GAIN_P 20 +#define ASSERMOTEUR_GAIN_I 0.0f + +double consigne_mm_s[3]; // Consigne de vitesse (en mm/s) +double commande_I[3]; // Terme integral + + + +void AsserMoteur_setConsigne_mm_s(enum moteur_t moteur, double _consigne_mm_s){ + consigne_mm_s[moteur] = _consigne_mm_s; + +} + +double AsserMoteur_getVitesse_mm_s(enum moteur_t moteur){ + return (double) QEI_get(moteur) * (double)IMPULSION_PAR_MM; +} + +AsserMoteur_Gestion(int step_ms){ + // Pour chaque moteur + for(uint moteur=MOTEUR_A, i