Mateo Morales / Mbed 2 deprecated triki_2

Dependencies:   mbed

Committer:
Mateom0104
Date:
Thu Nov 14 13:46:49 2019 +0000
Revision:
0:7330cc77b848
Triki 2;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Mateom0104 0:7330cc77b848 1 #include "mbed.h"
Mateom0104 0:7330cc77b848 2
Mateom0104 0:7330cc77b848 3 //Serial
Mateom0104 0:7330cc77b848 4 Serial pc(SERIAL_TX, SERIAL_RX);
Mateom0104 0:7330cc77b848 5
Mateom0104 0:7330cc77b848 6 //*Definicion entradas y salidas
Mateom0104 0:7330cc77b848 7 // Sensores
Mateom0104 0:7330cc77b848 8 DigitalIn p1(PA_3);
Mateom0104 0:7330cc77b848 9 DigitalIn p2(PD_7);
Mateom0104 0:7330cc77b848 10 DigitalIn p3(PC_0);
Mateom0104 0:7330cc77b848 11 DigitalIn p4(PD_6);
Mateom0104 0:7330cc77b848 12 DigitalIn p5(PC_3);
Mateom0104 0:7330cc77b848 13 DigitalIn p6(PD_5);
Mateom0104 0:7330cc77b848 14 DigitalIn p7(PF_3);
Mateom0104 0:7330cc77b848 15 DigitalIn p8(PD_4);
Mateom0104 0:7330cc77b848 16 DigitalIn p9(PF_5);
Mateom0104 0:7330cc77b848 17
Mateom0104 0:7330cc77b848 18 // motores
Mateom0104 0:7330cc77b848 19 DigitalOut dir_x(PC_6);
Mateom0104 0:7330cc77b848 20 DigitalOut step_x(PB_8);
Mateom0104 0:7330cc77b848 21 DigitalOut dir_y(PB_15);
Mateom0104 0:7330cc77b848 22 DigitalOut step_y(PB_9);
Mateom0104 0:7330cc77b848 23
Mateom0104 0:7330cc77b848 24 // finales de carrera
Mateom0104 0:7330cc77b848 25 DigitalIn finx(PC_9);
Mateom0104 0:7330cc77b848 26 DigitalIn finy(PC_8);
Mateom0104 0:7330cc77b848 27
Mateom0104 0:7330cc77b848 28 // variables
Mateom0104 0:7330cc77b848 29 float tiempo=2.5;
Mateom0104 0:7330cc77b848 30 int datos[10];
Mateom0104 0:7330cc77b848 31 int datos2[10];
Mateom0104 0:7330cc77b848 32 int fin_x;
Mateom0104 0:7330cc77b848 33 int fin_y;
Mateom0104 0:7330cc77b848 34 int a;// recibe el serial
Mateom0104 0:7330cc77b848 35 int contador;
Mateom0104 0:7330cc77b848 36 int v,suma;
Mateom0104 0:7330cc77b848 37
Mateom0104 0:7330cc77b848 38 // Posiciones
Mateom0104 0:7330cc77b848 39 int p[10][4]={{0,0,0,0},{0,112,-73,0},{0,112,73,0},{0,172,237,-60},{0,259,-73,0},{0,259,73,0},{0,172,237,60},{0,408,-73,0},{0,259,73,0},{0,320,237,60}};
Mateom0104 0:7330cc77b848 40 int posicion;
Mateom0104 0:7330cc77b848 41
Mateom0104 0:7330cc77b848 42 int i,j,k;
Mateom0104 0:7330cc77b848 43
Mateom0104 0:7330cc77b848 44 void sensores(void);
Mateom0104 0:7330cc77b848 45 void adelante (void);
Mateom0104 0:7330cc77b848 46 void atras(void);
Mateom0104 0:7330cc77b848 47 void derecha(void);
Mateom0104 0:7330cc77b848 48 void izquierda (void);
Mateom0104 0:7330cc77b848 49 void origen(void);
Mateom0104 0:7330cc77b848 50 void movimientos(void);
Mateom0104 0:7330cc77b848 51 void inicio (void);
Mateom0104 0:7330cc77b848 52
Mateom0104 0:7330cc77b848 53 //////////////////////////////////////////////////////fin
Mateom0104 0:7330cc77b848 54 void fin (void)
Mateom0104 0:7330cc77b848 55 {
Mateom0104 0:7330cc77b848 56 for(i=0;i<=60;i++)
Mateom0104 0:7330cc77b848 57 atras();
Mateom0104 0:7330cc77b848 58
Mateom0104 0:7330cc77b848 59 origen();
Mateom0104 0:7330cc77b848 60 inicio();
Mateom0104 0:7330cc77b848 61 }
Mateom0104 0:7330cc77b848 62
Mateom0104 0:7330cc77b848 63 //////////////////////////////////////////////////////inicio
Mateom0104 0:7330cc77b848 64 void inicio (void)
Mateom0104 0:7330cc77b848 65 {
Mateom0104 0:7330cc77b848 66 for(i=0;i<=264;i++)
Mateom0104 0:7330cc77b848 67 izquierda();
Mateom0104 0:7330cc77b848 68
Mateom0104 0:7330cc77b848 69 for(i=0;i<=92;i++)
Mateom0104 0:7330cc77b848 70 adelante();
Mateom0104 0:7330cc77b848 71
Mateom0104 0:7330cc77b848 72 }
Mateom0104 0:7330cc77b848 73 ///////////////////////////////////////////////////// movimientos
Mateom0104 0:7330cc77b848 74 void movimientos (void)
Mateom0104 0:7330cc77b848 75 {
Mateom0104 0:7330cc77b848 76 for(i=0;i<=p[posicion][1];i++)
Mateom0104 0:7330cc77b848 77 adelante();
Mateom0104 0:7330cc77b848 78
Mateom0104 0:7330cc77b848 79 if(p[posicion][2]<0)
Mateom0104 0:7330cc77b848 80 {
Mateom0104 0:7330cc77b848 81 for(i=0;i<=(p[posicion][2]*-1);i++)
Mateom0104 0:7330cc77b848 82 izquierda();
Mateom0104 0:7330cc77b848 83 }
Mateom0104 0:7330cc77b848 84 else
Mateom0104 0:7330cc77b848 85 {
Mateom0104 0:7330cc77b848 86 for(i=0;i<=p[posicion][2];i++)
Mateom0104 0:7330cc77b848 87 derecha();
Mateom0104 0:7330cc77b848 88 }
Mateom0104 0:7330cc77b848 89
Mateom0104 0:7330cc77b848 90
Mateom0104 0:7330cc77b848 91 if(p[posicion][3]<0)
Mateom0104 0:7330cc77b848 92 {
Mateom0104 0:7330cc77b848 93 for(i=0;i<=(p[posicion][3]*-1);i++)
Mateom0104 0:7330cc77b848 94 atras();
Mateom0104 0:7330cc77b848 95 }
Mateom0104 0:7330cc77b848 96 else
Mateom0104 0:7330cc77b848 97 {
Mateom0104 0:7330cc77b848 98 for(i=0;i<=p[posicion][3];i++)
Mateom0104 0:7330cc77b848 99 adelante();
Mateom0104 0:7330cc77b848 100 }
Mateom0104 0:7330cc77b848 101 }
Mateom0104 0:7330cc77b848 102 /////////////////////////////////////////////////////origen
Mateom0104 0:7330cc77b848 103 void origen (void)
Mateom0104 0:7330cc77b848 104 {
Mateom0104 0:7330cc77b848 105 sensores();
Mateom0104 0:7330cc77b848 106 while(fin_x==0)
Mateom0104 0:7330cc77b848 107 {
Mateom0104 0:7330cc77b848 108 sensores();
Mateom0104 0:7330cc77b848 109 derecha();
Mateom0104 0:7330cc77b848 110 }
Mateom0104 0:7330cc77b848 111
Mateom0104 0:7330cc77b848 112 while(fin_y==0)
Mateom0104 0:7330cc77b848 113 {
Mateom0104 0:7330cc77b848 114 sensores();
Mateom0104 0:7330cc77b848 115 atras();
Mateom0104 0:7330cc77b848 116 }
Mateom0104 0:7330cc77b848 117
Mateom0104 0:7330cc77b848 118
Mateom0104 0:7330cc77b848 119 }
Mateom0104 0:7330cc77b848 120 /////////////////////////////////////////////////// Adelante
Mateom0104 0:7330cc77b848 121 void adelante (void)
Mateom0104 0:7330cc77b848 122 {
Mateom0104 0:7330cc77b848 123 dir_y=0;
Mateom0104 0:7330cc77b848 124 step_y=1;
Mateom0104 0:7330cc77b848 125 wait_ms(tiempo);
Mateom0104 0:7330cc77b848 126 step_y=0;
Mateom0104 0:7330cc77b848 127 wait_ms(tiempo);
Mateom0104 0:7330cc77b848 128
Mateom0104 0:7330cc77b848 129 }
Mateom0104 0:7330cc77b848 130 /////////////////////////////////////////////////// Atras
Mateom0104 0:7330cc77b848 131 void atras (void)
Mateom0104 0:7330cc77b848 132 {
Mateom0104 0:7330cc77b848 133 dir_y=1;
Mateom0104 0:7330cc77b848 134 step_y=1;
Mateom0104 0:7330cc77b848 135 wait_ms(tiempo);
Mateom0104 0:7330cc77b848 136 step_y=0;
Mateom0104 0:7330cc77b848 137 wait_ms(tiempo);
Mateom0104 0:7330cc77b848 138
Mateom0104 0:7330cc77b848 139
Mateom0104 0:7330cc77b848 140 }
Mateom0104 0:7330cc77b848 141 /////////////////////////////////////////////////// Derecha
Mateom0104 0:7330cc77b848 142 void derecha (void)
Mateom0104 0:7330cc77b848 143 {
Mateom0104 0:7330cc77b848 144 dir_x=0;
Mateom0104 0:7330cc77b848 145 step_x=1;
Mateom0104 0:7330cc77b848 146 wait_ms(tiempo);
Mateom0104 0:7330cc77b848 147 step_x=0;
Mateom0104 0:7330cc77b848 148 wait_ms(tiempo);
Mateom0104 0:7330cc77b848 149
Mateom0104 0:7330cc77b848 150 }
Mateom0104 0:7330cc77b848 151 /////////////////////////////////////////////////// Derecha
Mateom0104 0:7330cc77b848 152 void izquierda (void)
Mateom0104 0:7330cc77b848 153 {
Mateom0104 0:7330cc77b848 154 dir_x=1;
Mateom0104 0:7330cc77b848 155 step_x=1;
Mateom0104 0:7330cc77b848 156 wait_ms(tiempo);
Mateom0104 0:7330cc77b848 157 step_x=0;
Mateom0104 0:7330cc77b848 158 wait_ms(tiempo);
Mateom0104 0:7330cc77b848 159
Mateom0104 0:7330cc77b848 160 }
Mateom0104 0:7330cc77b848 161 /////////////////////////////////////////////////////////////////////////////// Lectura sensores
Mateom0104 0:7330cc77b848 162 void sensores(void)
Mateom0104 0:7330cc77b848 163 {
Mateom0104 0:7330cc77b848 164 fin_x= finx.read();
Mateom0104 0:7330cc77b848 165 fin_y= finy.read();
Mateom0104 0:7330cc77b848 166
Mateom0104 0:7330cc77b848 167
Mateom0104 0:7330cc77b848 168 datos[1] = p1.read();
Mateom0104 0:7330cc77b848 169 datos[2] = p2.read();
Mateom0104 0:7330cc77b848 170 datos[3] = p3.read();
Mateom0104 0:7330cc77b848 171 datos[4] = p4.read();
Mateom0104 0:7330cc77b848 172 datos[5] = p5.read();
Mateom0104 0:7330cc77b848 173 datos[6] = p6.read();
Mateom0104 0:7330cc77b848 174 datos[7] = p7.read();
Mateom0104 0:7330cc77b848 175 datos[8] = p8.read();
Mateom0104 0:7330cc77b848 176 datos[9] = p9.read();
Mateom0104 0:7330cc77b848 177
Mateom0104 0:7330cc77b848 178 /*
Mateom0104 0:7330cc77b848 179 pc.printf("%d ",fin_x);
Mateom0104 0:7330cc77b848 180 pc.printf("%d \n\n",fin_y);
Mateom0104 0:7330cc77b848 181
Mateom0104 0:7330cc77b848 182 pc.printf("%d ",datos[1]);
Mateom0104 0:7330cc77b848 183 pc.printf("%d ",datos[2]);
Mateom0104 0:7330cc77b848 184 pc.printf("%d \n",datos[3]);
Mateom0104 0:7330cc77b848 185 pc.printf("%d ",datos[4]);
Mateom0104 0:7330cc77b848 186 pc.printf("%d ",datos[5]);
Mateom0104 0:7330cc77b848 187 pc.printf("%d \n",datos[6]);
Mateom0104 0:7330cc77b848 188 pc.printf("%d ",datos[7]);
Mateom0104 0:7330cc77b848 189 pc.printf("%d ",datos[8]);
Mateom0104 0:7330cc77b848 190 pc.printf("%d \n\n\n",datos[9]);
Mateom0104 0:7330cc77b848 191 */
Mateom0104 0:7330cc77b848 192 }
Mateom0104 0:7330cc77b848 193
Mateom0104 0:7330cc77b848 194 ////////////////////////////////////////////////////////////////////////////////main
Mateom0104 0:7330cc77b848 195 int main() {
Mateom0104 0:7330cc77b848 196
Mateom0104 0:7330cc77b848 197
Mateom0104 0:7330cc77b848 198 while(a==0)
Mateom0104 0:7330cc77b848 199 a = pc.getc();
Mateom0104 0:7330cc77b848 200
Mateom0104 0:7330cc77b848 201 pc.printf("Inicio \n");
Mateom0104 0:7330cc77b848 202 origen();
Mateom0104 0:7330cc77b848 203 inicio();
Mateom0104 0:7330cc77b848 204 contador=2;
Mateom0104 0:7330cc77b848 205
Mateom0104 0:7330cc77b848 206
Mateom0104 0:7330cc77b848 207 while(1)
Mateom0104 0:7330cc77b848 208 {
Mateom0104 0:7330cc77b848 209 pc.printf("Turno virtual \n");
Mateom0104 0:7330cc77b848 210 pc.printf("Ingrese la posicion ha jugar \n");
Mateom0104 0:7330cc77b848 211 a = pc.getc();
Mateom0104 0:7330cc77b848 212 posicion=a-48;
Mateom0104 0:7330cc77b848 213 movimientos();
Mateom0104 0:7330cc77b848 214 fin();
Mateom0104 0:7330cc77b848 215 sensores();
Mateom0104 0:7330cc77b848 216
Mateom0104 0:7330cc77b848 217 for(i=1;i<=9;i++)
Mateom0104 0:7330cc77b848 218 datos2[i]=datos[i];
Mateom0104 0:7330cc77b848 219
Mateom0104 0:7330cc77b848 220 pc.printf("Turno Fisico \n");
Mateom0104 0:7330cc77b848 221 while(v==0)
Mateom0104 0:7330cc77b848 222 {
Mateom0104 0:7330cc77b848 223 sensores();
Mateom0104 0:7330cc77b848 224 for(i=0;i<=9;i++)
Mateom0104 0:7330cc77b848 225 suma=suma+datos[i];
Mateom0104 0:7330cc77b848 226
Mateom0104 0:7330cc77b848 227 if(suma==contador)
Mateom0104 0:7330cc77b848 228 v=1;
Mateom0104 0:7330cc77b848 229 suma=0;
Mateom0104 0:7330cc77b848 230 }
Mateom0104 0:7330cc77b848 231 v=0;
Mateom0104 0:7330cc77b848 232 contador=contador+2;
Mateom0104 0:7330cc77b848 233
Mateom0104 0:7330cc77b848 234 for(i=0;i<=9;i++)
Mateom0104 0:7330cc77b848 235 {
Mateom0104 0:7330cc77b848 236 if(datos[i] != datos2[i])
Mateom0104 0:7330cc77b848 237 pc.printf("%i \n",i);
Mateom0104 0:7330cc77b848 238 }
Mateom0104 0:7330cc77b848 239
Mateom0104 0:7330cc77b848 240 }
Mateom0104 0:7330cc77b848 241 }