Oscar de Jesus Vasquez
/
CordinateMachine
maquina de corrdenadas cartesianas con steppers
main.cpp@0:9c1353d0ca2a, 2015-05-07 (annotated)
- Committer:
- oscarvzfz
- Date:
- Thu May 07 23:03:56 2015 +0000
- Revision:
- 0:9c1353d0ca2a
...
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
oscarvzfz | 0:9c1353d0ca2a | 1 | ///////////////////////////////////////////////////////////////////////////////////// |
oscarvzfz | 0:9c1353d0ca2a | 2 | //Libreria de la tarjeta LPC1768 |
oscarvzfz | 0:9c1353d0ca2a | 3 | #include "mbed.h" |
oscarvzfz | 0:9c1353d0ca2a | 4 | //Libreria para control de motores a paso por pulso con easydriver |
oscarvzfz | 0:9c1353d0ca2a | 5 | #include "stepper.h" |
oscarvzfz | 0:9c1353d0ca2a | 6 | ///////////////////////////////////////////////////////////////////////////////////// |
oscarvzfz | 0:9c1353d0ca2a | 7 | //Definicion del puerto serial delo cotrolador |
oscarvzfz | 0:9c1353d0ca2a | 8 | Serial pc(USBTX,USBRX); |
oscarvzfz | 0:9c1353d0ca2a | 9 | //Definicion de los pines para el control de eje X (Pulso, Direccion) |
oscarvzfz | 0:9c1353d0ca2a | 10 | stepper x(p27,p28); |
oscarvzfz | 0:9c1353d0ca2a | 11 | //Definicion del pin para activacion de ahorro de energia en eje X |
oscarvzfz | 0:9c1353d0ca2a | 12 | DigitalOut sx(p29); |
oscarvzfz | 0:9c1353d0ca2a | 13 | //Definicion de los pines para el control de eje Y (Pulso, Direccion) |
oscarvzfz | 0:9c1353d0ca2a | 14 | stepper y(p24,p25); |
oscarvzfz | 0:9c1353d0ca2a | 15 | //Definicion del pin para activacion de ahorro de energia en eje Y |
oscarvzfz | 0:9c1353d0ca2a | 16 | DigitalOut sy(p26); |
oscarvzfz | 0:9c1353d0ca2a | 17 | //Definicion de los pines para el control de eje Z (Pulso, Direccion) |
oscarvzfz | 0:9c1353d0ca2a | 18 | stepper z(p21,p22); |
oscarvzfz | 0:9c1353d0ca2a | 19 | //Definicion del pin para activacion de ahorro de energia en eje X |
oscarvzfz | 0:9c1353d0ca2a | 20 | DigitalOut sz(p23); |
oscarvzfz | 0:9c1353d0ca2a | 21 | //Contador para los ciclos for de pasos para ejes X, Y, Z y combinaciones(Diagonales) |
oscarvzfz | 0:9c1353d0ca2a | 22 | int contx=0; |
oscarvzfz | 0:9c1353d0ca2a | 23 | int conty=0; |
oscarvzfz | 0:9c1353d0ca2a | 24 | int contz=0; |
oscarvzfz | 0:9c1353d0ca2a | 25 | int contd=0; |
oscarvzfz | 0:9c1353d0ca2a | 26 | //Contadot de while para diagonales |
oscarvzfz | 0:9c1353d0ca2a | 27 | int n=0; |
oscarvzfz | 0:9c1353d0ca2a | 28 | //COntadores de pasos generales para envio de ubicacion |
oscarvzfz | 0:9c1353d0ca2a | 29 | int stepcx=0; |
oscarvzfz | 0:9c1353d0ca2a | 30 | int stepcy=0; |
oscarvzfz | 0:9c1353d0ca2a | 31 | int stepcz=0; |
oscarvzfz | 0:9c1353d0ca2a | 32 | //Definicion de la variable para control |
oscarvzfz | 0:9c1353d0ca2a | 33 | char control='0'; |
oscarvzfz | 0:9c1353d0ca2a | 34 | ///////////////////////////////////////////////////////////////////////////////////// |
oscarvzfz | 0:9c1353d0ca2a | 35 | ///////////////////////////////////////////////////////////////////////////////////// |
oscarvzfz | 0:9c1353d0ca2a | 36 | |
oscarvzfz | 0:9c1353d0ca2a | 37 | //Definicion de funcion con la resolucion adecuada de 5mm.Recibe Informacion de numero de veces y direccion |
oscarvzfz | 0:9c1353d0ca2a | 38 | void xm(int px,int xd) |
oscarvzfz | 0:9c1353d0ca2a | 39 | { |
oscarvzfz | 0:9c1353d0ca2a | 40 | //Desactivacion del modo de ahorro de energia |
oscarvzfz | 0:9c1353d0ca2a | 41 | sx=1; |
oscarvzfz | 0:9c1353d0ca2a | 42 | //Definiciond el numero de veces que realizara el movimiento |
oscarvzfz | 0:9c1353d0ca2a | 43 | for(contx=1;contx<=px;contx++) |
oscarvzfz | 0:9c1353d0ca2a | 44 | { //If para comprobar direccion |
oscarvzfz | 0:9c1353d0ca2a | 45 | if(xd==0) |
oscarvzfz | 0:9c1353d0ca2a | 46 | //Uso de la libreria para definir los pasos direccion velocidad |
oscarvzfz | 0:9c1353d0ca2a | 47 | //y aceleracion del pulso ademas de incremento del contador de pasos |
oscarvzfz | 0:9c1353d0ca2a | 48 | {x.step(5344,0,200,0);stepcx=stepcx-5344;} |
oscarvzfz | 0:9c1353d0ca2a | 49 | else |
oscarvzfz | 0:9c1353d0ca2a | 50 | {x.step(5344,1,200,0);stepcx=stepcx+5344;} |
oscarvzfz | 0:9c1353d0ca2a | 51 | |
oscarvzfz | 0:9c1353d0ca2a | 52 | } |
oscarvzfz | 0:9c1353d0ca2a | 53 | //Activacion del modo de ahorro de energia |
oscarvzfz | 0:9c1353d0ca2a | 54 | sx=0; |
oscarvzfz | 0:9c1353d0ca2a | 55 | //Limpieza de contador de movimientos |
oscarvzfz | 0:9c1353d0ca2a | 56 | contx=0; |
oscarvzfz | 0:9c1353d0ca2a | 57 | } |
oscarvzfz | 0:9c1353d0ca2a | 58 | //Definicion demovimientos para el eje Y |
oscarvzfz | 0:9c1353d0ca2a | 59 | void ym(int py,int yd) |
oscarvzfz | 0:9c1353d0ca2a | 60 | { |
oscarvzfz | 0:9c1353d0ca2a | 61 | sy=1; |
oscarvzfz | 0:9c1353d0ca2a | 62 | for(conty=1;conty<=py;conty++) |
oscarvzfz | 0:9c1353d0ca2a | 63 | { |
oscarvzfz | 0:9c1353d0ca2a | 64 | if(yd==0) |
oscarvzfz | 0:9c1353d0ca2a | 65 | {y.step(6400,0,200,0);stepcy=stepcy-6400;} |
oscarvzfz | 0:9c1353d0ca2a | 66 | else |
oscarvzfz | 0:9c1353d0ca2a | 67 | {y.step(6400,1,200,0);stepcy=stepcy+6400;} |
oscarvzfz | 0:9c1353d0ca2a | 68 | |
oscarvzfz | 0:9c1353d0ca2a | 69 | } |
oscarvzfz | 0:9c1353d0ca2a | 70 | sy=0; |
oscarvzfz | 0:9c1353d0ca2a | 71 | conty=0; |
oscarvzfz | 0:9c1353d0ca2a | 72 | } |
oscarvzfz | 0:9c1353d0ca2a | 73 | //Definicion de movimientos de eje Z |
oscarvzfz | 0:9c1353d0ca2a | 74 | void zm(int pz,int zd) |
oscarvzfz | 0:9c1353d0ca2a | 75 | { |
oscarvzfz | 0:9c1353d0ca2a | 76 | sz=1; |
oscarvzfz | 0:9c1353d0ca2a | 77 | for(contz=1;contz<=pz;contz++) |
oscarvzfz | 0:9c1353d0ca2a | 78 | { |
oscarvzfz | 0:9c1353d0ca2a | 79 | if(zd==0) |
oscarvzfz | 0:9c1353d0ca2a | 80 | {z.step(5443,0,200,0);stepcz=stepcz-5443;} |
oscarvzfz | 0:9c1353d0ca2a | 81 | else |
oscarvzfz | 0:9c1353d0ca2a | 82 | {z.step(5443,1,200,0);stepcz=stepcz+5443;} |
oscarvzfz | 0:9c1353d0ca2a | 83 | |
oscarvzfz | 0:9c1353d0ca2a | 84 | } |
oscarvzfz | 0:9c1353d0ca2a | 85 | sz=0; |
oscarvzfz | 0:9c1353d0ca2a | 86 | contz=0; |
oscarvzfz | 0:9c1353d0ca2a | 87 | } |
oscarvzfz | 0:9c1353d0ca2a | 88 | // Definicion de los movimientos diagonales |
oscarvzfz | 0:9c1353d0ca2a | 89 | void dm(int pd,int dd) |
oscarvzfz | 0:9c1353d0ca2a | 90 | { |
oscarvzfz | 0:9c1353d0ca2a | 91 | //Desactivacion delmodo de ahorro en dos ejes x Y |
oscarvzfz | 0:9c1353d0ca2a | 92 | sx=1; |
oscarvzfz | 0:9c1353d0ca2a | 93 | sy=1; |
oscarvzfz | 0:9c1353d0ca2a | 94 | //Definiciond e ciclo for para la cantidad de movimiento diagonales |
oscarvzfz | 0:9c1353d0ca2a | 95 | for(contd=1;contd<=pd;contd++) |
oscarvzfz | 0:9c1353d0ca2a | 96 | { //Bloque if para determinar el tipo de diagonal |
oscarvzfz | 0:9c1353d0ca2a | 97 | if(dd==0) |
oscarvzfz | 0:9c1353d0ca2a | 98 | //Ciclo while con moviento combinado de ejes y sus respectivas sumas a contadores de pasos |
oscarvzfz | 0:9c1353d0ca2a | 99 | {while(n<1000){y.step(6,1,200,0);x.step(5,0,200,0);n++;stepcx=stepcx-5;stepcy=stepcy+6;}n=0;} |
oscarvzfz | 0:9c1353d0ca2a | 100 | else if(dd==1) |
oscarvzfz | 0:9c1353d0ca2a | 101 | {while(n<1000){y.step(6,0,200,0);x.step(5,0,200,0);n++;stepcx=stepcx-5;stepcy=stepcy-6;}n=0;} |
oscarvzfz | 0:9c1353d0ca2a | 102 | else if(dd==2) |
oscarvzfz | 0:9c1353d0ca2a | 103 | {while(n<1000){y.step(6,1,200,0);x.step(5,1,200,0);n++;stepcx=stepcx+5;stepcy=stepcy+6;}n=0;} |
oscarvzfz | 0:9c1353d0ca2a | 104 | else |
oscarvzfz | 0:9c1353d0ca2a | 105 | {while(n<1000){y.step(6,0,200,0);x.step(5,1,200,0);n++;stepcx=stepcx+5;stepcy=stepcy-6;}n=0;} |
oscarvzfz | 0:9c1353d0ca2a | 106 | |
oscarvzfz | 0:9c1353d0ca2a | 107 | } |
oscarvzfz | 0:9c1353d0ca2a | 108 | sx=0; |
oscarvzfz | 0:9c1353d0ca2a | 109 | sy=0; |
oscarvzfz | 0:9c1353d0ca2a | 110 | contd=0; |
oscarvzfz | 0:9c1353d0ca2a | 111 | } |
oscarvzfz | 0:9c1353d0ca2a | 112 | //Elsiguiente bloque de subrutinas ocupa la subrutinas definidas anteriormente |
oscarvzfz | 0:9c1353d0ca2a | 113 | //Definicion de un espaciado grande para poner entre palabras |
oscarvzfz | 0:9c1353d0ca2a | 114 | void ESM(){zm(1,1);sx=1;x.step(5344,0,200,0);sx=0;stepcx=stepcx-5344;zm(1,0);} |
oscarvzfz | 0:9c1353d0ca2a | 115 | //Definicion de un espacio pequeño para la separacion entre letras |
oscarvzfz | 0:9c1353d0ca2a | 116 | void ES(){zm(1,1);sx=1;x.step(1500,0,200,0);sx=0;stepcx=stepcx-1500;zm(1,0);} |
oscarvzfz | 0:9c1353d0ca2a | 117 | //Definicion de movimientos para la generacion de letras con su espacio |
oscarvzfz | 0:9c1353d0ca2a | 118 | void A(){ym(2,1);xm(1,0);ym(1,0);xm(1,1);xm(1,0);ym(1,0);ES();} |
oscarvzfz | 0:9c1353d0ca2a | 119 | void B(){xm(1,0);ym(1,1);xm(1,1);ym(1,1);xm(1,0);ym(1,0);xm(1,1);ym(1,0);xm(1,0);ES();} |
oscarvzfz | 0:9c1353d0ca2a | 120 | void C(){ym(2,1);xm(1,0);xm(1,1);ym(2,0);xm(1,0);ES();} |
oscarvzfz | 0:9c1353d0ca2a | 121 | void D(){xm(1,0);dm(1,0);dm(1,2);xm(1,1);ym(2,0);zm(1,1);xm(2,0);ES();zm(1,0);} |
oscarvzfz | 0:9c1353d0ca2a | 122 | void E(){ym(2,1);xm(1,0);xm(1,1);ym(1,0);xm(1,0);xm(1,1);ym(1,0);xm(1,0);ES();} |
oscarvzfz | 0:9c1353d0ca2a | 123 | void F(){ym(2,1);xm(1,0);xm(1,1);ym(1,0);xm(1,0);zm(1,1);ym(1,0);ES();zm(1,0);} |
oscarvzfz | 0:9c1353d0ca2a | 124 | void G(){ym(1,1);xm(1,0);ym(1,0);xm(1,1);ym(2,1);xm(1,0);zm(1,1);ym(2,0);ES();zm(1,0);} |
oscarvzfz | 0:9c1353d0ca2a | 125 | void H(){ym(2,1),ym(1,0);xm(1,0);ym(1,1);ym(2,0);ES();} |
oscarvzfz | 0:9c1353d0ca2a | 126 | void I(){zm(1,1);ES();ES();zm(1,0);ym(2,1);ym(2,0);zm(1,1);ES();zm(1,0);} |
oscarvzfz | 0:9c1353d0ca2a | 127 | void J(){xm(1,0);ym(2,1);ym(2,0);ES();} |
oscarvzfz | 0:9c1353d0ca2a | 128 | void K(){ym(2,1);ym(1,0);dm(1,0);dm(1,3);dm(1,1);ES();} |
oscarvzfz | 0:9c1353d0ca2a | 129 | void L(){ym(2,1);ym(2,0);xm(1,0);ES();} |
oscarvzfz | 0:9c1353d0ca2a | 130 | void M(){ym(2,1);dm(1,1);dm(1,0);ym(2,0);ES();} |
oscarvzfz | 0:9c1353d0ca2a | 131 | void N(){ym(2,1);dm(2,1);ym(2,1);ym(2,0);ES();} |
oscarvzfz | 0:9c1353d0ca2a | 132 | void O(){ym(2,1);xm(1,0);ym(2,0);xm(1,1);xm(1,0);ES();} |
oscarvzfz | 0:9c1353d0ca2a | 133 | void P(){ym(2,1);xm(1,0);ym(1,0);xm(1,1);zm(1,1);dm(1,1);ES();zm(1,0);} |
oscarvzfz | 0:9c1353d0ca2a | 134 | void R(){ym(2,1);xm(1,0);ym(1,0);xm(1,1);dm(1,1);ES();} |
oscarvzfz | 0:9c1353d0ca2a | 135 | void S(){xm(1,0);ym(1,1);xm(1,1);ym(1,1);xm(1,0);zm(1,1);ym(2,0);zm(1,0);ES();} |
oscarvzfz | 0:9c1353d0ca2a | 136 | void T(){ESM();ym(2,1);xm(1,1);xm(2,0);xm(1,1);ym(2,0);zm(1,1);xm(1,0);ES();zm(1,0);} |
oscarvzfz | 0:9c1353d0ca2a | 137 | void U(){ym(2,1);ym(2,0);xm(1,0);ym(2,1);ym(2,0);ES();} |
oscarvzfz | 0:9c1353d0ca2a | 138 | //En esta letra se utulizo un a relacion especial para las diagonales pot lo cual se vuelve |
oscarvzfz | 0:9c1353d0ca2a | 139 | //las funciones de la libreria stepper.h y ciclos for while |
oscarvzfz | 0:9c1353d0ca2a | 140 | void V() |
oscarvzfz | 0:9c1353d0ca2a | 141 | { |
oscarvzfz | 0:9c1353d0ca2a | 142 | ESM(); |
oscarvzfz | 0:9c1353d0ca2a | 143 | sx=1;sy=1;for(contd=1;contd<=2;contd++){while(n<1000){y.step(6,1,200,0);x.step(2,1,200,0);n++;stepcx=stepcx+2;stepcy=stepcy+6;}n=0;}sx=0;sy=0;contd=0; |
oscarvzfz | 0:9c1353d0ca2a | 144 | sx=1;sy=1;for(contd=1;contd<=2;contd++){while(n<1000){y.step(6,0,200,0);x.step(2,0,200,0);n++;stepcx=stepcx+2;stepcy=stepcy-6;}n=0;}sx=0;sy=0;contd=0; |
oscarvzfz | 0:9c1353d0ca2a | 145 | sx=1;sy=1;for(contd=1;contd<=2;contd++){while(n<1000){y.step(6,1,200,0);x.step(2,0,200,0);n++;stepcx=stepcx+2;stepcy=stepcy+6;}n=0;}sx=0;sy=0;contd=0; |
oscarvzfz | 0:9c1353d0ca2a | 146 | sx=1;sy=1;for(contd=1;contd<=2;contd++){while(n<1000){y.step(6,0,200,0);x.step(2,1,200,0);n++;stepcx=stepcx+2;stepcy=stepcy-6;}n=0;}sx=0;sy=0;contd=0; |
oscarvzfz | 0:9c1353d0ca2a | 147 | zm(1,1);ESM();ES();zm(1,0); |
oscarvzfz | 0:9c1353d0ca2a | 148 | } |
oscarvzfz | 0:9c1353d0ca2a | 149 | void W(){ym(2,1);ym(2,0);dm(1,0);dm(1,1);ym(2,1);ym(2,0);ES();} |
oscarvzfz | 0:9c1353d0ca2a | 150 | void X(){dm(2,0);dm(1,3);dm(1,2);dm(2,1);ES();} |
oscarvzfz | 0:9c1353d0ca2a | 151 | void Z(){dm(2,0);xm(2,1);xm(2,0);dm(2,3);xm(2,0);ES();} |
oscarvzfz | 0:9c1353d0ca2a | 152 | //Definicion de SUbrutina para retorno de carro mediante los contadores de steps y movimientos de eje z |
oscarvzfz | 0:9c1353d0ca2a | 153 | void backx(){zm(1,1);ym(3,0);stepcx=-stepcx;sx=1;x.step(stepcx,1,200,0);sx=0;stepcx=0;zm(1,0);} |
oscarvzfz | 0:9c1353d0ca2a | 154 | //Definicion de escritura de nombres usando las subrutinas de letras y espacios |
oscarvzfz | 0:9c1353d0ca2a | 155 | void OSCAR(){O();S();C();A();R();ESM();D();E();ESM();J();E();S();U();S();ESM();V();} |
oscarvzfz | 0:9c1353d0ca2a | 156 | void IKI(){I();K();I();ESM();B();A();L();A();M();ESM();R();} |
oscarvzfz | 0:9c1353d0ca2a | 157 | void LALO(){E();D();U();A();R();D();O();ESM();A();N();T();O();N();I();O();ESM();L();} |
oscarvzfz | 0:9c1353d0ca2a | 158 | //Definicon del rectangulo con las subrutinas anteriores |
oscarvzfz | 0:9c1353d0ca2a | 159 | void rectangulo(){ym(8,1);xm(14,0);ym(8,0);xm(14,1);xm(14,0);ESM();} |
oscarvzfz | 0:9c1353d0ca2a | 160 | //Definicion de triangulo con manupulacion de relacion de steps para angulos de 60° |
oscarvzfz | 0:9c1353d0ca2a | 161 | //con trabaja trigonometrico paratener las mismas distancias y hacerlo equilatero. |
oscarvzfz | 0:9c1353d0ca2a | 162 | void triangulo() |
oscarvzfz | 0:9c1353d0ca2a | 163 | { |
oscarvzfz | 0:9c1353d0ca2a | 164 | xm(4,0);sx=1;sy=1; |
oscarvzfz | 0:9c1353d0ca2a | 165 | while(n<2223){y.step(9,1,200,0);x.step(5,1,200,0);n++;stepcx=stepcx+5;stepcy=stepcy+9;}n=0; |
oscarvzfz | 0:9c1353d0ca2a | 166 | while(n<2223){y.step(9,0,200,0);x.step(5,1,200,0);n++;stepcx=stepcx-5;stepcy=stepcy-9;}n=0; |
oscarvzfz | 0:9c1353d0ca2a | 167 | sx=0;sy=0; |
oscarvzfz | 0:9c1353d0ca2a | 168 | } |
oscarvzfz | 0:9c1353d0ca2a | 169 | //Definicion de linea de 8.5 cm con las subrutinas de movimientos |
oscarvzfz | 0:9c1353d0ca2a | 170 | void line(){xm(17,0);} |
oscarvzfz | 0:9c1353d0ca2a | 171 | //Definicion del pentagono con manupulacion de relacion de steps para angulos de 108° y 72° |
oscarvzfz | 0:9c1353d0ca2a | 172 | //y distancias para que cerrarar el pentagono |
oscarvzfz | 0:9c1353d0ca2a | 173 | void penta(){ |
oscarvzfz | 0:9c1353d0ca2a | 174 | sx=1;sy=1; |
oscarvzfz | 0:9c1353d0ca2a | 175 | while(n<9828){y.step(1,1,200,0);x.step(2,1,200,0);n++;stepcx=stepcx+2;stepcy=stepcy+1;}n=0; |
oscarvzfz | 0:9c1353d0ca2a | 176 | while(n<2005){y.step(11,0,200,0);x.step(5,1,200,0);n++;stepcx=stepcx+5;stepcy=stepcy-11;}n=0; |
oscarvzfz | 0:9c1353d0ca2a | 177 | while(n<2005){y.step(11,0,200,0);x.step(5,0,200,0);n++;stepcx=stepcx-5;stepcy=stepcy-11;}n=0; |
oscarvzfz | 0:9c1353d0ca2a | 178 | while(n<9828){y.step(1,1,200,0);x.step(2,0,200,0);n++;stepcx=stepcx-2;stepcy=stepcy+1;}n=0; |
oscarvzfz | 0:9c1353d0ca2a | 179 | sx=0;sy=0; |
oscarvzfz | 0:9c1353d0ca2a | 180 | ym(4,1); |
oscarvzfz | 0:9c1353d0ca2a | 181 | } |
oscarvzfz | 0:9c1353d0ca2a | 182 | //Definicion de SUbrutina para reiniciar los contadores de steps los cuales sirven |
oscarvzfz | 0:9c1353d0ca2a | 183 | //para retrorno de carro y envio de ubicacion. |
oscarvzfz | 0:9c1353d0ca2a | 184 | void origin(){stepcx=0;stepcy=0;stepcz=0;} |
oscarvzfz | 0:9c1353d0ca2a | 185 | ///////////////////////////////////////////////////////////////////////////////////// |
oscarvzfz | 0:9c1353d0ca2a | 186 | ///////////////////////////////////////////////////////////////////////////////////// |
oscarvzfz | 0:9c1353d0ca2a | 187 | int main() |
oscarvzfz | 0:9c1353d0ca2a | 188 | { |
oscarvzfz | 0:9c1353d0ca2a | 189 | //El puerto serial por default se configura a 9600 bauds |
oscarvzfz | 0:9c1353d0ca2a | 190 | //Se define un cilo infinito para capturar el serial constantemente |
oscarvzfz | 0:9c1353d0ca2a | 191 | while(1) |
oscarvzfz | 0:9c1353d0ca2a | 192 | { |
oscarvzfz | 0:9c1353d0ca2a | 193 | //Instruccion para determinar si hay algun proveniente de la interfaz en puerto |
oscarvzfz | 0:9c1353d0ca2a | 194 | //si si se asigna el caracter a la variable de control. |
oscarvzfz | 0:9c1353d0ca2a | 195 | if (pc.readable()) |
oscarvzfz | 0:9c1353d0ca2a | 196 | { |
oscarvzfz | 0:9c1353d0ca2a | 197 | control=pc.getc(); |
oscarvzfz | 0:9c1353d0ca2a | 198 | } |
oscarvzfz | 0:9c1353d0ca2a | 199 | //Serie condicional para determinar el caracter recibido |
oscarvzfz | 0:9c1353d0ca2a | 200 | //por serial y determinacion de caso a realizar |
oscarvzfz | 0:9c1353d0ca2a | 201 | //basicamente es el punto de relacion entre la interfaz y el controlador |
oscarvzfz | 0:9c1353d0ca2a | 202 | //Condicionales para control manual |
oscarvzfz | 0:9c1353d0ca2a | 203 | if(control=='d'){xm(1,1);} |
oscarvzfz | 0:9c1353d0ca2a | 204 | else if(control=='a'){xm(1,0);} |
oscarvzfz | 0:9c1353d0ca2a | 205 | else if(control=='w'){ym(1,1);} |
oscarvzfz | 0:9c1353d0ca2a | 206 | else if(control=='s'){ym(1,0);} |
oscarvzfz | 0:9c1353d0ca2a | 207 | else if(control=='1'){zm(1,1);} |
oscarvzfz | 0:9c1353d0ca2a | 208 | else if(control=='2'){zm(1,0);} |
oscarvzfz | 0:9c1353d0ca2a | 209 | //Condicionales para control automatico |
oscarvzfz | 0:9c1353d0ca2a | 210 | else if(control=='l'){line();} |
oscarvzfz | 0:9c1353d0ca2a | 211 | else if(control=='t'){triangulo();} |
oscarvzfz | 0:9c1353d0ca2a | 212 | else if(control=='r'){rectangulo();} |
oscarvzfz | 0:9c1353d0ca2a | 213 | else if(control=='p'){penta();} |
oscarvzfz | 0:9c1353d0ca2a | 214 | else if(control=='n'){OSCAR();backx();IKI();backx();LALO();backx();} |
oscarvzfz | 0:9c1353d0ca2a | 215 | //Condicional para definir origen (Reset de contadores) |
oscarvzfz | 0:9c1353d0ca2a | 216 | else if(control=='o'){origin();} |
oscarvzfz | 0:9c1353d0ca2a | 217 | //Limpieza de variable de control para evitar bucle |
oscarvzfz | 0:9c1353d0ca2a | 218 | control='0';ts |
oscarvzfz | 0:9c1353d0ca2a | 219 | //Escritura continua de posicion de los ejes en steps al puerto serial con espaciado para no perder |
oscarvzfz | 0:9c1353d0ca2a | 220 | //informacion por desincronizacion de escritura-lectura. |
oscarvzfz | 0:9c1353d0ca2a | 221 | pc.printf("--------,%i,%i,%i,-------\n",stepcx,stepcy,stepcz); |
oscarvzfz | 0:9c1353d0ca2a | 222 | |
oscarvzfz | 0:9c1353d0ca2a | 223 | } |
oscarvzfz | 0:9c1353d0ca2a | 224 | |
oscarvzfz | 0:9c1353d0ca2a | 225 | |
oscarvzfz | 0:9c1353d0ca2a | 226 | } |