test des capteurs/actionneurs petit robot

Fork of mbed_tes_cpt by CRAC Team

Committer:
matthieuvignon
Date:
Thu May 25 06:35:22 2017 +0000
Revision:
5:7e1c328c5d50
Parent:
3:43843ab8af47
Version Gatien Nuit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
matthieuvignon 2:9d280856a536 1 #include "Actionneur.h"
matthieuvignon 2:9d280856a536 2
matthieuvignon 2:9d280856a536 3 extern CAN can;
matthieuvignon 2:9d280856a536 4
matthieuvignon 2:9d280856a536 5 /* DECLARATION VARIABLES */
matthieuvignon 2:9d280856a536 6
matthieuvignon 2:9d280856a536 7 extern unsigned char FlagAx12;
matthieuvignon 2:9d280856a536 8 extern "C" void mbed_reset();//Pour pouvoir reset la carte
matthieuvignon 2:9d280856a536 9
matthieuvignon 2:9d280856a536 10 extern DigitalOut led2;
matthieuvignon 2:9d280856a536 11 extern Serial pc;
matthieuvignon 2:9d280856a536 12 extern void GetPositionAx12(void);
matthieuvignon 3:43843ab8af47 13
matthieuvignon 3:43843ab8af47 14 extern PwmOut Pompe;
matthieuvignon 5:7e1c328c5d50 15 #define MULT_TIMEOUT 30
matthieuvignon 5:7e1c328c5d50 16
matthieuvignon 5:7e1c328c5d50 17 unsigned char timeout=0;
matthieuvignon 5:7e1c328c5d50 18 Timeout flipper;
matthieuvignon 3:43843ab8af47 19
matthieuvignon 2:9d280856a536 20
matthieuvignon 3:43843ab8af47 21 AX12 *Ax12_HautBrasModuleAvant, *Ax12_DevantPinceDroite, *Ax12_DevantPinceGauche, *Ax12_MilieuBrasModuleAvant, *BrasModuleAx12, *TabBrasModule;
matthieuvignon 3:43843ab8af47 22 AX12 *Ax12_MilieuBrasPompe, *Ax12_HautBrasPompe, *Ax12_BasBrasPompe, *BrasPompeAx12, *TabBrasPompe;
matthieuvignon 5:7e1c328c5d50 23 AX12 *Ax12_HautBrasAspirateur, *Ax12_BasBrasAspirateur, *BrasAspirateurAx12, *TabBrasAspirateur, *Ax12_FunnyAction;
matthieuvignon 5:7e1c328c5d50 24 AX12 *Ax12_Porte;
matthieuvignon 2:9d280856a536 25
matthieuvignon 2:9d280856a536 26
matthieuvignon 2:9d280856a536 27 /* ANGLE */
matthieuvignon 2:9d280856a536 28
matthieuvignon 2:9d280856a536 29 /* 10° = 0x21, 0x00 | 110°= 0x6E, 0x01 | 210°= 0xBC, 0x02
matthieuvignon 2:9d280856a536 30 20° = 0x42, 0x00 | 120°= 0x90, 0x01 | 220°= 0xDD, 0x02
matthieuvignon 2:9d280856a536 31 30° = 0x64, 0x00 | 130°= 0xB1, 0x01
matthieuvignon 2:9d280856a536 32 40° = 0x85, 0x00 | 140°= 0xD2, 0x01
matthieuvignon 2:9d280856a536 33 50° = 0xA6, 0x00 | 150°= 0xF4, 0x01
matthieuvignon 2:9d280856a536 34 60° = 0xC8, 0x00 | 160°= 0x15, 0x02
matthieuvignon 2:9d280856a536 35 70° = 0xE9, 0x00 | 170°= 0x36, 0x02
matthieuvignon 2:9d280856a536 36 80° = 0x0A, 0x01 | 180°= 0x58, 0x02
matthieuvignon 2:9d280856a536 37 90° = 0x2C, 0x01 | 190°= 0x79, 0x02
matthieuvignon 2:9d280856a536 38 100°= 0x4D, 0x01 | 200°= 0x9A, 0x02 */
matthieuvignon 2:9d280856a536 39
matthieuvignon 2:9d280856a536 40 /* NUMERO AX12 */
matthieuvignon 2:9d280856a536 41
matthieuvignon 2:9d280856a536 42 /* 0 = 0x00 | 9 = 0x09 | 18 = 0x12
matthieuvignon 2:9d280856a536 43 1 = 0x01 | 10 = 0x0A
matthieuvignon 2:9d280856a536 44 2 = 0x02 | 11 = 0x0B
matthieuvignon 2:9d280856a536 45 3 = 0x03 | 12 = 0x0C
matthieuvignon 2:9d280856a536 46 4 = 0x04 | 13 = 0x0D
matthieuvignon 2:9d280856a536 47 5 = 0x05 | 14 = 0x0E
matthieuvignon 2:9d280856a536 48 6 = 0x06 | 15 = 0x0F
matthieuvignon 2:9d280856a536 49 7 = 0x07 | 16 = 0x10
matthieuvignon 2:9d280856a536 50 8 = 0x08 | 17 = 0x11 */
matthieuvignon 2:9d280856a536 51
matthieuvignon 2:9d280856a536 52
matthieuvignon 2:9d280856a536 53
matthieuvignon 2:9d280856a536 54 /* MAIN */
matthieuvignon 2:9d280856a536 55
matthieuvignon 2:9d280856a536 56 void initialisation_AX12(void)
matthieuvignon 2:9d280856a536 57 {
matthieuvignon 5:7e1c328c5d50 58 short vitesse=900;
matthieuvignon 2:9d280856a536 59
matthieuvignon 3:43843ab8af47 60
matthieuvignon 3:43843ab8af47 61 Ax12_HautBrasPompe = new AX12(p9, p10, 3, 1000000);
matthieuvignon 3:43843ab8af47 62 Ax12_MilieuBrasPompe = new AX12(p9, p10, 2, 1000000);
matthieuvignon 3:43843ab8af47 63 Ax12_BasBrasPompe = new AX12(p9, p10, 1, 1000000);
matthieuvignon 3:43843ab8af47 64
matthieuvignon 3:43843ab8af47 65 Ax12_HautBrasModuleAvant = new AX12(p13, p14, 4, 1000000);
matthieuvignon 3:43843ab8af47 66 Ax12_MilieuBrasModuleAvant = new AX12(p13, p14, 5, 1000000);
matthieuvignon 3:43843ab8af47 67 Ax12_DevantPinceGauche = new AX12(p13, p14, 6, 1000000);
matthieuvignon 3:43843ab8af47 68 Ax12_DevantPinceDroite = new AX12(p13, p14, 7, 1000000);
matthieuvignon 3:43843ab8af47 69
matthieuvignon 5:7e1c328c5d50 70 #ifdef AVANT
matthieuvignon 5:7e1c328c5d50 71 Ax12_HautBrasAspirateur = new AX12(p28, p27, 9, 1000000);
matthieuvignon 5:7e1c328c5d50 72 Ax12_BasBrasAspirateur = new AX12(p28, p27, 10, 1000000);
matthieuvignon 5:7e1c328c5d50 73 Ax12_FunnyAction = new AX12(p28, p27, 15, 1000000);
matthieuvignon 5:7e1c328c5d50 74 BrasAspirateurAx12 = new AX12(p28, p27,0xFE,1000000);
matthieuvignon 5:7e1c328c5d50 75 #endif
matthieuvignon 2:9d280856a536 76
matthieuvignon 2:9d280856a536 77 BrasPompeAx12 = new AX12(p9,p10,0xFE,1000000);
matthieuvignon 5:7e1c328c5d50 78 BrasModuleAx12 = new AX12(p13, p14, 0xFE, 1000000);
matthieuvignon 5:7e1c328c5d50 79
matthieuvignon 2:9d280856a536 80
matthieuvignon 5:7e1c328c5d50 81 #ifdef ARRIERE
matthieuvignon 5:7e1c328c5d50 82 Ax12_Porte = new AX12(p28, p27, 8, 1000000);
matthieuvignon 5:7e1c328c5d50 83 #endif
matthieuvignon 5:7e1c328c5d50 84
matthieuvignon 3:43843ab8af47 85 Ax12_HautBrasPompe->Set_Goal_speed(vitesse);
matthieuvignon 3:43843ab8af47 86 Ax12_MilieuBrasPompe->Set_Goal_speed(vitesse);
matthieuvignon 3:43843ab8af47 87 Ax12_BasBrasPompe->Set_Goal_speed(vitesse);
matthieuvignon 3:43843ab8af47 88 Ax12_HautBrasModuleAvant->Set_Goal_speed(vitesse);
matthieuvignon 3:43843ab8af47 89 Ax12_MilieuBrasModuleAvant->Set_Goal_speed(vitesse);
matthieuvignon 3:43843ab8af47 90 Ax12_DevantPinceGauche->Set_Goal_speed(vitesse);
matthieuvignon 3:43843ab8af47 91 Ax12_DevantPinceDroite->Set_Goal_speed(vitesse);
matthieuvignon 5:7e1c328c5d50 92 #ifdef AVANT
matthieuvignon 5:7e1c328c5d50 93 Ax12_HautBrasAspirateur->Set_Goal_speed(vitesse);
matthieuvignon 5:7e1c328c5d50 94 Ax12_BasBrasAspirateur->Set_Goal_speed(vitesse);
matthieuvignon 5:7e1c328c5d50 95 Ax12_FunnyAction->Set_Goal_speed(vitesse);
matthieuvignon 5:7e1c328c5d50 96 #endif
matthieuvignon 5:7e1c328c5d50 97 #ifdef ARRIERE
matthieuvignon 5:7e1c328c5d50 98 Ax12_Porte->Set_Goal_speed(vitesse);
matthieuvignon 5:7e1c328c5d50 99 #endif
matthieuvignon 3:43843ab8af47 100
matthieuvignon 3:43843ab8af47 101 Ax12_HautBrasPompe->Set_Mode(0);
matthieuvignon 3:43843ab8af47 102 Ax12_MilieuBrasPompe->Set_Mode(0);
matthieuvignon 3:43843ab8af47 103 Ax12_BasBrasPompe->Set_Mode(0);
matthieuvignon 3:43843ab8af47 104 Ax12_HautBrasModuleAvant->Set_Mode(0);
matthieuvignon 3:43843ab8af47 105 Ax12_MilieuBrasModuleAvant->Set_Mode(0);
matthieuvignon 3:43843ab8af47 106 Ax12_DevantPinceGauche->Set_Mode(0);
matthieuvignon 3:43843ab8af47 107 Ax12_DevantPinceDroite->Set_Mode(0);
matthieuvignon 5:7e1c328c5d50 108 #ifdef AVANT
matthieuvignon 5:7e1c328c5d50 109 Ax12_HautBrasAspirateur->Set_Mode(0);
matthieuvignon 5:7e1c328c5d50 110 Ax12_BasBrasAspirateur->Set_Mode(0);
matthieuvignon 5:7e1c328c5d50 111 Ax12_FunnyAction->Set_Mode(0);
matthieuvignon 5:7e1c328c5d50 112 #endif
matthieuvignon 5:7e1c328c5d50 113 #ifdef ARRIERE
matthieuvignon 5:7e1c328c5d50 114 Ax12_Porte->Set_Mode(0);
matthieuvignon 5:7e1c328c5d50 115 #endif
matthieuvignon 2:9d280856a536 116 }
matthieuvignon 2:9d280856a536 117
matthieuvignon 2:9d280856a536 118 void GetPositionAx12(void) {
matthieuvignon 3:43843ab8af47 119
matthieuvignon 3:43843ab8af47 120 pc.printf("\n\r * Get Position * \n\r");
matthieuvignon 2:9d280856a536 121
matthieuvignon 3:43843ab8af47 122 pc.printf("\n\r BRAS AVANT \n\r");
matthieuvignon 3:43843ab8af47 123 pc.printf("Haut Av: %lf \n\r ", Ax12_HautBrasModuleAvant->Get_Position() );
matthieuvignon 3:43843ab8af47 124 pc.printf("Milieu Av: %lf \n\r ", Ax12_MilieuBrasModuleAvant->Get_Position() );
matthieuvignon 3:43843ab8af47 125 pc.printf("Gauche Av: %lf \n\r ", Ax12_DevantPinceGauche->Get_Position() );
matthieuvignon 3:43843ab8af47 126 pc.printf("Droite Av: %lf \n\r ", Ax12_DevantPinceDroite->Get_Position() );
matthieuvignon 2:9d280856a536 127
matthieuvignon 5:7e1c328c5d50 128 #ifdef AVANT
matthieuvignon 5:7e1c328c5d50 129 pc.printf("\n\r BRAS ASPIRATEUR \n\r");
matthieuvignon 5:7e1c328c5d50 130 pc.printf("Haut Asp : %lf \n\r ", Ax12_HautBrasAspirateur->Get_Position() );
matthieuvignon 5:7e1c328c5d50 131 pc.printf("Bas Asp : %lf \n\r ", Ax12_BasBrasAspirateur->Get_Position() );
matthieuvignon 5:7e1c328c5d50 132 pc.printf("Funny Action : %lf \n\r ", Ax12_FunnyAction->Get_Position() );
matthieuvignon 5:7e1c328c5d50 133 #endif
matthieuvignon 5:7e1c328c5d50 134
matthieuvignon 3:43843ab8af47 135
matthieuvignon 3:43843ab8af47 136 pc.printf("\n\r BRAS POMPE \n\r");
matthieuvignon 3:43843ab8af47 137 pc.printf("Haut Pompe : %lf \n\r ", Ax12_HautBrasPompe->Get_Position() );
matthieuvignon 3:43843ab8af47 138 pc.printf("Milieu Pompe : %lf \n\r ", Ax12_MilieuBrasPompe->Get_Position() );
matthieuvignon 3:43843ab8af47 139 pc.printf("Bas Pompe : %lf \n\r ", Ax12_BasBrasPompe->Get_Position() );
matthieuvignon 2:9d280856a536 140
matthieuvignon 5:7e1c328c5d50 141 #ifdef ARRIERE
matthieuvignon 5:7e1c328c5d50 142 pc.printf("\n\r PORTE \n\r");
matthieuvignon 5:7e1c328c5d50 143 pc.printf("Haut Pompe : %lf \n\r ", Ax12_Porte->Get_Position() );
matthieuvignon 5:7e1c328c5d50 144 #endif
matthieuvignon 5:7e1c328c5d50 145
matthieuvignon 2:9d280856a536 146 }
matthieuvignon 2:9d280856a536 147
matthieuvignon 2:9d280856a536 148
matthieuvignon 2:9d280856a536 149 /****************************************************************************************/
matthieuvignon 2:9d280856a536 150 /* FUNCTION NAME: Automate_ax12 */
matthieuvignon 2:9d280856a536 151 /* DESCRIPTION : Fonction qui gère les différentes actions des AX12 */
matthieuvignon 2:9d280856a536 152 /****************************************************************************************/
matthieuvignon 3:43843ab8af47 153 void AX12_automate(unsigned char etat_ax12){
matthieuvignon 2:9d280856a536 154
matthieuvignon 2:9d280856a536 155 unsigned short speed;
matthieuvignon 2:9d280856a536 156
matthieuvignon 3:43843ab8af47 157 unsigned int GoalPos1, GoalPos2, GoalPos3, GoalPos4, GoalPos5, GoalPos6, GoalPos7, GoalPos9, GoalPos10, GoalPos15;
matthieuvignon 3:43843ab8af47 158
matthieuvignon 3:43843ab8af47 159
matthieuvignon 3:43843ab8af47 160
matthieuvignon 5:7e1c328c5d50 161 switch(etat_ax12){
matthieuvignon 5:7e1c328c5d50 162
matthieuvignon 5:7e1c328c5d50 163 case AX12_OUVRIR_PORTE:
matthieuvignon 5:7e1c328c5d50 164 Ax12_Porte->Set_Secure_Goal(60);
matthieuvignon 5:7e1c328c5d50 165 Fin_action();
matthieuvignon 5:7e1c328c5d50 166 break;
matthieuvignon 5:7e1c328c5d50 167
matthieuvignon 5:7e1c328c5d50 168 case AX12_FERMER_PORTE:
matthieuvignon 5:7e1c328c5d50 169 Ax12_Porte->Set_Secure_Goal(240);
matthieuvignon 5:7e1c328c5d50 170 Fin_action();
matthieuvignon 5:7e1c328c5d50 171 break;
matthieuvignon 3:43843ab8af47 172
matthieuvignon 3:43843ab8af47 173 case AX12_GET_POSITION:
matthieuvignon 3:43843ab8af47 174 GetPositionAx12();
matthieuvignon 3:43843ab8af47 175 Fin_action();
matthieuvignon 3:43843ab8af47 176 break;
matthieuvignon 3:43843ab8af47 177
matthieuvignon 3:43843ab8af47 178 case AX12_POS_INIT_POMPE_JAUNE_AVANT:
matthieuvignon 5:7e1c328c5d50 179 speed=1023;
matthieuvignon 3:43843ab8af47 180
matthieuvignon 3:43843ab8af47 181 GoalPos3=1443;
matthieuvignon 3:43843ab8af47 182 GoalPos2=625;
matthieuvignon 3:43843ab8af47 183 GoalPos1=1500;
matthieuvignon 3:43843ab8af47 184 mvtBrasAvantPompe(1, speed, GoalPos1, 2, speed, GoalPos2, 3, speed, GoalPos3);
matthieuvignon 3:43843ab8af47 185 Fin_action();
matthieuvignon 3:43843ab8af47 186 break;
matthieuvignon 2:9d280856a536 187
matthieuvignon 3:43843ab8af47 188 case AX12_VIDER_FUSEE_POMPE_JAUNE_AVANT:
matthieuvignon 5:7e1c328c5d50 189 speed=1023;
matthieuvignon 3:43843ab8af47 190
matthieuvignon 3:43843ab8af47 191 GoalPos3=1440;
matthieuvignon 3:43843ab8af47 192 GoalPos2=603;
matthieuvignon 3:43843ab8af47 193 GoalPos1=2400;
matthieuvignon 3:43843ab8af47 194 mvtBrasAvantPompe(1, speed, GoalPos1, 2, speed, GoalPos2, 3, speed, GoalPos3);
matthieuvignon 3:43843ab8af47 195 GoalPos3=1795; //1180
matthieuvignon 3:43843ab8af47 196 GoalPos2=340; //2000
matthieuvignon 3:43843ab8af47 197 GoalPos1=2393; //2400
matthieuvignon 3:43843ab8af47 198 mvtBrasAvantPompe(1, speed, GoalPos1, 2, speed, GoalPos2, 3, speed, GoalPos3);
matthieuvignon 3:43843ab8af47 199 GoalPos3=2147; //640
matthieuvignon 3:43843ab8af47 200 GoalPos2=229; //2840
matthieuvignon 3:43843ab8af47 201 GoalPos1=2400; //2720
matthieuvignon 3:43843ab8af47 202 mvtBrasAvantPompe(1, speed, GoalPos1, 2, speed, GoalPos2, 3, speed, GoalPos3);
matthieuvignon 3:43843ab8af47 203 GoalPos3=2346;
matthieuvignon 3:43843ab8af47 204 GoalPos2=205;
matthieuvignon 3:43843ab8af47 205 GoalPos1=2123;
matthieuvignon 3:43843ab8af47 206 mvtBrasAvantPompe(1, speed, GoalPos1, 2, speed, GoalPos2, 3, speed, GoalPos3);
matthieuvignon 3:43843ab8af47 207 Fin_action();
matthieuvignon 3:43843ab8af47 208 break;
matthieuvignon 3:43843ab8af47 209
matthieuvignon 3:43843ab8af47 210 case AX12_POSE_MODULE_POMPE_JAUNE_AVANT:
matthieuvignon 3:43843ab8af47 211 speed=300;
matthieuvignon 3:43843ab8af47 212
matthieuvignon 3:43843ab8af47 213 GoalPos3=2613;
matthieuvignon 3:43843ab8af47 214 GoalPos2=610;
matthieuvignon 3:43843ab8af47 215 GoalPos1=1352;
matthieuvignon 3:43843ab8af47 216 mvtBrasAvantPompe(1, speed, GoalPos1, 2, speed, GoalPos2, 3, speed, GoalPos3);
matthieuvignon 3:43843ab8af47 217
matthieuvignon 3:43843ab8af47 218 Pompe.write(0);
matthieuvignon 3:43843ab8af47 219
matthieuvignon 3:43843ab8af47 220 Fin_action();
matthieuvignon 3:43843ab8af47 221 break;
matthieuvignon 3:43843ab8af47 222
matthieuvignon 2:9d280856a536 223
matthieuvignon 3:43843ab8af47 224 case AX12_POSE_MODULE_POMPE_BLEU_AVANT:
matthieuvignon 3:43843ab8af47 225 speed=300;
matthieuvignon 3:43843ab8af47 226
matthieuvignon 3:43843ab8af47 227 GoalPos3=2613;
matthieuvignon 3:43843ab8af47 228 GoalPos2=610;
matthieuvignon 3:43843ab8af47 229 GoalPos1=1352;
matthieuvignon 3:43843ab8af47 230 mvtBrasAvantPompe(1, speed, GoalPos1, 2, speed, GoalPos2, 3, speed, GoalPos3);
matthieuvignon 3:43843ab8af47 231 speed=750;
matthieuvignon 3:43843ab8af47 232 GoalPos3=2610;
matthieuvignon 3:43843ab8af47 233 GoalPos2=850;
matthieuvignon 3:43843ab8af47 234 GoalPos1=2999;
matthieuvignon 3:43843ab8af47 235 mvtBrasAvantPompe(1, speed, GoalPos1, 2, speed, GoalPos2, 3, speed, GoalPos3);
matthieuvignon 3:43843ab8af47 236
matthieuvignon 3:43843ab8af47 237 Pompe.write(0);
matthieuvignon 3:43843ab8af47 238
matthieuvignon 3:43843ab8af47 239 Fin_action();
matthieuvignon 3:43843ab8af47 240 break;
matthieuvignon 3:43843ab8af47 241
matthieuvignon 3:43843ab8af47 242 case AX12_REMISE_PLACE_BRAS_POMPE_AVANT:
matthieuvignon 3:43843ab8af47 243
matthieuvignon 5:7e1c328c5d50 244 speed=1023;
matthieuvignon 3:43843ab8af47 245
matthieuvignon 3:43843ab8af47 246 GoalPos3=2200;
matthieuvignon 3:43843ab8af47 247 GoalPos2=214;
matthieuvignon 3:43843ab8af47 248 GoalPos1=2038;
matthieuvignon 3:43843ab8af47 249 mvtBrasAvantPompe(1, speed, GoalPos1, 2, speed, GoalPos2, 3, speed, GoalPos3);
matthieuvignon 3:43843ab8af47 250 GoalPos3=1730;
matthieuvignon 3:43843ab8af47 251 GoalPos2=355;
matthieuvignon 3:43843ab8af47 252 GoalPos1=2197;
matthieuvignon 3:43843ab8af47 253 mvtBrasAvantPompe(1, speed, GoalPos1, 2, speed, GoalPos2, 3, speed, GoalPos3);
matthieuvignon 3:43843ab8af47 254 GoalPos3=1487;
matthieuvignon 3:43843ab8af47 255 GoalPos2=500;
matthieuvignon 3:43843ab8af47 256 GoalPos1=2197;
matthieuvignon 3:43843ab8af47 257 mvtBrasAvantPompe(1, speed, GoalPos1, 2, speed, GoalPos2, 3, speed, GoalPos3);
matthieuvignon 3:43843ab8af47 258 GoalPos3=1440;
matthieuvignon 3:43843ab8af47 259 GoalPos2=639;
matthieuvignon 3:43843ab8af47 260 GoalPos1=2400;
matthieuvignon 3:43843ab8af47 261 mvtBrasAvantPompe(1, speed, GoalPos1, 2, speed, GoalPos2, 3, speed, GoalPos3);
matthieuvignon 3:43843ab8af47 262
matthieuvignon 3:43843ab8af47 263 Fin_action();
matthieuvignon 3:43843ab8af47 264 break;
matthieuvignon 3:43843ab8af47 265
matthieuvignon 5:7e1c328c5d50 266 case AX12_REPOS_BRAS_POMPE_AVANT:
matthieuvignon 5:7e1c328c5d50 267 speed=1023;
matthieuvignon 5:7e1c328c5d50 268
matthieuvignon 5:7e1c328c5d50 269 GoalPos3=1890;
matthieuvignon 5:7e1c328c5d50 270 GoalPos2=242;
matthieuvignon 5:7e1c328c5d50 271 GoalPos1=1500;
matthieuvignon 5:7e1c328c5d50 272 mvtBrasAvantPompe(1, speed, GoalPos1, 2, speed, GoalPos2, 3, speed, GoalPos3);
matthieuvignon 5:7e1c328c5d50 273 Fin_action();
matthieuvignon 5:7e1c328c5d50 274 break;
matthieuvignon 5:7e1c328c5d50 275
matthieuvignon 3:43843ab8af47 276
matthieuvignon 3:43843ab8af47 277 case AX12_POS_INIT_POMPE_JAUNE_ARRIERE:
matthieuvignon 5:7e1c328c5d50 278 speed=1023;
matthieuvignon 3:43843ab8af47 279
matthieuvignon 3:43843ab8af47 280 GoalPos3=1615;
matthieuvignon 3:43843ab8af47 281 GoalPos2=2349;
matthieuvignon 3:43843ab8af47 282 GoalPos1=1500;
matthieuvignon 3:43843ab8af47 283 mvtBrasAvantPompe(1, speed, GoalPos1, 2, speed, GoalPos2, 3, speed, GoalPos3);
matthieuvignon 3:43843ab8af47 284 Fin_action();
matthieuvignon 3:43843ab8af47 285 break;
matthieuvignon 2:9d280856a536 286
matthieuvignon 3:43843ab8af47 287
matthieuvignon 2:9d280856a536 288
matthieuvignon 3:43843ab8af47 289 case AX12_VIDER_FUSEE_POMPE_JAUNE_ARRIERE:
matthieuvignon 5:7e1c328c5d50 290 speed=1023;
matthieuvignon 3:43843ab8af47 291
matthieuvignon 3:43843ab8af47 292 GoalPos3=1650;
matthieuvignon 3:43843ab8af47 293 GoalPos2=2380;
matthieuvignon 3:43843ab8af47 294 GoalPos1=1500;
matthieuvignon 3:43843ab8af47 295 mvtBrasAvantPompe(1, speed, GoalPos1, 2, speed, GoalPos2, 3, speed, GoalPos3);
matthieuvignon 3:43843ab8af47 296 GoalPos3=1545;
matthieuvignon 3:43843ab8af47 297 GoalPos2=2480;
matthieuvignon 3:43843ab8af47 298 GoalPos1=600;
matthieuvignon 3:43843ab8af47 299 mvtBrasAvantPompe(1, speed, GoalPos1, 2, speed, GoalPos2, 3, speed, GoalPos3);
matthieuvignon 3:43843ab8af47 300 GoalPos3=1146; //1595
matthieuvignon 3:43843ab8af47 301 GoalPos2=2698; //2349
matthieuvignon 3:43843ab8af47 302 GoalPos1=581; //2400
matthieuvignon 3:43843ab8af47 303 mvtBrasAvantPompe(1, speed, GoalPos1, 2, speed, GoalPos2, 3, speed, GoalPos3);
matthieuvignon 3:43843ab8af47 304 GoalPos3=724; //953
matthieuvignon 3:43843ab8af47 305 GoalPos2=2783; //2806
matthieuvignon 3:43843ab8af47 306 GoalPos1=757; //2551
matthieuvignon 3:43843ab8af47 307 mvtBrasAvantPompe(1, speed, GoalPos1, 2, speed, GoalPos2, 3, speed, GoalPos3);
matthieuvignon 3:43843ab8af47 308 Fin_action();
matthieuvignon 3:43843ab8af47 309 break;
matthieuvignon 3:43843ab8af47 310
matthieuvignon 3:43843ab8af47 311 case AX12_POSE_MODULE_POMPE_JAUNE_ARRIERE:
matthieuvignon 5:7e1c328c5d50 312 speed=300;
matthieuvignon 3:43843ab8af47 313
matthieuvignon 3:43843ab8af47 314 GoalPos3=401;
matthieuvignon 3:43843ab8af47 315 GoalPos2=2340;
matthieuvignon 3:43843ab8af47 316 GoalPos1=1094;
matthieuvignon 3:43843ab8af47 317 mvtBrasAvantPompe(1, speed, GoalPos1, 2, speed, GoalPos2, 3, speed, GoalPos3);
matthieuvignon 3:43843ab8af47 318 GoalPos3=401;
matthieuvignon 5:7e1c328c5d50 319 GoalPos2=2250;
matthieuvignon 3:43843ab8af47 320 GoalPos1=80;
matthieuvignon 3:43843ab8af47 321 mvtBrasAvantPompe(1, speed, GoalPos1, 2, speed, GoalPos2, 3, speed, GoalPos3);
matthieuvignon 3:43843ab8af47 322
matthieuvignon 3:43843ab8af47 323 Pompe.write(0);
matthieuvignon 3:43843ab8af47 324
matthieuvignon 3:43843ab8af47 325 Fin_action();
matthieuvignon 3:43843ab8af47 326 break;
matthieuvignon 3:43843ab8af47 327
matthieuvignon 2:9d280856a536 328
matthieuvignon 3:43843ab8af47 329 case AX12_POSE_MODULE_POMPE_BLEU_ARRIERE:
matthieuvignon 5:7e1c328c5d50 330 speed=300;
matthieuvignon 2:9d280856a536 331
matthieuvignon 3:43843ab8af47 332 GoalPos3=384;
matthieuvignon 3:43843ab8af47 333 GoalPos2=2774;
matthieuvignon 3:43843ab8af47 334 GoalPos1=1094;
matthieuvignon 3:43843ab8af47 335 mvtBrasAvantPompe(1, speed, GoalPos1, 2, speed, GoalPos2, 3, speed, GoalPos3);
matthieuvignon 3:43843ab8af47 336 GoalPos3=330;
matthieuvignon 3:43843ab8af47 337 GoalPos2=2506;
matthieuvignon 3:43843ab8af47 338 GoalPos1=1587;
matthieuvignon 3:43843ab8af47 339 mvtBrasAvantPompe(1, speed, GoalPos1, 2, speed, GoalPos2, 3, speed, GoalPos3);
matthieuvignon 3:43843ab8af47 340
matthieuvignon 3:43843ab8af47 341 Pompe.write(0);
matthieuvignon 3:43843ab8af47 342
matthieuvignon 3:43843ab8af47 343 Fin_action();
matthieuvignon 3:43843ab8af47 344 break;
matthieuvignon 3:43843ab8af47 345
matthieuvignon 3:43843ab8af47 346 case AX12_REMISE_PLACE_BRAS_POMPE_ARRIERE:
matthieuvignon 3:43843ab8af47 347
matthieuvignon 5:7e1c328c5d50 348 speed=1023;
matthieuvignon 2:9d280856a536 349
matthieuvignon 3:43843ab8af47 350 GoalPos3=450; //449
matthieuvignon 3:43843ab8af47 351 GoalPos2=2800; //2833
matthieuvignon 3:43843ab8af47 352 GoalPos1=1500; //2762
matthieuvignon 3:43843ab8af47 353 mvtBrasAvantPompe(1, speed, GoalPos1, 2, speed, GoalPos2, 3, speed, GoalPos3);
matthieuvignon 3:43843ab8af47 354 GoalPos3=765;
matthieuvignon 3:43843ab8af47 355 GoalPos2=2796;
matthieuvignon 3:43843ab8af47 356 GoalPos1=880;
matthieuvignon 3:43843ab8af47 357 mvtBrasAvantPompe(1, speed, GoalPos1, 2, speed, GoalPos2, 3, speed, GoalPos3);
matthieuvignon 3:43843ab8af47 358 GoalPos3=1200;
matthieuvignon 3:43843ab8af47 359 GoalPos2=2750;
matthieuvignon 3:43843ab8af47 360 GoalPos1=600;
matthieuvignon 3:43843ab8af47 361 mvtBrasAvantPompe(1, speed, GoalPos1, 2, speed, GoalPos2, 3, speed, GoalPos3);
matthieuvignon 5:7e1c328c5d50 362 GoalPos3=1480;
matthieuvignon 5:7e1c328c5d50 363 GoalPos2=2550;
matthieuvignon 3:43843ab8af47 364 GoalPos1=600;
matthieuvignon 3:43843ab8af47 365 mvtBrasAvantPompe(1, speed, GoalPos1, 2, speed, GoalPos2, 3, speed, GoalPos3);
matthieuvignon 3:43843ab8af47 366
matthieuvignon 3:43843ab8af47 367 GoalPos3=1650;
matthieuvignon 3:43843ab8af47 368 GoalPos2=2380;
matthieuvignon 3:43843ab8af47 369 GoalPos1=600;
matthieuvignon 3:43843ab8af47 370 mvtBrasAvantPompe(1, speed, GoalPos1, 2, speed, GoalPos2, 3, speed, GoalPos3);
matthieuvignon 3:43843ab8af47 371
matthieuvignon 3:43843ab8af47 372 Fin_action();
matthieuvignon 5:7e1c328c5d50 373 break;
matthieuvignon 5:7e1c328c5d50 374
matthieuvignon 5:7e1c328c5d50 375 case AX12_REPOS_BRAS_POMPE_ARRIERE:
matthieuvignon 5:7e1c328c5d50 376 speed=1023;
matthieuvignon 5:7e1c328c5d50 377
matthieuvignon 5:7e1c328c5d50 378 GoalPos3=1209;
matthieuvignon 5:7e1c328c5d50 379 GoalPos2=2693;
matthieuvignon 5:7e1c328c5d50 380 GoalPos1=1500;
matthieuvignon 5:7e1c328c5d50 381 mvtBrasAvantPompe(1, speed, GoalPos1, 2, speed, GoalPos2, 3, speed, GoalPos3);
matthieuvignon 5:7e1c328c5d50 382 Fin_action();
matthieuvignon 5:7e1c328c5d50 383 break;
matthieuvignon 5:7e1c328c5d50 384
matthieuvignon 3:43843ab8af47 385
matthieuvignon 2:9d280856a536 386
matthieuvignon 3:43843ab8af47 387 case AX12_INITIALISATION :
matthieuvignon 5:7e1c328c5d50 388 speed = 1023;
matthieuvignon 3:43843ab8af47 389 GoalPos4=2200;
matthieuvignon 3:43843ab8af47 390 GoalPos5=1522;
matthieuvignon 3:43843ab8af47 391 GoalPos6=2528;
matthieuvignon 3:43843ab8af47 392 GoalPos7=513;
matthieuvignon 3:43843ab8af47 393 mvtBrasAvantModule(4, speed, GoalPos4, 5, speed, GoalPos5, 6, speed, GoalPos6, 7, speed, GoalPos7);
matthieuvignon 3:43843ab8af47 394 GoalPos4=2379;
matthieuvignon 3:43843ab8af47 395 GoalPos5=1522;
matthieuvignon 3:43843ab8af47 396 GoalPos6=2528;
matthieuvignon 3:43843ab8af47 397 GoalPos7=513;
matthieuvignon 3:43843ab8af47 398 mvtBrasAvantModule(4, speed, GoalPos4, 5, speed, GoalPos5, 6, speed, GoalPos6, 7, speed, GoalPos7);
matthieuvignon 3:43843ab8af47 399 Fin_action();
matthieuvignon 3:43843ab8af47 400 break;
matthieuvignon 3:43843ab8af47 401
matthieuvignon 3:43843ab8af47 402 case AX12_PREPARATION_PRISE :
matthieuvignon 5:7e1c328c5d50 403 speed = 1023;
matthieuvignon 3:43843ab8af47 404
matthieuvignon 3:43843ab8af47 405 GoalPos4=970;
matthieuvignon 3:43843ab8af47 406 GoalPos5=2060;
matthieuvignon 3:43843ab8af47 407 GoalPos6=1891;
matthieuvignon 3:43843ab8af47 408 GoalPos7=1150;
matthieuvignon 3:43843ab8af47 409 mvtBrasAvantModule(4, speed, GoalPos4, 5, speed, GoalPos5, 6, speed, GoalPos6, 7, speed, GoalPos7);
matthieuvignon 3:43843ab8af47 410 Fin_action();
matthieuvignon 3:43843ab8af47 411 break;
matthieuvignon 3:43843ab8af47 412
matthieuvignon 3:43843ab8af47 413 case AX12_STOCKAGE_HAUT :
matthieuvignon 5:7e1c328c5d50 414 speed = 1023;
matthieuvignon 3:43843ab8af47 415 GoalPos4=970;
matthieuvignon 3:43843ab8af47 416 GoalPos5=2060;
matthieuvignon 3:43843ab8af47 417 GoalPos6=2520;
matthieuvignon 3:43843ab8af47 418 GoalPos7=550;
matthieuvignon 3:43843ab8af47 419 mvtBrasAvantModule(4, speed, GoalPos4, 5, speed, GoalPos5, 6, speed, GoalPos6, 7, speed, GoalPos7);
matthieuvignon 3:43843ab8af47 420 GoalPos4=1587;
matthieuvignon 3:43843ab8af47 421 GoalPos5=2032;
matthieuvignon 3:43843ab8af47 422 GoalPos6=2520;
matthieuvignon 3:43843ab8af47 423 GoalPos7=550;
matthieuvignon 3:43843ab8af47 424 mvtBrasAvantModule(4, speed, GoalPos4, 5, speed, GoalPos5, 6, speed, GoalPos6, 7, speed, GoalPos7);
matthieuvignon 3:43843ab8af47 425 GoalPos4=2003;
matthieuvignon 3:43843ab8af47 426 GoalPos5=1810;
matthieuvignon 3:43843ab8af47 427 GoalPos6=2520;
matthieuvignon 3:43843ab8af47 428 GoalPos7=550;
matthieuvignon 3:43843ab8af47 429 mvtBrasAvantModule(4, speed, GoalPos4, 5, speed, GoalPos5, 6, speed, GoalPos6, 7, speed, GoalPos7);
matthieuvignon 3:43843ab8af47 430 GoalPos4=2041;
matthieuvignon 3:43843ab8af47 431 GoalPos5=2018;
matthieuvignon 3:43843ab8af47 432 GoalPos6=2300;
matthieuvignon 3:43843ab8af47 433 GoalPos7=550;
matthieuvignon 3:43843ab8af47 434 mvtBrasAvantModule(4, speed, GoalPos4, 5, speed, GoalPos5, 6, speed, GoalPos6, 7, speed, GoalPos7);
matthieuvignon 3:43843ab8af47 435 GoalPos4=2041;
matthieuvignon 3:43843ab8af47 436 GoalPos5=2018;
matthieuvignon 3:43843ab8af47 437 GoalPos6=2200;
matthieuvignon 3:43843ab8af47 438 GoalPos7=750;
matthieuvignon 3:43843ab8af47 439 mvtBrasAvantModule(4, speed, GoalPos4, 5, speed, GoalPos5, 6, speed, GoalPos6, 7, speed, GoalPos7);
matthieuvignon 2:9d280856a536 440 Fin_action();
matthieuvignon 3:43843ab8af47 441 break;
matthieuvignon 3:43843ab8af47 442
matthieuvignon 3:43843ab8af47 443 case AX12_STOCKAGE_BAS :
matthieuvignon 5:7e1c328c5d50 444 speed = 1023;
matthieuvignon 3:43843ab8af47 445 GoalPos4=970;
matthieuvignon 3:43843ab8af47 446 GoalPos5=2060;
matthieuvignon 3:43843ab8af47 447 GoalPos6=2460;
matthieuvignon 3:43843ab8af47 448 GoalPos7=550;
matthieuvignon 3:43843ab8af47 449 mvtBrasAvantModule(4, speed, GoalPos4, 5, speed, GoalPos5, 6, speed, GoalPos6, 7, speed, GoalPos7);
matthieuvignon 3:43843ab8af47 450 GoalPos4=1587;
matthieuvignon 3:43843ab8af47 451 GoalPos5=2032;
matthieuvignon 3:43843ab8af47 452 GoalPos6=2460;
matthieuvignon 3:43843ab8af47 453 GoalPos7=550;
matthieuvignon 3:43843ab8af47 454 mvtBrasAvantModule(4, speed, GoalPos4, 5, speed, GoalPos5, 6, speed, GoalPos6, 7, speed, GoalPos7);
matthieuvignon 3:43843ab8af47 455
matthieuvignon 3:43843ab8af47 456 GoalPos4=1510;
matthieuvignon 3:43843ab8af47 457 GoalPos5=1126;
matthieuvignon 3:43843ab8af47 458 GoalPos6=2460;
matthieuvignon 3:43843ab8af47 459 GoalPos7=550;
matthieuvignon 3:43843ab8af47 460 mvtBrasAvantModule(4, speed, GoalPos4, 5, speed, GoalPos5, 6, speed, GoalPos6, 7, speed, GoalPos7);
matthieuvignon 3:43843ab8af47 461 GoalPos4=1580;
matthieuvignon 3:43843ab8af47 462 GoalPos5=660;
matthieuvignon 3:43843ab8af47 463 GoalPos6=2460;
matthieuvignon 3:43843ab8af47 464 GoalPos7=550;
matthieuvignon 3:43843ab8af47 465 mvtBrasAvantModule(4, speed, GoalPos4, 5, speed, GoalPos5, 6, speed, GoalPos6, 7, speed, GoalPos7);
matthieuvignon 3:43843ab8af47 466 Fin_action();
matthieuvignon 3:43843ab8af47 467 break;
matthieuvignon 3:43843ab8af47 468
matthieuvignon 3:43843ab8af47 469 case AX12_DEPOSER :
matthieuvignon 5:7e1c328c5d50 470 speed = 1023;
matthieuvignon 3:43843ab8af47 471 GoalPos4=1580;
matthieuvignon 3:43843ab8af47 472 GoalPos5=660;
matthieuvignon 3:43843ab8af47 473 GoalPos6=2200;
matthieuvignon 3:43843ab8af47 474 GoalPos7=800;
matthieuvignon 3:43843ab8af47 475 mvtBrasAvantModule(4, speed, GoalPos4, 5, speed, GoalPos5, 6, speed, GoalPos6, 7, speed, GoalPos7);
matthieuvignon 3:43843ab8af47 476 Fin_action();
matthieuvignon 3:43843ab8af47 477 break;
matthieuvignon 3:43843ab8af47 478
matthieuvignon 3:43843ab8af47 479 case AX12_PREPARATION_DEPOT_HAUT :
matthieuvignon 5:7e1c328c5d50 480 speed = 1023;
matthieuvignon 3:43843ab8af47 481 GoalPos4=1970;
matthieuvignon 3:43843ab8af47 482 GoalPos5=2140;
matthieuvignon 3:43843ab8af47 483 GoalPos6=2000;
matthieuvignon 3:43843ab8af47 484 GoalPos7=850;
matthieuvignon 3:43843ab8af47 485 mvtBrasAvantModule(4, speed, GoalPos4, 5, speed, GoalPos5, 6, speed, GoalPos6, 7, speed, GoalPos7);
matthieuvignon 3:43843ab8af47 486 GoalPos4=1994;
matthieuvignon 3:43843ab8af47 487 GoalPos5=2110;
matthieuvignon 3:43843ab8af47 488 GoalPos6=2460;
matthieuvignon 3:43843ab8af47 489 GoalPos7=550;
matthieuvignon 3:43843ab8af47 490 mvtBrasAvantModule(4, speed, GoalPos4, 5, speed, GoalPos5, 6, speed, GoalPos6, 7, speed, GoalPos7);
matthieuvignon 3:43843ab8af47 491 GoalPos4=1977;
matthieuvignon 3:43843ab8af47 492 GoalPos5=1713;
matthieuvignon 3:43843ab8af47 493 GoalPos6=2460;
matthieuvignon 3:43843ab8af47 494 GoalPos7=550;
matthieuvignon 3:43843ab8af47 495 mvtBrasAvantModule(4, speed, GoalPos4, 5, speed, GoalPos5, 6, speed, GoalPos6, 7, speed, GoalPos7);
matthieuvignon 3:43843ab8af47 496
matthieuvignon 3:43843ab8af47 497 GoalPos4=1580;
matthieuvignon 3:43843ab8af47 498 GoalPos5=660;
matthieuvignon 3:43843ab8af47 499 GoalPos6=2460;
matthieuvignon 3:43843ab8af47 500 GoalPos7=550;
matthieuvignon 3:43843ab8af47 501 mvtBrasAvantModule(4, speed, GoalPos4, 5, speed, GoalPos5, 6, speed, GoalPos6, 7, speed, GoalPos7);
matthieuvignon 3:43843ab8af47 502 Fin_action();
matthieuvignon 3:43843ab8af47 503
matthieuvignon 3:43843ab8af47 504 break;
matthieuvignon 3:43843ab8af47 505
matthieuvignon 3:43843ab8af47 506 case AX12_POUSSER_MODULE :
matthieuvignon 5:7e1c328c5d50 507 speed = 1023;
matthieuvignon 3:43843ab8af47 508 GoalPos4=1880;
matthieuvignon 3:43843ab8af47 509 GoalPos5=440;
matthieuvignon 3:43843ab8af47 510 GoalPos6=2460;
matthieuvignon 3:43843ab8af47 511 GoalPos7=550;
matthieuvignon 3:43843ab8af47 512 mvtBrasAvantModule(4, speed, GoalPos4, 5, speed, GoalPos5, 6, speed, GoalPos6, 7, speed, GoalPos7);
matthieuvignon 3:43843ab8af47 513 Fin_action();
matthieuvignon 3:43843ab8af47 514 break;
matthieuvignon 3:43843ab8af47 515
matthieuvignon 3:43843ab8af47 516 case AX12_DESCENDRE_ASPIRATEUR :
matthieuvignon 3:43843ab8af47 517 speed = 1023;
matthieuvignon 3:43843ab8af47 518 GoalPos9=1700;
matthieuvignon 3:43843ab8af47 519 GoalPos10=2200;
matthieuvignon 3:43843ab8af47 520 GoalPos15=2400;
matthieuvignon 3:43843ab8af47 521 mvtBrasAspirateur(9, speed, GoalPos9, 10, speed, GoalPos10, 15, speed, GoalPos15);
matthieuvignon 3:43843ab8af47 522 Fin_action();
matthieuvignon 3:43843ab8af47 523 break;
matthieuvignon 3:43843ab8af47 524
matthieuvignon 3:43843ab8af47 525 case AX12_MONTER_ASPIRATEUR :
matthieuvignon 3:43843ab8af47 526 speed = 1023;
matthieuvignon 3:43843ab8af47 527 GoalPos9=540;
matthieuvignon 3:43843ab8af47 528 GoalPos10=2370;
matthieuvignon 3:43843ab8af47 529 GoalPos15=2400;
matthieuvignon 3:43843ab8af47 530 mvtBrasAspirateur(9, speed, GoalPos9, 10, speed, GoalPos10, 15, speed, GoalPos15);
matthieuvignon 3:43843ab8af47 531 Fin_action();
matthieuvignon 3:43843ab8af47 532 break;
matthieuvignon 3:43843ab8af47 533
matthieuvignon 3:43843ab8af47 534 case AX12_FUNNY_ACTION:
matthieuvignon 3:43843ab8af47 535 speed = 1023;
matthieuvignon 3:43843ab8af47 536 GoalPos9=540;
matthieuvignon 3:43843ab8af47 537 GoalPos10=2370;
matthieuvignon 3:43843ab8af47 538 GoalPos15=1250;
matthieuvignon 3:43843ab8af47 539 mvtBrasAspirateur(9, speed, GoalPos9, 10, speed, GoalPos10, 15, speed, GoalPos15);
matthieuvignon 5:7e1c328c5d50 540 wait(1);
matthieuvignon 3:43843ab8af47 541 speed = 1023;
matthieuvignon 3:43843ab8af47 542 GoalPos9=540;
matthieuvignon 3:43843ab8af47 543 GoalPos10=2370;
matthieuvignon 3:43843ab8af47 544 GoalPos15=2400;
matthieuvignon 3:43843ab8af47 545 mvtBrasAspirateur(9, speed, GoalPos9, 10, speed, GoalPos10, 15, speed, GoalPos15);
matthieuvignon 3:43843ab8af47 546 Fin_action();
matthieuvignon 3:43843ab8af47 547 break;
matthieuvignon 3:43843ab8af47 548
matthieuvignon 3:43843ab8af47 549 case AX12_DEFAUT :
matthieuvignon 3:43843ab8af47 550
matthieuvignon 3:43843ab8af47 551 break;
matthieuvignon 3:43843ab8af47 552 }
matthieuvignon 2:9d280856a536 553
matthieuvignon 2:9d280856a536 554 }
matthieuvignon 2:9d280856a536 555
matthieuvignon 2:9d280856a536 556
matthieuvignon 3:43843ab8af47 557 unsigned char mvtBrasAvantPompe(unsigned char ID1, unsigned short GSpeed1, unsigned short GPosition1,
matthieuvignon 2:9d280856a536 558 unsigned char ID2, unsigned short GSpeed2, unsigned short GPosition2,
matthieuvignon 2:9d280856a536 559 unsigned char ID3, unsigned short GSpeed3, unsigned short GPosition3)
matthieuvignon 2:9d280856a536 560 {
matthieuvignon 2:9d280856a536 561 char TabPompeBras[15];
matthieuvignon 2:9d280856a536 562 unsigned short GPosition1_1, GPosition2_1, GPosition3_1;
matthieuvignon 5:7e1c328c5d50 563 Timer timeout;
matthieuvignon 2:9d280856a536 564
matthieuvignon 2:9d280856a536 565 GPosition1_1=((unsigned long)GPosition1*341/1000);
matthieuvignon 2:9d280856a536 566 GPosition2_1=((unsigned long)GPosition2*341/1000);
matthieuvignon 2:9d280856a536 567 GPosition3_1=((unsigned long)GPosition3*341/1000);
matthieuvignon 2:9d280856a536 568
matthieuvignon 2:9d280856a536 569 TabPompeBras[0] = ID1;
matthieuvignon 2:9d280856a536 570 TabPompeBras[1] = GPosition1_1;
matthieuvignon 2:9d280856a536 571 TabPompeBras[2] = GPosition1_1>>8;
matthieuvignon 2:9d280856a536 572 TabPompeBras[3] = GSpeed1;
matthieuvignon 2:9d280856a536 573 TabPompeBras[4] = GSpeed1>>8; /// (haut, milieu, bas)
matthieuvignon 2:9d280856a536 574
matthieuvignon 2:9d280856a536 575 TabPompeBras[5] = ID2;
matthieuvignon 2:9d280856a536 576 TabPompeBras[6] = GPosition2_1;
matthieuvignon 2:9d280856a536 577 TabPompeBras[7] = GPosition2_1>>8;
matthieuvignon 2:9d280856a536 578 TabPompeBras[8] = GSpeed2;
matthieuvignon 2:9d280856a536 579 TabPompeBras[9] = GSpeed2>>8;
matthieuvignon 2:9d280856a536 580
matthieuvignon 2:9d280856a536 581 TabPompeBras[10] = ID3;
matthieuvignon 2:9d280856a536 582 TabPompeBras[11] = GPosition3_1;
matthieuvignon 2:9d280856a536 583 TabPompeBras[12] = GPosition3_1>>8;
matthieuvignon 2:9d280856a536 584 TabPompeBras[13] = GSpeed3;
matthieuvignon 2:9d280856a536 585 TabPompeBras[14] = GSpeed3>>8 ;
matthieuvignon 2:9d280856a536 586
matthieuvignon 2:9d280856a536 587 BrasPompeAx12->multiple_goal_and_speed(3,TabPompeBras) ;
matthieuvignon 2:9d280856a536 588 wait(TIME);
matthieuvignon 2:9d280856a536 589
matthieuvignon 5:7e1c328c5d50 590 timeout.start();
matthieuvignon 5:7e1c328c5d50 591 while ((timeout.read_ms()<MULT_TIMEOUT) || (((unsigned short)(Ax12_HautBrasPompe->Get_Position()*10)>GPosition3*110/100)
matthieuvignon 5:7e1c328c5d50 592 || ((unsigned short)(Ax12_HautBrasPompe->Get_Position()*10)<GPosition3*90/100))) {
matthieuvignon 5:7e1c328c5d50 593 Ax12_HautBrasPompe->Set_Secure_Goal(GPosition3/10) ;
matthieuvignon 5:7e1c328c5d50 594 wait(TIME);
matthieuvignon 3:43843ab8af47 595 }
matthieuvignon 3:43843ab8af47 596
matthieuvignon 5:7e1c328c5d50 597
matthieuvignon 5:7e1c328c5d50 598 //timeout.reset();
matthieuvignon 5:7e1c328c5d50 599 while ((timeout.read_ms()<MULT_TIMEOUT) || (((unsigned short)(Ax12_MilieuBrasPompe->Get_Position()*10)>GPosition2*110/100)
matthieuvignon 5:7e1c328c5d50 600 || ((unsigned short)(Ax12_MilieuBrasPompe->Get_Position()*10)<GPosition2*90/100))) {
matthieuvignon 5:7e1c328c5d50 601 Ax12_MilieuBrasPompe->Set_Secure_Goal(GPosition2/10) ;
matthieuvignon 5:7e1c328c5d50 602 wait(TIME);
matthieuvignon 3:43843ab8af47 603 }
matthieuvignon 5:7e1c328c5d50 604
matthieuvignon 5:7e1c328c5d50 605 //timeout.reset();
matthieuvignon 5:7e1c328c5d50 606 while ((timeout.read_ms()<MULT_TIMEOUT) || (((unsigned short)(Ax12_BasBrasPompe->Get_Position()*10)>GPosition1*110/100)
matthieuvignon 5:7e1c328c5d50 607 || ((unsigned short)(Ax12_BasBrasPompe->Get_Position()*10)<GPosition1*90/100))) {
matthieuvignon 5:7e1c328c5d50 608 Ax12_BasBrasPompe->Set_Secure_Goal(GPosition1/10) ;
matthieuvignon 5:7e1c328c5d50 609 wait(TIME);
matthieuvignon 3:43843ab8af47 610 }
matthieuvignon 5:7e1c328c5d50 611 timeout.reset();
matthieuvignon 3:43843ab8af47 612
matthieuvignon 3:43843ab8af47 613
matthieuvignon 3:43843ab8af47 614
matthieuvignon 3:43843ab8af47 615 }
matthieuvignon 3:43843ab8af47 616
matthieuvignon 5:7e1c328c5d50 617
matthieuvignon 5:7e1c328c5d50 618
matthieuvignon 3:43843ab8af47 619 unsigned char mvtBrasAvantModule(unsigned char ID1, unsigned short GSpeed1, unsigned short GPosition1,
matthieuvignon 3:43843ab8af47 620 unsigned char ID2, unsigned short GSpeed2, unsigned short GPosition2,
matthieuvignon 3:43843ab8af47 621 unsigned char ID3, unsigned short GSpeed3, unsigned short GPosition3,
matthieuvignon 3:43843ab8af47 622 unsigned char ID4, unsigned short GSpeed4, unsigned short GPosition4)
matthieuvignon 3:43843ab8af47 623 {
matthieuvignon 3:43843ab8af47 624
matthieuvignon 3:43843ab8af47 625 char TabBrasAvant[20];
matthieuvignon 3:43843ab8af47 626 unsigned short GPosition1_1, GPosition2_1, GPosition3_1, GPosition4_1;
matthieuvignon 5:7e1c328c5d50 627 Timer timeout;
matthieuvignon 3:43843ab8af47 628
matthieuvignon 3:43843ab8af47 629 GPosition1_1=((unsigned long)GPosition1*341/1000);
matthieuvignon 3:43843ab8af47 630 GPosition2_1=((unsigned long)GPosition2*341/1000);
matthieuvignon 3:43843ab8af47 631 GPosition3_1=((unsigned long)GPosition3*341/1000);
matthieuvignon 3:43843ab8af47 632 GPosition4_1=((unsigned long)GPosition4*341/1000);
matthieuvignon 3:43843ab8af47 633
matthieuvignon 3:43843ab8af47 634 TabBrasAvant[0] = ID1;
matthieuvignon 3:43843ab8af47 635 TabBrasAvant[1] = GPosition1_1;
matthieuvignon 3:43843ab8af47 636 TabBrasAvant[2] = GPosition1_1>>8;
matthieuvignon 3:43843ab8af47 637 TabBrasAvant[3] = GSpeed1;
matthieuvignon 3:43843ab8af47 638 TabBrasAvant[4] = GSpeed1>>8; /// (haut, milieu, bas)
matthieuvignon 3:43843ab8af47 639
matthieuvignon 3:43843ab8af47 640 TabBrasAvant[5] = ID2;
matthieuvignon 3:43843ab8af47 641 TabBrasAvant[6] = GPosition2_1;
matthieuvignon 3:43843ab8af47 642 TabBrasAvant[7] = GPosition2_1>>8;
matthieuvignon 3:43843ab8af47 643 TabBrasAvant[8] = GSpeed2;
matthieuvignon 3:43843ab8af47 644 TabBrasAvant[9] = GSpeed2>>8;
matthieuvignon 3:43843ab8af47 645
matthieuvignon 3:43843ab8af47 646 TabBrasAvant[10] = ID3;
matthieuvignon 3:43843ab8af47 647 TabBrasAvant[11] = GPosition3_1;
matthieuvignon 3:43843ab8af47 648 TabBrasAvant[12] = GPosition3_1>>8;
matthieuvignon 3:43843ab8af47 649 TabBrasAvant[13] = GSpeed3;
matthieuvignon 3:43843ab8af47 650 TabBrasAvant[14] = GSpeed3>>8 ;
matthieuvignon 3:43843ab8af47 651
matthieuvignon 3:43843ab8af47 652 TabBrasAvant[15] = ID4;
matthieuvignon 3:43843ab8af47 653 TabBrasAvant[16] = GPosition4_1;
matthieuvignon 3:43843ab8af47 654 TabBrasAvant[17] = GPosition4_1>>8;
matthieuvignon 3:43843ab8af47 655 TabBrasAvant[18] = GSpeed4;
matthieuvignon 3:43843ab8af47 656 TabBrasAvant[19] = GSpeed4>>8 ;
matthieuvignon 3:43843ab8af47 657
matthieuvignon 3:43843ab8af47 658 BrasModuleAx12->multiple_goal_and_speed(4,TabBrasAvant) ;
matthieuvignon 3:43843ab8af47 659 wait(TIME);
matthieuvignon 5:7e1c328c5d50 660
matthieuvignon 3:43843ab8af47 661
matthieuvignon 5:7e1c328c5d50 662 timeout.start();
matthieuvignon 5:7e1c328c5d50 663 while ((timeout.read_ms()<MULT_TIMEOUT) || (((unsigned short)(Ax12_HautBrasModuleAvant->Get_Position()*10)>GPosition1*105/100)
matthieuvignon 5:7e1c328c5d50 664 || ((unsigned short)(Ax12_HautBrasModuleAvant->Get_Position()*10)<GPosition1*95/100))) {
matthieuvignon 5:7e1c328c5d50 665 Ax12_HautBrasModuleAvant->Set_Secure_Goal(GPosition1/10) ;
matthieuvignon 5:7e1c328c5d50 666 wait(TIME);
matthieuvignon 2:9d280856a536 667 }
matthieuvignon 5:7e1c328c5d50 668 timeout.reset();
matthieuvignon 2:9d280856a536 669
matthieuvignon 5:7e1c328c5d50 670 while ((timeout.read_ms()<MULT_TIMEOUT) || (((unsigned short)(Ax12_MilieuBrasModuleAvant->Get_Position()*10)>GPosition2*105/100)
matthieuvignon 5:7e1c328c5d50 671 || ((unsigned short)(Ax12_MilieuBrasModuleAvant->Get_Position()*10)<GPosition2*95/100))) {
matthieuvignon 5:7e1c328c5d50 672 Ax12_MilieuBrasModuleAvant->Set_Secure_Goal(GPosition2/10) ;
matthieuvignon 5:7e1c328c5d50 673 wait(TIME);
matthieuvignon 2:9d280856a536 674 }
matthieuvignon 5:7e1c328c5d50 675 timeout.reset();
matthieuvignon 2:9d280856a536 676
matthieuvignon 5:7e1c328c5d50 677 while ((timeout.read_ms()<MULT_TIMEOUT) || (((unsigned short)(Ax12_DevantPinceGauche->Get_Position()*10)>GPosition3*105/100)
matthieuvignon 5:7e1c328c5d50 678 || ((unsigned short)(Ax12_DevantPinceGauche->Get_Position()*10)<GPosition3*95/100))) {
matthieuvignon 5:7e1c328c5d50 679 Ax12_DevantPinceGauche->Set_Secure_Goal(GPosition3/10) ;
matthieuvignon 5:7e1c328c5d50 680 wait(TIME);
matthieuvignon 2:9d280856a536 681 }
matthieuvignon 5:7e1c328c5d50 682 timeout.reset();
matthieuvignon 5:7e1c328c5d50 683
matthieuvignon 5:7e1c328c5d50 684 while ((timeout.read_ms()<MULT_TIMEOUT) || (((unsigned short)(Ax12_DevantPinceDroite->Get_Position()*10)>GPosition4*105/100)
matthieuvignon 5:7e1c328c5d50 685 || ((unsigned short)(Ax12_DevantPinceDroite->Get_Position()*10)<GPosition4*95/100))) {
matthieuvignon 5:7e1c328c5d50 686 Ax12_DevantPinceDroite->Set_Secure_Goal(GPosition4/10) ;
matthieuvignon 5:7e1c328c5d50 687 wait(TIME);
matthieuvignon 5:7e1c328c5d50 688 }
matthieuvignon 2:9d280856a536 689
matthieuvignon 2:9d280856a536 690
matthieuvignon 2:9d280856a536 691 }
matthieuvignon 2:9d280856a536 692
matthieuvignon 3:43843ab8af47 693 unsigned char mvtBrasAspirateur(unsigned char ID1, unsigned short GSpeed1, unsigned short GPosition1,
matthieuvignon 3:43843ab8af47 694 unsigned char ID2, unsigned short GSpeed2, unsigned short GPosition2,
matthieuvignon 3:43843ab8af47 695 unsigned char ID3, unsigned short GSpeed3, unsigned short GPosition3)
matthieuvignon 3:43843ab8af47 696 {
matthieuvignon 3:43843ab8af47 697 char TabAspirateurBras[15];
matthieuvignon 3:43843ab8af47 698 unsigned short GPosition1_1, GPosition2_1, GPosition3_1;
matthieuvignon 5:7e1c328c5d50 699 Timer timeout;
matthieuvignon 5:7e1c328c5d50 700
matthieuvignon 3:43843ab8af47 701
matthieuvignon 3:43843ab8af47 702 GPosition1_1=((unsigned long)GPosition1*341/1000);
matthieuvignon 3:43843ab8af47 703 GPosition2_1=((unsigned long)GPosition2*341/1000);
matthieuvignon 3:43843ab8af47 704 GPosition3_1=((unsigned long)GPosition3*341/1000);
matthieuvignon 3:43843ab8af47 705
matthieuvignon 3:43843ab8af47 706 TabAspirateurBras[0] = ID1;
matthieuvignon 3:43843ab8af47 707 TabAspirateurBras[1] = GPosition1_1;
matthieuvignon 3:43843ab8af47 708 TabAspirateurBras[2] = GPosition1_1>>8;
matthieuvignon 3:43843ab8af47 709 TabAspirateurBras[3] = GSpeed1;
matthieuvignon 3:43843ab8af47 710 TabAspirateurBras[4] = GSpeed1>>8;
matthieuvignon 3:43843ab8af47 711
matthieuvignon 3:43843ab8af47 712 TabAspirateurBras[5] = ID2;
matthieuvignon 3:43843ab8af47 713 TabAspirateurBras[6] = GPosition2_1;
matthieuvignon 3:43843ab8af47 714 TabAspirateurBras[7] = GPosition2_1>>8;
matthieuvignon 3:43843ab8af47 715 TabAspirateurBras[8] = GSpeed2;
matthieuvignon 3:43843ab8af47 716 TabAspirateurBras[9] = GSpeed2>>8;
matthieuvignon 3:43843ab8af47 717
matthieuvignon 3:43843ab8af47 718 TabAspirateurBras[10] = ID3;
matthieuvignon 3:43843ab8af47 719 TabAspirateurBras[11] = GPosition3_1;
matthieuvignon 3:43843ab8af47 720 TabAspirateurBras[12] = GPosition3_1>>8;
matthieuvignon 3:43843ab8af47 721 TabAspirateurBras[13] = GSpeed3;
matthieuvignon 3:43843ab8af47 722 TabAspirateurBras[14] = GSpeed3>>8 ;
matthieuvignon 3:43843ab8af47 723
matthieuvignon 3:43843ab8af47 724 BrasAspirateurAx12->multiple_goal_and_speed(3,TabAspirateurBras) ;
matthieuvignon 3:43843ab8af47 725 wait(TIME);
matthieuvignon 3:43843ab8af47 726
matthieuvignon 5:7e1c328c5d50 727 timeout.start();
matthieuvignon 5:7e1c328c5d50 728 while ((timeout.read_ms()<MULT_TIMEOUT) || (((unsigned short)(Ax12_HautBrasAspirateur->Get_Position()*10)>GPosition1*105/100)
matthieuvignon 5:7e1c328c5d50 729 || ((unsigned short)(Ax12_HautBrasAspirateur->Get_Position()*10)<GPosition1*95/100))) {
matthieuvignon 5:7e1c328c5d50 730 Ax12_HautBrasAspirateur->Set_Secure_Goal(GPosition1/10) ;
matthieuvignon 5:7e1c328c5d50 731 wait(TIME);
matthieuvignon 2:9d280856a536 732 }
matthieuvignon 5:7e1c328c5d50 733 timeout.reset();
matthieuvignon 5:7e1c328c5d50 734
matthieuvignon 5:7e1c328c5d50 735 while ((timeout.read_ms()<MULT_TIMEOUT) || (((unsigned short)(Ax12_BasBrasAspirateur->Get_Position()*10)>GPosition2*105/100)
matthieuvignon 5:7e1c328c5d50 736 || ((unsigned short)(Ax12_BasBrasAspirateur->Get_Position()*10)<GPosition2*95/100))) {
matthieuvignon 5:7e1c328c5d50 737 Ax12_BasBrasAspirateur->Set_Secure_Goal(GPosition2/10) ;
matthieuvignon 5:7e1c328c5d50 738 wait(TIME);
matthieuvignon 5:7e1c328c5d50 739 }
matthieuvignon 5:7e1c328c5d50 740 timeout.reset();
matthieuvignon 2:9d280856a536 741
matthieuvignon 5:7e1c328c5d50 742 while ((timeout.read_ms()<MULT_TIMEOUT) || (((unsigned short)(Ax12_FunnyAction->Get_Position()*10)>GPosition3*105/100)
matthieuvignon 5:7e1c328c5d50 743 || ((unsigned short)(Ax12_FunnyAction->Get_Position()*10)<GPosition3*95/100))) {
matthieuvignon 5:7e1c328c5d50 744 Ax12_FunnyAction->Set_Secure_Goal(GPosition3/10) ;
matthieuvignon 5:7e1c328c5d50 745 wait(TIME);
matthieuvignon 5:7e1c328c5d50 746 }
matthieuvignon 2:9d280856a536 747
matthieuvignon 2:9d280856a536 748 }
matthieuvignon 2:9d280856a536 749
matthieuvignon 2:9d280856a536 750
matthieuvignon 2:9d280856a536 751 /****************************************************************************************/
matthieuvignon 2:9d280856a536 752 /* FUNCTION NAME: Fin_action */
matthieuvignon 2:9d280856a536 753 /* DESCRIPTION : Fonction qui confirme la fin de mouvement des AX12 */
matthieuvignon 2:9d280856a536 754 /****************************************************************************************/
matthieuvignon 2:9d280856a536 755 void Fin_action(void){
matthieuvignon 2:9d280856a536 756 CANMessage msgTx=CANMessage();
matthieuvignon 2:9d280856a536 757 msgTx.format=CANStandard;
matthieuvignon 2:9d280856a536 758 msgTx.type=CANData;
matthieuvignon 2:9d280856a536 759
matthieuvignon 2:9d280856a536 760 msgTx.id = SERVO_AX12_END;
matthieuvignon 2:9d280856a536 761 msgTx.len = 1;
matthieuvignon 5:7e1c328c5d50 762 msgTx.data[0] = 0x96;
matthieuvignon 2:9d280856a536 763 can.write(msgTx);
matthieuvignon 2:9d280856a536 764 }
matthieuvignon 2:9d280856a536 765
matthieuvignon 2:9d280856a536 766
matthieuvignon 2:9d280856a536 767
matthieuvignon 2:9d280856a536 768