| .vscode | ||
| Platform | ||
| VL53L8CX_ULD_API | ||
| .gitignore | ||
| Asser_Moteurs.c | ||
| Asser_Moteurs.h | ||
| Asser_Position.c | ||
| Asser_Position.h | ||
| changelog.txt | ||
| CMakeLists.txt | ||
| Commande_vitesse.c | ||
| Commande_vitesse.h | ||
| communication.c | ||
| communication.h | ||
| config_robot.h | ||
| Evitement.c | ||
| Evitement.h | ||
| Geometrie_robot.h | ||
| Geometrie.c | ||
| Geometrie.h | ||
| i2c_maitre.c | ||
| i2c_maitre.h | ||
| Localisation.c | ||
| Localisation.h | ||
| lwipopts_examples_common.h | ||
| lwipopts.h | ||
| main.c | ||
| messagerie_applicative.c | ||
| messagerie_applicative.h | ||
| Messagerie_propulsion2026.ods | ||
| messagerie.c | ||
| messagerie.h | ||
| messages_propulsion.h | ||
| Moteurs.c | ||
| Moteurs.h | ||
| pico_sdk_import.cmake | ||
| QEI.c | ||
| QEI.h | ||
| quadrature_encoder.pio | ||
| Readme.md | ||
| Servomoteur.c | ||
| Servomoteur.h | ||
| Strategie_deplacement.c | ||
| Strategie_deplacement.h | ||
| Strategie.c | ||
| Strategie.h | ||
| Temps.c | ||
| Temps.h | ||
| Trajectoire_bezier.c | ||
| Trajectoire_bezier.h | ||
| Trajectoire_circulaire.c | ||
| Trajectoire_circulaire.h | ||
| Trajectoire_composees.c | ||
| Trajectoire_composees.h | ||
| Trajectoire_droite.c | ||
| Trajectoire_droite.h | ||
| Trajectoire.c | ||
| Trajectoire.h | ||
| Trajet.c | ||
| Trajet.h | ||
| VL53L8_2024.c | ||
| VL53L8_2024.h | ||
| wifi_settings.h | ||
| wifi_settings.h.default | ||
| Wifi.c | ||
| Wifi.h | ||
Propulsion 2026 - Riombotique
Basé sur le code du PAMI 2025 de l'équipe Poivron Robotique.
Principales évolutions:
- Ajout de la communication Wifi
- Définition des messages applicatifs
Méthode de test
Utiliser le code de la supervision ou le code python du robot 2026
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
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 d’avance du robot |
| 0x1B | RW | Flottant 32 bits | Consigne d’avance du robot |
| 0x1C | RW | Flottant 32 bits | Consigne d’avance du robot |
| 0x1D | RW | Flottant 32 bits | Consigne d’avance 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 | - | Padding | Padding |
| 0x24 | - | Padding | Padding |
| 0x25 | - | Padding | Padding |
| 0x26 | RW | Flottant 32 bits | Point 1, X |
| 0x27 | RW | Flottant 32 bits | Point 1, X |
| 0x28 | RW | Flottant 32 bits | Point 1, X |
| 0x29 | RW | Flottant 32 bits | Point 1, X |
| 0x2A | RW | Flottant 32 bits | Point 1, Y |
| 0x2B | RW | Flottant 32 bits | Point 1, Y |
| 0x2C | RW | Flottant 32 bits | Point 1, Y |
| 0x2D | RW | Flottant 32 bits | Point 1, Y |
| 0x2E | RW | Flottant 32 bits | Point 2, X |
| 0x2F | RW | Flottant 32 bits | Point 2, X |
| 0x30 | RW | Flottant 32 bits | Point 2, X |
| 0x31 | RW | Flottant 32 bits | Point 2, X |
| 0x32 | RW | Flottant 32 bits | Point 2, Y |
| 0x33 | RW | Flottant 32 bits | Point 2, Y |
| 0x34 | RW | Flottant 32 bits | Point 2, Y |
| 0x35 | RW | Flottant 32 bits | Point 2, Y |
| 0x36 | RW | Flottant 32 bits | Point 3, X |
| 0x37 | RW | Flottant 32 bits | Point 3, X |
| 0x38 | RW | Flottant 32 bits | Point 3, X |
| 0x39 | RW | Flottant 32 bits | Point 3, X |
| 0x3A | RW | Flottant 32 bits | Point 3, Y |
| 0x3B | RW | Flottant 32 bits | Point 3, Y |
| 0x3C | RW | Flottant 32 bits | Point 3, Y |
| 0x3D | RW | Flottant 32 bits | Point 3, Y |
| 0x3E | RW | Flottant 32 bits | Point 4, X |
| 0x3F | RW | Flottant 32 bits | Point 4, X |
| 0x40 | RW | Flottant 32 bits | Point 4, X |
| 0x41 | RW | Flottant 32 bits | Point 4, X |
| 0x42 | RW | Flottant 32 bits | Point 4, Y |
| 0x43 | RW | Flottant 32 bits | Point 4, Y |
| 0x44 | RW | Flottant 32 bits | Point 4, Y |
| 0x45 | RW | Flottant 32 bits | Point 4, Y |
| 0x46 | RW | Flottant 32 bits | orientation_debut_rad |
| 0x47 | RW | Flottant 32 bits | orientation_debut_rad |
| 0x48 | RW | Flottant 32 bits | orientation_debut_rad |
| 0x49 | RW | Flottant 32 bits | orientation_debut_rad |
| 0x4A | RW | Flottant 32 bits | orientation_fin_rad |
| 0x4B | RW | Flottant 32 bits | orientation_fin_rad |
| 0x4C | RW | Flottant 32 bits | orientation_fin_rad |
| 0x4D | RW | Flottant 32 bits | orientation_fin_rad |
| 0x4E | RW | Flottant 32 bits | rayon mm |
| 0x4F | RW | Flottant 32 bits | rayon mm |
| 0x50 | RW | Flottant 32 bits | rayon mm |
| 0x51 | RW | Flottant 32 bits | rayon mm |
| 0x52 | RW | Flottant 32 bits | Angle début rad |
| 0x53 | RW | Flottant 32 bits | Angle début rad |
| 0x54 | RW | Flottant 32 bits | Angle début rad |
| 0x55 | RW | Flottant 32 bits | Angle début rad |
| 0x56 | RW | Flottant 32 bits | Angle fin rad |
| 0x57 | RW | Flottant 32 bits | Angle fin rad |
| 0x58 | RW | Flottant 32 bits | Angle fin rad |
| 0x59 | RW | Flottant 32 bits | Angle fin rad |
| 0x5A | RW | Flottant 32 bits | Vitesse max trajectoire |
| 0x5B | RW | Flottant 32 bits | Vitesse max trajectoire |
| 0x5C | RW | Flottant 32 bits | Vitesse max trajectoire |
| 0x5D | RW | Flottant 32 bits | Vitesse max trajectoire |
| 0x5E | RW | Flottant 32 bits | Acceleration trajectoire |
| 0x5F | RW | Flottant 32 bits | Acceleration trajectoire |
| 0x60 | RW | Flottant 32 bits | Acceleration trajectoire |
| 0x61 | RW | Flottant 32 bits | Acceleration trajectoire |
| 0x62 | RW | uint8_t | Commande inversion trajectoire |
| 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 |
| 0xA0 | R | int_8 | État du trajet (ACTION_EN_COURS=0, ACTION_TERMINEE=1, ACTION_ECHEC=2) |
| 0xFF | R | int_8 | Identifiant de la carte : 'P' |