From ca8bce87f44a87a88d03a288ffe2757a7018c55f Mon Sep 17 00:00:00 2001 From: Samuel Date: Sun, 28 Apr 2024 22:12:47 +0200 Subject: [PATCH] Commande en vitesse OK --- .vscode/settings.json | 4 +++- CMakeLists.txt | 1 + Commande_vitesse.c | 27 +++++++++++++++++++++++++++ Commande_vitesse.h | 2 ++ main.c | 3 +++ 5 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 Commande_vitesse.c create mode 100644 Commande_vitesse.h diff --git a/.vscode/settings.json b/.vscode/settings.json index 0d8ffc7..87f6ef0 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,6 +1,8 @@ { "files.associations": { "geometrie.h": "c", - "geometrie_robot.h": "c" + "geometrie_robot.h": "c", + "commande_vitesse.h": "c", + "asser_moteurs.h": "c" } } \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 889048b..5855e70 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,6 +12,7 @@ pico_sdk_init() add_executable(Mon_Projet Asser_Moteurs.c + Commande_vitesse.c Geometrie.c Moteurs.c Localisation.c diff --git a/Commande_vitesse.c b/Commande_vitesse.c new file mode 100644 index 0000000..c831fee --- /dev/null +++ b/Commande_vitesse.c @@ -0,0 +1,27 @@ +#include "Asser_Moteurs.h" +#include "Geometrie_robot.h" +#include "Commande_vitesse.h" + + + + + +/// @brief Commande de la vitesse dans le référentiel du robot +/// @param avance_mm_s : Vitesse d'avance +/// @param orientation_radian_s : Rotation en radian/s +void commande_vitesse(float avance_mm_s, float orientation_radian_s){ + float vitesse_roue_gauche, vitesse_roue_droite; + + vitesse_roue_gauche = avance_mm_s - (orientation_radian_s * DISTANCE_ROUES_CENTRE_MM); + vitesse_roue_droite = avance_mm_s + (orientation_radian_s * DISTANCE_ROUES_CENTRE_MM); + + AsserMoteur_setConsigne_mm_s(MOTEUR_A, vitesse_roue_droite); + AsserMoteur_setConsigne_mm_s(MOTEUR_B, vitesse_roue_gauche); + +} + +/// @brief Arrête le robot. +void commande_vitesse_stop(){ + AsserMoteur_setConsigne_mm_s(MOTEUR_A, 0); + AsserMoteur_setConsigne_mm_s(MOTEUR_B, 0); +} \ No newline at end of file diff --git a/Commande_vitesse.h b/Commande_vitesse.h new file mode 100644 index 0000000..609078f --- /dev/null +++ b/Commande_vitesse.h @@ -0,0 +1,2 @@ +void commande_vitesse(float vitesse_avance_mm_s, float orientation_radian_s); +void commande_vitesse_stop(void); \ No newline at end of file diff --git a/main.c b/main.c index ae3447e..1ec03d5 100644 --- a/main.c +++ b/main.c @@ -9,6 +9,7 @@ #include "hardware/pwm.h" #include "Asser_Moteurs.h" #include "Localisation.h" +#include "Commande_vitesse.h" #include "Moteurs.h" #include "Temps.h" #include @@ -47,6 +48,8 @@ void main(void) multicore_launch_core1(affichage); + + commande_vitesse(100 , 1.); while(1){