Programme carte strategie (disco)

Dependencies:   mbed SerialHalfDuplex SDFileSystem DISCO-F469NI_portrait liaison_Bluetooth ident_crac

Revision:
18:cc5fec34ed9c
Parent:
16:7321fb3bb396
Child:
21:590cdacb6a35
--- a/Robots/Strategie_small.cpp	Fri May 19 17:14:07 2017 +0000
+++ b/Robots/Strategie_small.cpp	Mon May 22 15:01:49 2017 +0000
@@ -3,6 +3,8 @@
 #include "Config_small.h"
 
 unsigned char isStopEnable = 1;//Permet de savoir si il faut autoriser le stop via les balises
+unsigned short telemetreDistance;
+
 
 /****************************************************************************************/
 /* FUNCTION NAME: doFunnyAction                                                         */
@@ -30,55 +32,74 @@
     can1.write(msgTx);
 }
 
+
 /****************************************************************************************/
 /* FUNCTION NAME: doAction                                                              */
 /* DESCRIPTION  : Effectuer une action specifique                                       */
 /****************************************************************************************/
 unsigned char doAction(unsigned char id, unsigned short speed, short angle) {
+    int retour = 1;
     switch(id) {
         case 100: // preparation prise bras central
-            Preparation_prise();
+            AX12_automate(AX12_PINCE_CENTRALE_PREPARATION_PRISE);
         break;
         case 101:// stockage haut bras central
-            Stockage_haut();
+            AX12_automate(AX12_PINCE_CENTRALE_STOCKAGE_HAUT);
         break;
         case 102:// stockage bas bras central
-            Stockage_bas();
+            AX12_automate(AX12_PINCE_CENTRALE_STOCKAGE_BAS);
         break;
         case 103:// ouvrir la main du bras cental 
-            Deposer();
+            AX12_automate(AX12_PINCE_CENTRALE_DEPOSER);
         break;
         case 104:// preparation de depot du module bas du bras central
-            Preparation_depot_bas();
+            AX12_automate(AX12_PINCE_CENTRALE_PREPARATION_DEPOT);
         break;
         case 105:// preparation de depot du module haut du bras central
-            Preparation_depot_haut();
+            AX12_automate(AX12_PINCE_CENTRALE_DEPOT_HAUT);
+            AX12_automate(AX12_PINCE_CENTRALE_PREPARATION_DEPOT);
         break;
-        case 106:// positionner le bras afin de pousser un module debout
-            Pousser_module();
+        case 106:// on rentre la pince dans le robot
+            AX12_automate(AX12_PINCE_CENTRALE_POSITION_INITIALE);
         break;
+        case 107: // on ferme la pince du robot
+            AX12_automate(AX12_PINCE_CENTRALE_PRISE_MODULE);
+        break;
+        
         case 110:// ouvrir une porte avant
             if(InversStrat == 1) {//Si c'est inversé, On utilise le bras coté droit
                 if(speed == 1) speed = 0;
                 else speed = 1;
-            } else {
-                
+            }
+            
+            if (speed == 1){
+                AX12_automate(AX12_DROIT_CROC_OUVERT);
+            }else{
+                AX12_automate(AX12_GAUCHE_CROC_OUVERT);    
             }
         break;
         case 111:// securiser un module avec une porte avant
             if(InversStrat == 1) {//Si c'est inversé, On utilise le bras coté droit
                 if(speed == 1) speed = 0;
                 else speed = 1;
-            } else {
-
+            }
+            
+            if (speed == 1){
+                AX12_automate(AX12_DROIT_CROC_FERME);
+            }else{
+                AX12_automate(AX12_GAUCHE_CROC_FERME);    
             }
         break;
         case 112:// ranger le porte avant dans le robot
             if(InversStrat == 1) {//Si c'est inversé, On utilise le bras coté droit
                 if(speed == 1) speed = 0;
                 else speed = 1;
-            } else {
-
+            }
+            
+            if (speed == 1){
+                AX12_automate(AX12_DROIT_CROC_INITIALE);
+            }else{
+                AX12_automate(AX12_GAUCHE_CROC_INITIALE);    
             }
         break;
         case 120:// poser une main tourneuse
@@ -90,11 +111,10 @@
             }
             
             if (speed == 1){
-                //Preparation_module_droit();
+                AX12_automate(AX12_TOURNANTE_DROIT_PREPARATION);
             }else{
-                //Preparation_module_gauche();    
+                AX12_automate(AX12_TOURNANTE_GAUCHE_PREPARATION);    
             }
-            Preparation_module_gauche(); 
         break;
         
         case 121:// relever une main tourneuse
@@ -106,29 +126,40 @@
             }
             
             if (speed == 1){
-                //RangerBrasDroit();
+                AX12_automate(AX12_TOURNANTE_DROIT_POSITION_INITIALE);
             }else{
-                RangerBrasGauche();    
+                AX12_automate(AX12_TOURNANTE_GAUCHE_POSITION_INITIALE);    
             }
             
         break;
         
         case 122:// tourner un module
