![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
TRR2018 omar
Fork of biniou by
Diff: stateMachines.h
- Revision:
- 21:de7a0a47f8a3
- Parent:
- 19:771bf61be276
- Child:
- 22:26fc6e6f7a55
--- a/stateMachines.h Thu Sep 13 23:09:18 2018 +0000 +++ b/stateMachines.h Sat Sep 15 12:58:47 2018 +0000 @@ -5,6 +5,8 @@ #define SAMPLING//commenter pour désactiver #define DEBUG -1//-1 pour avoir uniquement la gestion de l'interruption bouton +#define NB_INTEGRAL_SAMPLES 5 + #define DIERCTION_PERIOD_MS 10000 #define DIRECTION_PULSE_MAX 2100 #define DIRECTION_PULSE_MIN 800 @@ -15,20 +17,21 @@ #define MAX_PULSE_WIDTH_FOR_TACHY_US 1850 #define INITAL_PULSE_SPEED_US 1590 #define ZERO_PULSE_SPEED_US 1500 +#define COEF_CMPS_TO_PULSE 25 #define NB_ECHANTILLONS_IR 4 #define NB_ECHANTILLONS_LIDAR 4 -#define LIDAR_STRENGTH_THRESOLD 350 //pour la gestion de la vitesse MAX (MAXSpeed_ST) -#define LIDAR_STRENGH_DELTA 20 +#define LIDAR_STRENGTH_THRESOLD 25 //pour la gestion de la vitesse MAX (MAXSpeed_ST) +#define LIDAR_ERR 65535 -#define IR_DEADZONE_U16_22cm 49677 -#define IR_FAR_U16_105cm 11915 +#define IR_DEADZONE_U16_22cm 48000 +#define IR_FAR_U16_105cm 12000 #define SPEED_DELTA_CMPS 30 #ifdef SAMPLING -#define TAILLE_SAMPLES 1200 +#define TAILLE_SAMPLES 4180 typedef struct states { char murs_dlvv; @@ -41,10 +44,10 @@ { s_States states; uint16_t time; - uint16_t cg45; - uint16_t cd45; - uint16_t cg90; - uint16_t cd90; + uint16_t diffgd45; + uint16_t diffgd90; + uint16_t pwm_thro_us; + uint16_t pwm_dir_us; uint16_t lidarDist; uint16_t lidarStr; uint16_t speed; @@ -74,13 +77,12 @@ 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 + SPEED_WARNING,//signal suffisement fort pour gérer la vitesse + BLOCKED//nous somme dans la plage de distance ou la vitesse doit être limitée }MAX_SPEED_ST; typedef enum{ - UNDER_SPEED, - OVER_SPEED, + REGULATION_SPEED, AT_SPEED, BRAKING, STOPPED @@ -91,7 +93,7 @@ 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; - int coef_p_accel; + int coef_p_speed; int lidarWarningDist_cm; int lng_section_cm; int coef_p;