Johan Felipe Parraga / Mbed 2 deprecated ENTREGAFINALCUADRUPEDO

Dependencies:   mbed

Committer:
JohanParraga
Date:
Tue Nov 20 02:26:04 2018 +0000
Revision:
2:ff10ffd246e2
Parent:
1:526bdd5faa37
Child:
4:05cffda0b6a6
ENTREGA FINAL CUADRUPEDO

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