AREM - CDFR 2019 / Mbed 2 deprecated Actionneur_v30_05

Dependencies:   mbed Servo ascenseur_Lib

Files at this revision

API Documentation at this revision

Comitter:
Antoine_
Date:
Wed May 29 11:14:47 2019 +0000
Commit message:
main de la carte actionneur

Changed in this revision

Servo.lib Show annotated file Show diff for this revision Revisions of this file
ascenseur_Lib.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
pinMap.hpp Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Servo.lib	Wed May 29 11:14:47 2019 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/teams/AREM-CDFR-2019/code/Servo/#4429aa246e12
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ascenseur_Lib.lib	Wed May 29 11:14:47 2019 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/teams/AREM-CDFR-2019/code/ascenseur_Lib/#fed7c8bb4c5a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed May 29 11:14:47 2019 +0000
@@ -0,0 +1,195 @@
+#include "mbed.h"
+#include "Ascenseur.h"
+#include "pinMap.hpp"
+
+
+#define TAILLE_RX 11
+#define TAILLE_TX 7
+#define VIOLET 1
+#define JAUNE 0
+
+
+char bufferOrdre[TAILLE_RX-1];
+char bufferAcquitement[TAILLE_TX] = "fini\n\r";
+bool newOrdre = false;
+bool mvtFini;
+bool init_match = true;
+bool couleur = VIOLET ;
+ 
+Serial pc(SERIAL_TX, SERIAL_RX,115200);
+Serial serial(PIN_TX, PIN_RX, 115200);
+event_callback_t ordreRaspiCallback;
+
+Ascenseur *ascenseur;
+
+//init actionneurs
+const char hydro[TAILLE_RX] = "TEShydro\n\r";
+const char serbg[TAILLE_RX] = "TESserbg\n\r";
+const char serbd[TAILLE_RX] = "TESserbd\n\r";
+const char ascdr[TAILLE_RX] = "TESascdr\n\r";
+const char ascga[TAILLE_RX] = "TESascga\n\r";
+//init objet match
+const char initJaune[TAILLE_RX] = "MATJinit\n\r";
+const char initViolet[TAILLE_RX] = "MATVinit\n\r";
+
+//ordres possibles
+const char take4[TAILLE_RX] = "MATtake4\n\r";
+const char accelerateurHaute[TAILLE_RX] = "MAThaute\n\r";
+const char accelerateurBasse[TAILLE_RX] = "MATbasse\n\r";
+const char lacherQuatre[TAILLE_RX] = "MAT4gacc\n\r";
+const char lacherTroisGrand[TAILLE_RX] = "MAT3gacc\n\r";
+const char lacherBleuGrandPente[TAILLE_RX] = "MATbgpen\n\r";
+const char take3[TAILLE_RX] = "MATtake3\n\r";
+const char lacherBleuPetitPente[TAILLE_RX] = "MATbppen\n\r";
+const char take2[TAILLE_RX] = "MATtake2\n\r";
+const char take2GrandBalance[TAILLE_RX] = "MAT2gacc\n\r";
+const char finMatch[TAILLE_RX] = "MATfinir\n\r";
+
+void recupererOrdre(int events);
+
+int main() {
+    
+    //creer des objets de base violet et jaune  pour les tests 
+    ascenseur = new Ascenseur(PIN_SERVO_ASCENSEUR_DROIT, PIN_SERVO_ASCENSEUR_GAUCHE, PIN_FIN_DE_COURSE_DROIT, PIN_FIN_DE_COURSE_GAUCHE, VIOLET);
+    ascenseur->init();
+    ordreRaspiCallback.attach(recupererOrdre);
+    serial.read((uint8_t*)bufferOrdre, TAILLE_RX-1, ordreRaspiCallback, SERIAL_EVENT_RX_COMPLETE);
+    pc.printf("debut\n\r");
+    while(init_match == true)
+    {
+        if(newOrdre == true)
+        {
+            newOrdre = false;
+            if(strcmp(bufferOrdre, hydro) == 0)
+            {
+                pc.printf("Activation de l'hydrolique init \n\r");
+                ascenseur->test_pompe();
+            }
+            else if(strcmp(bufferOrdre, serbg) == 0)
+            {
+                pc.printf("Servo bras gauche\n\r");
+                ascenseur->test_servo_G();
+            }
+            else if(strcmp(bufferOrdre, serbd) == 0)
+            {
+                pc.printf("Servo bras droit\n\r");
+                ascenseur->test_servo_D();
+            }
+            else if(strcmp(bufferOrdre, ascga) == 0)
+            {
+                pc.printf("Ascenseur gauche\n\r");
+                ascenseur->test_ascenseur_G();
+            }
+            else if(strcmp(bufferOrdre, ascdr) == 0)
+            {
+                pc.printf("Ascenseur droit\n\r");
+                ascenseur->test_ascenseur_D();
+            }
+            else
+            {
+                //pc.printf("%s", bufferOrdre);
+            }
+        }
+        if(mvtFini){
+            mvtFini = false;
+             serial.printf("%s", bufferAcquitement);
+             }
+    }
+    while(1)
+    {
+        if(newOrdre == true)
+        {
+            newOrdre = false;
+            
+                if(strcmp(bufferOrdre, take4) == 0)
+                {
+                    pc.printf("Prendre 4 palets \n\r");
+                    ascenseur->prendre_4_palets_dist();
+                }
+                else if(strcmp(bufferOrdre, accelerateurHaute) == 0)
+                {
+                    pc.printf("Positionner l'accelerateur en haut \n\r");
+                    ascenseur->go_accelerateur();
+                }
+                //Match jaune stratégie 
+                else if(strcmp(bufferOrdre, accelerateurBasse) == 0)
+                {
+                    pc.printf("Positionner l'accelerateur en bas \n\r");
+                    ascenseur->go_distributeur();
+                }
+                else if(strcmp(bufferOrdre, lacherQuatre) == 0)
+                {
+                    pc.printf("Lacher les 4 palets du grand distributeur \n\r");
+                    ascenseur->lacher_4_palets_acc();
+                }
+                else if(strcmp(bufferOrdre, lacherTroisGrand) == 0)
+                {
+                    pc.printf("Lacher trois palets du grand distributeur \n\r");
+                    ascenseur->lacher_3_palets_acc();        //plus utilisé
+                }
+                else if(strcmp(bufferOrdre, lacherBleuGrandPente) == 0)
+                {
+                    pc.printf("Poser le bleu du grand distributeur dans la pente \n\r");
+                    ascenseur->lacher_bleu_gr_dist();       //plus utilisé
+                }
+                //Match violet stratégie 
+                else if(strcmp(bufferOrdre, take3) == 0)
+                {
+                    pc.printf("Prendre trois palets sur le petit distributeur \n\r");
+                    ascenseur->prendre_3_petit_dist();
+                }
+                else if(strcmp(bufferOrdre, lacherBleuPetitPente) == 0)
+                {
+                    pc.printf("Poser le bleu du petit dristributeur dans la pente \n\r");
+                    ascenseur->lacher_bleu_petit_dist();
+                }
+                else if(strcmp(bufferOrdre, take2) == 0)
+                {
+                    pc.printf("Prendre les deux derniers du grand distributeur\n\r");
+                    ascenseur->prendre_2_palets_gr_dist();
+                }
+                else if(strcmp(bufferOrdre, take2GrandBalance) == 0)
+                {
+                    pc.printf("Prendre les deux palets les plus proche de la balance du grand distributeur\n\r");
+                    ascenseur->prendre_2_palets_gr_dist_balance();
+                }
+                else if(strcmp(bufferOrdre, finMatch) == 0)
+                {
+                    pc.printf("Fin de match il faut stop ascenseur et la pompe \n\r");
+                    ascenseur->fin_match(); 
+                }
+                
+                else
+                {
+                    pc.printf("%s\n\r",bufferOrdre);
+                }
+            }
+            
+            if(mvtFini){
+                mvtFini = false;
+                 serial.printf("%s", bufferAcquitement);
+                 }
+        }
+}
+
+
+void recupererOrdre(int events)
+{
+    pc.printf("Buffer de reception : %s \n\r", bufferOrdre);
+    newOrdre = true;
+    if(strcmp(bufferOrdre, initJaune) == 0)
+    {
+        couleur = JAUNE ;
+        init_match = false;
+        delete ascenseur;
+        ascenseur = ascenseur = new Ascenseur(PIN_SERVO_ASCENSEUR_DROIT, PIN_SERVO_ASCENSEUR_GAUCHE, PIN_FIN_DE_COURSE_DROIT, PIN_FIN_DE_COURSE_GAUCHE, JAUNE);
+        //serial.printf("%s", bufferAcquitement);
+    }
+    else if(strcmp(bufferOrdre, initViolet) == 0)
+    {
+        couleur = VIOLET;
+        init_match = false ;
+        //serial.printf("%s", bufferAcquitement);
+    }
+    serial.read((uint8_t*)bufferOrdre, TAILLE_RX-1, ordreRaspiCallback, SERIAL_EVENT_RX_COMPLETE);
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Wed May 29 11:14:47 2019 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mbed_official/code/mbed/builds/3a7713b1edbc
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pinMap.hpp	Wed May 29 11:14:47 2019 +0000
@@ -0,0 +1,28 @@
+//Servomoteur 
+#define PIN_SERVO_ASCENSEUR_DROIT PC_8
+#define PIN_SERVO_ASCENSEUR_GAUCHE PC_6
+
+//I2C
+#define PIN_SCL PB_6
+#define PIN_SDA PB_7
+
+//Pompev  + Electrovannes
+#define PIN_POMPE PC_9
+#define PIN_ELECV1 PA_12
+#define PIN_ELECV2 PC_3 //selon Romain
+#define PIN_ELECV3 PC_2 //selon Romain
+#define PIN_ELECV4 PD_2
+
+//Fin de course 
+#define PIN_FIN_DE_COURSE_GAUCHE PA_8
+#define PIN_FIN_DE_COURSE_DROIT PC_7
+
+//Démarreur
+#define PIN_DEMARREUR PB_8
+
+//Switch couleur 
+#define PIN_COULEUR PC_0
+
+//Ecran
+#define PIN_RX PC_10
+#define PIN_TX PC_11
\ No newline at end of file