Interface entre la communication et le déplacement: commandes ok sauf trajectoire
Il reste les trajectoires à gérer, la lecture de position et le forçage de position
This commit is contained in:
parent
d33bd356cd
commit
530eb4b343
37
main.c
37
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
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user