Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed Servo ascenseur_Lib
Revision 0:e80f8fc78d33, committed 2019-05-29
- Comitter:
- Antoine_
- Date:
- Wed May 29 11:14:47 2019 +0000
- Commit message:
- main de la carte actionneur
Changed in this revision
--- /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