TRR2018 omar

Dependencies:   mbed

Fork of biniou by TRR 2018

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