Programme carte strategie (disco)
Dependencies: mbed SerialHalfDuplex SDFileSystem DISCO-F469NI_portrait liaison_Bluetooth ident_crac
Diff: Robots/Strategie_small.cpp
- Revision:
- 30:a1e37af4bbde
- Parent:
- 29:41e02746041d
- Child:
- 34:6aa4b46b102e
--- a/Robots/Strategie_small.cpp Fri Apr 06 13:47:19 2018 +0000 +++ b/Robots/Strategie_small.cpp Fri Apr 20 09:16:13 2018 +0000 @@ -37,128 +37,66 @@ /* FUNCTION NAME: doAction */ /* DESCRIPTION : Effectuer une action specifique */ /****************************************************************************************/ -unsigned char doAction(unsigned char id, unsigned short speed, short angle) { +unsigned char doAction(unsigned char id, unsigned short cote, short arg2) { int retour = 1; switch(id) { - case 100: // preparation prise bras central - AX12_automate(AX12_PINCE_CENTRALE_PREPARATION_PRISE); - break; - case 101:// stockage haut bras central - AX12_automate(AX12_PINCE_CENTRALE_STOCKAGE_HAUT); - break; - case 102:// stockage bas bras central - AX12_automate(AX12_PINCE_CENTRALE_STOCKAGE_BAS); - break; - case 103:// ouvrir la main du bras cental - AX12_automate(AX12_PINCE_CENTRALE_DEPOSER); - break; - case 104:// preparation de depot du module bas du bras central - AX12_automate(AX12_PINCE_CENTRALE_PREPARATION_DEPOT); - break; - case 105:// preparation de depot du module haut du bras central - AX12_automate(AX12_PINCE_CENTRALE_DEPOT_HAUT); - AX12_automate(AX12_PINCE_CENTRALE_PREPARATION_DEPOT); - break; - 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; - } - - 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; - } - - 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; - } + case 101: //baisser attrape bloc avant + SendRawId(BAISSER_ATTRAPE_BLOC); + break; + case 102: //Relever attrape bloc avant + SendRawId(RELEVER_ATTRAPE_BLOC); + break; + case 115: //allumer panneau + SendRawId(ALLUMER_PANNEAU_UP); + break; + case 116: //range le bras qui allume le panneau + SendRawId(ALLUMER_PANNEAU_DOWN); + break; + case 117: //lève le bras pour pousser l'abeille + SendRawId(BRAS_ABEILLE_UP); + break; + case 118: //abaisse le bras qui pousse l'abeille + SendRawId(BRAS_ABEILLE_DOWN); + break; + case 130: //Inclinaison pour viser le chateau d'eau + SendRawId(INCLINAISON_CHATEAU); + break; + case 131: //inclinaison pour deverser les balles sales + SendRawId(INCLINAISON_EPURATION); + break; + case 132: //blocage des balles + SendRawId(BLOCAGE_BALLE); + break; + case 133: //lance le pwm de tir + SendRawId(LANCEMENT_MOTEUR_TIR_ON); + break; + case 134: ///Arrete le pwm de tir + SendRawId(LANCEMENT_MOTEUR_TIR_OFF); + break; + case 135://position aiguilleur au centre + SendRawId(AIGUILLEUR_CENTRE); + break; + case 136://position aiguilleur à gauche + SendRawId(AIGUILLEUR_GAUCHE); + break; + case 137://position aiguilleur à droite + SendRawId(AIGUILLEUR_DROITE); + break; + case 138://position aiguilleur au centre + SendRawId(TRI_BALLE); + break; - if (speed == 1){ - AX12_automate(AX12_DROIT_CROC_INITIALE); - }else{ - AX12_automate(AX12_GAUCHE_CROC_INITIALE); - } - break; - case 120:// poser une main tourneuse - if(InversStrat == 1) {//Si c'est inversé, On utilise le bras coté droit - if(speed == 2) speed = 1; - else speed = 2; - if(angle == 1) angle = 0; - else angle = 1; - } - if (speed == 1){ - AX12_automate(AX12_TOURNANTE_DROIT_PREPARATION); - }else{ - AX12_automate(AX12_TOURNANTE_GAUCHE_PREPARATION); - } - break; - - case 121:// relever une main tourneuse - if(InversStrat == 1) {//Si c'est inversé, On utilise le bras coté droit - if(speed == 2) speed = 1; - else speed = 2; - if(angle == 1) angle = 0; - else angle = 1; - } - - if (speed == 1){ - AX12_automate(AX12_TOURNANTE_DROIT_POSITION_INITIALE); - }else{ - AX12_automate(AX12_TOURNANTE_GAUCHE_POSITION_INITIALE); - } - - break; - - case 122:// tourner un module - 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){ - AX12_automate(AX12_TOURNANTE_DROIT_MODULE); - Tourner_module_droit(); - }else{ - AX12_automate(AX12_TOURNANTE_GAUCHE_MODULE); - Tourner_module_gauche(); - } - break; - case 200 : - telemetreDistance = dataTelemetre(); + SendRawId(DATA_TELEMETRE); + /*telemetreDistance = dataTelemetre(); wait_ms(1); telemetreDistance = dataTelemetre(); - telemetreDistance = telemetreDistance - 170; + telemetreDistance = telemetreDistance - 170;*/ break; case 201 : - SendRawId(0x96); + SendRawId(0x99); retour = 2; break; @@ -175,7 +113,7 @@ setAsservissementEtat(1); break; - case 22://Changer la vitesse du robot + /*case 22://Changer la vitesse du robot SendSpeed(speed,(unsigned short)angle); wait_us(200); waitingAckFrom = 0; @@ -192,7 +130,7 @@ case 30://Action tempo wait_ms(speed); break; - + */ default: retour = 0;//L'action n'existe pas, il faut utiliser le CAN @@ -205,7 +143,7 @@ /* FUNCTION NAME: initRobot */ /* DESCRIPTION : initialiser le robot */ /****************************************************************************************/ -void initRobot(void) { +//void initRobot(void) { /** On enregistre les id des AX12 présent sur la carte **/ @@ -225,15 +163,15 @@ AX12_setGoal(AX12_ID_BRAS_RELACHEUR,160);//fermer le bras AX12_processChange();*/ - initialisation_AX12(); + //initialisation_AX12(); -} +//} /****************************************************************************************/ /* FUNCTION NAME: initRobotActionneur */ /* DESCRIPTION : Initialiser la position des actionneurs du robot */ /****************************************************************************************/ -void initRobotActionneur(void) +/*void initRobotActionneur(void) { moteurGauchePWM(0); moteurDroitPWM(0); @@ -243,7 +181,7 @@ AX12_automate(AX12_TOURNANTE_GAUCHE_POSITION_INITIALE); AX12_automate(AX12_TOURNANTE_DROIT_POSITION_INITIALE); } - +*/ /****************************************************************************************/ /* FUNCTION NAME: runTest */ /* DESCRIPTION : tester l'ensemble des actionneurs du robot */