Go to file
2026-07-09 21:36:02 +02:00
Asser_Moteurs.c Ajout de l'évitement & documentation & petits ajustements 2026-07-09 19:56:15 +02:00
Asser_Moteurs.h Isolement des données liées à la plateforme (sauf pour Moteur.c) 2026-07-08 19:49:05 +02:00
Asser_Position.c Ajout de l'évitement & documentation & petits ajustements 2026-07-09 19:56:15 +02:00
Asser_Position.h Ajout de l'évitement & documentation & petits ajustements 2026-07-09 19:56:15 +02:00
CMakeLists.txt Ajout de l'évitement & documentation & petits ajustements 2026-07-09 19:56:15 +02:00
Deplacement.c Ajout de l'évitement & documentation & petits ajustements 2026-07-09 19:56:15 +02:00
Deplacement.h Ajout de l'évitement & documentation & petits ajustements 2026-07-09 19:56:15 +02:00
Evitement.c Ajout de l'évitement & documentation & petits ajustements 2026-07-09 19:56:15 +02:00
Evitement.h Ajout de l'évitement & documentation & petits ajustements 2026-07-09 19:56:15 +02:00
Geometrie.c Isolement des données liées à la plateforme (sauf pour Moteur.c) 2026-07-08 19:49:05 +02:00
Geometrie.h Isolement des données liées à la plateforme (sauf pour Moteur.c) 2026-07-08 19:49:05 +02:00
Localisation.c Isolement des données liées à la plateforme (sauf pour Moteur.c) 2026-07-08 19:49:05 +02:00
Localisation.h Initialisation du dépôt 2026-07-06 22:57:15 +02:00
Loi_de_commande.c Ajout de l'évitement & documentation & petits ajustements 2026-07-09 19:56:15 +02:00
Loi_de_commande.h Ajout de l'évitement & documentation & petits ajustements 2026-07-09 19:56:15 +02:00
Moteurs.c Isolement des données liées à la plateforme (sauf pour Moteur.c) 2026-07-08 19:49:05 +02:00
Moteurs.h Isolement des données liées à la plateforme (sauf pour Moteur.c) 2026-07-08 19:49:05 +02:00
Plateforme.h Isolement des données liées à la plateforme (sauf pour Moteur.c) 2026-07-08 19:49:05 +02:00
QEI.c Isolement des données liées à la plateforme (sauf pour Moteur.c) 2026-07-08 19:49:05 +02:00
QEI.h Isolement des données liées à la plateforme (sauf pour Moteur.c) 2026-07-08 19:49:05 +02:00
quadrature_encoder.pio Isolement des données liées à la plateforme (sauf pour Moteur.c) 2026-07-08 19:49:05 +02:00
Readme.md Modif mineure Readme 2026-07-09 21:36:02 +02:00
Rotation.c Isolement des données liées à la plateforme (sauf pour Moteur.c) 2026-07-08 19:49:05 +02:00
Rotation.h Isolement des données liées à la plateforme (sauf pour Moteur.c) 2026-07-08 19:49:05 +02:00
Temps.c Isolement des données liées à la plateforme (sauf pour Moteur.c) 2026-07-08 19:49:05 +02:00
Temps.h Isolement des données liées à la plateforme (sauf pour Moteur.c) 2026-07-08 19:49:05 +02:00
Trajectoire_bezier.c Initialisation du dépôt 2026-07-06 22:57:15 +02:00
Trajectoire_bezier.h Initialisation du dépôt 2026-07-06 22:57:15 +02:00
Trajectoire_circulaire.c Initialisation du dépôt 2026-07-06 22:57:15 +02:00
Trajectoire_circulaire.h Initialisation du dépôt 2026-07-06 22:57:15 +02:00
Trajectoire_composees.c Initialisation du dépôt 2026-07-06 22:57:15 +02:00
Trajectoire_composees.h Initialisation du dépôt 2026-07-06 22:57:15 +02:00
Trajectoire_droite.c Initialisation du dépôt 2026-07-06 22:57:15 +02:00
Trajectoire_droite.h Initialisation du dépôt 2026-07-06 22:57:15 +02:00
Trajectoire.c Ajout de l'évitement & documentation & petits ajustements 2026-07-09 19:56:15 +02:00
Trajectoire.h Ajout de l'évitement & documentation & petits ajustements 2026-07-09 19:56:15 +02:00
Trajet.c Ajout de l'évitement & documentation & petits ajustements 2026-07-09 19:56:15 +02:00
Trajet.h Ajout de l'évitement & documentation & petits ajustements 2026-07-09 19:56:15 +02:00

