Compare commits
2 Commits
86cb6bfa72
...
500d1f8664
| Author | SHA1 | Date | |
|---|---|---|---|
| 500d1f8664 | |||
| 97cbd41aed |
14
Readme.md
14
Readme.md
@ -5,19 +5,13 @@ Basé sur le code du PAMI 2025 de l'équipe Poivron Robotique.
|
|||||||
|
|
||||||
Principales évolutions:
|
Principales évolutions:
|
||||||
|
|
||||||
- Ajout de la communication USB
|
- Ajout de la communication Wifi
|
||||||
- Définition des messages applicatifs
|
- Définition des messages applicatifs
|
||||||
|
|
||||||
Méthode de test
|
Méthode de test
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
* Éteindre la LED avec la trame : `echo -e "\xFF\xFF\x06rD\x00\x01\x36\x00" > /dev/ttyACM0`
|
Utiliser le code de la supervision ou le code python du robot 2026
|
||||||
|
|
||||||
* 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
|
Difficultés
|
||||||
-----------
|
-----------
|
||||||
@ -25,10 +19,6 @@ Il suffit d'une petite modification du code (ajout d'un `printf` par exemple), p
|
|||||||
|
|
||||||
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
|
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 ?
|
Pas de trajectoire rotation sur soi-même ?
|
||||||
|
|
||||||
Annexes
|
Annexes
|
||||||
|
|||||||
17
main.c
17
main.c
@ -239,11 +239,16 @@ void main(void)
|
|||||||
Strategie_interrompre_trajet();
|
Strategie_interrompre_trajet();
|
||||||
get_données_reçues((uint8_t *) &msg_trajectoire, sizeof(msg_trajectoire), REG_PROPULSION_TRAJECTOIRE);
|
get_données_reçues((uint8_t *) &msg_trajectoire, sizeof(msg_trajectoire), REG_PROPULSION_TRAJECTOIRE);
|
||||||
printf("trajectoire: type: %d,\n point1_x:%.2f, point1_y:%.2f,\n point2_x:%.2f, point2_y:%.2f,\n point3_x:%.2f, point3_y:%.2f\n point4_x:%.2f, point4_y:%.2f\n",
|
printf("trajectoire: type: %d,\n point1_x:%.2f, point1_y:%.2f,\n point2_x:%.2f, point2_y:%.2f,\n point3_x:%.2f, point3_y:%.2f\n point4_x:%.2f, point4_y:%.2f\n",
|
||||||
msg_trajectoire.trajectoire.type, msg_trajectoire.trajectoire.p1.x, msg_trajectoire.trajectoire.p1.y,
|
msg_trajectoire.type, msg_trajectoire.p1.x, msg_trajectoire.p1.y,
|
||||||
msg_trajectoire.trajectoire.p2.x, msg_trajectoire.trajectoire.p2.y,
|
msg_trajectoire.p2.x, msg_trajectoire.p2.y,
|
||||||
msg_trajectoire.trajectoire.p3.x, msg_trajectoire.trajectoire.p3.y,
|
msg_trajectoire.p3.x, msg_trajectoire.p3.y,
|
||||||
msg_trajectoire.trajectoire.p4.x, msg_trajectoire.trajectoire.p4.y);
|
msg_trajectoire.p4.x, msg_trajectoire.p4.y);
|
||||||
trajectoire = msg_trajectoire.trajectoire;
|
trajectoire.type = msg_trajectoire.type;
|
||||||
|
trajectoire.p1 = msg_trajectoire.p1;
|
||||||
|
trajectoire.p2 = msg_trajectoire.p2;
|
||||||
|
trajectoire.p3 = msg_trajectoire.p3;
|
||||||
|
trajectoire.p4 = msg_trajectoire.p4;
|
||||||
|
trajectoire.longueur = 0;
|
||||||
mode = 4;
|
mode = 4;
|
||||||
uint8_t etat_action = ACTION_EN_COURS;
|
uint8_t etat_action = ACTION_EN_COURS;
|
||||||
mise_données_dans_échange((uint8_t*) &(etat_action), sizeof(etat_action), REG_PROPULSION_ETAT_TRAJET);
|
mise_données_dans_échange((uint8_t*) &(etat_action), sizeof(etat_action), REG_PROPULSION_ETAT_TRAJET);
|
||||||
@ -493,7 +498,7 @@ void gestion_VL53L8CX(void){
|
|||||||
|
|
||||||
for(int i=0; i<64; i++){
|
for(int i=0; i<64; i++){
|
||||||
//int distance_cm = Results.distance_mm[i] / 10;
|
//int distance_cm = Results.distance_mm[i] / 10;
|
||||||
int distance_cm = Results.distance_mm[i];
|
int distance_cm = Results.distance_mm[i]/ 10;
|
||||||
if(distance_cm > 200){
|
if(distance_cm > 200){
|
||||||
distance_cm = 250;
|
distance_cm = 250;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -36,7 +36,8 @@ struct msg_propulsion_vitesse_robot_t {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct msg_trajectoire_t {
|
struct msg_trajectoire_t {
|
||||||
struct trajectoire_t trajectoire;
|
enum trajectoire_type_t type;
|
||||||
|
struct point_xy_t p1, p2, p3, p4;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct msg_propulsion_config_trajet_t {
|
struct msg_propulsion_config_trajet_t {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user