WIP
This commit is contained in:
parent
a656d62d41
commit
374da66a5e
@ -29,6 +29,7 @@ Robot_config.c
|
||||
Score.c
|
||||
Servomoteur.c
|
||||
Strategie.c
|
||||
Strategie_deplacement.c
|
||||
Strategie_prise_cerises.c
|
||||
Temps.c
|
||||
Test.c
|
||||
|
@ -82,7 +82,7 @@ int main() {
|
||||
AsserMoteur_Init();
|
||||
Localisation_init();
|
||||
|
||||
//while(mode_test());
|
||||
while(mode_test());
|
||||
i2c_maitre_init();
|
||||
Trajet_init();
|
||||
Balise_VL53L1X_init();
|
||||
|
63
Strategie.c
63
Strategie.c
@ -1,7 +1,6 @@
|
||||
#include "hardware/gpio.h"
|
||||
#include "i2c_annexe.h"
|
||||
#include "Asser_Position.h"
|
||||
#include "Balise_VL53L1X.h"
|
||||
#include "Commande_vitesse.h"
|
||||
#include "Geometrie_robot.h"
|
||||
#include "Localisation.h"
|
||||
@ -484,7 +483,7 @@ enum etat_action_t lance_balles(uint32_t step_ms, uint32_t nb_cerises){
|
||||
if(temporisation_terminee(&tempo_ms, step_ms)){
|
||||
i2c_annexe_mi_ferme_porte();
|
||||
etat_lance_balle = LANCE_TEMPO_PROP_ON;
|
||||
tempo_ms = 750;
|
||||
tempo_ms = 500;
|
||||
}
|
||||
break;
|
||||
|
||||
@ -559,66 +558,6 @@ enum etat_action_t calage_angle(enum longer_direction_t longer_direction, float
|
||||
return etat_action;
|
||||
}
|
||||
|
||||
enum etat_action_t parcourt_trajet_simple(struct trajectoire_t trajectoire, uint32_t step_ms){
|
||||
enum etat_action_t etat_action = ACTION_EN_COURS;
|
||||
enum etat_trajet_t etat_trajet;
|
||||
float angle_avancement;
|
||||
|
||||
static enum {
|
||||
PARCOURS_INIT,
|
||||
PARCOURS_AVANCE,
|
||||
} etat_parcourt=PARCOURS_INIT;
|
||||
|
||||
switch (etat_parcourt){
|
||||
case PARCOURS_INIT:
|
||||
Trajet_debut_trajectoire(trajectoire);
|
||||
etat_parcourt = PARCOURS_AVANCE;
|
||||
break;
|
||||
|
||||
case PARCOURS_AVANCE:
|
||||
angle_avancement = Trajet_get_orientation_avance();
|
||||
distance_obstacle = Balise_VL53L1X_get_distance_obstacle_mm(angle_avancement);
|
||||
Trajet_set_obstacle_mm(distance_obstacle);
|
||||
|
||||
etat_trajet = Trajet_avance(step_ms/1000.);
|
||||
if(etat_trajet == TRAJET_TERMINE){
|
||||
Trajet_set_obstacle_mm(DISTANCE_INVALIDE);
|
||||
etat_action = ACTION_TERMINEE;
|
||||
etat_parcourt = PARCOURS_INIT;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return etat_action;
|
||||
}
|
||||
|
||||
enum etat_action_t parcourt_trajet_simple_sans_evitement(struct trajectoire_t trajectoire, uint32_t step_ms){
|
||||
enum etat_action_t etat_action = ACTION_EN_COURS;
|
||||
enum etat_trajet_t etat_trajet;
|
||||
static enum {
|
||||
PARCOURS_INIT,
|
||||
PARCOURS_AVANCE,
|
||||
} etat_parcourt=PARCOURS_INIT;
|
||||
|
||||
switch (etat_parcourt){
|
||||
case PARCOURS_INIT:
|
||||
Trajet_debut_trajectoire(trajectoire);
|
||||
Trajet_set_obstacle_mm(distance_pas_obstacle);
|
||||
etat_parcourt = PARCOURS_AVANCE;
|
||||
break;
|
||||
|
||||
case PARCOURS_AVANCE:
|
||||
etat_trajet = Trajet_avance(step_ms/1000.);
|
||||
if(etat_trajet == TRAJET_TERMINE){
|
||||
etat_action = ACTION_TERMINEE;
|
||||
etat_parcourt = PARCOURS_INIT;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return etat_action;
|
||||
}
|
||||
|
||||
/// @brief Renvoi 1 si on doit attendre le déclenchement de la tirette
|
||||
uint attente_tirette(void){
|
||||
return !gpio_get(TIRETTE);
|
||||
|
70
Strategie_deplacement.c
Normal file
70
Strategie_deplacement.c
Normal file
@ -0,0 +1,70 @@
|
||||
#include "Strategie.h"
|
||||
#include "Trajet.h"
|
||||
#include "Evitement.h"
|
||||
#include "Geometrie.h"
|
||||
#include "Balise_VL53L1X.h"
|
||||
|
||||
enum etat_action_t Strategie_parcourir_trajet(){
|
||||
|
||||
}
|
||||
|
||||
|
||||
enum etat_action_t parcourt_trajet_simple(struct trajectoire_t trajectoire, uint32_t step_ms){
|
||||
enum etat_action_t etat_action = ACTION_EN_COURS;
|
||||
enum etat_trajet_t etat_trajet;
|
||||
float angle_avancement;
|
||||
|
||||
static enum {
|
||||
PARCOURS_INIT,
|
||||
PARCOURS_AVANCE,
|
||||
} etat_parcourt=PARCOURS_INIT;
|
||||
|
||||
switch (etat_parcourt){
|
||||
case PARCOURS_INIT:
|
||||
Trajet_debut_trajectoire(trajectoire);
|
||||
etat_parcourt = PARCOURS_AVANCE;
|
||||
break;
|
||||
|
||||
case PARCOURS_AVANCE:
|
||||
angle_avancement = Trajet_get_orientation_avance();
|
||||
distance_obstacle = Balise_VL53L1X_get_distance_obstacle_mm(angle_avancement);
|
||||
Trajet_set_obstacle_mm(distance_obstacle);
|
||||
|
||||
etat_trajet = Trajet_avance(step_ms/1000.);
|
||||
if(etat_trajet == TRAJET_TERMINE){
|
||||
Trajet_set_obstacle_mm(DISTANCE_INVALIDE);
|
||||
etat_action = ACTION_TERMINEE;
|
||||
etat_parcourt = PARCOURS_INIT;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return etat_action;
|
||||
}
|
||||
|
||||
enum etat_action_t parcourt_trajet_simple_sans_evitement(struct trajectoire_t trajectoire, uint32_t step_ms){
|
||||
enum etat_action_t etat_action = ACTION_EN_COURS;
|
||||
enum etat_trajet_t etat_trajet;
|
||||
static enum {
|
||||
PARCOURS_INIT,
|
||||
PARCOURS_AVANCE,
|
||||
} etat_parcourt=PARCOURS_INIT;
|
||||
|
||||
switch (etat_parcourt){
|
||||
case PARCOURS_INIT:
|
||||
Trajet_debut_trajectoire(trajectoire);
|
||||
Trajet_set_obstacle_mm(distance_pas_obstacle);
|
||||
etat_parcourt = PARCOURS_AVANCE;
|
||||
break;
|
||||
|
||||
case PARCOURS_AVANCE:
|
||||
etat_trajet = Trajet_avance(step_ms/1000.);
|
||||
if(etat_trajet == TRAJET_TERMINE){
|
||||
etat_action = ACTION_TERMINEE;
|
||||
etat_parcourt = PARCOURS_INIT;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return etat_action;
|
||||
}
|
0
Strategie_deplacement.h
Normal file
0
Strategie_deplacement.h
Normal file
9
Trajet.c
9
Trajet.c
@ -186,6 +186,15 @@ float Trajet_get_orientation_avance(){
|
||||
return angle;
|
||||
}
|
||||
|
||||
void Trajet_inverse(){
|
||||
float old_abscisse = abscisse;
|
||||
float old_position_mm = position_mm;
|
||||
Trajectoire_inverse(&trajet_trajectoire);
|
||||
Trajet_debut_trajectoire(trajet_trajectoire);
|
||||
abscisse = 1 - old_abscisse;
|
||||
position_mm = Trajectoire_get_longueur_mm(&trajet_trajectoire) - old_position_mm;
|
||||
}
|
||||
|
||||
float Trajet_get_abscisse(){
|
||||
return abscisse;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user