Programme d'utilisation des AX12 et de l'MX12 V3. 0C = action de l'MX12. (data0) 0 | 1 | 2 = position & sens de rotation
Dependencies: MX12
Fork of Utilisatio_MX12_V3 by
Diff: Actionneur.cpp
- Revision:
- 3:1bb26049bdd1
- Parent:
- 2:9d280856a536
- Child:
- 4:0972025782f3
diff -r 9d280856a536 -r 1bb26049bdd1 Actionneur.cpp --- a/Actionneur.cpp Fri May 19 08:06:49 2017 +0000 +++ b/Actionneur.cpp Sat May 20 15:23:58 2017 +0000 @@ -18,8 +18,8 @@ static float TAB_ANGLE1[4], TAB_ANGLE2[4]; static char TAB_POSITION[4]; -AX12 *deux_myAX12, *trois_myAX12, *quatre_myAX12, *sept_myAX12, *huit_myAX12, *quinze_myAX12, *treize_myAX12, *quatorze_myAX12, *dixhuit_myAX12, *multiple_myAX12, *multiple2_myAX12; -AX12 *MilieuBrasPompe, *HautBrasPompe, *BasBrasPompe, *BrasPompeAx12, *TabPompeBras; +AX12 *un_myMX12, *deux_myAX12, *trois_myAX12, *quatre_myAX12, *sept_myAX12, *huit_myAX12, *quinze_myAX12, *treize_myAX12, *quatorze_myAX12, *dixhuit_myAX12, *multiple_myAX12, *multiple2_myAX12; +AX12 *TrappeLanceur, *MilieuBrasPompe, *HautBrasPompe, *BasBrasPompe, *BrasPompeAx12, *TabPompeBras; @@ -56,16 +56,22 @@ { short vitesse=700; + TrappeLanceur = new AX12(p9, p10, 1, 1000000); // MX12 + HautBrasPompe = new AX12(p9, p10, 3, 1000000); MilieuBrasPompe = new AX12(p9, p10, 2, 1000000); BasBrasPompe = new AX12(p9, p10, 1, 1000000); BrasPompeAx12 = new AX12(p9,p10,0xFE,1000000); + TrappeLanceur->Set_Goal_speed(vitesse); // MX12 + HautBrasPompe->Set_Goal_speed(vitesse); MilieuBrasPompe->Set_Goal_speed(vitesse); BasBrasPompe->Set_Goal_speed(vitesse); + TrappeLanceur->Set_Mode(0); // MX12 + HautBrasPompe->Set_Mode(0); MilieuBrasPompe->Set_Mode(0); BasBrasPompe->Set_Mode(0); @@ -78,7 +84,8 @@ pc.printf("Haut : %lf \n\r ", HautBrasPompe->Get_Position() ); pc.printf("Milieu : %lf \n\r ", MilieuBrasPompe->Get_Position() ); - pc.printf("Bas: %lf \n\r ", BasBrasPompe->Get_Position() ); + pc.printf("Bas: %lf \n\r ", BasBrasPompe->Get_Position() ); + pc.printf("Bas: %lf \n\r ", TrappeLanceur->Get_Position() ); // MX12 } @@ -95,12 +102,12 @@ unsigned int GoalPos1, GoalPos2, GoalPos3; switch(etat_ax12){ - case AX12_GET_POSITION: + case AX12_GET_POSITION: // 10 (10) GetPositionAx12(); break; - case AX12_VIDER_FUSEE_POMPE: + case AX12_VIDER_FUSEE_POMPE: // 8 (10) speed=511; @@ -134,7 +141,7 @@ Fin_action(); break; - case AX12_VIDER_FUSEE_POMPEBLEU: + case AX12_VIDER_FUSEE_POMPEBLEU: // 11 (10) speed=511; @@ -164,7 +171,7 @@ Fin_action(); break; - case AX12_REMPLIR_BASE_POMPE: + case AX12_REMPLIR_BASE_POMPE: // 9 (10) speed=511; @@ -193,7 +200,7 @@ Fin_action(); break; - case AX12_INITIALISATION : + case AX12_INITIALISATION : // 0 if (FlagAx12 == 1){ Initialisation_position(1); //Check_positionAX12(&TAB1[25], 1); @@ -206,7 +213,7 @@ } break; - case AX12_PREPARATION_PRISE : + case AX12_PREPARATION_PRISE : // 1 (10) Preparation_prise(choix_bras); if (action == 0){ Fin_action(); @@ -214,43 +221,49 @@ } break; - case AX12_STOCKAGE_HAUT : + case AX12_STOCKAGE_HAUT : // 2 (10) Stockage_haut(choix_bras); etat_ax12 = AX12_DEFAUT; Fin_action(); break; - case AX12_STOCKAGE_BAS : + case AX12_STOCKAGE_BAS : // 3 (10) Stockage_bas(choix_bras); etat_ax12 = AX12_DEFAUT; Fin_action(); break; - case AX12_DEPOSER : + case AX12_DEPOSER : // 4 (10) Deposer(choix_bras); etat_ax12 = AX12_DEFAUT; Fin_action(); break; - case AX12_PREPARATION_DEPOT_BAS : + case AX12_PREPARATION_DEPOT_BAS : // 5 (10) Preparation_depot_bas(choix_bras); etat_ax12 = AX12_DEFAUT; Fin_action(); break; - case AX12_PREPARATION_DEPOT_HAUT : + case AX12_PREPARATION_DEPOT_HAUT : // 6 (10) Preparation_depot_haut(choix_bras); etat_ax12 = AX12_DEFAUT; Fin_action(); break; - case AX12_POUSSER_MODULE : + case AX12_POUSSER_MODULE : // 7 (10) Pousser_module(choix_bras); etat_ax12 = AX12_DEFAUT; Fin_action(); break; - case AX12_DEFAUT : + case BOUGER_MX12 : // 12 (10) + bouger_MX12(choix_bras); // Le choix du bras détermine le sens de rotation de l'MX12 : 0 position initiale | 1 tourne à droite | 2 tourne à gauche. + etat_ax12 = AX12_DEFAUT; + Fin_action(); + break; + + case AX12_DEFAUT : // 20 (10) action = 0; break; } @@ -317,6 +330,7 @@ /* DESCRIPTION : Fonction qui place les bras en position verticale */ /****************************************************************************************/ void Initialisation_position(unsigned char choix){ + un_myMX12->Set_Secure_Goal(600); // Initialise la position de l'MX12 à 180° if (choix == 1){ multiple_myAX12->multiple_goal_and_speed(4,TAB1); wait(TIME); @@ -329,9 +343,7 @@ else if (choix == 3){ BrasPompeAx12->multiple_goal_and_speed(3,TabBrasPompePosInit); wait(TIME); - } - - + } } /****************************************************************************************/ @@ -459,6 +471,26 @@ } /****************************************************************************************/ +/* FUNCTION NAME: bouger_MX12 */ +/* DESCRIPTION : Fonction qui sélectionne le sens de rotation de l'MX12 et le bouge */ +/****************************************************************************************/ +void bouger_MX12(unsigned char choix){ + if( choix == 1) // Tourne à droite + { + un_myMX12->Set_Secure_Goal(0); // tourner droite + } + else if(choix == 2) // Tourne à gauche + { + un_myMX12->Set_Secure_Goal(1200); // tourner gauche + } + else if (choix == 0) + { + un_myMX12->Set_Secure_Goal(600); // position initiale + } +} + + +/****************************************************************************************/ /* FUNCTION NAME: Pousser_module */ /* DESCRIPTION : Fonction qui permet pousser le module situé à l'entrée de la bas */ /****************************************************************************************/