From 530eb4b343b306787cad667e93f2c44f457770f1 Mon Sep 17 00:00:00 2001 From: Samuel Date: Thu, 29 Jan 2026 21:09:38 +0100 Subject: [PATCH] =?UTF-8?q?Interface=20entre=20la=20communication=20et=20l?= =?UTF-8?q?e=20d=C3=A9placement:=20commandes=20ok=20sauf=20trajectoire?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Il reste les trajectoires à gérer, la lecture de position et le forçage de position --- main.c | 37 ++++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/main.c b/main.c index 981d803..f06a460 100644 --- a/main.c +++ b/main.c @@ -114,6 +114,7 @@ void main(void) enum etat_trajet_t etat_trajet=TRAJET_EN_COURS; + uint8_t mode=0; while(1){ @@ -156,32 +157,36 @@ void main(void) if(mise_a_jour_position){ struct msg_propulsion_position_t msg_propulsion_position; - get_données_reçues((uint8_t *) &msg_propulsion_position, sizeof(msg_propulsion_position), REG_PROPULSION_POSITION); printf("mise à jour de la position, x:%2.2f, y:%2.2f, orientation: %2.2f\n", msg_propulsion_position.position_x_mm, msg_propulsion_position.position_y_mm, msg_propulsion_position.orientation_rad); } if(mise_a_jour_mode){ - uint8_t mode; get_données_reçues(&mode, sizeof(mode), REG_PROPULSION_MODE); printf("mode:%d\n", mode); } if(mise_a_jour_pwm){ struct msg_propulsion_pwm_t msg_propulsion_pwm; get_données_reçues((uint8_t *) &msg_propulsion_pwm, sizeof(msg_propulsion_pwm), REG_PROPULSION_PWM); - printf("pwm_gauche:%d, pwm_droit:%d\n", msg_propulsion_pwm.pwm_gauche, msg_propulsion_pwm.pwm_gauche); + // 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); } if(mise_a_jour_vitesse_roues){ struct msg_propulsion_vitesse_roues_t msg_propulsion_vitesse_roues; get_données_reçues((uint8_t *) &msg_propulsion_vitesse_roues, sizeof(msg_propulsion_vitesse_roues), REG_PROPULSION_VITESSE_ROUES); - printf("vitesse_roue_gauche:%f, vitesse_roue_gauche:%d\n", msg_propulsion_vitesse_roues.vitesse_gauche_mm_s, msg_propulsion_vitesse_roues.vitesse_droite_mm_s); + printf("vitesse_roue_gauche:%f, vitesse_roue_droite:%f\n", msg_propulsion_vitesse_roues.vitesse_gauche_mm_s, msg_propulsion_vitesse_roues.vitesse_droite_mm_s); + AsserMoteur_setConsigne_mm_s(MOTEUR_A, msg_propulsion_vitesse_roues.vitesse_droite_mm_s); + AsserMoteur_setConsigne_mm_s(MOTEUR_B, msg_propulsion_vitesse_roues.vitesse_gauche_mm_s); } if(mise_a_jour_vitesse_robot){ struct msg_propulsion_vitesse_robot_t msg_propulsion_vitesse_robot; get_données_reçues((uint8_t *) &msg_propulsion_vitesse_robot, sizeof(msg_propulsion_vitesse_robot), REG_PROPULSION_VITESSE_ROBOT); printf("avance_robot (mm/s) : %f, rotation (rad/s): %f\n", msg_propulsion_vitesse_robot.avance_mm_s, msg_propulsion_vitesse_robot.rotation_rad_s); - + commande_vitesse(msg_propulsion_vitesse_robot.avance_mm_s, msg_propulsion_vitesse_robot.rotation_rad_s); + } if(mise_a_jour_trajectoire){ // Oh la la ! @@ -217,11 +222,29 @@ void main(void) if(temps_ms % step_ms == 0){ QEI_update(); Localisation_gestion(); + + struct msg_propulsion_pwm_t msg_propulsion_pwm; + switch(mode){ + case 0: + Moteur_Stop(); + break; + case 1: + /* + get_données_reçues((uint8_t *) &msg_propulsion_pwm, sizeof(msg_propulsion_pwm), REG_PROPULSION_PWM); + Moteur_SetVitesse(MOTEUR_A, msg_propulsion_pwm.pwm_gauche); + Moteur_SetVitesse(MOTEUR_B, msg_propulsion_pwm.pwm_droit);*/ + break; + case 2: + case 3: + case 4: + AsserMoteur_Gestion(step_ms); + break; + } //gestion_PAMI(step_ms, &asser_pos); - if(asser_pos){ + /*if(asser_pos){ AsserMoteur_Gestion(step_ms); - } + }*/ // Récupération des valeurs pour les mettre dans la mémoire d'échange // TODO }