diff --git a/.vscode/settings.json b/.vscode/settings.json
index 8d2ec55..241c813 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -13,6 +13,8 @@
"stdlib.h": "c",
"strategie.h": "c",
"strategie_deplacement.h": "c",
- "servomoteur.h": "c"
+ "servomoteur.h": "c",
+ "moteurs.h": "c",
+ "messagerie_applicative.h": "c"
}
}
\ No newline at end of file
diff --git a/Asser_Moteurs.c b/Asser_Moteurs.c
index d17c612..4c13558 100644
--- a/Asser_Moteurs.c
+++ b/Asser_Moteurs.c
@@ -2,8 +2,14 @@
#include "Moteurs.h"
#include "Asser_Moteurs.h"
-#define ASSERMOTEUR_GAIN_P 30000.f
-#define ASSERMOTEUR_GAIN_I 3000.f
+// Paramètres pour PAMI
+//#define ASSERMOTEUR_GAIN_P 30000.f
+//#define ASSERMOTEUR_GAIN_I 3000.f
+
+// Paramètre Robot 2026
+#define ASSERMOTEUR_GAIN_P 150.f
+#define ASSERMOTEUR_GAIN_I 1.f
+
float consigne_mm_s[3]; // Consigne de vitesse (en mm/s)
float commande_I[3]; // Terme integral
diff --git a/Readme.md b/Readme.md
index 79c9759..180f240 100644
--- a/Readme.md
+++ b/Readme.md
@@ -34,9 +34,6 @@ Pas de trajectoire rotation sur soi-même ?
Annexes
=======
-Tables des registres
---------------------
-
Table des registres :
---------------------
@@ -63,22 +60,22 @@ Les adresses en **gras** sont celles pour lesquelles des `#define` existent qui
| 0x0F | RW | int_16 | Commande PWM moteur gauche |
| 0x10 | RW | int_16 | Commande PWM moteur droit |
| 0x11 | RW | int_16 | Commande PWM moteur droit |
-| **0x12** | RW | Flottant 32 bits | Consigne vitesse gauche en mm/s |
-| 0x13 | RW | Flottant 32 bits | Consigne vitesse gauche en mm/s |
-| 0x14 | RW | Flottant 32 bits | Consigne vitesse gauche en mm/s |
-| 0x15 | RW | Flottant 32 bits | Consigne vitesse gauche en mm/s |
-| 0x16 | RW | Flottant 32 bits | Consigne vitesse gauche en mm/s |
-| 0x17 | RW | Flottant 32 bits | Consigne vitesse gauche en mm/s |
-| 0x18 | RW | Flottant 32 bits | Consigne vitesse gauche en mm/s |
-| 0x19 | RW | Flottant 32 bits | Consigne vitesse gauche en mm/s |
+| **0x12** | RW | Flottant 32 bits | Consigne vitesse gauche en mm/s|
+| 0x13 | RW | Flottant 32 bits | Consigne vitesse gauche en mm/s|
+| 0x14 | RW | Flottant 32 bits | Consigne vitesse gauche en mm/s|
+| 0x15 | RW | Flottant 32 bits | Consigne vitesse gauche en mm/s|
+| 0x16 | RW | Flottant 32 bits | Consigne vitesse gauche en mm/s|
+| 0x17 | RW | Flottant 32 bits | Consigne vitesse gauche en mm/s|
+| 0x18 | RW | Flottant 32 bits | Consigne vitesse gauche en mm/s|
+| 0x19 | RW | Flottant 32 bits | Consigne vitesse gauche en mm/s|
| 0x1A | RW | Flottant 32 bits | Consigne d’avance du robot |
| 0x1B | RW | Flottant 32 bits | Consigne d’avance du robot |
| 0x1C | RW | Flottant 32 bits | Consigne d’avance du robot |
| 0x1D | RW | Flottant 32 bits | Consigne d’avance du robot |
-| 0x1E | RW | Flottant 32 bits | Consigne de rotation du robot |
-| 0x1F | RW | Flottant 32 bits | Consigne de rotation du robot |
-| 0x20 | RW | Flottant 32 bits | Consigne de rotation du robot |
-| 0x21 | RW | Flottant 32 bits | Consigne de rotation du robot |
+| 0x1E | RW | Flottant 32 bits | Consigne de rotation du robot |
+| 0x1F | RW | Flottant 32 bits | Consigne de rotation du robot |
+| 0x20 | RW | Flottant 32 bits | Consigne de rotation du robot |
+| 0x21 | RW | Flottant 32 bits | Consigne de rotation du robot |
| **0x22** | RW | Enum 8 bits | Trajectoire, type :
0 : Droite
1 : Circulaire
2 : Bézier
3 : Composée
4 : Rotation |
| 0x23 | RW | Flottant 32 bits | Point 1, X |
| 0x24 | RW | Flottant 32 bits | Point 1, X |
@@ -132,8 +129,6 @@ Les adresses en **gras** sont celles pour lesquelles des `#define` existent qui
| 0x54 | RW | Flottant 32 bits | Angle fin rad |
| 0x55 | RW | Flottant 32 bits | Angle fin rad |
| 0x56 | RW | Flottant 32 bits | Angle fin rad |
-
-
| **0x80** | R | flottant 32 bits | Position X en mm |
| 0x81 | R | flottant 32 bits | Position X en mm |
| 0x82 | R | flottant 32 bits | Position X en mm |
@@ -158,5 +153,12 @@ Les adresses en **gras** sont celles pour lesquelles des `#define` existent qui
| 0x95 | R | flottant 32 bits | Position consigne Y en mm |
| 0x96 | R | flottant 32 bits | Position consigne Y en mm |
| 0x97 | R | flottant 32 bits | Position consigne Y en mm |
-
+| **0x98** | R | flottant 32 bits | Vitesse roue gauche en mm/s |
+| 0x99 | R | flottant 32 bits | Vitesse roue gauche en mm/s |
+| 0x9A | R | flottant 32 bits | Vitesse roue gauche en mm/s |
+| 0x9B | R | flottant 32 bits | Vitesse roue gauche en mm/s |
+| 0x9C | R | flottant 32 bits | Vitesse roue droite en mm/s |
+| 0x9D | R | flottant 32 bits | Vitesse roue droite en mm/s |
+| 0x9E | R | flottant 32 bits | Vitesse roue droite en mm/s |
+| 0x9F | R | flottant 32 bits | Vitesse roue droite en mm/s |
| **0xFF** | R | int_8 | Identifiant de la carte : 'P' |
\ No newline at end of file
diff --git a/main.c b/main.c
index 92bfb4f..4de4ba4 100644
--- a/main.c
+++ b/main.c
@@ -47,7 +47,7 @@ int get_couleur(void);
void gestion_PAMI(uint32_t step_ms, int * asser_pos);
void gestion_VL53L8CX(void);
-const uint32_t step_ms=1;
+const uint32_t step_ms=10;
float distance1_mm=0, distance2_mm=0;
// DEBUG
@@ -172,7 +172,7 @@ void main(void)
// Consigne
Moteur_SetVitesse(MOTEUR_A, msg_propulsion_pwm.pwm_droit);
Moteur_SetVitesse(MOTEUR_B, msg_propulsion_pwm.pwm_gauche);
- //printf("pwm_gauche:%d, pwm_droit:%d\n", msg_propulsion_pwm.pwm_gauche, msg_propulsion_pwm.pwm_droit);
+ printf("pwm_gauche:%d, pwm_droit:%d\n", msg_propulsion_pwm.pwm_gauche, msg_propulsion_pwm.pwm_droit);
}
if(mise_a_jour_vitesse_roues){
struct msg_propulsion_vitesse_roues_t msg_propulsion_vitesse_roues;
@@ -262,7 +262,7 @@ void main(void)
}
temps_ms = Temps_get_temps_ms();
- //if(temps_ms % step_ms == 0){
+ if(temps_ms % step_ms == 0){
QEI_update();
Localisation_gestion();
@@ -302,6 +302,10 @@ void main(void)
mise_données_dans_échange((uint8_t*) &abscisse, sizeof(abscisse), REG_PROPULSION_ABSCISSE);
struct point_xyo_t position_consigne = Trajectoire_get_point(&trajectoire, abscisse);
mise_données_dans_échange((uint8_t*) &(position_consigne.point_xy), sizeof(position_consigne.point_xy), REG_PROPULSION_POSITION_CONSIGNE);
+ float vitesse_roue_gauche = AsserMoteur_getVitesse_mm_s(MOTEUR_A, step_ms);
+ float vitesse_roue_droite = AsserMoteur_getVitesse_mm_s(MOTEUR_B, step_ms);
+ mise_données_dans_échange((uint8_t*) &(vitesse_roue_gauche), sizeof(vitesse_roue_gauche), REG_PROPULSION_VITESSE_ROUES_lecture);
+ mise_données_dans_échange((uint8_t*) &(vitesse_roue_droite), sizeof(vitesse_roue_droite), REG_PROPULSION_VITESSE_ROUES_lecture +4);
//sleep_ms(1);
//printf("x_mm:%.2f, y_mm:%.2f\n", position.x_mm, position.y_mm);
@@ -312,7 +316,7 @@ void main(void)
}*/
// Récupération des valeurs pour les mettre dans la mémoire d'échange
// TODO
- //}
+ }
}
}
diff --git a/messages_propulsion.h b/messages_propulsion.h
index fde4fae..2e54596 100644
--- a/messages_propulsion.h
+++ b/messages_propulsion.h
@@ -13,6 +13,7 @@
#define REG_PROPULSION_TRAJECTOIRE 0x22
#define REG_PROPULSION_ABSCISSE 0x8C
#define REG_PROPULSION_POSITION_CONSIGNE 0x90
+#define REG_PROPULSION_VITESSE_ROUES_lecture 0x98
struct msg_propulsion_position_t{
float position_x_mm, position_y_mm, orientation_rad;