1 00:00:01,520 --> 00:00:09,699 Hola, en esta práctica vamos a aprender cómo se controla, cómo se utiliza con el Arduino un sensor de ultrasonidos. 2 00:00:09,919 --> 00:00:19,620 El sensor de ultrasonidos o de proximidad nos permite detectar si hay algún objeto cerca o incluso nos dice a qué distancia está. 3 00:00:19,760 --> 00:00:29,079 Esto es muy útil en los robots, por ejemplo en robots móviles tipo cochecito para saber si se están acercando a un objeto y cómo de cerca están. 4 00:00:29,079 --> 00:00:34,100 el componente lo tenéis por aquí en la biblioteca 5 00:00:34,100 --> 00:00:37,100 si vamos bajando, aquí está, sensor de distancia 6 00:00:37,100 --> 00:00:39,640 aquí lo tenéis ya pinchado, sobre una placa base 7 00:00:39,640 --> 00:00:42,780 tiene tres conectores, uno va a tierra 8 00:00:42,780 --> 00:00:45,619 el cable rojo que va a través de esta línea horizontal 9 00:00:45,619 --> 00:00:49,299 a los 5 voltios de tierra, el otro rojo que es la alimentación 10 00:00:49,299 --> 00:00:52,539 5 voltios, que va a través del cable rojo 11 00:00:52,539 --> 00:00:54,859 aquí abajo a 5 voltios, y luego tenéis esto 12 00:00:54,859 --> 00:00:57,479 el conector de señal 13 00:00:57,479 --> 00:01:08,659 Este es el que utiliza el Arduino para enviarle señales al sensor de distancia. 14 00:01:08,659 --> 00:01:18,980 En realidad es una comunicación mutua, Arduino manda señales al controlador de distancia y el controlador de distancia le manda la información que tiene a través de este cable verde. 15 00:01:19,459 --> 00:01:24,500 Así es como se conecta, muy fácil, es similar a otros componentes que hemos utilizado antes. 16 00:01:24,500 --> 00:01:26,659 ¿y la programación cómo se hace? 17 00:01:26,760 --> 00:01:27,859 bueno, pues también es muy fácil 18 00:01:27,859 --> 00:01:31,019 mira, nos olvidamos de momento 19 00:01:31,019 --> 00:01:31,719 de este bloque azul 20 00:01:31,719 --> 00:01:34,819 y el momento serie que lo tenía abierto 21 00:01:34,819 --> 00:01:35,939 bueno, para programarlo 22 00:01:35,939 --> 00:01:37,959 lo importante es este 23 00:01:37,959 --> 00:01:39,359 bloque 24 00:01:39,359 --> 00:01:42,560 de color morado que es tan largo 25 00:01:42,560 --> 00:01:44,879 ¿vale? que lo tenemos aquí 26 00:01:44,879 --> 00:01:46,420 en la biblioteca de entrada 27 00:01:46,420 --> 00:01:48,780 aquí tenéis un 28 00:01:48,780 --> 00:01:50,939 que se llama leer sensor de distancia 29 00:01:50,939 --> 00:01:51,859 ultrasonico 30 00:01:51,859 --> 00:01:55,359 en el pasador del desencadenador 10 31 00:01:55,359 --> 00:01:57,780 bueno, hay que hacerse más larga 32 00:01:57,780 --> 00:01:59,579 para decir que está conectado al pasador 10 33 00:01:59,579 --> 00:02:01,599 y luego vienen dos términos que son 34 00:02:01,599 --> 00:02:05,739 esto da igual que el desencadenador 35 00:02:05,739 --> 00:02:08,180 lo dejáis tal cual, no hace falta que lo veamos 36 00:02:08,180 --> 00:02:10,800 que lo veamos con detalle, lo dejáis tal cual está 37 00:02:10,800 --> 00:02:13,560 esa es la forma normal de trabajar 38 00:02:13,560 --> 00:02:15,520 lo dejáis en el conector 10 en el que vayáis a usar 39 00:02:15,520 --> 00:02:18,439 eso si lo podéis cambiar, podéis usar el 10, el 9, lo que queráis 40 00:02:18,439 --> 00:02:21,259 esto lo dejáis como viene, igual que en el desencadenador 41 00:02:21,259 --> 00:02:29,080 Y la distancia nos deja elegir entre centímetros y pulgadas, pues vamos a dejarlo en centímetros, que nosotros utilizamos en el sistema internacional. 42 00:02:29,819 --> 00:02:36,080 Entonces, esto nos dará una lectura utilizando este bloque y esa lectura se guarda en una variable que podemos llamar distancia o como queramos. 43 00:02:36,419 --> 00:02:38,400 El bloque definir ya lo hemos usado antes, ¿vale? 44 00:02:38,479 --> 00:02:42,639 Para guardar una determinada lectura en esas cajitas que son las variables. 45 00:02:43,379 --> 00:02:49,280 Entonces, bueno, y para saber lo que estamos leyendo, utilizamos este bloque azul de imprimir en el monitor serie. 46 00:02:49,280 --> 00:02:52,599 que quiere decir que el Arduino lo va a mandar a través del monitor serie al ordenador, 47 00:02:52,680 --> 00:02:53,840 la variable esta de estancia. 48 00:02:54,379 --> 00:02:56,740 Nosotros aquí en la simulación lo vemos aquí abajo, ¿vale? 49 00:02:57,379 --> 00:03:03,120 Entonces, fijaos qué fácil, lo hemos utilizado, ya os digo, esto de leer el sensor ultrasonico, ¿vale? 50 00:03:03,580 --> 00:03:07,340 Y lo hemos metido en una cajita y esa cajita lo usamos para mandarlo a través del monitor serie. 51 00:03:08,199 --> 00:03:08,599 Facilísimo. 52 00:03:08,819 --> 00:03:10,879 Entonces, le damos a iniciar simulación. 53 00:03:12,960 --> 00:03:18,060 Aparentemente no pasa nada, pero es que lo que necesitamos es clicar sobre el componente 54 00:03:18,060 --> 00:03:24,240 Y esta bolita que hay aquí simula un objeto que estuviera en las proximidades del sensor de ultrasonidos. 55 00:03:25,180 --> 00:03:28,939 Entonces, por ejemplo, si el objeto está aquí, fijaros que está a 282 centímetros. 56 00:03:29,039 --> 00:03:31,319 ¿Y qué aparece en el puerto serie? 282. 57 00:03:31,780 --> 00:03:33,060 ¿Qué es lo que estamos haciendo? 58 00:03:33,159 --> 00:03:37,180 Guardar la lectura en la caja y la caja mandarla a través del puerto serie al ordenador. 59 00:03:37,520 --> 00:03:40,180 Si lo acercamos, 148, aparece 148. 60 00:03:41,039 --> 00:03:44,199 Si lo acercamos todavía más, 46, aparece 46. 61 00:03:44,199 --> 00:03:46,680 Y luego, efectivamente, está funcionando. 62 00:03:48,060 --> 00:03:50,439 está muy bien 63 00:03:50,439 --> 00:03:52,699 está muy bien, efectivamente 64 00:03:52,699 --> 00:03:53,280 es así 65 00:03:53,280 --> 00:03:56,580 pero bueno, alguno diría, pero es que esto aquí 66 00:03:56,580 --> 00:03:58,539 en el ordenador con una simulación, una lectura 67 00:03:58,539 --> 00:04:00,319 yo aquí no veo gran cosa 68 00:04:00,319 --> 00:04:02,300 bueno, esto tiene más sentido 69 00:04:02,300 --> 00:04:03,520 en la vida real 70 00:04:03,520 --> 00:04:05,400 yo he programado 71 00:04:05,400 --> 00:04:08,479 tengo aquí un arduino conectado 72 00:04:08,479 --> 00:04:10,599 a este sensor, olvidaos de momento 73 00:04:10,599 --> 00:04:12,560 las lucecitas, luego os explico 74 00:04:12,560 --> 00:04:14,139 de qué va, tengo aquí mi arduino 75 00:04:14,139 --> 00:04:15,939 conectado a 76 00:04:15,939 --> 00:04:33,259 A tierra hay alimentación por detrás, son los cables estos que salen por aquí, el negro y el morado, estos que están por aquí, estos vienen hasta aquí y luego por detrás una línea horizontal lo alimentan y luego el cable azul es el que viene a leer, es el cable de control. 77 00:04:33,259 --> 00:04:36,680 entonces, yo esto ya lo tengo programado 78 00:04:36,680 --> 00:04:37,620 he puesto un programa 79 00:04:37,620 --> 00:04:39,879 como el que os he enseñado a vosotros 80 00:04:39,879 --> 00:04:42,540 pero un pelín más complejo, luego os digo por qué es un pelín más complejo 81 00:04:42,540 --> 00:04:44,240 porque ese es el ejercicio que vais a hacer vosotros 82 00:04:44,240 --> 00:04:45,800 entonces, bueno, de momento 83 00:04:45,800 --> 00:04:47,899 voy a colocar esto aquí en un lado 84 00:04:47,899 --> 00:04:49,439 voy a ir al líder de arduino 85 00:04:49,439 --> 00:04:51,379 voy a sacar el 86 00:04:51,379 --> 00:04:52,680 tor serie 87 00:04:52,680 --> 00:04:56,139 y aquí, eso es una serie de valores que ya está leyendo 88 00:04:56,139 --> 00:04:57,279 ¿vale? 89 00:04:58,899 --> 00:04:59,939 entonces, claro, este modelo 90 00:04:59,939 --> 00:05:01,879 es distinto, me está leyendo 91 00:05:01,879 --> 00:05:09,800 120 y tantos, porque claro, ese es el alcance que tiene, ahora mismo no lee nada más allá 92 00:05:09,800 --> 00:05:14,980 de esos 122 centímetros, si yo pongo aquí el puño, fijaros, está leyendo 11 centímetros, 93 00:05:14,980 --> 00:05:20,660 así tiene sentido, el puño estará a unos 11 centímetros, si lo alejo un poco, marca 94 00:05:20,660 --> 00:05:26,360 13, no se mete como un ruido, por eso salta ahí el valor a un valor raro, eso pasa con, 95 00:05:26,360 --> 00:05:49,800 no pasa nada, eso es normal. Si lo alejo un poco más, marca 14, marca 10, ahí empiezan los ruidos, 15, 16, y al contrario, si lo acerco, que pone 5 centímetros, 6, 7, 8, 9, 10, luego efectivamente está midiendo la distancia que hay en mi puño. 96 00:05:49,800 --> 00:06:08,300 Está funcionando el Arduino controlando el sensor tal como lo hemos controlado aquí en el ejercicio, pero eso no es lo que tenéis que hacer, yo os pido que lo hagáis un poquito más complicado, vamos a hacerlo un poquito, pero solo un poquito y utilizando cosas que ya sabemos. 97 00:06:08,300 --> 00:06:10,519 vamos a hacer el Arduino 98 00:06:10,519 --> 00:06:12,519 esté conectado a tres lucecitas 99 00:06:12,519 --> 00:06:14,899 como estas que hay aquí, verde, amarillo, rojo 100 00:06:14,899 --> 00:06:16,300 estas están conectadas 101 00:06:16,300 --> 00:06:18,600 a 13, 12 y 11, yo leo 102 00:06:18,600 --> 00:06:20,060 en el 10, entonces 103 00:06:20,060 --> 00:06:22,540 saldrían estas, de estos tres 104 00:06:22,540 --> 00:06:24,579 conectores, 13, 11 y 10, con estos tres 105 00:06:24,579 --> 00:06:25,839 conectores, perdón, 13, 11 y 10 106 00:06:25,839 --> 00:06:28,620 controlaríamos tres LEDs, eso ya sabéis 107 00:06:28,620 --> 00:06:30,500 hacerlo, lo íbamos haciendo desde el principio 108 00:06:30,500 --> 00:06:31,860 desde que empezamos la robótica 109 00:06:31,860 --> 00:06:34,680 entonces, ¿y cuándo se van 110 00:06:34,680 --> 00:06:36,500 a encender? bueno, pues si el 111 00:06:36,500 --> 00:06:51,920 Si el objeto está muy cercano al detector de distancia se pondrá una luz roja, si está muy lejano estará verde y si está a una distancia intermedia un amarillo. 112 00:06:51,920 --> 00:06:59,660 Lo está indicando con un código de colores como de peligrosa la situación, si está muy cerca estará rojo, si está muy lejos verde está bien y si es una cosa intermedia amarillo. 113 00:07:00,199 --> 00:07:03,040 ¿Y eso cómo se hace? Bueno, pues muy fácil, en un bloque de control. 114 00:07:03,639 --> 00:07:07,959 Tendríamos tres situaciones, con lo cual tendríamos tres bloques, sí, sí y sí. 115 00:07:08,279 --> 00:07:11,980 Y esta variable de distancia tendríamos que evaluarla, ¿vale? 116 00:07:12,459 --> 00:07:15,319 Las variables, acuérdense, en matemáticas tenemos los bloques estos. 117 00:07:15,759 --> 00:07:22,060 Podemos decir si algo es menor, si algo es mayor, en este caso si la distancia es mayor que tal, si la distancia es mayor que cual. 118 00:07:22,860 --> 00:07:24,220 Jugad con los valores, ¿vale? 119 00:07:24,220 --> 00:07:29,579 Podéis poner, yo qué sé, esta simulación permite jugar con hasta 200 centímetros. 120 00:07:29,579 --> 00:07:32,100 claro, como tengo aquí 121 00:07:32,100 --> 00:07:34,019 bloques sin conectar 122 00:07:34,019 --> 00:07:35,459 me dice que no, entonces 123 00:07:35,459 --> 00:07:38,220 en esta simulación, por ejemplo 124 00:07:38,220 --> 00:07:39,879 como podéis iros a 125 00:07:39,879 --> 00:07:42,220 300, pues decir, si es mayor de 200 126 00:07:42,220 --> 00:07:44,379 verde, si es entre 100 y 200 127 00:07:44,379 --> 00:07:46,259 amarillo, y si es 128 00:07:46,259 --> 00:07:47,819 por debajo de 100, rojo, por ejemplo 129 00:07:47,819 --> 00:07:50,420 ¿vale? eso en vuestra simulación 130 00:07:50,420 --> 00:07:51,819 entonces 131 00:07:51,819 --> 00:07:54,560 tendríais tres bloques como estos, de comparativos 132 00:07:54,560 --> 00:07:55,279 si 133 00:07:55,279 --> 00:07:58,120 y si, en lo que estaríais 134 00:07:58,120 --> 00:08:01,019 comparando la distancia, si la distancia es 135 00:08:01,019 --> 00:08:05,379 mayor que 200, tenéis aquí, podéis usar la variable 136 00:08:05,379 --> 00:08:08,000 dentro de esto, mayor que 137 00:08:08,000 --> 00:08:13,819 200, aquí escribiría un 200 138 00:08:13,819 --> 00:08:18,180 menor que 100, aquí escribiríamos un 100, y luego la del 139 00:08:18,180 --> 00:08:21,540 medio tiene que ser una condición compuesta 140 00:08:21,540 --> 00:08:26,160 si vamos a elegir, si nuestros límites son 200 141 00:08:26,160 --> 00:08:27,920 y 100, en el medio sería que fuera 142 00:08:27,920 --> 00:08:29,240 mayor que 100 143 00:08:29,240 --> 00:08:30,639 y 144 00:08:30,639 --> 00:08:33,620 menor que 200, ¿vale? 145 00:08:33,980 --> 00:08:35,960 ¿Me entendéis? Esta primera 146 00:08:35,960 --> 00:08:37,820 condición sería mayor que 200, 147 00:08:38,379 --> 00:08:40,100 la del medio sería menor que 148 00:08:40,100 --> 00:08:42,120 200 y mayor que 100, y esta 149 00:08:42,120 --> 00:08:43,960 de aquí sería menor que 100. Entonces 150 00:08:43,960 --> 00:08:45,440 evaluáis esas tres condiciones 151 00:08:45,440 --> 00:08:47,799 y luego en cada uno de los 152 00:08:47,799 --> 00:08:49,539 de los síes, 153 00:08:49,960 --> 00:08:51,759 tendrías que tener que el 154 00:08:51,759 --> 00:08:53,940 LED tal esté encendido y que los dos 155 00:08:53,940 --> 00:08:56,019 estén apagados. Lo que pasa es que no va a ser 156 00:08:56,019 --> 00:09:00,799 lo mismo en cada una de las condiciones. Esto que estoy aquí un rato enrollándome 157 00:09:00,799 --> 00:09:06,279 es mucho más vistoso, es mucho más fácil de entender si lo veis en el Arduino de Real. 158 00:09:06,399 --> 00:09:10,620 Aquí ya tengo el ejercicio hecho. Mirad, ahora mismo está encendida la verde. Voy 159 00:09:10,620 --> 00:09:15,220 a quitar un poco de luz para que se vea mejor. Ahora mismo está encendida la verde. ¿Por 160 00:09:15,220 --> 00:09:19,340 qué? Porque no hay ningún objeto o de haber un objeto, si pongo aquí mi puño, está 161 00:09:19,340 --> 00:09:25,399 lo suficientemente lejos. Si yo acerco el puño, se pone... Ahí hay errores, porque 162 00:09:25,399 --> 00:09:27,379 Bueno, mi puño también es una superficie rugosa. 163 00:09:27,740 --> 00:09:28,720 Pero bueno, se pone amarillo. 164 00:09:29,200 --> 00:09:32,240 O sea, verde, amarillo. 165 00:09:32,840 --> 00:09:33,600 Me estoy acercando. 166 00:09:33,759 --> 00:09:35,399 Empieza la cosa a ponerse fea, entre comillas. 167 00:09:35,679 --> 00:09:38,019 Y si me acerco todavía más, se pone roja. 168 00:09:38,759 --> 00:09:39,120 Roja. 169 00:09:39,200 --> 00:09:40,639 Y si me voy alejando, pues haría al revés. 170 00:09:41,100 --> 00:09:42,279 Me alejo, me alejo, amarillo. 171 00:09:42,379 --> 00:09:43,299 Me alejo, me alejo, verde. 172 00:09:44,340 --> 00:09:45,039 ¿Vale? ¿Lo veis? 173 00:09:45,840 --> 00:09:47,960 Eso es lo que vosotros tenéis que programar. 174 00:09:48,440 --> 00:09:51,840 Un sensor de distancia en el que el indicador no te lo dé a través del puerto serie, 175 00:09:51,940 --> 00:09:54,200 sino con tres colores luminosos. 176 00:09:54,200 --> 00:09:56,539 eso os lo acabo de explicar como se hace, es muy fácil 177 00:09:56,539 --> 00:09:58,720 tenéis el programa, la primera parte ya está hecha 178 00:09:58,720 --> 00:10:00,720 y la segunda ya os he dicho como se hace, solo cuestión 179 00:10:00,720 --> 00:10:02,740 de poner 180 00:10:02,740 --> 00:10:04,399 los códigos, vale, pues bueno 181 00:10:04,399 --> 00:10:06,659 fácil yo creo, venga 182 00:10:06,659 --> 00:10:07,320 buena suerte