-            if(InversStrat == 1) {//Si c'est inversé, On utilise le bras coté droit
+            if(InversStrat == 1) {//Si c'est inversé
                 if(speed == 2) speed = 1;
                 else speed = 2;
                 if(angle == 1) angle = 0;
                 else angle = 1;
             }
             
-            /*if (speed == 1){
-                //Tourner_module_droite();
+            if (speed == 1){
+                AX12_automate(AX12_TOURNANTE_DROIT_MODULE);
+                Tourner_module_droit();
             }else{
-                Tourner_module_gauche();    
-            }*/
-            Tourner_module_gauche();
-            
-            
+                AX12_automate(AX12_TOURNANTE_GAUCHE_MODULE);    
+                Tourner_module_gauche();
+            }
+        break;
+        
+        case 200 :
+            telemetreDistance = dataTelemetre();
+            wait_ms(1);
+            telemetreDistance = dataTelemetre();
+            telemetreDistance = telemetreDistance - 170;
+        break;
+        
+        case 201 :
+            SendRawId(0x96);
+            retour = 2;
         break;
         
         case 10://Désactiver le stop
@@ -146,6 +177,7 @@
         
         case 22://Changer la vitesse du robot
             SendSpeed(speed,(unsigned short)angle);
+            wait_us(200);
         break;
         
         case 30://Action tempo
@@ -153,10 +185,10 @@
         break;
         
         default:
-            return 0;//L'action n'existe pas, il faut utiliser le CAN
+            retour = 0;//L'action n'existe pas, il faut utiliser le CAN
         
     }
-    return 1;//L'action est spécifique.
+    return retour;//L'action est spécifique.
     
 }
 
@@ -184,9 +216,8 @@
     AX12_setGoal(AX12_ID_BRAS_RELACHEUR,160);//fermer le bras
     AX12_processChange();*/
     
-    initAX12();
-    moteurGauchePWM(0);
-    moteurDroitPWM(0);
+    initialisation_AX12();
+    
 }
 
 /****************************************************************************************/
@@ -195,40 +226,13 @@
 /****************************************************************************************/
 void initRobotActionneur(void)
 {
-    /*XL320_setGoal(XL320_ID_PINCE_GAUCHE, XL320_ANGLE_PINCE_GAUCHE_FERMER);
-    XL320_setGoal(XL320_ID_PINCE_DROITE, XL320_ANGLE_PINCE_DROITE_FERMER);
-    
-    AX12_setGoal(
-        AX12_ID_BRAS_RELACHEUR_DROIT,
-        AX12_ANGLE_BRAS_RELACHEUR_DROIT_REPLIER,
-        AX12_SPEED_BRAS_RELACHEUR
-    );
-    AX12_setGoal(
-        AX12_ID_BRAS_RELACHEUR_GAUCHE,
-        AX12_ANGLE_BRAS_RELACHEUR_GAUCHE_REPLIER,
-        AX12_SPEED_BRAS_RELACHEUR
-    );
-    AX12_setGoal(
-        AX12_ID_BRAS_BASE_DROIT,
-        AX12_ANGLE_BRAS_BASE_DROIT_REPLIER,
-        AX12_SPEED_BRAS_BASE
-    );
-    AX12_setGoal(
-        AX12_ID_BRAS_BASE_GAUCHE,
-        AX12_ANGLE_BRAS_BASE_GAUCHE_REPLIER,
-        AX12_SPEED_BRAS_RELACHEUR
-    );
-    AX12_setGoal(
-        AX12_ID_PALET_DROIT,
-        AX12_ANGLE_PALET_DROIT_FERMER,
-        AX12_SPEED_PALET
-    );
-    AX12_setGoal(
-        AX12_ID_PALET_GAUCHE,
-        AX12_ANGLE_PALET_GAUCHE_FERMER,
-        AX12_SPEED_PALET
-    );
-    AX12_processChange(); */
+    moteurGauchePWM(0);
+    moteurDroitPWM(0);
+    AX12_automate(AX12_PINCE_CENTRALE_POSITION_INITIALE);
+    AX12_automate(AX12_GAUCHE_CROC_INITIALE);
+    AX12_automate(AX12_DROIT_CROC_INITIALE);
+    AX12_automate(AX12_TOURNANTE_GAUCHE_POSITION_INITIALE);
+    AX12_automate(AX12_TOURNANTE_DROIT_POSITION_INITIALE);
 }
 
 /****************************************************************************************/
