Hlimi Omar
/
biniou
TRR2018 omar
Fork of biniou by
Diff: stateMachines.cpp
- Revision:
- 2:fd0ffe46a87d
- Child:
- 3:03ea98f5b2e4
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/stateMachines.cpp Wed Aug 22 23:33:16 2018 +0000 @@ -0,0 +1,77 @@ +#include <stdint.h> + +#define MODE_SUIVI_LIGNE 1 +#define MODE_SUIVI_MUR_DROIT 2 +#define MODE_SUIVI_MUR_GAUCHE 3 +#define MODE_COURSE 4 + +#define DRIFT_ENABLED 1 +#define DRIFT_OFF 1 + +#define NB_ECHANTILLONS_IR 3 +#define NB_ECHANTILLONS_LIGNE 3 +#define NB_ECHANTILLONS_US 3 +#define NB_CAPTEURS_VECTORISATION 3 +#define NB_CAPTEURS_LIGNE 3 + +static int mode_courant = MODE_COURSE; // mettre en define pour la compilation ? ou régler via télécommande ? + +int niveaux_capteurs[NB_CAPTEURS_LIGNE][NB_ECHANTILLONS_LIGNE];//buffer tournant des mesures sur lesquelles ont fait une moyenne +int fifo_dists_ir[NB_CAPTEURS_VECTORISATION][NB_ECHANTILLONS_IR];//buffer tournant +int dist_obstacle_us[NB_ECHANTILLONS_US];//buffer tournant +int index_fifo_ir = 0;//pour géreer le buffer tournant +int index_fifo_us = 0; +int index_fifo_line = 0; +int position = 0; +int vitesse = 0; + +//change en mode course uniquement 1 réglage de PID par SECTION +typedef enum{ + ARRET, + LIGNE_DROITE,//PID ligne + CHICANE_D,//PID murs + CHICANE_G, + EPINGLE_D,//PID epingle + EPINGLE_G, + ARRIVEE +}SECTION_ST; + +typedef eneum +{ + LIGNE_DETECTE, + LIGNE_ABSENTE, + ARIVEE_DETECTEE, +}LIGNE_ST + +typedef eneum +{ + MURS_ABSENTS, + MUR_G_OK, + MUR_D_OK, + MUR_GD_OK +}MUR_ST + +typedef eneum +{ + RISQUE_COLLISION, + EVITEMENT_D, + EVITEMENT_G, + FREINAGE_URG, + CLEAR +}OBSTACLE_ST + +void murs_init(); +void murs_update(); +void murs_output(); + +void ligne_init(); +void ligne_update(); +void ligne_output(); + +void obstacle_init(); +void obstacle_update(); +void obstacle_output(); + +void section_init(); +void section_update(); +void section_output(); \ No newline at end of file