Go to file
2026-04-18 15:38:37 +02:00
.vscode Gestion des deux plateformes : PAMI et Propulsion 2026 2026-04-18 15:38:37 +02:00
Platform Première lecture avec le capteur VL53L8X 2024-04-30 18:30:37 +02:00
VL53L8CX_ULD_API Première lecture avec le capteur VL53L8X 2024-04-30 18:30:37 +02:00
.gitignore Projet modèle 2023-10-22 18:48:14 +02:00
Asser_Moteurs.c Gestion des deux plateformes : PAMI et Propulsion 2026 2026-04-18 15:38:37 +02:00
Asser_Moteurs.h PAMI 2 & 3 sans évitement 2025-05-29 15:32:21 +02:00
Asser_Position.c Reception des données du PAMI, diminution des gains d'asservissement 2026-04-18 09:53:34 +02:00
Asser_Position.h Ajout du contrôle anti-panique à la fin du trajet 2024-06-22 19:04:37 +02:00
changelog.txt Projet modèle 2023-10-22 18:48:14 +02:00
CMakeLists.txt Fusion du code de communication applicative avec le code de déplacement 2026-01-29 20:25:02 +01:00
Commande_vitesse.c Fonction pour sauvegarder les consignes de la loi de commande 2026-01-31 10:49:04 +01:00
Commande_vitesse.h Fonction pour sauvegarder les consignes de la loi de commande 2026-01-31 10:49:04 +01:00
communication.c Réception des premiers message pour piloter la LED par USB avec le format de messagerie : Fonctionnel (voir notes du Readme.md) 2026-01-24 18:35:36 +01:00
communication.h Réception des premiers message pour piloter la LED par USB avec le format de messagerie : Fonctionnel (voir notes du Readme.md) 2026-01-24 18:35:36 +01:00
config_robot.h Fusion des codes pour PAMI et carte de propulsion 2026-04-18 14:08:52 +02:00
Evitement.c Début de la trajectoire 2025 pour la superstar 2025-01-20 20:39:28 +01:00
Evitement.h Début de la trajectoire 2025 pour la superstar 2025-01-20 20:39:28 +01:00
Geometrie_robot.h Localisation fonctionnelle 2024-04-28 21:58:09 +02:00
Geometrie.c Localisation fonctionnelle 2024-04-28 21:58:09 +02:00
Geometrie.h Localisation fonctionnelle 2024-04-28 21:58:09 +02:00
i2c_maitre.c Première lecture avec le capteur VL53L8X 2024-04-30 18:30:37 +02:00
i2c_maitre.h Première lecture avec le capteur VL53L8X 2024-04-30 18:30:37 +02:00
Localisation.c Gestion des deux rapports de réduction 2024-05-09 16:58:54 +02:00
Localisation.h Gestion des deux rapports de réduction 2024-05-09 16:58:54 +02:00
main.c Gestion des deux plateformes : PAMI et Propulsion 2026 2026-04-18 15:38:37 +02:00
messagerie_applicative.c Lecture de la position depuis le PC : OK 2026-04-07 18:53:20 +02:00
messagerie_applicative.h Lecture de la position depuis le PC : OK 2026-04-07 18:53:20 +02:00
Messagerie_propulsion2026.ods Fusion du code de communication applicative avec le code de déplacement 2026-01-29 20:25:02 +01:00
messagerie.c Réception des premiers message pour piloter la LED par USB avec le format de messagerie : Fonctionnel (voir notes du Readme.md) 2026-01-24 18:35:36 +01:00
messagerie.h Fusion du code de communication applicative avec le code de déplacement 2026-01-29 20:25:02 +01:00
messages_propulsion.h Réglage de l'asservissement des moteurs 2026-04-18 14:00:17 +02:00
Moteurs.c Gestion des deux plateformes : PAMI et Propulsion 2026 2026-04-18 15:38:37 +02:00
Moteurs.h Fonction pour obtenir la commande PWM 2026-01-31 10:38:41 +01:00
pico_sdk_import.cmake Projet modèle 2023-10-22 18:48:14 +02:00
QEI.c Gestion des deux plateformes : PAMI et Propulsion 2026 2026-04-18 15:38:37 +02:00
QEI.h Gestion des deux rapports de réduction 2024-05-09 16:58:54 +02:00
quadrature_encoder.pio Lecture des codeurs: OK 2024-03-15 23:45:05 +01:00
Readme.md Réglage de l'asservissement des moteurs 2026-04-18 14:00:17 +02:00
Servomoteur.c PAMI 2 & 3 sans évitement 2025-05-29 15:32:21 +02:00
Servomoteur.h servomoteur fonctionnel 2025-05-28 23:34:23 +02:00
Strategie_deplacement.c Début de la trajectoire 2025 pour la superstar 2025-01-20 20:39:28 +01:00
Strategie_deplacement.h Début de la trajectoire 2025 pour la superstar 2025-01-20 20:39:28 +01:00
Strategie.c Activation de l'évitement pour les groupies 2025-05-29 19:21:10 +02:00
Strategie.h PAMI 2 & 3 sans évitement 2025-05-29 15:32:21 +02:00
Temps.c Asservissement moteurs - fonctionnel ? 2024-04-27 21:21:41 +02:00
Temps.h Asservissement moteurs - fonctionnel ? 2024-04-27 21:21:41 +02:00
Trajectoire_bezier.c Réglage de l'asservissement avec pile 9V 2024-04-28 23:12:34 +02:00
Trajectoire_bezier.h Réglage de l'asservissement avec pile 9V 2024-04-28 23:12:34 +02:00
Trajectoire_circulaire.c Début de la trajectoire 2025 pour la superstar 2025-01-20 20:39:28 +01:00
Trajectoire_circulaire.h Réglage de l'asservissement avec pile 9V 2024-04-28 23:12:34 +02:00
Trajectoire_composees.c trajectoires multiples fonctionnelles, testées avec la super star 2025-01-22 20:29:32 +01:00
Trajectoire_composees.h trajectoires multiples fonctionnelles, testées avec la super star 2025-01-22 20:29:32 +01:00
Trajectoire_droite.c Réglage de l'asservissement avec pile 9V 2024-04-28 23:12:34 +02:00
Trajectoire_droite.h Réglage de l'asservissement avec pile 9V 2024-04-28 23:12:34 +02:00
Trajectoire.c Fusion du code de communication applicative avec le code de déplacement 2026-01-29 20:25:02 +01:00
Trajectoire.h Amélioration de l'envoie de données : abscisse et position consigne 2026-04-17 22:46:27 +02:00
Trajet.c Fusion du code de communication applicative avec le code de déplacement 2026-01-29 20:25:02 +01:00
Trajet.h Amélioration de l'envoie de données : abscisse et position consigne 2026-04-17 22:46:27 +02:00
VL53L8_2024.c changement trajectoire 2 + détection un peu plus bas pour l'évitement 2024-05-10 14:17:07 +02:00
VL53L8_2024.h Match 5 + Match Amical - 5 PAMI 2024-06-15 21:49:52 +02:00