@@ -237,96 +241,7 @@
 /****************************************************************************************/
 void runRobotTest(void) 
 {
-    /*XL320_setGoal(XL320_ID_PINCE_GAUCHE, XL320_ANGLE_PINCE_GAUCHE_SECURISE);
-    XL320_setGoal(XL320_ID_PINCE_DROITE, XL320_ANGLE_PINCE_DROITE_SECURISE);
-    
-    wait_ms(200);
-    
-    XL320_setGoal(XL320_ID_PINCE_GAUCHE, XL320_ANGLE_PINCE_GAUCHE_FERMER);
-    XL320_setGoal(XL320_ID_PINCE_DROITE, XL320_ANGLE_PINCE_DROITE_FERMER);
-    
-    wait_ms(200);
-    
-    AX12_setGoal(
-        AX12_ID_BRAS_BASE_DROIT,
-        AX12_ANGLE_BRAS_BASE_DROIT_MOITER,
-        AX12_SPEED_BRAS_BASE
-    );
-    AX12_setGoal(
-        AX12_ID_BRAS_BASE_GAUCHE,
-        AX12_ANGLE_BRAS_BASE_GAUCHE_MOITER,
-        AX12_SPEED_BRAS_BASE
-    );
-    AX12_processChange();
-        
-    wait_ms(500);        
-    
-    AX12_setGoal(
-        AX12_ID_BRAS_RELACHEUR_DROIT,
-        AX12_ANGLE_BRAS_RELACHEUR_DROIT_OUVERT,
-        AX12_SPEED_BRAS_RELACHEUR
-    );
-    AX12_setGoal(
-        AX12_ID_BRAS_RELACHEUR_GAUCHE,
-        AX12_ANGLE_BRAS_RELACHEUR_GAUCHE_OUVERT,
-        AX12_SPEED_BRAS_RELACHEUR
-    );
-    AX12_processChange();
-    
-    wait_ms(600);
-    
-    AX12_setGoal(
-        AX12_ID_BRAS_RELACHEUR_DROIT,
-        AX12_ANGLE_BRAS_RELACHEUR_DROIT_REPLIER,
-        AX12_SPEED_BRAS_RELACHEUR
-    );
-    AX12_setGoal(
-        AX12_ID_BRAS_RELACHEUR_GAUCHE,
-        AX12_ANGLE_BRAS_RELACHEUR_GAUCHE_REPLIER,
-        AX12_SPEED_BRAS_RELACHEUR
-    );
-    AX12_processChange();
-    
-    wait_ms(500);
-    
-    AX12_setGoal(
-        AX12_ID_BRAS_BASE_DROIT,
-        AX12_ANGLE_BRAS_BASE_DROIT_REPLIER,
-        AX12_SPEED_BRAS_BASE
-    );
-    AX12_setGoal(
-        AX12_ID_BRAS_BASE_GAUCHE,
-        AX12_ANGLE_BRAS_BASE_GAUCHE_REPLIER,
-        AX12_SPEED_BRAS_RELACHEUR
-    );
-    AX12_processChange();
-    
-    wait_ms(600);
-    AX12_setGoal(
-        AX12_ID_PALET_DROIT,
-        AX12_ANGLE_PALET_DROIT_ROCHET,
-        AX12_SPEED_PALET
-    );
-    AX12_setGoal(
-        AX12_ID_PALET_GAUCHE,
-        AX12_ANGLE_PALET_GAUCHE_ROCHET,
-        AX12_SPEED_PALET
-    );
-    AX12_processChange();
-    
-    wait_ms(500);
-    
-    AX12_setGoal(
-        AX12_ID_PALET_DROIT,
-        AX12_ANGLE_PALET_DROIT_FERMER,
-        AX12_SPEED_PALET
-    );
-    AX12_setGoal(
-        AX12_ID_PALET_GAUCHE,
-        AX12_ANGLE_PALET_GAUCHE_FERMER,
-        AX12_SPEED_PALET
-    );
-    AX12_processChange();*/
+
 }
 
 /****************************************************************************************/