Compare commits
No commits in common. "40eb56d9296eee70440e89d8c81604c2c8391db8" and "a37f6fb18f800085e6b178f7fe00da9d1affab3f" have entirely different histories.
40eb56d929
...
a37f6fb18f
10
.vscode/tasks.json
vendored
10
.vscode/tasks.json
vendored
@ -19,16 +19,6 @@
|
|||||||
"kind": "build",
|
"kind": "build",
|
||||||
"isDefault": true
|
"isDefault": true
|
||||||
}
|
}
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "shell",
|
|
||||||
"command": "mkdir -p build/debug; cd build/debug; cmake -DCMAKE_BUILD_TYPE=Debug ../..; make Flash",
|
|
||||||
"label": "Flash Debug",
|
|
||||||
"problemMatcher": [],
|
|
||||||
"group": {
|
|
||||||
"kind": "build",
|
|
||||||
"isDefault": false
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"version": "2.0.0"
|
"version": "2.0.0"
|
||||||
|
|||||||
@ -68,5 +68,3 @@ add_custom_target(Flash
|
|||||||
# Suppression de la conversion automatique LF -> CRLF
|
# Suppression de la conversion automatique LF -> CRLF
|
||||||
add_definitions(-DPICO_STDIO_ENABLE_CRLF_SUPPORT=0)
|
add_definitions(-DPICO_STDIO_ENABLE_CRLF_SUPPORT=0)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -140,7 +140,6 @@ Les adresses en **gras** sont celles pour lesquelles des `#define` existent qui
|
|||||||
| 0x5F | RW | Flottant 32 bits | Acceleration trajectoire |
|
| 0x5F | RW | Flottant 32 bits | Acceleration trajectoire |
|
||||||
| 0x60 | RW | Flottant 32 bits | Acceleration trajectoire |
|
| 0x60 | RW | Flottant 32 bits | Acceleration trajectoire |
|
||||||
| 0x61 | 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 |
|
| **0x80** | R | flottant 32 bits | Position X en mm |
|
||||||
| 0x81 | 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 |
|
| 0x82 | R | flottant 32 bits | Position X en mm |
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
// Changer le define en fonction qu'on soit sur les PAMIs ou sur le robot principal
|
// Changer le define en fonction qu'on soit sur les PAMIs ou sur le robot principal
|
||||||
|
|
||||||
//#define ROBOT_PROPULSION_2026
|
#define ROBOT_PROPULSION_2026
|
||||||
#define ROBOT_TYPE_PAMI
|
//#define ROBOT_TYPE_PAMI
|
||||||
|
|
||||||
#ifndef ROBOT_PROPULSION_2026
|
#ifndef ROBOT_PROPULSION_2026
|
||||||
#ifndef ROBOT_TYPE_PAMI
|
#ifndef ROBOT_TYPE_PAMI
|
||||||
|
|||||||
44
main.c
44
main.c
@ -48,8 +48,6 @@ int get_couleur(void);
|
|||||||
void gestion_PAMI(uint32_t step_ms, int * asser_pos);
|
void gestion_PAMI(uint32_t step_ms, int * asser_pos);
|
||||||
void gestion_VL53L8CX(void);
|
void gestion_VL53L8CX(void);
|
||||||
|
|
||||||
extern uint8_t memoire_echange[];
|
|
||||||
|
|
||||||
#ifdef ROBOT_PROPULSION_2026
|
#ifdef ROBOT_PROPULSION_2026
|
||||||
const uint32_t step_ms=10;
|
const uint32_t step_ms=10;
|
||||||
#else
|
#else
|
||||||
@ -68,8 +66,6 @@ void main(void)
|
|||||||
struct message_t message;
|
struct message_t message;
|
||||||
bool fin_match = false;
|
bool fin_match = false;
|
||||||
|
|
||||||
memoire_echange[0x5D]=1; // Si 0, c'est OK, sinon, ça fait n'importe quoi !
|
|
||||||
|
|
||||||
|
|
||||||
stdio_init_all();
|
stdio_init_all();
|
||||||
Temps_init();
|
Temps_init();
|
||||||
@ -81,7 +77,7 @@ void main(void)
|
|||||||
Trajet_init(get_identifiant());
|
Trajet_init(get_identifiant());
|
||||||
//i2c_maitre_init();
|
//i2c_maitre_init();
|
||||||
|
|
||||||
//Servomoteur_Init();
|
Servomoteur_Init();
|
||||||
|
|
||||||
communication_init();
|
communication_init();
|
||||||
|
|
||||||
@ -99,10 +95,9 @@ void main(void)
|
|||||||
gpio_set_dir(LED1PIN, GPIO_OUT );
|
gpio_set_dir(LED1PIN, GPIO_OUT );
|
||||||
gpio_put(LED1PIN, 1);
|
gpio_put(LED1PIN, 1);
|
||||||
|
|
||||||
// Code incompatible avec le Pico W
|
gpio_init(PICO_DEFAULT_LED_PIN);
|
||||||
// gpio_init(PICO_DEFAULT_LED_PIN);
|
gpio_set_dir(PICO_DEFAULT_LED_PIN, GPIO_OUT );
|
||||||
// gpio_set_dir(PICO_DEFAULT_LED_PIN, GPIO_OUT );
|
gpio_put(PICO_DEFAULT_LED_PIN, 1);
|
||||||
// gpio_put(PICO_DEFAULT_LED_PIN, 1);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -123,13 +118,7 @@ void main(void)
|
|||||||
enum etat_trajet_t etat_trajet=TRAJET_EN_COURS;
|
enum etat_trajet_t etat_trajet=TRAJET_EN_COURS;
|
||||||
struct trajectoire_t trajectoire;
|
struct trajectoire_t trajectoire;
|
||||||
uint8_t mode=0;
|
uint8_t mode=0;
|
||||||
#ifdef ROBOT_TYPE_PAMI
|
Trajet_config(TRAJECT_CONFIG_STD);
|
||||||
Trajet_config(100, 200);
|
|
||||||
#endif
|
|
||||||
#ifdef ROBOT_PROPULSION_2026
|
|
||||||
Trajet_config(600, 300);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
while(1){
|
while(1){
|
||||||
|
|
||||||
@ -164,8 +153,6 @@ void main(void)
|
|||||||
mise_a_jour_vitesse_robot = false;
|
mise_a_jour_vitesse_robot = false;
|
||||||
mise_a_jour_trajectoire = false;
|
mise_a_jour_trajectoire = false;
|
||||||
mise_a_jour_config_trajet = false;
|
mise_a_jour_config_trajet = false;
|
||||||
mise_a_jour_cde_inv_traj = false;
|
|
||||||
|
|
||||||
|
|
||||||
// Copie des données dans la mémoire d'échange
|
// Copie des données dans la mémoire d'échange
|
||||||
// Et actualisation des variables "mise_a_jour_..."
|
// Et actualisation des variables "mise_a_jour_..."
|
||||||
@ -221,21 +208,12 @@ void main(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(mise_a_jour_config_trajet){
|
if(mise_a_jour_config_trajet){
|
||||||
struct msg_trajectoire_t msg_trajectoire;
|
|
||||||
get_données_reçues((uint8_t *) &msg_trajectoire, sizeof(msg_trajectoire), REG_PROPULSION_TRAJECTOIRE);
|
|
||||||
struct msg_propulsion_config_trajet_t msg_propulsion_config_trajet;
|
struct msg_propulsion_config_trajet_t msg_propulsion_config_trajet;
|
||||||
get_données_reçues((uint8_t *) &msg_propulsion_config_trajet, sizeof(msg_propulsion_config_trajet), REG_PROPULSION_CONFIG_TRAJET);
|
get_données_reçues((uint8_t *) &msg_propulsion_config_trajet, sizeof(msg_propulsion_config_trajet), REG_PROPULSION_CONFIG_TRAJET);
|
||||||
|
printf("Trajet config: %.0f %.0f\n",msg_propulsion_config_trajet.vitesse_mm_s, msg_propulsion_config_trajet.acceleration_mm_ss);
|
||||||
|
|
||||||
|
Trajet_config(msg_propulsion_config_trajet.vitesse_mm_s, msg_propulsion_config_trajet.acceleration_mm_ss);
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
if(mise_a_jour_cde_inv_traj){
|
|
||||||
uint8_t cde_inv_traj;
|
|
||||||
get_données_reçues(&cde_inv_traj, sizeof(cde_inv_traj), REG_PROPULSION_CDE_INV_TRAJ);
|
|
||||||
if(cde_inv_traj == 1){
|
|
||||||
Trajet_inverse();
|
|
||||||
cde_inv_traj = 0;
|
|
||||||
mise_données_dans_échange(&cde_inv_traj, sizeof(cde_inv_traj), REG_PROPULSION_CDE_INV_TRAJ);
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -246,10 +224,10 @@ void main(void)
|
|||||||
if(id_carte == 'D'){
|
if(id_carte == 'D'){
|
||||||
if(message.donnees[4] > 0 && message.donnees[4] < 30){
|
if(message.donnees[4] > 0 && message.donnees[4] < 30){
|
||||||
//printf("LED ON\n");
|
//printf("LED ON\n");
|
||||||
//gpio_put(PICO_DEFAULT_LED_PIN, 1);
|
gpio_put(PICO_DEFAULT_LED_PIN, 1);
|
||||||
}else{
|
}else{
|
||||||
//printf("LED OFF\n");
|
//printf("LED OFF\n");
|
||||||
//gpio_put(PICO_DEFAULT_LED_PIN, 0);
|
gpio_put(PICO_DEFAULT_LED_PIN, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -279,6 +257,8 @@ void main(void)
|
|||||||
//printf(">nb_message:%u\n",nb_message);
|
//printf(">nb_message:%u\n",nb_message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Fin du match
|
||||||
|
|
||||||
if(temps_ms != Temps_get_temps_ms()){
|
if(temps_ms != Temps_get_temps_ms()){
|
||||||
if(Temps_get_temps_ms() - temps_ms > 20){
|
if(Temps_get_temps_ms() - temps_ms > 20){
|
||||||
/// PANIC
|
/// PANIC
|
||||||
|
|||||||
@ -22,7 +22,7 @@ struct message_applicatif_t{
|
|||||||
uint8_t adresse_registre; // Adresse du registre lu ou écrit
|
uint8_t adresse_registre; // Adresse du registre lu ou écrit
|
||||||
uint8_t taille_donnees;
|
uint8_t taille_donnees;
|
||||||
union{
|
union{
|
||||||
uint8_t donnees[0xFF];
|
uint8_t donnees[100];
|
||||||
#ifdef MESSAGE_PROPULSION_H
|
#ifdef MESSAGE_PROPULSION_H
|
||||||
struct msg_propulsion_position_t msg_propulsion_position;
|
struct msg_propulsion_position_t msg_propulsion_position;
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -1,9 +1,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "messagerie_applicative.h"
|
#include "messagerie_applicative.h"
|
||||||
|
|
||||||
#define TAILLE_MEMOIRE_ECHANGE 0xFF
|
uint8_t memoire_echange[200];
|
||||||
|
|
||||||
uint8_t memoire_echange[TAILLE_MEMOIRE_ECHANGE];
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -14,7 +12,6 @@ bool mise_a_jour_vitesse_roues = false;
|
|||||||
bool mise_a_jour_vitesse_robot = false;
|
bool mise_a_jour_vitesse_robot = false;
|
||||||
bool mise_a_jour_trajectoire = false;
|
bool mise_a_jour_trajectoire = false;
|
||||||
bool mise_a_jour_config_trajet = false;
|
bool mise_a_jour_config_trajet = false;
|
||||||
bool mise_a_jour_cde_inv_traj = false;
|
|
||||||
|
|
||||||
void get_données_reçues(uint8_t * dst, unsigned int taille, unsigned int registre){
|
void get_données_reçues(uint8_t * dst, unsigned int taille, unsigned int registre){
|
||||||
memcpy(dst, &(memoire_echange[registre]), taille);
|
memcpy(dst, &(memoire_echange[registre]), taille);
|
||||||
@ -46,26 +43,15 @@ void écriture_données(unsigned int adresse, uint8_t donnée){
|
|||||||
}else if(adresse <= 0x59){ //
|
}else if(adresse <= 0x59){ //
|
||||||
// Trajectoire
|
// Trajectoire
|
||||||
mise_a_jour_trajectoire = true;
|
mise_a_jour_trajectoire = true;
|
||||||
|
|
||||||
}else if(adresse <= 0x61){
|
}else if(adresse <= 0x61){
|
||||||
// Trajet config
|
// Trajet config
|
||||||
mise_a_jour_config_trajet = true;
|
mise_a_jour_config_trajet = true;
|
||||||
|
|
||||||
/*
|
|
||||||
}else if(adresse <= 0x62){
|
|
||||||
// Trajet config
|
|
||||||
mise_a_jour_cde_inv_traj = true;
|
|
||||||
*/
|
|
||||||
}else {
|
}else {
|
||||||
// Hors mémoire
|
// Hors mémoire
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// On contrôle qu'on est bien dans la mémoire
|
|
||||||
if(adresse < TAILLE_MEMOIRE_ECHANGE && adresse >= 0){
|
|
||||||
memoire_echange[adresse] = donnée;
|
memoire_echange[adresse] = donnée;
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,4 +14,3 @@ extern bool mise_a_jour_vitesse_roues;
|
|||||||
extern bool mise_a_jour_vitesse_robot;
|
extern bool mise_a_jour_vitesse_robot;
|
||||||
extern bool mise_a_jour_trajectoire;
|
extern bool mise_a_jour_trajectoire;
|
||||||
extern bool mise_a_jour_config_trajet;
|
extern bool mise_a_jour_config_trajet;
|
||||||
extern bool mise_a_jour_cde_inv_traj;
|
|
||||||
|
|||||||
@ -12,7 +12,6 @@
|
|||||||
#define REG_PROPULSION_VITESSE_ROBOT 0x1A
|
#define REG_PROPULSION_VITESSE_ROBOT 0x1A
|
||||||
#define REG_PROPULSION_TRAJECTOIRE 0x22
|
#define REG_PROPULSION_TRAJECTOIRE 0x22
|
||||||
#define REG_PROPULSION_CONFIG_TRAJET 0x5A
|
#define REG_PROPULSION_CONFIG_TRAJET 0x5A
|
||||||
#define REG_PROPULSION_CDE_INV_TRAJ 0x62
|
|
||||||
#define REG_PROPULSION_ABSCISSE 0x8C
|
#define REG_PROPULSION_ABSCISSE 0x8C
|
||||||
#define REG_PROPULSION_POSITION_CONSIGNE 0x90
|
#define REG_PROPULSION_POSITION_CONSIGNE 0x90
|
||||||
#define REG_PROPULSION_VITESSE_ROUES_lecture 0x98
|
#define REG_PROPULSION_VITESSE_ROUES_lecture 0x98
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user