Johan Felipe Parraga / Mbed 2 deprecated ENTREGAFINALCUADRUPEDO

Dependencies:   mbed

Committer:
JohanParraga
Date:
Thu Nov 22 01:34:07 2018 +0000
Revision:
4:05cffda0b6a6
Parent:
2:ff10ffd246e2
trabajo final

Who changed what in which revision?

UserRevisionLine numberNew contents of line
fabeltranm 0:89b318e49395 1 #include "mbed.h"
fabeltranm 0:89b318e49395 2 #include "main.h"
fabeltranm 0:89b318e49395 3
JohanParraga 2:ff10ffd246e2 4 Timer tiempo;
JohanParraga 4:05cffda0b6a6 5 Timeout timeout;
fabeltranm 0:89b318e49395 6 Serial command(USBTX, USBRX);
fabeltranm 0:89b318e49395 7
JohanParraga 2:ff10ffd246e2 8 DigitalIn entrada (PC_9);
JohanParraga 2:ff10ffd246e2 9 DigitalOut S0 (PA_9);
JohanParraga 2:ff10ffd246e2 10 DigitalOut S1 (PA_8);
JohanParraga 2:ff10ffd246e2 11 DigitalOut S3 (PC_7);
JohanParraga 2:ff10ffd246e2 12 DigitalOut S2 (PA_10);
fabeltranm 0:89b318e49395 13
JohanParraga 2:ff10ffd246e2 14 AnalogIn analog_valueX(A0);
JohanParraga 2:ff10ffd246e2 15 AnalogIn analog_valueY(A1);
JohanParraga 2:ff10ffd246e2 16
JohanParraga 2:ff10ffd246e2 17 int valor;
JohanParraga 2:ff10ffd246e2 18 int color=0;
JohanParraga 2:ff10ffd246e2 19 int rojo=0;
JohanParraga 2:ff10ffd246e2 20 int azul=0;
JohanParraga 2:ff10ffd246e2 21 int verde=0;
JohanParraga 2:ff10ffd246e2 22 int Detectar();
JohanParraga 2:ff10ffd246e2 23 int tme=0;
fabeltranm 0:89b318e49395 24
JohanParraga 4:05cffda0b6a6 25
fabeltranm 0:89b318e49395 26 int main() {
fabeltranm 0:89b318e49395 27 init_servo();
JohanParraga 2:ff10ffd246e2 28 init_serial();
fabeltranm 0:89b318e49395 29 debug_m("inicio \n");
JohanParraga 4:05cffda0b6a6 30 timeout.attach(&timer_interrupt,10);
JohanParraga 2:ff10ffd246e2 31 uint32_t read_cc;
fabeltranm 0:89b318e49395 32 while(1)
fabeltranm 0:89b318e49395 33 {
JohanParraga 2:ff10ffd246e2 34 read_cc=read_command();
fabeltranm 0:89b318e49395 35 switch (read_cc) {
JohanParraga 2:ff10ffd246e2 36 case 0x01: moving(); break ;
JohanParraga 2:ff10ffd246e2 37 case 0x02: moving2();break ;
JohanParraga 2:ff10ffd246e2 38 case 0x03: sensor();break ;
JohanParraga 2:ff10ffd246e2 39 case 0x04: joystick();break;
fabeltranm 0:89b318e49395 40 }
fabeltranm 0:89b318e49395 41 }
fabeltranm 0:89b318e49395 42 }
fabeltranm 0:89b318e49395 43
fabeltranm 0:89b318e49395 44 uint32_t read_command()
JohanParraga 4:05cffda0b6a6 45 {
fabeltranm 0:89b318e49395 46
JohanParraga 2:ff10ffd246e2 47
JohanParraga 2:ff10ffd246e2 48 char intc=command.getc();
JohanParraga 2:ff10ffd246e2 49 while(intc != 0xFF)
JohanParraga 2:ff10ffd246e2 50 intc=command.getc();
JohanParraga 2:ff10ffd246e2 51 return command.getc();
fabeltranm 0:89b318e49395 52 }
fabeltranm 0:89b318e49395 53 void init_serial()
fabeltranm 0:89b318e49395 54 {
fabeltranm 0:89b318e49395 55 command.baud(9600);
fabeltranm 0:89b318e49395 56 }
JohanParraga 2:ff10ffd246e2 57 void moving(){
JohanParraga 2:ff10ffd246e2 58 debug_m("se inicia el comado mover..\n");
JohanParraga 2:ff10ffd246e2 59 char nmotor=command.getc();
JohanParraga 2:ff10ffd246e2 60 char pos=command.getc();
JohanParraga 2:ff10ffd246e2 61 char endc=command.getc();
JohanParraga 2:ff10ffd246e2 62 mover_ser(nmotor,pos);
JohanParraga 2:ff10ffd246e2 63 debug_m("fin del comado guardar..\n");
JohanParraga 2:ff10ffd246e2 64 }
JohanParraga 2:ff10ffd246e2 65 void moving2(){
JohanParraga 2:ff10ffd246e2 66 debug_m("se inicia el comado mover arana..\n");
JohanParraga 2:ff10ffd246e2 67 char nmotor=command.getc();
JohanParraga 2:ff10ffd246e2 68 char pos=command.getc();
JohanParraga 2:ff10ffd246e2 69 char endc=command.getc();
JohanParraga 2:ff10ffd246e2 70 mover_ser2(nmotor,pos);
JohanParraga 2:ff10ffd246e2 71 debug_m("fin del comado guardar..\n");
JohanParraga 2:ff10ffd246e2 72 }
JohanParraga 2:ff10ffd246e2 73
JohanParraga 2:ff10ffd246e2 74 void moving3(){
JohanParraga 2:ff10ffd246e2 75 debug_m("se inicia el comado caminar adelante..\n");
JohanParraga 2:ff10ffd246e2 76 derecha();
JohanParraga 2:ff10ffd246e2 77 debug_m("fin del comado guardar..\n");
JohanParraga 2:ff10ffd246e2 78 }
JohanParraga 2:ff10ffd246e2 79
JohanParraga 2:ff10ffd246e2 80 void joystick(){
JohanParraga 2:ff10ffd246e2 81
JohanParraga 2:ff10ffd246e2 82 double posX;
JohanParraga 2:ff10ffd246e2 83 double posY;
JohanParraga 2:ff10ffd246e2 84
JohanParraga 2:ff10ffd246e2 85 printf("\nJoystick\n");
JohanParraga 2:ff10ffd246e2 86
JohanParraga 2:ff10ffd246e2 87 while(1) {
JohanParraga 2:ff10ffd246e2 88
JohanParraga 2:ff10ffd246e2 89 posX = analog_valueX.read();
JohanParraga 2:ff10ffd246e2 90 posY = analog_valueY.read();
JohanParraga 2:ff10ffd246e2 91
JohanParraga 2:ff10ffd246e2 92 posX = posX * 3300;
JohanParraga 2:ff10ffd246e2 93 posY = posY * 3300;
JohanParraga 2:ff10ffd246e2 94 if (posX > 3000) {
JohanParraga 2:ff10ffd246e2 95 debug_m("se inicia el comado mover a la derecha por joystick..\n");
JohanParraga 2:ff10ffd246e2 96 derecha();
JohanParraga 2:ff10ffd246e2 97 }
JohanParraga 2:ff10ffd246e2 98
JohanParraga 2:ff10ffd246e2 99 else if (posX < 1000) {
JohanParraga 2:ff10ffd246e2 100 debug_m("se inicia el comado mover a la izquierda por joystick..\n");
JohanParraga 2:ff10ffd246e2 101 izquierda();
JohanParraga 2:ff10ffd246e2 102 }
JohanParraga 2:ff10ffd246e2 103
JohanParraga 2:ff10ffd246e2 104 else if (posY > 3000) {
JohanParraga 2:ff10ffd246e2 105 debug_m("se inicia el comado mover a la adelante por joystick..\n");
JohanParraga 2:ff10ffd246e2 106 adelante();
JohanParraga 2:ff10ffd246e2 107 }
JohanParraga 2:ff10ffd246e2 108
JohanParraga 2:ff10ffd246e2 109 else if (posY < 1000) {
JohanParraga 2:ff10ffd246e2 110 debug_m("se inicia el comado mover hacia atras por joystick..\n");
JohanParraga 2:ff10ffd246e2 111 atras();
JohanParraga 2:ff10ffd246e2 112 }
JohanParraga 2:ff10ffd246e2 113
JohanParraga 2:ff10ffd246e2 114 else {
JohanParraga 2:ff10ffd246e2 115 }
JohanParraga 2:ff10ffd246e2 116 wait(1); //
JohanParraga 2:ff10ffd246e2 117 }
JohanParraga 2:ff10ffd246e2 118
JohanParraga 4:05cffda0b6a6 119 }
JohanParraga 4:05cffda0b6a6 120
JohanParraga 4:05cffda0b6a6 121 void timer_interrupt(){
JohanParraga 4:05cffda0b6a6 122
JohanParraga 4:05cffda0b6a6 123 debug_m("interrumpido..\n");
JohanParraga 4:05cffda0b6a6 124 abajo();
JohanParraga 4:05cffda0b6a6 125
JohanParraga 4:05cffda0b6a6 126 timeout.attach(&timer_interrupt,10);
JohanParraga 4:05cffda0b6a6 127 }
fabeltranm 0:89b318e49395 128
JohanParraga 2:ff10ffd246e2 129 void sensor()
JohanParraga 2:ff10ffd246e2 130 {
JohanParraga 2:ff10ffd246e2 131 while(1){
JohanParraga 2:ff10ffd246e2 132 color=command.getc();
JohanParraga 2:ff10ffd246e2 133 S0=1;
JohanParraga 2:ff10ffd246e2 134 S1=1;
JohanParraga 2:ff10ffd246e2 135 S2=0;
JohanParraga 2:ff10ffd246e2 136 S3=0;
JohanParraga 2:ff10ffd246e2 137 rojo=Detectar();
JohanParraga 2:ff10ffd246e2 138 command.printf("ROJO ");
JohanParraga 2:ff10ffd246e2 139 command.printf("%d ",rojo);
JohanParraga 2:ff10ffd246e2 140 S0=1;
JohanParraga 2:ff10ffd246e2 141 S1=1;
JohanParraga 2:ff10ffd246e2 142 S2=0;
JohanParraga 2:ff10ffd246e2 143 S3=1;
JohanParraga 2:ff10ffd246e2 144 azul=Detectar();
JohanParraga 2:ff10ffd246e2 145 command.printf("AZUL ");
JohanParraga 2:ff10ffd246e2 146 command.printf("%d ",azul);
JohanParraga 2:ff10ffd246e2 147 S0=1;
JohanParraga 2:ff10ffd246e2 148 S1=1;
JohanParraga 2:ff10ffd246e2 149 S2=1;
JohanParraga 2:ff10ffd246e2 150 S3=1;
JohanParraga 2:ff10ffd246e2 151 verde=Detectar();
JohanParraga 2:ff10ffd246e2 152 command.printf("VERDE");
JohanParraga 2:ff10ffd246e2 153 command.printf("%d\n ",verde);
JohanParraga 2:ff10ffd246e2 154
JohanParraga 2:ff10ffd246e2 155
JohanParraga 2:ff10ffd246e2 156 if ((rojo>500)&(rojo<700) & (azul>100)&(azul<200) & (verde>100)&(verde<200)){
JohanParraga 2:ff10ffd246e2 157
JohanParraga 2:ff10ffd246e2 158 abajo();
JohanParraga 2:ff10ffd246e2 159
JohanParraga 2:ff10ffd246e2 160
JohanParraga 2:ff10ffd246e2 161 command.printf("AZUL \n");}
JohanParraga 2:ff10ffd246e2 162
JohanParraga 2:ff10ffd246e2 163 else{
JohanParraga 2:ff10ffd246e2 164 if ((rojo>0)&(rojo<200) & (azul>200)&(azul<400) & (verde>200)&(verde<400)){
JohanParraga 2:ff10ffd246e2 165
JohanParraga 2:ff10ffd246e2 166 arriba();
JohanParraga 2:ff10ffd246e2 167
JohanParraga 2:ff10ffd246e2 168 command.printf("ROJO\n");}
JohanParraga 2:ff10ffd246e2 169
JohanParraga 2:ff10ffd246e2 170 else{
JohanParraga 2:ff10ffd246e2 171
JohanParraga 2:ff10ffd246e2 172 if ((rojo>400)&(rojo<600) & (azul>200)&(azul<300) & (verde>200)&(verde<300)){
JohanParraga 2:ff10ffd246e2 173
JohanParraga 2:ff10ffd246e2 174 adelante();
JohanParraga 2:ff10ffd246e2 175
JohanParraga 2:ff10ffd246e2 176 command.printf("VERDE\n");}
JohanParraga 2:ff10ffd246e2 177
JohanParraga 2:ff10ffd246e2 178 else{
JohanParraga 2:ff10ffd246e2 179 command.printf("COLOR NO VALIDO\n");
JohanParraga 2:ff10ffd246e2 180 }
JohanParraga 2:ff10ffd246e2 181 }
JohanParraga 2:ff10ffd246e2 182 }
JohanParraga 2:ff10ffd246e2 183 }
JohanParraga 2:ff10ffd246e2 184 }
fabeltranm 0:89b318e49395 185
JohanParraga 2:ff10ffd246e2 186 int Detectar(){
JohanParraga 2:ff10ffd246e2 187 tme=0;
JohanParraga 2:ff10ffd246e2 188 while (!entrada){}
JohanParraga 2:ff10ffd246e2 189 while (entrada) {}
JohanParraga 2:ff10ffd246e2 190 while (!entrada){}
JohanParraga 2:ff10ffd246e2 191 tiempo.start();
JohanParraga 2:ff10ffd246e2 192 while (entrada) {}
JohanParraga 2:ff10ffd246e2 193 while (!entrada){}
JohanParraga 2:ff10ffd246e2 194 while (entrada) {}
JohanParraga 2:ff10ffd246e2 195 while (!entrada){}
JohanParraga 2:ff10ffd246e2 196 while (entrada) {}
JohanParraga 2:ff10ffd246e2 197 tiempo.stop();
JohanParraga 2:ff10ffd246e2 198 tme=tiempo.read_us();
JohanParraga 2:ff10ffd246e2 199 tiempo.reset();
JohanParraga 2:ff10ffd246e2 200 return(tme);
fabeltranm 0:89b318e49395 201
JohanParraga 2:ff10ffd246e2 202
JohanParraga 2:ff10ffd246e2 203 }
JohanParraga 2:ff10ffd246e2 204
JohanParraga 2:ff10ffd246e2 205
fabeltranm 0:89b318e49395 206
fabeltranm 0:89b318e49395 207 void debug_m(char *s , ... ){
fabeltranm 0:89b318e49395 208 #if DEBUG
fabeltranm 0:89b318e49395 209 command.printf(s);
fabeltranm 0:89b318e49395 210 #endif
fabeltranm 0:89b318e49395 211 }