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