Propulsion 2026 - Riombotique

Basé sur le code du PAMI 2025 de l'équipe Poivron Robotique.

Principales évolutions:

  • Ajout de la communication USB
  • Définition des messages applicatifs

Méthode de test

  • Éteindre la LED avec la trame : echo -e "\xFF\xFF\x06rD\x00\x01\x36\x00" > /dev/ttyACM0

  • Allumer la LED avec la trame : echo -e "\xFF\xFF\x06rD\x00\x01\x06\x00" > /dev/ttyACM0

  • Tester la réception de la position

    echo -e "\xFF\xFF\x11rP\x00\x0C\x01\x01\x01\x01\x05\x05\x05\x05\x09\x09\x09\x09\x00" > /dev/ttyACM0

Difficultés

Il suffit d'une petite modification du code (ajout d'un printf par exemple), pour que la communication se bloque côté PC

L'utilisation du second cœur pour envoyer la télémétrie peut perturber le débug avec printf => Augment grandement le délai de réponse

La communication crash rapidement : à cause de la danse du PAMI => Suppression de la dance du PAMI (c'était codé à l'arrache)

Les points des trajectoires sont des double, il faut les mettre en float.

Pas de trajectoire rotation sur soi-même ?

Annexes

Table des registres :

Les adresses en gras sont celles pour lesquelles des #define existent qui sont utilisées pour copier les données dans les structures.

