diff --git a/Asser_Position.c b/Asser_Position.c index 44018a1..8289949 100644 --- a/Asser_Position.c +++ b/Asser_Position.c @@ -3,7 +3,7 @@ #include "math.h" #define GAIN_P_POSITION 15 -#define GAIN_P_ORIENTATION 2 +#define GAIN_P_ORIENTATION 10 struct position_t position_maintien; diff --git a/Trajet.c b/Trajet.c index 2a2e8c6..6cb9cd6 100644 --- a/Trajet.c +++ b/Trajet.c @@ -141,16 +141,16 @@ float Trajet_calcul_vitesse(float pas_de_temps_s){ vitesse_max_contrainte = 0; } - /*distance_contrainte_obstacle = Trajet_get_obstacle_mm(); + distance_contrainte_obstacle = Trajet_get_obstacle_mm(); if(distance_contrainte_obstacle != DISTANCE_INVALIDE){ vitesse_max_contrainte_obstacle = sqrtf(2 * acceleration_mm_ss_obstacle * distance_contrainte_obstacle); if(vitesse_max_contrainte_obstacle < vitesse_max_contrainte){ vitesse_max_contrainte = vitesse_max_contrainte_obstacle; } - }*/ + }/* if((Trajet_get_obstacle_mm() != DISTANCE_INVALIDE) && (Trajet_get_obstacle_mm() < 50)){ vitesse = 0; - } + }*/ // Selection de la vitesse la plus faible diff --git a/VL53L8_2024.c b/VL53L8_2024.c index 18054b0..ab1921a 100644 --- a/VL53L8_2024.c +++ b/VL53L8_2024.c @@ -14,6 +14,8 @@ int masque[64]={ 195,200,202,206,213,200,200,202 }; +float old_min_distance; + void VL53L8_init(VL53L8CX_Configuration * Dev){ uint8_t status, isAlive, isReady, i; @@ -162,7 +164,12 @@ int VL53L8_min_distance(VL53L8CX_ResultsData Results, float *distance){ if(min_distance-50 > 0){ *distance = min_distance-50; } + old_min_distance = *distance; } +float VL53L8_get_old_min_distance(){ + return old_min_distance; +} + diff --git a/main.c b/main.c index d108b21..fbb154a 100644 --- a/main.c +++ b/main.c @@ -82,7 +82,7 @@ void main(void) //multicore_launch_core1(gestion_affichage); multicore_launch_core1(gestion_VL53L8CX); - sleep_ms(3000); + sleep_ms(5000); printf("Demarrage...\n"); @@ -113,16 +113,13 @@ void main(void) if(temps_ms % step_ms == 0){ QEI_update(); Localisation_gestion(); - if(Trajet_get_obstacle_mm() < 50){ - Moteur_Stop(); + + if(etat_trajet != TRAJET_TERMINE){ + etat_trajet = Trajet_avance((float)step_ms/1000.); }else{ - if(etat_trajet != TRAJET_TERMINE){ - etat_trajet = Trajet_avance((float)step_ms/1000.); - }else{ - Asser_Position_maintien(); - } - AsserMoteur_Gestion(step_ms); + Asser_Position_maintien(); } + AsserMoteur_Gestion(step_ms); } } @@ -239,16 +236,19 @@ void configure_trajet(int identifiant, int couleur){ case 0: break; case 1: - Localisation_set(1465, 2000-63, M_PI); - Trajectoire_bezier(&trajectoire, 3000-1465, 2000-63, 3000-1260, 2000-63, - 3000-600, 1400, 3000-0, 2000, M_PI, M_PI); + Localisation_set(3000-1249, 2000-63, 0); + Trajectoire_bezier(&trajectoire, 3000-1250, 2000-63, 3000-1050, 2000-63, + 3000-750, 1400, 3000-750, 2100, 0, 0); break; case 2: + Localisation_set(3000-1117, 2000-63, 0); + Trajectoire_bezier(&trajectoire, 3000-1116, 2000-63, 3000-975, 2000-63, + 3000-540, 1400, 3000+60, 1400, -M_PI, -M_PI); break; case 3: - Localisation_set(3000 - 1130, 2000-63, 0); + Localisation_set(1121-1130, 2000-63, 0); Trajectoire_bezier(&trajectoire, 3000-1122, 2000-63, 3000-905, 2000-63, - 3000-606, 2000-590, 3000-225, 2000-225, 0, 0); + 3000-606, 2000-590, 3000-225, 2000-225, -M_PI, -M_PI); break; case 4: break; @@ -270,9 +270,9 @@ void configure_trajet(int identifiant, int couleur){ case 0: break; case 1: - Localisation_set(1465, 2000-63, M_PI); - Trajectoire_bezier(&trajectoire, 1465, 2000-63, 1260, 2000-63, - 600, 1400, 0, 2000, M_PI, M_PI); + Localisation_set(1249, 2000-63, M_PI); + Trajectoire_bezier(&trajectoire, 1250, 2000-63, 1050, 2000-63, + 750, 1400, 750, 2100, M_PI, M_PI); break; case 2: Localisation_set(1117, 2000-63, M_PI); @@ -280,7 +280,7 @@ void configure_trajet(int identifiant, int couleur){ 540, 1400, -60, 1400, M_PI, M_PI); break; case 3: - Localisation_set(1130, 2000-63, M_PI); + Localisation_set(1121, 2000-63, M_PI); Trajectoire_bezier(&trajectoire, 1122, 2000-63, 905, 2000-63, 606, 2000-590, 225, 2000-225, M_PI, M_PI); break;