Pousse-seringue Ulg

Dependencies:   FSR Pousse_Seringue mbed

Fork of Pousse_seringue_Ulg by philippe renoire

Committer:
philipperenoire
Date:
Mon Jun 27 09:34:52 2016 +0000
Revision:
0:dd840e8b1a2a
Child:
1:b5b006e4cd59

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
philipperenoire 0:dd840e8b1a2a 1
philipperenoire 0:dd840e8b1a2a 2 #include "mbed.h"
philipperenoire 0:dd840e8b1a2a 3 #include "Stepper.h"
philipperenoire 0:dd840e8b1a2a 4 #include "FSR.h"
philipperenoire 0:dd840e8b1a2a 5 #define pi 3.141592653589793
philipperenoire 0:dd840e8b1a2a 6
philipperenoire 0:dd840e8b1a2a 7 FSR gauge1(PA_1, 10); // A1 Strain gauge, a 10k resistor is used
philipperenoire 0:dd840e8b1a2a 8 FSR gauge2(PA_4, 10); // A2 Strain gauge
philipperenoire 0:dd840e8b1a2a 9 DigitalIn home(PA_9); // D8
philipperenoire 0:dd840e8b1a2a 10 DigitalIn switch1(PB_3); // D3 Switch => Rouge
philipperenoire 0:dd840e8b1a2a 11 DigitalIn switch2(PB_5); // D4 Switch => Noir
philipperenoire 0:dd840e8b1a2a 12 InterruptIn switch3(PA_10); // D2 Switch => Vert
philipperenoire 0:dd840e8b1a2a 13 Stepper mot(PB_6, PC_7); // D10 D9 motor :NEMA 17
philipperenoire 0:dd840e8b1a2a 14 DigitalOut myled(LED2);
philipperenoire 0:dd840e8b1a2a 15 Serial s(SERIAL_TX, SERIAL_RX);
philipperenoire 0:dd840e8b1a2a 16
philipperenoire 0:dd840e8b1a2a 17
philipperenoire 0:dd840e8b1a2a 18 int main()
philipperenoire 0:dd840e8b1a2a 19 {
philipperenoire 0:dd840e8b1a2a 20 ////////////////// Initialisation //////////////////
philipperenoire 0:dd840e8b1a2a 21 float entree = 0;
philipperenoire 0:dd840e8b1a2a 22 int mode = 0; // Pousser (1) ou tirer (2)
philipperenoire 0:dd840e8b1a2a 23 float vitesse = 0; // vitesse d'avance
philipperenoire 0:dd840e8b1a2a 24 float avance = 0; // avance, nombre de pas à realiser
philipperenoire 0:dd840e8b1a2a 25 int vol_ou_deb = 0; // travailler en volume (1) ou en debit (2)
philipperenoire 0:dd840e8b1a2a 26 float section = 0; // section de la seringue
philipperenoire 0:dd840e8b1a2a 27 float volume = 0; // volume demande
philipperenoire 0:dd840e8b1a2a 28 float debit = 0; // debit demande
philipperenoire 0:dd840e8b1a2a 29 mot.setSpeed(80000); // vitesse max <!> NE PAS METTRE DE MICROPAS <!>
philipperenoire 0:dd840e8b1a2a 30 int paire=0;
philipperenoire 0:dd840e8b1a2a 31 int change=0;
philipperenoire 0:dd840e8b1a2a 32
philipperenoire 0:dd840e8b1a2a 33 ////////////////// Mode : Pousser ou tirer ? //////////////////
philipperenoire 0:dd840e8b1a2a 34 printf("Bonjour utilisateur, quel mode souhaitez-vous utiliser :\n");
philipperenoire 0:dd840e8b1a2a 35 printf("Pour vider une seringue de son contenu, tapez 1 \n");
philipperenoire 0:dd840e8b1a2a 36 printf("Pour remplir une seringue, tapez 2 \n");
philipperenoire 0:dd840e8b1a2a 37 scanf("%d", &mode); // Choix du mode
philipperenoire 0:dd840e8b1a2a 38 while( mode != 1 && mode != 2)
philipperenoire 0:dd840e8b1a2a 39 { // Verifie que l'entree est correcte
philipperenoire 0:dd840e8b1a2a 40 printf("Une erreur s'est produite quelque part.\n");
philipperenoire 0:dd840e8b1a2a 41 printf("Pour vider une seringue de son contenu, tapez 1 \n");
philipperenoire 0:dd840e8b1a2a 42 printf("Pour remplir une seringue, tapez 2 \n");
philipperenoire 0:dd840e8b1a2a 43 scanf("%d", &mode);
philipperenoire 0:dd840e8b1a2a 44 }
philipperenoire 0:dd840e8b1a2a 45
philipperenoire 0:dd840e8b1a2a 46 ////////////////// Si pousser : placement du chariot //////////////////
philipperenoire 0:dd840e8b1a2a 47 if (mode == 1) // On retourne vers le moteur puis on avance jusqu'à toucher la seringue
philipperenoire 0:dd840e8b1a2a 48 {
philipperenoire 0:dd840e8b1a2a 49 mot.rotate(0); // Sens de rotation : 1 = pousser, 0 = tirer
philipperenoire 0:dd840e8b1a2a 50 while (switch2 == 0 && switch3 == 0) // Tant que pas à fond à gauche (côte moteur) ou switch3 pas enfonce, on continue
philipperenoire 0:dd840e8b1a2a 51 {
philipperenoire 0:dd840e8b1a2a 52 }
philipperenoire 0:dd840e8b1a2a 53 mot.stop();
philipperenoire 0:dd840e8b1a2a 54 printf("Veuillez placez la seringue. \n Une fois la seringue mise en place, tapez 1\n");
philipperenoire 0:dd840e8b1a2a 55 scanf("%f", &entree);
philipperenoire 0:dd840e8b1a2a 56 while( entree != 1) { // Verifie que l'entree est correcte
philipperenoire 0:dd840e8b1a2a 57 printf("L'entree est incorrecte.\n");
philipperenoire 0:dd840e8b1a2a 58 printf("Une fois la seringue mise en place, tapez 1\n");
philipperenoire 0:dd840e8b1a2a 59 scanf("%f", &entree);
philipperenoire 0:dd840e8b1a2a 60 }
philipperenoire 0:dd840e8b1a2a 61 mot.rotate(1); // Puis on repart dans l'autre sens.
philipperenoire 0:dd840e8b1a2a 62 while(gauge1.readRaw() <= 0.4 && switch1 == 0) //Tant que le contacte n'a pas eu lieu
philipperenoire 0:dd840e8b1a2a 63 {
philipperenoire 0:dd840e8b1a2a 64 }
philipperenoire 0:dd840e8b1a2a 65 mot.stop();
philipperenoire 0:dd840e8b1a2a 66 printf("Le contact entre la seringue et la fixation est realise\n");
philipperenoire 0:dd840e8b1a2a 67 }
philipperenoire 0:dd840e8b1a2a 68
philipperenoire 0:dd840e8b1a2a 69 ////////////////// Si tirer : placement du chariot //////////////////
philipperenoire 0:dd840e8b1a2a 70 if (mode == 2) // Si tirer
philipperenoire 0:dd840e8b1a2a 71 {
philipperenoire 0:dd840e8b1a2a 72 mot.rotate(1); // Sens de rotation : 1 = pousser, 0 = tirer
philipperenoire 0:dd840e8b1a2a 73 while (switch1 == 0 && switch3 == 0) // Tant que pas à fond à droite (côte seringue) ou switch3 pas enfonce, on continue
philipperenoire 0:dd840e8b1a2a 74 {
philipperenoire 0:dd840e8b1a2a 75 }
philipperenoire 0:dd840e8b1a2a 76 mot.stop();
philipperenoire 0:dd840e8b1a2a 77 printf("Veuillez placez la seringue. \n Une fois la seringue mise en place, tapez 1\n");
philipperenoire 0:dd840e8b1a2a 78 scanf("%f", &entree);
philipperenoire 0:dd840e8b1a2a 79 while( entree != 1) { // Verifie que l'entree est correcte
philipperenoire 0:dd840e8b1a2a 80 printf("L'entree est incorrecte.\n");
philipperenoire 0:dd840e8b1a2a 81 printf("Une fois la seringue mise en place, tapez 1\n");
philipperenoire 0:dd840e8b1a2a 82 scanf("%f", &entree);
philipperenoire 0:dd840e8b1a2a 83 }
philipperenoire 0:dd840e8b1a2a 84 mot.rotate(0); // Puis on repart dans l'autre sens.
philipperenoire 0:dd840e8b1a2a 85 while(gauge2.readRaw() <= 0.4 && switch2 == 0) //Tant que le contacte n'a pas eu lieu
philipperenoire 0:dd840e8b1a2a 86 {
philipperenoire 0:dd840e8b1a2a 87 }
philipperenoire 0:dd840e8b1a2a 88 mot.stop();
philipperenoire 0:dd840e8b1a2a 89 printf("Le contact entre la seringue et la fixation est realise.\n");
philipperenoire 0:dd840e8b1a2a 90 }
philipperenoire 0:dd840e8b1a2a 91
philipperenoire 0:dd840e8b1a2a 92 ////////////////// Actionnement de la seringue //////////////////
philipperenoire 0:dd840e8b1a2a 93
philipperenoire 0:dd840e8b1a2a 94 printf("Voulez-vous travailler en volume ou en debit?\n");
philipperenoire 0:dd840e8b1a2a 95 printf("Pour travailler en volume, tapez 1 \n");
philipperenoire 0:dd840e8b1a2a 96 printf("Pour travailler en debit, tapez 2 \n");
philipperenoire 0:dd840e8b1a2a 97 scanf("%d", &vol_ou_deb); // choix : travailler en volume ou en debit
philipperenoire 0:dd840e8b1a2a 98 while( vol_ou_deb != 1 && vol_ou_deb != 2) // Verifie que l'entree est correcte
philipperenoire 0:dd840e8b1a2a 99 {
philipperenoire 0:dd840e8b1a2a 100 printf("Une erreur s'est produite quelque part \n");
philipperenoire 0:dd840e8b1a2a 101 printf("Pour travailler en volume, tapez 1 \n");
philipperenoire 0:dd840e8b1a2a 102 printf("Pour travailler en debit, tapez 2 \n");
philipperenoire 0:dd840e8b1a2a 103 scanf("%d", &vol_ou_deb);
philipperenoire 0:dd840e8b1a2a 104 }
philipperenoire 0:dd840e8b1a2a 105
philipperenoire 0:dd840e8b1a2a 106 //>>>>>>> VOLUME
philipperenoire 0:dd840e8b1a2a 107 if (vol_ou_deb == 1 )
philipperenoire 0:dd840e8b1a2a 108 {
philipperenoire 0:dd840e8b1a2a 109 printf("Veuillez maintenant indiquer le diamètre de la seringue s'il vous plait [mm].\n");
philipperenoire 0:dd840e8b1a2a 110 scanf("%f", &section);
philipperenoire 0:dd840e8b1a2a 111 while( section < 0 || section > 1000) // Verifie que l'entree est correcte
philipperenoire 0:dd840e8b1a2a 112 {
philipperenoire 0:dd840e8b1a2a 113 printf("Une erreur s'est produite quelque part.\n");
philipperenoire 0:dd840e8b1a2a 114 printf("Veuillez indiquer le diametre de la seringue s'il vous plait [mm^2].\n");
philipperenoire 0:dd840e8b1a2a 115 scanf("%f", &section);
philipperenoire 0:dd840e8b1a2a 116 }
philipperenoire 0:dd840e8b1a2a 117 printf("Merci, veuillez maintenant indiquer le volume voulu s'il vous plait [micro-litre].\n");
philipperenoire 0:dd840e8b1a2a 118 scanf("%f", &volume);
philipperenoire 0:dd840e8b1a2a 119 while( volume < 0 && volume > 500000) // Verifie que l'entree est correcte
philipperenoire 0:dd840e8b1a2a 120 {
philipperenoire 0:dd840e8b1a2a 121 printf("Une erreur s'est produite quelque part.\n");
philipperenoire 0:dd840e8b1a2a 122 printf("Veuillez indiquer le volume voulu s'il vous plait [micro-litre]. \n");
philipperenoire 0:dd840e8b1a2a 123 scanf("%f", &volume);
philipperenoire 0:dd840e8b1a2a 124 }
philipperenoire 0:dd840e8b1a2a 125 avance = 376500*volume/(0.25*pi*section*section)//+1000; // Sans micro-pas : 376500 = 1mm; avec micro-pas 192000 = 1mm
philipperenoire 0:dd840e8b1a2a 126 }
philipperenoire 0:dd840e8b1a2a 127 //>>>>>>> DEBIT
philipperenoire 0:dd840e8b1a2a 128 if (vol_ou_deb == 2 )
philipperenoire 0:dd840e8b1a2a 129 {
philipperenoire 0:dd840e8b1a2a 130 printf("Veuillez maintenant indiquer le diametre de la seringue s'il vous plait [mm].\n");
philipperenoire 0:dd840e8b1a2a 131 scanf("%f", &section);
philipperenoire 0:dd840e8b1a2a 132 while( section < 0 || section > 1000) // Verifie que l'entree est correcte
philipperenoire 0:dd840e8b1a2a 133 {
philipperenoire 0:dd840e8b1a2a 134 printf("Une erreur s'est produite quelque part.\n");
philipperenoire 0:dd840e8b1a2a 135 printf("Veuillez indiquer le diametre de la seringue s'il vous plait [mm].\n");
philipperenoire 0:dd840e8b1a2a 136 scanf("%f", &section);
philipperenoire 0:dd840e8b1a2a 137 }
philipperenoire 0:dd840e8b1a2a 138 printf("Merci, veuillez maintenant indiquer le debit voulu s'il vous plait [micro-litre/ seconde].\n");
philipperenoire 0:dd840e8b1a2a 139 scanf("%f", &debit);
philipperenoire 0:dd840e8b1a2a 140 while( debit < 0 && debit > 2) // Verifie que l'entree est correcte
philipperenoire 0:dd840e8b1a2a 141 {
philipperenoire 0:dd840e8b1a2a 142 printf("Une erreur s'est produite quelque part.\n");
philipperenoire 0:dd840e8b1a2a 143 printf("Veuillez indiquer le debit voulu s'il vous plait [micro-litre/seconde]. \n");
philipperenoire 0:dd840e8b1a2a 144 scanf("%f", &debit);
philipperenoire 0:dd840e8b1a2a 145 }
philipperenoire 0:dd840e8b1a2a 146 vitesse = 376500*debit/(0.25*pi*section*section); //Si pas de micro-pas 192000 si micro-pas.
philipperenoire 0:dd840e8b1a2a 147 }
philipperenoire 0:dd840e8b1a2a 148
philipperenoire 0:dd840e8b1a2a 149 /////////////////// Si pousser //////////////////
philipperenoire 0:dd840e8b1a2a 150 if (mode == 1)
philipperenoire 0:dd840e8b1a2a 151 {
philipperenoire 0:dd840e8b1a2a 152 //>>>>>>> VOLUME
philipperenoire 0:dd840e8b1a2a 153 if (vol_ou_deb == 1) // Si on travaille en VOLUME
philipperenoire 0:dd840e8b1a2a 154 {
philipperenoire 0:dd840e8b1a2a 155 printf("Demarrage de l'operation.\n");
philipperenoire 0:dd840e8b1a2a 156 mot.rotate(1); // Sens de rotation : 1 = pousser 0 = tirer
philipperenoire 0:dd840e8b1a2a 157 mot.setPositionZero();
philipperenoire 0:dd840e8b1a2a 158 mot.goesTo(avance);
philipperenoire 0:dd840e8b1a2a 159
philipperenoire 0:dd840e8b1a2a 160 while(switch1==0)
philipperenoire 0:dd840e8b1a2a 161 {
philipperenoire 0:dd840e8b1a2a 162 if(switch3==1 && paire==0)
philipperenoire 0:dd840e8b1a2a 163 {
philipperenoire 0:dd840e8b1a2a 164 mot.stop();
philipperenoire 0:dd840e8b1a2a 165 printf(" ");//printf("Arret temporaire");
philipperenoire 0:dd840e8b1a2a 166 change = 1;
philipperenoire 0:dd840e8b1a2a 167 }
philipperenoire 0:dd840e8b1a2a 168 if (switch3 == 0 & change == 1)
philipperenoire 0:dd840e8b1a2a 169 {
philipperenoire 0:dd840e8b1a2a 170 paire = paire +1;
philipperenoire 0:dd840e8b1a2a 171 paire = paire % 2;
philipperenoire 0:dd840e8b1a2a 172 change = 0;
philipperenoire 0:dd840e8b1a2a 173 }
philipperenoire 0:dd840e8b1a2a 174 if (switch3 == 1 && paire == 1)
philipperenoire 0:dd840e8b1a2a 175 {
philipperenoire 0:dd840e8b1a2a 176 printf(" ");//printf("Redemarrage");
philipperenoire 0:dd840e8b1a2a 177 mot.rotate(1);
philipperenoire 0:dd840e8b1a2a 178 mot.goesTo(avance);
philipperenoire 0:dd840e8b1a2a 179 change = 1;
philipperenoire 0:dd840e8b1a2a 180 }
philipperenoire 0:dd840e8b1a2a 181 }
philipperenoire 0:dd840e8b1a2a 182 }
philipperenoire 0:dd840e8b1a2a 183
philipperenoire 0:dd840e8b1a2a 184 //>>>>>>> DEBIT
philipperenoire 0:dd840e8b1a2a 185 if (vol_ou_deb == 2) // Si on travaille en debit
philipperenoire 0:dd840e8b1a2a 186 {
philipperenoire 0:dd840e8b1a2a 187 printf("Demarrage de l'operation.\n");
philipperenoire 0:dd840e8b1a2a 188 mot.setSpeed(vitesse);
philipperenoire 0:dd840e8b1a2a 189 mot.rotate(1); // Sens de rotation : 1 = pousser 0 = tirer.
philipperenoire 0:dd840e8b1a2a 190 while (switch1 == 0) // Arret si fin de course
philipperenoire 0:dd840e8b1a2a 191 {
philipperenoire 0:dd840e8b1a2a 192 if(switch3==1 && paire==0)
philipperenoire 0:dd840e8b1a2a 193 {
philipperenoire 0:dd840e8b1a2a 194 mot.stop();
philipperenoire 0:dd840e8b1a2a 195 printf(" ");//printf("Arret temporaire");
philipperenoire 0:dd840e8b1a2a 196 change = 1;
philipperenoire 0:dd840e8b1a2a 197 }
philipperenoire 0:dd840e8b1a2a 198 if (switch3 == 0 & change == 1)
philipperenoire 0:dd840e8b1a2a 199 {
philipperenoire 0:dd840e8b1a2a 200 paire = paire +1;
philipperenoire 0:dd840e8b1a2a 201 paire = paire % 2;
philipperenoire 0:dd840e8b1a2a 202 change = 0;
philipperenoire 0:dd840e8b1a2a 203 }
philipperenoire 0:dd840e8b1a2a 204 if (switch3 == 1 && paire == 1)
philipperenoire 0:dd840e8b1a2a 205 {
philipperenoire 0:dd840e8b1a2a 206 printf(" ");//printf("Redemarrage");
philipperenoire 0:dd840e8b1a2a 207 mot.setSpeed(vitesse);
philipperenoire 0:dd840e8b1a2a 208 mot.rotate(1);
philipperenoire 0:dd840e8b1a2a 209 change = 1;
philipperenoire 0:dd840e8b1a2a 210 }
philipperenoire 0:dd840e8b1a2a 211 }
philipperenoire 0:dd840e8b1a2a 212 mot.stop();
philipperenoire 0:dd840e8b1a2a 213 printf("Fin de l'operation.");
philipperenoire 0:dd840e8b1a2a 214 }
philipperenoire 0:dd840e8b1a2a 215 }
philipperenoire 0:dd840e8b1a2a 216 /////////////////// Si tirer //////////////////
philipperenoire 0:dd840e8b1a2a 217
philipperenoire 0:dd840e8b1a2a 218 if (mode == 2)
philipperenoire 0:dd840e8b1a2a 219 {
philipperenoire 0:dd840e8b1a2a 220 //>>>>>>> VOLUME
philipperenoire 0:dd840e8b1a2a 221 if (vol_ou_deb == 1) // Si on travaille en VOLUME
philipperenoire 0:dd840e8b1a2a 222 {
philipperenoire 0:dd840e8b1a2a 223 printf("Demarrage de l'operation.\n");
philipperenoire 0:dd840e8b1a2a 224 mot.rotate(0); // Sens de rotation : 1 = pousser 0 = tirer
philipperenoire 0:dd840e8b1a2a 225 mot.setPositionZero();
philipperenoire 0:dd840e8b1a2a 226 mot.goesTo(avance);
philipperenoire 0:dd840e8b1a2a 227
philipperenoire 0:dd840e8b1a2a 228 while(switch2==0)
philipperenoire 0:dd840e8b1a2a 229 {
philipperenoire 0:dd840e8b1a2a 230 if(switch3==1 && paire==0)
philipperenoire 0:dd840e8b1a2a 231 {
philipperenoire 0:dd840e8b1a2a 232 mot.stop();
philipperenoire 0:dd840e8b1a2a 233 printf(" ");//printf("Arret temporaire");
philipperenoire 0:dd840e8b1a2a 234 change = 1;
philipperenoire 0:dd840e8b1a2a 235 }
philipperenoire 0:dd840e8b1a2a 236 if (switch3 == 0 & change == 1)
philipperenoire 0:dd840e8b1a2a 237 {
philipperenoire 0:dd840e8b1a2a 238 paire = paire +1;
philipperenoire 0:dd840e8b1a2a 239 paire = paire % 2;
philipperenoire 0:dd840e8b1a2a 240 change = 0;
philipperenoire 0:dd840e8b1a2a 241 }
philipperenoire 0:dd840e8b1a2a 242 if (switch3 == 1 && paire == 1)
philipperenoire 0:dd840e8b1a2a 243 {
philipperenoire 0:dd840e8b1a2a 244 printf(" ");//printf("Redemarrage");
philipperenoire 0:dd840e8b1a2a 245 mot.rotate(0);
philipperenoire 0:dd840e8b1a2a 246 mot.goesTo(avance);
philipperenoire 0:dd840e8b1a2a 247 change = 1;
philipperenoire 0:dd840e8b1a2a 248 }
philipperenoire 0:dd840e8b1a2a 249 }
philipperenoire 0:dd840e8b1a2a 250 }
philipperenoire 0:dd840e8b1a2a 251
philipperenoire 0:dd840e8b1a2a 252 //>>>>>>> DEBIT
philipperenoire 0:dd840e8b1a2a 253 if (vol_ou_deb == 2) // Si on travaille en debit
philipperenoire 0:dd840e8b1a2a 254 {
philipperenoire 0:dd840e8b1a2a 255 printf("Demarrage de l'operation.\n");
philipperenoire 0:dd840e8b1a2a 256 mot.setSpeed(vitesse);
philipperenoire 0:dd840e8b1a2a 257 mot.rotate(0); // Sens de rotation : 1 = pousser 0 = tirer.
philipperenoire 0:dd840e8b1a2a 258 //printf("Je tire. \n");
philipperenoire 0:dd840e8b1a2a 259 while (switch2 ==0) // Arret si fin de course
philipperenoire 0:dd840e8b1a2a 260 {
philipperenoire 0:dd840e8b1a2a 261 if(switch3==1 && paire==0)
philipperenoire 0:dd840e8b1a2a 262 {
philipperenoire 0:dd840e8b1a2a 263 mot.stop();
philipperenoire 0:dd840e8b1a2a 264 printf(" ");//printf("Arret temporaire");
philipperenoire 0:dd840e8b1a2a 265 change = 1;
philipperenoire 0:dd840e8b1a2a 266 }
philipperenoire 0:dd840e8b1a2a 267 if (switch3 == 0 & change == 1)
philipperenoire 0:dd840e8b1a2a 268 {
philipperenoire 0:dd840e8b1a2a 269 paire = paire +1;
philipperenoire 0:dd840e8b1a2a 270 paire = paire % 2;
philipperenoire 0:dd840e8b1a2a 271 change = 0;
philipperenoire 0:dd840e8b1a2a 272 }
philipperenoire 0:dd840e8b1a2a 273 if (switch3 == 1 && paire == 1)
philipperenoire 0:dd840e8b1a2a 274 {
philipperenoire 0:dd840e8b1a2a 275 printf(" ");//printf("Redemarrage");
philipperenoire 0:dd840e8b1a2a 276 mot.setSpeed(vitesse);
philipperenoire 0:dd840e8b1a2a 277 mot.rotate(0);
philipperenoire 0:dd840e8b1a2a 278 change = 1;
philipperenoire 0:dd840e8b1a2a 279 }
philipperenoire 0:dd840e8b1a2a 280 }
philipperenoire 0:dd840e8b1a2a 281 }
philipperenoire 0:dd840e8b1a2a 282 }
philipperenoire 0:dd840e8b1a2a 283 }