Adresse R/W Type Donnée
0x00 RW flottant 32 bits Position X en mm
0x01 RW flottant 32 bits Position X en mm
0x02 RW flottant 32 bits Position X en mm
0x03 RW flottant 32 bits Position X en mm
0x04 RW flottant 32 bits Position Y en mm
0x05 RW flottant 32 bits Position Y en mm
0x06 RW flottant 32 bits Position Y en mm
0x07 RW flottant 32 bits Position Y en mm
0x08 RW flottant 32 bits Orientation en radian
0x09 RW flottant 32 bits Orientation en radian
0x0A RW flottant 32 bits Orientation en radian
0x0B RW flottant 32 bits Orientation en radian
0x0C R Boolean Mouvement en cours : 1
Mouvement terminé :
0x0D RW uint8_t Mode
0 : arrêt des moteurs
1 : pilotage des moteurs PWM
2 : pilotage en vitesse des roues
3 : pilotage avec la loi de commande
4 : Trajectoire
0x0E RW int_16 Commande PWM moteur gauche
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
0x1A RW Flottant 32 bits Consigne davance du robot
0x1B RW Flottant 32 bits Consigne davance du robot
0x1C RW Flottant 32 bits Consigne davance du robot
0x1D RW Flottant 32 bits Consigne davance 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
0x25 RW Flottant 32 bits Point 1, X
0x26 RW Flottant 32 bits Point 1, X
0x27 RW Flottant 32 bits Point 1, Y
0x28 RW Flottant 32 bits Point 1, Y
0x29 RW Flottant 32 bits Point 1, Y
0x2A RW Flottant 32 bits Point 1, Y
0x2B RW Flottant 32 bits Point 2, X
0x2C RW Flottant 32 bits Point 2, X
0x2D RW Flottant 32 bits Point 2, X
0x2E RW Flottant 32 bits Point 2, X
0x2F RW Flottant 32 bits Point 2, Y
0x30 RW Flottant 32 bits Point 2, Y
0x31 RW Flottant 32 bits Point 2, Y
0x32 RW Flottant 32 bits Point 2, Y
0x33 RW Flottant 32 bits Point 3, X
0x34 RW Flottant 32 bits Point 3, X
0x35 RW Flottant 32 bits Point 3, X
0x36 RW Flottant 32 bits Point 3, X
0x37 RW Flottant 32 bits Point 3, Y
0x38 RW Flottant 32 bits Point 3, Y
0x39 RW Flottant 32 bits Point 3, Y
0x3A RW Flottant 32 bits Point 3, Y
0x3B RW Flottant 32 bits Point 4, X
0x3C RW Flottant 32 bits Point 4, X
0x3D RW Flottant 32 bits Point 4, X
0x3E RW Flottant 32 bits Point 4, X
0x3F RW Flottant 32 bits Point 4, Y
0x40 RW Flottant 32 bits Point 4, Y
0x41 RW Flottant 32 bits Point 4, Y
0x42 RW Flottant 32 bits Point 4, Y
0x43 RW Flottant 32 bits orientation_debut_rad
0x44 RW Flottant 32 bits orientation_debut_rad
0x45 RW Flottant 32 bits orientation_debut_rad
0x46 RW Flottant 32 bits orientation_debut_rad
0x47 RW Flottant 32 bits orientation_fin_rad
0x48 RW Flottant 32 bits orientation_fin_rad
0x49 RW Flottant 32 bits orientation_fin_rad
0x4A RW Flottant 32 bits orientation_fin_rad
0x4B RW Flottant 32 bits rayon mm
0x4C RW Flottant 32 bits rayon mm
0x4D RW Flottant 32 bits rayon mm
0x4E RW Flottant 32 bits rayon mm
0x4F RW Flottant 32 bits Angle début rad
0x50 RW Flottant 32 bits Angle début rad
0x51 RW Flottant 32 bits Angle début rad
0x52 RW Flottant 32 bits Angle début rad
0x53 RW Flottant 32 bits Angle fin rad
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
0x83 R flottant 32 bits Position X en mm
0x84 R flottant 32 bits Position Y en mm
0x85 R flottant 32 bits Position Y en mm
0x86 R flottant 32 bits Position Y en mm
0x87 R flottant 32 bits Position Y en mm
0x88 R flottant 32 bits Orientation en radian
0x89 R flottant 32 bits Orientation en radian
0x8A R flottant 32 bits Orientation en radian
0x8B R flottant 32 bits Orientation en radian
0x8C R Flottant 32 bits abscisse
0x8D R Flottant 32 bits abscisse
0x8E R Flottant 32 bits abscisse
0x8F R Flottant 32 bits abscisse
0x90 R flottant 32 bits Position consigne X en mm
0x91 R flottant 32 bits Position consigne X en mm
0x92 R flottant 32 bits Position consigne X en mm
0x93 R flottant 32 bits Position consigne X en mm
0x94 R flottant 32 bits Position consigne Y en mm
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'