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