Hlimi Omar
/
biniou
TRR2018 omar
Fork of biniou by
Diff: stateMachines.h
- Revision:
- 17:8c465656eea4
- Parent:
- 16:63690703b5b6
- Child:
- 18:38504337d2fc
diff -r 63690703b5b6 -r 8c465656eea4 stateMachines.h --- a/stateMachines.h Tue Sep 11 14:49:55 2018 +0000 +++ b/stateMachines.h Wed Sep 12 22:14:59 2018 +0000 @@ -1,10 +1,17 @@ #include "mbed.h" #include <stdint.h> -#//define DEBUG 3 -#define MAX_PULSE_WIDTH_FOR_TACHY 0.00165 -#define BRAKING_PWM 0.00135 -#define INITAL_PULSE_SPEED 0.00159 +#define DEBUG 3 + +#define DIERCTION_PERIOD 10000 +#define DIRECTION_PULSE_MAX 2100 +#define DIRECTION_PULSE_MIN 800 +#define DIRECTION_PULSE_MIDDLE 1500 + +#define SPEED_PERIOD 20000 +#define BRAKING_PWM 1350 +#define MAX_PULSE_WIDTH_FOR_TACHY 1700 +#define INITAL_PULSE_SPEED 1590 #define NB_ECHANTILLONS_IR 4 #define NB_ECHANTILLONS_LIDAR 4 @@ -15,54 +22,55 @@ #define IR_DEADZONE_U16_22cm 49677 #define IR_FAR_U16_105cm 11915 -#define SPEED_DELTA_CMPS 2 +#define SPEED_DELTA_CMPS 10 //#define DLVV typedef enum{ + ATTRACTIF_G, + ATTRACTIF_D, + EQUILIBRAGE_REPULSIF +}MUR_ST; + +#ifdef DLVV +typedef enum{//uniquement activé pour dlvv, se rajoute au PID de murOutput + FRONT_CLEAR,//pas d'obstacle droit devant + FRONT_OBSTRUCTED//un obstacle à été detecté à moins de 20/30 cm tbd +}OBSTACLE_ST; +#endif + +typedef enum{ ARRET, LOADING_SECTION, RUNNING_SECTION }SECTION_ST; typedef enum{ + SPEED_MAX,//pas de mur, on va a fond + SPEED_VARIABLE,//signal suffisement fort pour gérer la vitesse + SPEED_LIMITED//nous somme dans la plage de distance ou la vitesse doit être limitée +}MAX_SPEED_ST; + +typedef enum{ UNDER_SPEED, OVER_SPEED, AT_SPEED, BRAKING }THROTTLE_ST; -typedef enum{ - ATTRACTIF_G, - ATTRACTIF_D, - EQUILIBRAGE_REPULSIF -}MUR_ST; - -typedef enum{ - SPEED_MAX,//pas de mur, on va a fond - SPEED_VARIABLE,//signal suffisement fort pour gérer la vitesse - SPEED_LIMITED//nous somme dans la plage de distance ou la vitesse doit être limitée -}MAX_SPEED_ST; - -#ifdef DLVV -typedef enum{//uniquement activé pour dlvv, se rajoute au PID de murOutput - FRONT_CLEAR,//pas d'obstacle droit devant - FRONT_OBSTRUCTED//un obstacle à été detecté à moins de 20/30 cm tbd -}OBSTACLE_ST; -#endif typedef struct s_section { int targetSpeed_cmps; int slowSpeed_cmps;//pour effectuer les virages... pour ne pas avoir d'a coups entre la vitesse variable et la vitesse limitée: brakingCoefficient = 30*((targetSpeed_cmps/slowSpeed_cmps)-1) int brakingCoefficient; - float ms_accel; - float ms_decel; + int us_accel; + int us_decel; int lidarWarningDist_cm; int lng_section_cm; - double coef_p; - double coef_i; - double coef_d; + int coef_p; + int coef_i; + int coef_d; s_section* nextSection; }s_Section;