Submodule Déplacement pour le RP2040

Ceci est un submodule git pour intégrer facilement la gestion des déplacements à un projet. On crée ce Submodule en se servant de la documentation disponible ici : https://git-scm.com/book/en/v2/Git-Tools-Submodules

Ce module est composé de deux parties :

  • L'asservissement des moteurs :
    • Moteur PWM
    • Lecture codeur
    • asservissement
  • La gestion des trajets :
    • Loi de commande
    • Asservissement en position
    • Trajectoires
    • Trajet (accélération et décélération sur trajectoire)
    • Déplacement avec évitement sommaire:
      • Ignore l'obstacle
      • Arrêt devant obstacle
      • Pause devant obstacle
      • Inversion trajectoire

Utilisation

Ajout du sub-module

Ajouter ce submodule à votre projet. Dans un terminal, dans le répertoire de votre projet, entrez :

git submodule add https://git.poivron-robotique.fr/Keuronde/Module_deplacement_robot_differentiel.git

Ajouter le fichier nouvellement créé .gitmodules à votre projet.

git add .gitmodules

Configuration de la compilation

Dans le fichier CMakeLists.txt, ajouter le dossier du sub module:

add_subdirectory(Module_deplacement_robot_differentiel)

Dans le fichier CMakeLists.txt, ajouter la bibliothèque RP2040_Servomoteur :

target_link_libraries(Modele_RPiPico
  ...
  Deplacement_Robot_differentiel
)

Intégration au code source

Ajout du fichier d'include :

#include "Module_deplacement_robot_differentiel/Deplacement.h"

Initilisation du module :

AsserMoteur_Init();
Trajet_init();

Fonctions cycliques :

AsserMoteur_Gestion(step_ms);
Localisation_gestion();

Avec :

  • step_ms : le temps entre chaque appel de AsserMoteur_Gestion()

Vous avez deux exemples de code plus bas.

Cas où vous clonez un projet contenant des submodules

Après avoir cloné le projet, initilisez les submodules:

git submodule init

git submodule update

Pour récupérer les dernières mise à jour des sub-modules :

git submodule update --remote

Code minimale 1

Ce code permet d'utiliser les fonctions d'asservissement en vitesse des moteurs

#include "Module_deplacement_robot_differentiel/Deplacement.h"
#include <stdio.h>

void main(void){
    // Initilisation
    AsserMoteur_Init();
    // Consignes
    AsserMoteur_setConsigne_mm_s(MOTEUR_A, 100);
    AsserMoteur_setConsigne_mm_s(MOTEUR_B, 100);
    int step_ms = 1;
    while(1){
        sleep_ms(step_ms);
        // Tâche cyclique
        AsserMoteur_Gestion(step_ms);
    }
}

Tandis que ce code permet d'utiliser les fonctions trajets / trajectoire avec différents mode d'évitement

#include "Module_deplacement_robot_differentiel/Deplacement.h"
#include <stdio.h>

void main(void)
{
    stdio_init_all();

    // Initialisation
    AsserMoteur_Init();
    Trajet_init();
    
    // Pour l'exemple
    int step_ms = 1;
    enum etat_trajet_t etat_trajet = TRAJET_EN_COURS;
    struct trajectoire_t ma_trajectoire;
    Trajectoire_bezier(&ma_trajectoire, 
        0, 0,
        250, 0,
        0, 250,
        250, 250);
    
    while(1){
        // Tâches cycliques
        AsserMoteur_Gestion(step_ms);
        Localisation_gestion();

        // Gestion du trajet
        if(etat_trajet == TRAJET_EN_COURS){
            etat_trajet = Deplacement_parcourir_trajet(ma_trajectoire, step_ms, EVITEMENT_SANS_EVITEMENT);
        }else{
            AsserMoteurs_stop();
        }

        // Attente de 1 ms
        sleep_ms(step_ms);
    }
    
}