1 00:00:00,430 --> 00:00:16,629 Vale, pues nada, estamos en clase de TPRPT, ¿vale? Evidentemente, y lo que voy a hacer hoy es empezar revisando un poquito el material que hemos estado mirando, ¿vale? 2 00:00:16,629 --> 00:00:35,079 Un poquito en las dos presentaciones que os he pasado, la presentación del, a ver qué pongo aquí, mejor, la presentación del, que os di con formato 3-4, ¿vale? 3 00:00:35,079 --> 00:00:41,880 Una presentación sobre cómo se hacían los programas y unos conceptos básicos y luego una específica de programación de robots. 4 00:00:41,880 --> 00:01:01,979 Entonces voy a empezar con eso y voy a compartiros la presentación primera que vimos. 5 00:01:01,979 --> 00:01:15,980 ¿De acuerdo? Ahí está. Entonces, esta presentación, voy a cerrar aquí, ¿vale? Esta presentación vimos que había unos conceptos básicos y entre esos conceptos básicos estuvimos viendo, 6 00:01:15,980 --> 00:01:19,060 estuvimos viendo 7 00:01:19,060 --> 00:01:21,819 vaya, perdonadme 8 00:01:21,819 --> 00:01:23,700 un segundito que se me ha saltado aquí 9 00:01:23,700 --> 00:01:26,060 esto lo cierro 10 00:01:26,060 --> 00:01:28,099 y esto no, vale, ahora ya lo he 11 00:01:28,099 --> 00:01:29,420 visto, vale, entonces 12 00:01:29,420 --> 00:01:31,659 estuvimos viendo que había 13 00:01:31,659 --> 00:01:33,920 unos diagramas de flujo donde yo podía tomar 14 00:01:33,920 --> 00:01:35,799 decisiones y hacer bifurcaciones, donde había 15 00:01:35,799 --> 00:01:38,019 una serie de secuencias que iban por las flechas 16 00:01:38,019 --> 00:01:39,799 y donde podíamos hacer ciclos 17 00:01:39,799 --> 00:01:42,180 que luego ya hemos visto que esos ciclos 18 00:01:42,180 --> 00:01:44,099 pueden ser ciclos que se 19 00:01:44,099 --> 00:01:45,920 conviertan en ciclos 20 00:01:45,920 --> 00:01:49,620 para o ciclos mientras, que hoy vamos a revisar un poco. 21 00:01:50,359 --> 00:01:53,480 Entonces esos ciclos son for, while y do. 22 00:01:54,120 --> 00:01:56,459 Un poco más adelante en esta misma presentación 23 00:01:56,459 --> 00:01:59,859 ya vimos todos los elementos de los diagramas de flujo 24 00:01:59,859 --> 00:02:01,700 que en principio eran inicio o final de programa, 25 00:02:01,980 --> 00:02:04,840 acciones y procesos, las tomas de decisiones 26 00:02:04,840 --> 00:02:06,480 que eran los rombos, con salida si y no, 27 00:02:07,079 --> 00:02:09,800 preguntas directas siempre, la salida de información 28 00:02:09,800 --> 00:02:15,400 si es por impresora, pues se hace a través de este símbolo 29 00:02:15,400 --> 00:02:29,460 Y la entrada de información o salida de información, ¿vale? Yo la pongo siempre con este, es decir, esto realmente es una entrada-salida, con lo cual este apenas se utiliza porque ya las impresoras se han dejado de utilizar, ¿vale? Entonces, este de aquí se utiliza sobre todo para entradas y salidas. 30 00:02:29,460 --> 00:02:34,620 y luego, esto es un subprograma que es un concepto que no hemos visto 31 00:02:34,620 --> 00:02:37,800 y que este año no se vería, se vería en primeros o en primeros. 32 00:02:39,039 --> 00:02:43,460 Vale, entonces, ya os digo, los diagramas de flujo se representan de esta forma, 33 00:02:43,599 --> 00:02:45,360 hicimos algunos ejemplos, ¿vale? 34 00:02:45,840 --> 00:02:51,280 Y luego hay una condición que es este ciclo infinito, el do forever, ¿vale? 35 00:02:51,319 --> 00:02:57,240 El hacer para siempre, que es lo que hemos simulado nosotros con PSI Int a través de los bucles 36 00:02:57,240 --> 00:03:03,280 mientras se considere verdadero, con lo cual, al ser un ciclo verdadero, 37 00:03:03,439 --> 00:03:05,620 siempre va a entrar dentro del bucle y nunca va a salir. 38 00:03:06,599 --> 00:03:10,520 Hemos estado viendo los diagramas de, bueno, los NS que no los hemos tocado, 39 00:03:10,599 --> 00:03:15,039 los hemos cortado por alto, y luego ya nos hemos puesto con PSINT a hacer ejemplos, ¿vale? 40 00:03:15,039 --> 00:03:19,060 Entonces, bueno, pues algoritmos, por ejemplo, el algoritmo HolaMundo, 41 00:03:19,319 --> 00:03:24,539 que era simplemente un algoritmo en el que se escribe HolaMundo y termina, ¿vale? 42 00:03:24,539 --> 00:03:31,400 el algoritmo, a ver, este es el primero, el hola mundo, de acuerdo, después un algoritmo lineal 43 00:03:31,400 --> 00:03:35,840 donde simplemente asignábamos un valor a una variable, otro valor a otra variable, sumábamos ambas 44 00:03:35,840 --> 00:03:39,919 y luego poníamos un texto que decía que la suma de ambas era la suma. 45 00:03:40,639 --> 00:03:45,300 Bueno, pues hemos ido haciendo varios ejemplos y hemos ido viendo cómo el diagrama de flujo 46 00:03:45,300 --> 00:03:50,800 nos va permitiendo hacer cosas. También hemos visto algunos con algunas condiciones que me permitían 47 00:03:50,800 --> 00:03:54,580 bifurcar. Entonces, el algoritmo mayor-menor 48 00:03:54,580 --> 00:03:58,199 cogía dos números, si eran iguales, decía, salía 49 00:03:58,199 --> 00:04:02,639 por pantalla que eran iguales, y si no eran iguales, me preguntaba si el 50 00:04:02,639 --> 00:04:06,860 primero era mayor que el segundo. Si el primero era mayor, me decía que el mayor era el segundo. 51 00:04:07,560 --> 00:04:10,599 Y, o sea, si era falso, el mayor es el segundo y el menor es el primero 52 00:04:10,599 --> 00:04:15,889 y si es verdadero, pues eso quiere decir que el mayor es el primero y el menor es el segundo. 53 00:04:17,189 --> 00:04:19,449 Hemos visto también algoritmos con bucles. 54 00:04:19,449 --> 00:04:42,009 Esto es un bucle for, ¿vale? Entonces hemos visto el bucle que iba haciendo 5 veces este número de, ¿vale? Este número de vueltas. Hemos visto bucles como, este también es un bucle for, el del ejemplo 7. A ver, no hay ningún bucle while, el de este, el del ejemplo 8, ¿vale? Son bucles for todos. 55 00:04:42,009 --> 00:05:06,129 Vale, luego también hay bucles, que eran bucles repetir mientras o repetir hasta, que esos los veíamos, voy a cerrar aquí, vale, volvemos a mi cara, y también hemos visto la otra presentación, que es esta, de acuerdo, donde ya hemos estado viendo pues un poco cómo funcionan los algoritmos para los robots. 56 00:05:06,910 --> 00:05:12,410 Entonces, una vez que hemos visto cómo funciona un algoritmo y hemos visto su diagrama de flujo, 57 00:05:12,629 --> 00:05:14,490 ahora vamos a ver cómo los hacemos para los robots. 58 00:05:14,949 --> 00:05:19,389 Antes de seguir, ¿hay alguna pregunta? Voy a ponerme por aquí el chat. 59 00:05:20,910 --> 00:05:24,550 ¿Tenemos que tener algo a mal, no me dicen? No, no te preocupes. 60 00:05:24,790 --> 00:05:30,430 En principio, si queréis tener un papel y un boli para apuntar cosas como en clase, no hay ningún problema. 61 00:05:30,430 --> 00:05:38,810 Ya os digo, como esta sesión se queda grabada, en principio la tendréis disponible para poder revisarla, ¿vale? Esa es una de las ventajas de hacer las clases online. 62 00:05:39,589 --> 00:05:57,209 Vale, y a ver, Diego, ¿qué quieres decirme? ¿Tienes la mano levantada? Cuéntame. Si quieres quitarte el micro o me lo dices, ¿y Javier también tiene la mano levantada? Si no, ah, vale, era de antes, pues quitarla, haces el favor. Y Javier, si tú también la tienes levantada de antes, quítala. Javier, vuelve entre nosotros. 63 00:06:00,430 --> 00:06:02,370 ¿Cómo se quita? Pues igual que la has puesto, cachondo. 64 00:06:04,029 --> 00:06:04,970 Dándole al botón. 65 00:06:05,990 --> 00:06:06,389 Vale. 66 00:06:06,949 --> 00:06:08,589 Vale, Adri, ¿qué pasa? Cuéntame. 67 00:06:10,430 --> 00:06:12,370 Vale, Javier, ¿sigues con la mano levantada? 68 00:06:12,490 --> 00:06:13,029 Bueno, da igual. 69 00:06:15,290 --> 00:06:16,529 Intenta quitarla, ¿vale, Javi? 70 00:06:16,970 --> 00:06:17,290 Venga. 71 00:06:17,769 --> 00:06:21,110 Si no hay ninguna pregunta, si me queréis poner las preguntas, vale. 72 00:06:21,949 --> 00:06:22,350 Perfecto. 73 00:06:22,350 --> 00:06:26,529 Si me queréis poner preguntas por el chat, las veo y si no, continúo. 74 00:06:26,610 --> 00:06:29,189 ¿Vale? ¿Alguien tiene dudas de cómo funcionan los diagramas de flujo? 75 00:06:29,189 --> 00:06:32,410 Yo creo que después de los ejemplos que hemos hecho está más o menos claro, ¿no? 76 00:06:33,029 --> 00:06:33,850 ¿Tenéis alguna duda? 77 00:06:36,779 --> 00:06:38,759 Contestadme por el chat si sí o si no, por lo menos. 78 00:06:39,420 --> 00:06:39,639 ¿Vale? 79 00:06:39,939 --> 00:06:44,660 Para que yo, porque clase, si me decís no y yo me entero, pero ahora no me entero. 80 00:06:44,920 --> 00:06:45,860 Vale, perfecto. 81 00:06:46,000 --> 00:06:46,500 No hay dudas. 82 00:06:46,879 --> 00:06:49,519 Entonces, los diagramas de flujo están claro cómo funcionan. 83 00:06:49,620 --> 00:06:51,959 Es una secuencia de acciones que yo voy a ir ejecutando. 84 00:06:52,720 --> 00:06:54,939 Bien, ¿cómo funcionan los algoritmos para los robots? 85 00:06:55,839 --> 00:06:57,060 Vale, y sigo sin editar. 86 00:06:57,220 --> 00:06:58,620 ¿Qué hago para tener audio, Ángel? 87 00:06:58,699 --> 00:07:00,639 No lo sé, es que no sé cuál es tu problema. 88 00:07:00,639 --> 00:07:05,199 En principio deberías de tener audio sin problemas una vez que conectes la aplicación. 89 00:07:05,199 --> 00:07:42,120 ¿Vale? Este es el segundo. ¿Deberías tener audios si intenta cortar la conexión y volver a meter en clase? Vale, le he contestado a... Vale, Lucía, tú no... Yo lo entiendo, vale. O sea que es un no coma, yo lo entiendo. O sea que sí que lo entiendes. 90 00:07:42,120 --> 00:08:03,019 Y a Ángel le acabo de decir que se intente reconectar, a ver si lo consigue. Vale, en el iPad lo he activado en ajustes, vale. Perfecto, Izan, pues a ver si conseguimos que Ángel pueda conectar el audio. Estas son las cosas de la primera, vale, ya digo, como lo estoy grabando no hay problema, en principio lo vais a poder ver luego. 91 00:08:04,019 --> 00:08:05,399 Vale, Matías, perfecto. 92 00:08:05,839 --> 00:08:07,360 Pues nada, continuamos el viaje, venga. 93 00:08:07,939 --> 00:08:09,519 Vamos a ver esta segunda parte. 94 00:08:10,160 --> 00:08:11,180 ¿Cómo funcionan los robots? 95 00:08:11,300 --> 00:08:13,540 Bueno, los robots funcionan de esta forma, ¿vale? 96 00:08:13,560 --> 00:08:15,319 Lo tengo aquí, ahí estamos. 97 00:08:16,240 --> 00:08:17,740 Entiendo que estáis viendo, ¿vale? 98 00:08:17,759 --> 00:08:20,339 Sí, tengo el uso compartido de esta aplicación, 99 00:08:20,420 --> 00:08:21,620 con lo cual lo tenéis que estar viendo. 100 00:08:22,459 --> 00:08:22,740 Bien. 101 00:08:24,220 --> 00:08:25,819 Entonces, ¿cómo funcionan los robots? 102 00:08:25,819 --> 00:08:28,540 Bien, los robots en principio funcionan de esta forma. 103 00:08:28,680 --> 00:08:31,779 Hay una serie de sensores que están conectados 104 00:08:31,779 --> 00:08:40,779 a los pines de entrada que son estos pines que están por aquí. Estos sensores están conectados y van a poder introducir valores 105 00:08:40,779 --> 00:08:45,720 de lo que estén midiendo, sea lo que sea. El pulsador pues meterá un 0 o un 1 en función de que esté pulsado o no. 106 00:08:46,220 --> 00:08:54,679 El LDR meterá si hay mucha luz una resistencia a un valor muy bajito y si hay poca luz un valor muy alto de la resistencia. 107 00:08:54,679 --> 00:09:07,639 Es decir, va a meter un número. Los que meten números en función de lo que miden siempre se mueven en el rango entre 0 y 1024 para las placas de control robótico que vamos a utilizar nosotros. 108 00:09:07,879 --> 00:09:18,740 Entonces, un LDR, cuando hay mucha luz, va a tener un valor de 0 y cuando hay poca luz va a dar un valor de 1024. Siempre va a ser entre 0 y 1024. 109 00:09:18,740 --> 00:09:36,639 La distancia es lo mismo. El sensor de distancia, imaginaros que tiene un rango de un metro. Pues si hay algo que está a más de un metro, es decir, yo no tengo nada dentro de mi rango, el sensor de distancia no detecta nada, me va a devolver un valor de 1024. 110 00:09:37,100 --> 00:09:41,799 Eso quiere decir que en el metro que yo puedo ver, en esa distancia que yo puedo ver, no hay nada. 111 00:09:42,559 --> 00:09:46,179 En el momento en el que algo entre dentro de esa distancia y empiece a acercarse, 112 00:09:46,740 --> 00:09:50,639 el valor del sensor va a ir bajando desde 1024 hasta 0. 113 00:09:52,120 --> 00:09:57,039 Entonces, él va a ir midiendo la distancia y me va a devolver un valor entre 1024 y 0. 114 00:09:57,039 --> 00:10:05,320 Luego nosotros, internamente, el fabricante me permite utilizar una forma rápida para transformarlo en centímetros o en milímetros. 115 00:10:05,320 --> 00:10:19,600 Que es lo que voy a hacer, ¿de acuerdo? Entonces, cuando un sensor de distancia me esté dando 90 centímetros o 100 centímetros, eso quiere decir que no encuentra ningún obstáculo. 116 00:10:20,440 --> 00:10:29,879 Y en el momento en el que esté dándome valores por debajo de eso, hasta cero, eso quiere decir que se está encontrando con un obstáculo, ¿vale? 117 00:10:29,879 --> 00:10:53,899 Pero realmente el sensor siempre me va a dar valores entre 0 y 1024 y lo que va a recibir la placa, lo que va a recibir esta placa de aquí o esta, son valores entre 0 y 1024, ¿vale? ¿Entendéis este concepto del sensor analógico, que es como se llaman estos, ¿vale? De los sensores analógicos? Decidme si lo entendéis o si os habéis perdido, ¿vale? 118 00:10:53,899 --> 00:11:14,429 Dime, Ibai, te veo por aquí. ¿Vale? ¿Se entiende? Vale, perfecto. Entonces, tengo dos tipos de sensores. Los sensores tipo pulsador, que son o activado o desactivado, o 1 y 0, o alto y bajo, llamarlo como queráis, ¿vale? 119 00:11:14,429 --> 00:11:28,210 Entonces, ¿va a dar realmente esta presentación dónde está colgada? Esta presentación os la dejé colgada en el blog, ¿vale? Si no recuerdo mal, voy a comprobarlo un segundito, ¿vale? 120 00:11:28,210 --> 00:11:30,769 os comparto 121 00:11:30,769 --> 00:11:33,409 este para que lo veáis 122 00:11:33,409 --> 00:11:35,230 y en principio 123 00:11:35,230 --> 00:11:39,029 www.educa2webjuan.garcia 124 00:11:39,029 --> 00:11:41,809 vale, si entráis en el blog 125 00:11:41,809 --> 00:11:42,889 y vais a 126 00:11:42,889 --> 00:11:43,970 tprpt 127 00:11:43,970 --> 00:11:46,950 si no recuerdo mal 128 00:11:46,950 --> 00:11:48,350 en el reto 129 00:11:48,350 --> 00:11:51,250 ah, vale, no, no, no, os la he 130 00:11:51,250 --> 00:11:53,590 os la he puesto en el vídeo, vale, la tenéis en el vídeo 131 00:11:53,590 --> 00:11:55,509 no la tenéis compartida, pero os la voy a 132 00:11:55,509 --> 00:11:56,529 compartir con el 133 00:11:56,529 --> 00:12:05,070 con el vídeo de la clase, ¿de acuerdo? Esta es la que he utilizado en el vídeo donde os planteaba el reto de Semana Santa, ¿de acuerdo? 134 00:12:05,549 --> 00:12:13,529 Entonces, en este vídeo la he utilizado y es donde he explicado las cosas, ¿vale? Bien, entonces, continúo. 135 00:12:14,769 --> 00:12:20,409 No, no la he subido, efectivamente, Elías, no he subido la presentación, pero la he utilizado, ¿vale? Luego la subo, luego os la pongo en PDF 136 00:12:20,409 --> 00:12:23,190 para que la podáis tener, no os preocupéis. 137 00:12:23,990 --> 00:12:25,129 Bien, continúo. 138 00:12:25,269 --> 00:12:29,610 Entonces, lo que tengo por un lado son sensores que me permiten, 139 00:12:30,149 --> 00:12:34,429 si son sensores digitales, es decir, sensores que utilizan valores 0 o 1, 140 00:12:35,009 --> 00:12:40,110 verdadero o falso, pulsado o sin pulsar, alto o bajo, me da igual, dos opciones. 141 00:12:40,970 --> 00:12:46,169 Esos son sensores como el pulsador y voy a conectarlos a los pines que tengo 142 00:12:46,169 --> 00:12:51,529 que se llaman pines digitales, que son los de uno de los lados de la placa arduino, ¿vale? 143 00:12:51,570 --> 00:12:55,269 Esta placa es una placa arduino, que es con la que vamos a empezar a trabajar a partir de hoy. 144 00:12:55,929 --> 00:13:04,169 Entonces, los pines del lado largo, digamos los que tienes muchos, estos son sensores, o sea, son pines analógicos. 145 00:13:05,149 --> 00:13:10,350 Y me van a permitir conectar este tipo de sensores. Sensores que me dan o 1 o 0. 146 00:13:10,350 --> 00:13:22,009 O lo que es lo mismo, como estamos hablando de voltajes, de voltios, o 5 voltios, muchos voltios o pocos voltios, ¿vale? O muchos voltios o pocos voltios. Un voltaje alto, un voltaje bajo. 147 00:13:22,009 --> 00:13:28,450 y luego en esta parte de aquí está este primer tramo de conexiones que tengo en este lado 148 00:13:28,450 --> 00:13:29,990 que luego lo vamos a ver mucho más claro 149 00:13:29,990 --> 00:13:36,389 son pines para conectar sensores analógicos 150 00:13:36,389 --> 00:13:41,549 es decir, sensores que me van a dar valores entre 0 y 1024 en función de lo que estén midiendo 151 00:13:41,549 --> 00:13:47,070 imaginaros que estoy utilizando un sensor de temperatura 152 00:13:47,070 --> 00:13:50,750 entonces, al usar un sensor de temperatura 153 00:13:50,750 --> 00:13:56,710 si es capaz de detectar entre 0 grados y 100 grados 154 00:13:56,710 --> 00:13:59,129 cuando mida 100 grados o más 155 00:13:59,129 --> 00:14:02,830 me va a dar 1024, que es el mayor valor que da un sensor análogo 156 00:14:02,830 --> 00:14:05,669 si estamos en 200 grados me va a dar 1024 157 00:14:05,669 --> 00:14:07,850 si estamos en 300 grados me va a dar 1024 158 00:14:07,850 --> 00:14:11,049 pero sin embargo, si va bajando de 100 grados 159 00:14:11,049 --> 00:14:14,809 va a irme dando valores entre 1024 y 0 160 00:14:14,809 --> 00:14:27,409 Y si el valor mínimo que ese sensor es capaz de detectar es 0 grados centígrados, cuando llega a 0 grados centígrados la temperatura, me va a marcar 0 voltios, me va a marcar un 0, ¿vale? Entre 0 y 1024. 161 00:14:28,149 --> 00:14:39,509 Entonces, me va a marcar un 0. Y a partir de ahí, a menos 10 grados, a menos 20 grados, a menos 30 grados, la temperatura va a seguir marcando 0 porque ya se me sale del rango de lo que yo soy capaz de medir, ¿de acuerdo? 162 00:14:39,509 --> 00:14:44,370 Por lo tanto, un sensor analógico devuelve valores entre 0 y 1024. 163 00:14:45,129 --> 00:14:49,549 Bien, nosotros medimos lo que ocurre a nuestro alrededor a través de los sensores, 164 00:14:49,690 --> 00:14:50,889 lo metemos en la placa. 165 00:14:51,529 --> 00:14:52,629 La placa, ¿qué es lo que hace? 166 00:14:52,990 --> 00:14:55,529 Coge esos valores y para poder luego utilizarlos, 167 00:14:55,669 --> 00:14:57,210 los va almacenando en variables. 168 00:14:58,230 --> 00:15:01,269 Pues coge una variable para la distancia, una variable para la luminosidad, 169 00:15:01,450 --> 00:15:04,490 una variable para el pulsador, si está activado o desactivado. 170 00:15:04,970 --> 00:15:07,929 Y en función de esos valores que yo he leído, 171 00:15:07,929 --> 00:15:11,929 hago algún proceso que me permite tomar decisión. 172 00:15:13,029 --> 00:15:17,289 Esa es la parte que hace el procesador, esa es la parte que hace el microcontrolador, que es esta placa. 173 00:15:18,169 --> 00:15:21,350 Y luego, una vez que hemos tomado decisiones, lo que hago es, a través de cables, 174 00:15:22,090 --> 00:15:25,029 conecto lo que se llaman los actuadores, ¿vale? 175 00:15:25,070 --> 00:15:28,370 Son los dispositivos de salida. 176 00:15:29,110 --> 00:15:34,049 Pueden ser motores, pueden ser luces, puede ser, yo que sé, un pistón hidráulico, 177 00:15:34,049 --> 00:15:37,070 puede ser lo que sea, ¿vale? 178 00:15:37,070 --> 00:15:40,429 Un servo normalmente suelen ser luces y motores, 179 00:15:40,570 --> 00:15:42,090 pero pueden ser muchas cosas, ¿de acuerdo? 180 00:15:42,549 --> 00:15:46,309 Yo ahí puedo poner válvulas, puedo poner cosas hidráulicas, 181 00:15:46,509 --> 00:15:47,509 puedo poner un montón de cosas. 182 00:15:48,129 --> 00:15:50,690 Entonces, nosotros nos vamos a centrar sobre todo en motores y luces. 183 00:15:51,710 --> 00:15:53,190 Bien, ¿y qué es lo que puedo hacer? 184 00:15:53,309 --> 00:15:55,730 Pues si es una luz o encenderla o apagarla. 185 00:15:55,850 --> 00:15:58,870 Fijaros que la luz es una cosa que solamente tiene dos posiciones. 186 00:15:59,049 --> 00:16:00,889 Es como lo que habíamos visto del pulsador. 187 00:16:01,570 --> 00:16:03,350 La luz o la enciendo o la apago. 188 00:16:03,350 --> 00:16:11,009 y el motor ¿qué puedo hacer? lo puedo encender, lo puedo apagar pero también puedo hacer que vaya a más velocidad o a menos 189 00:16:11,009 --> 00:16:17,809 entonces el motor va a ser un dispositivo de salida que yo voy a conectar de forma analógica 190 00:16:17,809 --> 00:16:21,129 y le puedo poner un porcentaje de velocidad que es lo que os he dicho 191 00:16:21,129 --> 00:16:25,269 y luego las luces por ejemplo pues son luces que solamente puedo ponerlas o encendidas 192 00:16:25,269 --> 00:16:31,450 y así es como funciona una placa de control robótico y esto funciona de forma infinita 193 00:16:31,450 --> 00:16:47,990 ¿Qué es lo que hace? Pues lo que hace el robot es esto, lee los sensores, coge esos valores del entorno que ha leído y los asigna a variables, después procesa la información, después toma decisiones y por último actúa si es necesario. 194 00:16:48,450 --> 00:16:56,970 Al tomar decisiones puede ser que la decisión sea no hacer nada y entonces simplemente pasa de largo, ¿de acuerdo? Y si toma la decisión de hacer algo, entonces actúa. 195 00:16:57,690 --> 00:17:06,269 Vale, entonces ya vimos que para leer los sensores nosotros en PSINT lo que íbamos a hacer era escribir por pantalla, 196 00:17:06,269 --> 00:17:14,930 oye, dame el valor del sensor de distancia y luego íbamos a leer una variable y le íbamos a asignar a una variable el valor. 197 00:17:15,549 --> 00:17:21,529 Por lo tanto me quedaba de esta forma, por ejemplo, vamos a leer el sensor de ultrasonidos y leemos la variable U de ultrasonidos. 198 00:17:22,529 --> 00:17:27,670 Leemos LDR y escribimos, o sea, escribimos leer LDR y leemos la variable L. 199 00:17:27,670 --> 00:17:34,049 Con lo cual, asignamos a la variable L la distancia, o sea, la luminosidad que está detectando el LDR. 200 00:17:34,690 --> 00:17:41,450 Si tenemos un botón, pues leemos si tiene activo o desactivado, o sea, está pulsado o no pulsado y lo almacenamos en P. 201 00:17:41,769 --> 00:17:46,309 ¿De acuerdo? Eso es un poco cómo funciona la simulación que nosotros hacemos en PSI. 202 00:17:47,450 --> 00:17:51,369 Después, tenemos que hacer el proceso de la información, ¿vale? 203 00:17:51,529 --> 00:17:56,230 Que es con bucles, con asignación de variables, cojo sus valores y hago cosas con ellos. 204 00:17:57,049 --> 00:18:02,369 Y después tomo las decisiones y las decisiones serán con las bifurcaciones de tipo sí. 205 00:18:02,970 --> 00:18:06,730 Si ocurre algo pasa por aquí y si no pasa por el otro lado. 206 00:18:07,529 --> 00:18:13,430 Entonces las salidas nosotros las vamos a simular con el escribir. 207 00:18:13,430 --> 00:18:18,509 Es decir, una forma de conectarle al PSI un actuador. 208 00:18:18,509 --> 00:18:23,029 y entonces lo que vamos a decirle es que escriba, pues gira el motor al 75% o hazlo. 209 00:18:23,849 --> 00:18:29,970 Vale, esa era la forma de hacer un algoritmo completo, os ponía el ejemplo. 210 00:18:31,230 --> 00:18:35,750 Fijaros, un bucle infinito, mientras sea verdadero hacer, esta parte es el bucle infinito, 211 00:18:35,829 --> 00:18:40,069 que iba a estar tiki tiki tiki dando vueltas, y empezábamos leyendo el sensor de ultrasonidos, 212 00:18:40,670 --> 00:18:43,430 leíamos la variable u y luego la utilizábamos. 213 00:18:44,190 --> 00:18:47,589 ¿Cuánto me mide el sensor de ultrasonidos? Vamos a poner que mide 12 centímetros. 214 00:18:47,589 --> 00:19:02,329 Pues si no es menor que 12 centímetros, enciende el luz verde. Con lo cual, como no es menor de 10, perdón, 12 es mayor, entonces enciende la luz verde. Eso quiere decir que no tengo ningún peligro dentro de mi rango y vuelvo. 215 00:19:02,329 --> 00:19:04,509 vuelvo a leer el sensor de ultrasonidos 216 00:19:04,509 --> 00:19:06,210 esto en un robot es inmediato 217 00:19:06,210 --> 00:19:07,809 es leer y pasa 218 00:19:07,809 --> 00:19:10,210 yo eso lo voy a meter a mano y va a quedar separado 219 00:19:10,210 --> 00:19:12,210 el programa pero evidentemente eso en un robot 220 00:19:12,210 --> 00:19:14,150 es algo inmediato, yo simplemente 221 00:19:14,150 --> 00:19:16,009 le cojo el sensor y cojo su valor 222 00:19:16,009 --> 00:19:17,930 voy a otro sensor y cojo su valor 223 00:19:17,930 --> 00:19:19,970 voy a otro sensor y eso son microsegundos 224 00:19:19,970 --> 00:19:22,289 ¿vale? con lo cual es leer 225 00:19:22,289 --> 00:19:24,269 la información de los sensores se le hace 226 00:19:24,269 --> 00:19:26,670 microsegundos y entonces ¿qué va a ocurrir? 227 00:19:27,049 --> 00:19:28,410 que con esos valores yo voy a tomar 228 00:19:28,410 --> 00:19:29,950 las decisiones y vuelvo a leer 229 00:19:29,950 --> 00:19:34,230 los sensores. Y vuelvo a leer y vuelvo a leer. Entonces, puedo leer los sensores 230 00:19:34,230 --> 00:19:38,130 cientos de veces por segundo. Eso hace que el robot funcione de forma 231 00:19:38,130 --> 00:19:41,869 continua. ¿De acuerdo? Realmente no funciona de forma continua. Yo voy leyendo 232 00:19:41,869 --> 00:19:45,750 digamos los sensores cada cierto tiempo, pero es tan corto ese tiempo 233 00:19:45,750 --> 00:19:49,569 que al final no sucede nada entre medias. ¿De acuerdo? 234 00:19:49,710 --> 00:19:54,309 Es simplemente el robot actúa de forma inmediata. Para mi 235 00:19:54,309 --> 00:19:58,170 forma de ver. Bueno, entonces ya pasamos a nuestro reto 236 00:19:58,170 --> 00:20:27,980 Y el reto, ¿cuál era? Era construir un robot que hiciera esto. Antes de pasar al reto, preguntas. ¿Alguien tiene alguna pregunta? ¿Vale? ¿Diego? ¿Vale? ¿Fernando Barrera? ¿Vale? Si queréis o me hacéis, ¿qué se considera un robot? ¿Vale? Cristina pregunta qué se considera un robot. 237 00:20:27,980 --> 00:20:31,740 ¿Vamos a tener que hacer un robot? Vale, en clase sí que lo íbamos a hacer 238 00:20:31,740 --> 00:20:33,859 ¿Vale? Sí, Diego, no te preocupes 239 00:20:33,859 --> 00:20:36,819 Vete a inglés y luego, como voy a colgar la presentación 240 00:20:36,819 --> 00:20:39,119 La ves, ¿vale? La visualizas, no te preocupes 241 00:20:39,119 --> 00:20:43,019 ¿Vale? Los que tengáis que ir a inglés, iros, no hay ningún problema 242 00:20:43,019 --> 00:20:46,019 Vale, vuelvo a las preguntas de antes 243 00:20:46,019 --> 00:20:48,539 ¿Qué se considera un robot, Cristina? Vale 244 00:20:48,539 --> 00:20:52,480 Un robot se considera un sistema automático 245 00:20:52,480 --> 00:20:53,799 Espera un segundo 246 00:20:53,799 --> 00:20:57,420 Voy a tener el uso compartido de esto de momento 247 00:20:57,420 --> 00:21:00,859 porque así me veis mejor, ¿vale? Así me veis mejor. 248 00:21:01,279 --> 00:21:07,779 Vale, un robot es un sistema automático que va a estar cogiendo información del entorno a través de sensores, 249 00:21:09,119 --> 00:21:17,000 tomando esa información, analizando esa información, generando decisiones con respecto a esa información 250 00:21:17,000 --> 00:21:19,900 y luego actuando en consecuencia, ¿vale? 251 00:21:20,299 --> 00:21:21,799 Por ejemplo, ¿qué es un robot? 252 00:21:22,359 --> 00:21:26,619 ¿Podríamos considerar un aire acondicionado un robot? 253 00:21:27,279 --> 00:21:29,720 Sí, muy sencillito. Es un robot muy sencillo. ¿Por qué? 254 00:21:29,779 --> 00:21:35,539 Porque tiene un sensor de temperatura y tiene un motor que me permite encender o apagar el aire acondicionado. 255 00:21:35,579 --> 00:21:41,319 Si el sensor de temperatura, si yo le pongo en el termostato que quiero estar a 30 grados, 256 00:21:41,740 --> 00:21:48,420 si el sensor de temperatura me va leyendo la temperatura y estamos por debajo de 30 grados, el motor no se enciende. 257 00:21:48,980 --> 00:21:51,299 Pero si estamos por encima de 30 grados, el motor se enciende. 258 00:21:51,299 --> 00:22:03,420 Y entonces me mantiene la temperatura de la habitación al nivel que yo le he indicado. Eso sería un robot. Sería un robot muy sencillo, muy básico, ¿vale? Y con una decisión muy sencilla, muy básica. 259 00:22:04,279 --> 00:22:14,259 Un sistema que no es un robot, por ejemplo, es un ventilador. Que yo le cojo, le doy al 1 y eso se enciende y no tiene ningún sensor, no tiene ninguna alimentación de lo que está ocurriendo en el entorno 260 00:22:14,259 --> 00:22:15,980 y no toma decisiones por sí solo. 261 00:22:16,259 --> 00:22:17,839 Simplemente se enciende, se apaga y se acabó. 262 00:22:18,180 --> 00:22:21,619 Entonces, eso sería un sistema automático, pero no sería un robot. 263 00:22:22,339 --> 00:22:25,200 Entonces, la diferencia entre el robot y el sistema automático es esa, 264 00:22:25,500 --> 00:22:29,680 que yo tengo sensores que me permiten interactuar con el entorno y tomar decisiones. 265 00:22:30,400 --> 00:22:30,579 ¿Vale? 266 00:22:31,240 --> 00:22:31,640 Vale. 267 00:22:32,400 --> 00:22:36,980 Me preguntaba, Fernando, si tienes alguna duda adicional, Cris, me lo dices, ¿vale? 268 00:22:36,980 --> 00:22:38,500 No hay ningún problema, me lo dices por el chat. 269 00:22:39,440 --> 00:22:39,680 Vale. 270 00:22:40,460 --> 00:22:41,700 Vamos a tener que hacer un robot. 271 00:22:41,700 --> 00:22:45,380 Si me hubiera gustado que hiciéramos un robot 272 00:22:45,380 --> 00:22:47,900 Un segundo, me voy a salir de la pantalla porque voy a coger humo 273 00:22:47,900 --> 00:22:53,869 Vale, la idea es que hubiéramos hecho esto en clase 274 00:22:53,869 --> 00:22:56,630 Tengo los kits preparados, pero evidentemente 275 00:22:56,630 --> 00:23:01,250 Como estamos en cuarentena, pues no lo vamos a poder hacer 276 00:23:01,250 --> 00:23:03,369 Porque os va a faltar esta placa de aquí 277 00:23:03,369 --> 00:23:05,789 Que es la placa que íbamos a utilizar 278 00:23:05,789 --> 00:23:07,109 Es una placa muy sencillita 279 00:23:07,109 --> 00:23:09,589 Que se utiliza más sencilla que la de Arduino 280 00:23:09,589 --> 00:23:13,609 Pero es esta placa la que íbamos a utilizar para poder hacer el robot 281 00:23:14,190 --> 00:23:19,569 Además, con los cocodrilos estos, pues es muy fácil de conectar porque simplemente con las pinzas ir cogiendo las cosas. 282 00:23:20,130 --> 00:23:22,990 Aquí veis que tenemos un sensor de distancia, ¿vale? 283 00:23:23,049 --> 00:23:25,930 Y bueno, aquí tenemos un par de motores, un motor y otro motor. 284 00:23:26,490 --> 00:23:34,990 Entonces, con esto lo que íbamos a hacer era, con este robot, hacer justo lo que habéis visto en lo que habéis hecho en el reto de Semana Santa, ¿vale? 285 00:23:34,990 --> 00:23:37,650 Un robot que hiciera ciertas cosas y que se pudiera mover. 286 00:23:38,029 --> 00:23:39,769 Y funciona, ¿vale? Funciona sin problemas. 287 00:23:39,769 --> 00:23:57,829 esta es la caja de las pilas, donde están las pilas, tiene un interruptor por aquí y bueno, pues al final el robot funciona, si queréis lo puedo encender, ¿vale? El robot anda y si encuentra un obstáculo, es, ¿qué pasa aquí? 288 00:23:57,829 --> 00:24:15,150 Si encuentra un estápulo, gira una rueda, la otra no, y luego en el momento en el que 289 00:24:15,150 --> 00:24:17,109 le quito la distancia, sigue avanzando. 290 00:24:17,230 --> 00:24:20,410 Si encuentra con otra pared, hace el movimiento de giro y tira. 291 00:24:21,650 --> 00:24:22,089 ¿Veis? 292 00:24:23,009 --> 00:24:28,269 Es un robot muy sencillito, con un algoritmo muy sencillo, que lo habéis hecho vosotros 293 00:24:28,269 --> 00:24:30,150 mismos, que lleva un trozo de madera. 294 00:24:30,150 --> 00:24:33,049 unas brigas, luego había 295 00:24:33,049 --> 00:24:36,710 imprimido en la impresora 3D los soportes de las bolas 296 00:24:36,710 --> 00:24:39,650 y el soporte para el sensor, ¿vale? 297 00:24:39,670 --> 00:24:42,190 Que son piezas imprimidas en la impresora 3D 298 00:24:42,190 --> 00:24:45,710 Todo esto ya lo tenía yo preparado en kits 299 00:24:45,710 --> 00:24:48,970 para que vosotros pudierais hacerlo, ¿vale? Pero no vamos a poderlo 300 00:24:48,970 --> 00:24:51,710 hacer porque evidentemente no tenéis las piezas y no os voy a hacer 301 00:24:51,710 --> 00:24:54,670 comprarlo, ¿vale? Pero sí que vamos a hacer una cosa 302 00:24:54,670 --> 00:24:56,970 que es simularlo. Entonces 303 00:24:56,970 --> 00:25:00,109 os voy a enseñar, ¿vale? 304 00:25:00,150 --> 00:25:20,269 Esto es Tinkercad. A ver un segundito. No sé si lo estoy compartiendo. No estoy seguro de si... No, no lo estoy compartiendo. Espera un segundito. Voy a compartir esto. Esto es Tinkercad. Esto de aquí es Tinkercad. 305 00:25:20,269 --> 00:25:36,769 Y en Tinkercad ahora hay una opción para circuitos. Lo voy a poner más grande para que lo veamos todos. Ahí está. ¿Vale? Entonces, hay una opción para circuitos que me permite simular circuitos. Por ejemplo, pues voy a coger... A ver, un segundo, que quites... Hay cositas aquí que me estorban. Vale. 306 00:25:36,769 --> 00:26:06,750 Entonces, voy a cerrar este, un segundo, ah no, bueno, vale, me ha salido, vale, cojo este, lo modificamos, voy a cogerme un circuito que ya está hecho, vale, hay algunos ejemplos para poder jugar aquí en los starters, vale, entonces voy a coger un starter básico de Arduino y voy a coger, pues yo que sé, de estos, vale, una intermitencia, vale, entonces, vale, aquí lo tengo, 307 00:26:06,769 --> 00:26:08,910 Voy a quitarme la placa que tenía ahí abajo. 308 00:26:09,809 --> 00:26:10,750 Sí. Vale. 309 00:26:11,410 --> 00:26:13,230 ¿Veis? Yo voy a poder simular. 310 00:26:13,910 --> 00:26:20,450 En este caso tengo un LED con una resistencia conectado a dos pines de la parte digital. 311 00:26:20,630 --> 00:26:23,529 ¿Vale? Veis que aquí pone digital, aquí pone analógico. 312 00:26:24,210 --> 00:26:28,809 Entonces estas son las entradas analógicas, que es donde yo conectaré los sensores que van de 0 a 1024. 313 00:26:29,430 --> 00:26:30,509 Y aquí tengo las digitales. 314 00:26:30,730 --> 00:26:32,190 Y con esto vamos a simular. ¿Vale? 315 00:26:32,509 --> 00:26:34,329 Yo tengo aquí una serie de componentes. 316 00:26:34,329 --> 00:26:42,990 Por ejemplo, pues tengo un pulsador que yo podré conectar de aquí, por ejemplo, este pin aquí y este pin, pues, yo qué sé, aquí. 317 00:26:43,730 --> 00:26:48,529 ¿Vale? Puedo hacer conexiones y puedo ir conectando. Entonces, a esto es lo que vamos a utilizar, un simulador. 318 00:26:49,190 --> 00:26:58,309 Luego, lo bueno que tiene esto es que, una vez construido, yo lo puedo ejecutar y voy a poder ver cómo funciona. 319 00:26:58,309 --> 00:27:08,470 Veis que en este caso el LED se enciende y se apaga. Entonces es una simulación parecida a lo que sería un robot, pero no vamos a poder verlo funcionando, ¿vale? 320 00:27:09,130 --> 00:27:24,089 Ya os enseñé que yo tengo aquí en casa un par de robots, ¿vale? Uno de ellos es el que os acabo de enseñar, tengo otro un poco más complejo con un sensor de Bluetooth que me permite conectarlo a un móvil y moverlo adelante y atrás y poder dirigirlo desde un móvil. 321 00:27:24,089 --> 00:27:42,789 Bueno, íbamos a hacer algunas cosas chulas, pero bueno, dado que estamos en confinamiento, pues no vamos a poder hacer esas cosas tan chulas. Y nos vamos a tener que quedar solo con la parte de teoría, ¿vale? Vamos a hacerlo con simuladores y eso nos va a permitir más o menos hacerlo. 322 00:27:43,670 --> 00:27:48,470 Vale, entonces, preguntas hasta ahora, más o menos, ¿sabéis cómo funcionan ya los algoritmos? 323 00:27:48,849 --> 00:27:50,730 ¿Sabemos cómo funciona el algoritmo de un robot? 324 00:27:50,869 --> 00:27:57,049 Un robot está en un algoritmo infinito, dando vueltas, y va a coger la información de los sensores, 325 00:27:57,609 --> 00:28:00,849 va a procesarla y luego va a actuar, ¿de acuerdo? 326 00:28:01,529 --> 00:28:03,569 Bien, ¿cuál era el reto de Semana Santa entonces? 327 00:28:03,930 --> 00:28:07,210 Vuelvo a compartiros la presentación. 328 00:28:07,210 --> 00:28:10,190 vale, el reto de Semana Santa 329 00:28:10,190 --> 00:28:12,230 era construir un robot 330 00:28:12,230 --> 00:28:13,450 que hiciera lo siguiente 331 00:28:13,450 --> 00:28:15,910 el robot es este que es el mismo que os acabo de enseñar 332 00:28:15,910 --> 00:28:17,650 es el que tengo yo aquí en casa 333 00:28:17,650 --> 00:28:19,390 le hice una foto en un momento 334 00:28:19,390 --> 00:28:20,710 vale, entonces 335 00:28:20,710 --> 00:28:24,130 tiene un sensor de distancia que es este frontal 336 00:28:24,130 --> 00:28:25,809 que mira hacia adelante 337 00:28:25,809 --> 00:28:28,150 y va a estar midiendo la distancia continuamente 338 00:28:28,150 --> 00:28:29,450 y entonces 339 00:28:29,450 --> 00:28:31,869 la distancia nos la va a dar en milímetros 340 00:28:31,869 --> 00:28:34,210 entonces cuando reciba 341 00:28:34,210 --> 00:28:35,569 la información 342 00:28:35,569 --> 00:28:38,289 el número que me va a devolver va a ser la distancia 343 00:28:38,289 --> 00:28:39,029 en milímetros. 344 00:28:39,970 --> 00:28:41,970 ¿Qué voy a hacer? Pues, si 345 00:28:41,970 --> 00:28:44,150 luego además tengo dos motores, el motor de la rueda 346 00:28:44,150 --> 00:28:45,769 izquierda y el motor de la rueda derecha. 347 00:28:46,230 --> 00:28:47,990 ¿Vale? Los motores tienen que ir 348 00:28:47,990 --> 00:28:49,970 hacia adelante. Entonces, yo quiero que 349 00:28:49,970 --> 00:28:51,750 el robot, si no tiene nada adelante, 350 00:28:51,890 --> 00:28:53,930 si no tiene ningún obstáculo, pum, pum, pum, pum, 351 00:28:53,930 --> 00:28:55,490 las dos ruedas estén moviendo hacia adelante. 352 00:28:56,210 --> 00:28:57,869 ¿Vale? Las ruedas se pueden mover 353 00:28:57,869 --> 00:28:59,910 hacia atrás, también podrían moverse hacia atrás. 354 00:29:00,190 --> 00:29:01,269 O las ruedas se pueden parar. 355 00:29:01,910 --> 00:29:03,809 ¿Vale? Son las acciones que puedo hacer sobre los 356 00:29:03,809 --> 00:29:05,549 motores. Yo le puedo decir, anda, 357 00:29:06,690 --> 00:29:07,150 retrocede 358 00:29:07,150 --> 00:29:09,589 o para. Y además, cuando 359 00:29:09,589 --> 00:29:11,589 le digo que ande o que retroceda, le puedo decir 360 00:29:11,589 --> 00:29:13,869 si quiero que vaya al 0%, al 1%, 361 00:29:13,869 --> 00:29:15,869 al 10%, al 100% de velocidad 362 00:29:15,869 --> 00:29:17,730 máxima que tienen que me dar. 363 00:29:18,269 --> 00:29:19,690 Vale. Entonces, bueno, 364 00:29:19,769 --> 00:29:21,490 pues ahí os pongo unos ejemplos 365 00:29:21,490 --> 00:29:22,690 de cómo funciona en este caso. 366 00:29:23,390 --> 00:29:25,509 Y lo que os pido es que diseñéis un 367 00:29:25,509 --> 00:29:27,369 algoritmo, ¿vale? 368 00:29:27,769 --> 00:29:29,869 Que construya, para construir 369 00:29:29,869 --> 00:29:31,630 un programa que podamos hacer que el 370 00:29:31,630 --> 00:29:33,390 robot se comporte de la siguiente forma. Que avance 371 00:29:33,390 --> 00:29:37,650 siempre a la máxima velocidad, pero que cuando la distancia medida por el sensor a un objeto 372 00:29:37,650 --> 00:29:41,329 sea menor de 10 centímetros, como me está midiendo en milímetros, tiene que ser menor 373 00:29:41,329 --> 00:29:45,990 de 100, ¿vale? Entonces tiene que echar marcha atrás haciendo un giro. ¿Cómo lo hago? 374 00:29:46,430 --> 00:29:51,089 Haciendo que una rueda se mueva y la otra no. Entonces el robot gira como los tanques, 375 00:29:51,730 --> 00:29:57,309 ¿vale? Entonces, si muevo solo una de las ruedas, el robot lo que va a hacer es ir hacia 376 00:29:57,309 --> 00:30:04,410 atrás girando, ¿vale? Y entonces echan para atrás haciendo un giro, así cambian la dirección 377 00:30:04,410 --> 00:30:09,890 y cuando haya hecho un giro más o menos de un tercio de vuelta, pues que se irá hacia 378 00:30:09,890 --> 00:30:15,829 adelante y tire, ¿vale? Para poder hacer eso vamos a hacer una secuencia de comandos 379 00:30:15,829 --> 00:30:21,630 automática que vamos a, digamos, secuenciar a través de un comando que es el comando 380 00:30:21,630 --> 00:30:27,549 esperar, ¿vale? El comando esperar me permite esperar durante un tiempo y eso quiere decir 381 00:30:27,549 --> 00:30:31,690 no que se pare el robot y se quede estático, sino que si un motor está funcionando y yo 382 00:30:31,690 --> 00:30:35,970 le digo que espere, el robot se queda sin hacer nada, es decir, el motor sigue funcionando, 383 00:30:36,609 --> 00:30:43,250 ¿vale? Si yo estoy con las ruedas paradas y le digo que espere, eso se queda parado, 384 00:30:43,730 --> 00:30:46,730 con lo cual el robot va a seguir haciendo lo que está haciendo, ¿vale? Y luego, bueno, 385 00:30:46,730 --> 00:30:59,910 Os ponía aquí un pequeño vídeo de cómo funcionaba ese robot, ¿vale? Lo hice ayer en el instituto en un momento y ahí lo podéis ver cómo funciona. Entonces, ¿cómo es el algoritmo para este robot? 386 00:30:59,910 --> 00:31:27,289 Bien, voy a dejar esto por aquí a la izquierda y voy a poner aquí a la derecha un algoritmo, en este caso voy a poner el algoritmo de Lucía, que me lo ha mandado, y este algoritmo, aquí lo tenemos, un segundito, vale, entonces, el algoritmo de Lucía está casi bien, tiene algunos fallos, pero está casi, casi bien. 387 00:31:27,289 --> 00:31:47,630 Entonces, pues lo voy a utilizar como ejemplo. ¿Vale? ¿Qué es lo que ha hecho Lucía? Bien, perfecto. Empezamos con un algoritmo con el nombre robot. Muy bien. Y ahora, mientras que es verdadero, vamos a hacer, con lo cual el robot va a estar infinitamente en este bucle. Perfecto. Hasta aquí estamos siguiendo lo que hemos visto que era necesario para hacer un algoritmo de un robot. 388 00:31:48,509 --> 00:31:49,609 Bien, ¿y qué vamos a hacer? 389 00:31:50,269 --> 00:31:53,710 Vamos a mover el motor 1 hacia adelante y vamos a mover el motor 2 hacia adelante. 390 00:31:53,829 --> 00:31:56,230 Esto parece que está bien, pero ahora vamos a ver que tiene un pequeño problema. 391 00:31:57,109 --> 00:31:57,269 ¿Vale? 392 00:31:57,890 --> 00:31:59,309 Movemos los motores hacia adelante. 393 00:32:00,029 --> 00:32:01,269 Esto hace que el robot empiece a andar. 394 00:32:02,289 --> 00:32:05,250 Y luego le decimos, ingresa la medida en milímetros. 395 00:32:05,410 --> 00:32:09,009 Realmente yo no le voy a decir esto, lo que voy a hacer es leer, ¿vale? 396 00:32:09,029 --> 00:32:09,990 Porque esto es un sensor. 397 00:32:09,990 --> 00:32:19,349 entonces aquí realmente tendría que decirle leer el sensor de ultrasonidos y aquí le pongo 398 00:32:19,349 --> 00:32:24,569 milímetros para indicar como yo lo estoy simulando pues entonces el usuario va a meter 399 00:32:24,569 --> 00:32:31,750 lo que el sensor de ultrasonidos daría y leemos una variable que se llama mm perfecto luego si 400 00:32:31,750 --> 00:32:37,789 os fijáis me dice escribir centímetros y hace milímetros entre 10 bueno yo en vez de hacer 401 00:32:37,789 --> 00:32:42,029 esto así, os recomiendo que siempre utilicéis variables adicionales. Por ejemplo, una variable 402 00:32:42,029 --> 00:32:48,569 que voy a llamar centímetros es igual a milímetros entre 10. ¿De acuerdo? Y a partir de ahora 403 00:32:48,569 --> 00:32:55,210 ya, en vez de utilizar esto, voy a utilizar simplemente la variable centímetros. ¿Vale? 404 00:32:55,650 --> 00:33:01,289 Y esto voy a utilizar la variable centímetros. ¿Por qué? Porque la variable centímetros 405 00:33:01,289 --> 00:33:05,829 la voy a utilizar muchas veces. Entonces, en lugar de estar haciendo divisiones cada 406 00:33:05,829 --> 00:33:09,390 vez que quiero utilizarla, ¿vale? Este es un programa muy sencillo, solo se usa dos 407 00:33:09,390 --> 00:33:11,269 veces, pero en un programa más complejo es probable que lo 408 00:33:11,269 --> 00:33:12,869 utilicemos 10-15 veces. 409 00:33:13,369 --> 00:33:15,329 Entonces, si cada vez que quiero utilizarla 410 00:33:15,329 --> 00:33:17,470 tengo que dividir por 10, estoy comiéndome 411 00:33:17,470 --> 00:33:19,250 ciclos de CPU. Estoy comiendo 412 00:33:19,250 --> 00:33:21,410 CPU. Entonces es más fácil hacer la cuenta 413 00:33:21,410 --> 00:33:23,210 una sola vez, guardarlo en la variable y luego 414 00:33:23,210 --> 00:33:25,069 ya simplemente utilizar esa variable. ¿De acuerdo? 415 00:33:25,930 --> 00:33:26,730 Vale. Entonces, 416 00:33:27,470 --> 00:33:29,309 esto lo voy a meter un poquito más allí. 417 00:33:29,450 --> 00:33:31,289 Así se ve. Vale. Entonces, 418 00:33:31,690 --> 00:33:33,589 empezamos leyendo la distancia 419 00:33:33,589 --> 00:33:35,150 y vamos a meterlo en una variable. 420 00:33:35,369 --> 00:33:37,289 Centímetros igual a milímetros partido por 10. 421 00:33:37,490 --> 00:33:39,230 ¿Vale? Esto no es así. Perdón. 422 00:33:39,390 --> 00:33:46,569 Esto es así, como lo haría el PSI. 423 00:33:47,049 --> 00:33:53,730 Ahora, centímetros es, le asignamos a la variable centímetros el milímetro centímetro. 424 00:33:54,069 --> 00:33:55,609 Ahora decimos, escribir centímetros. 425 00:33:56,250 --> 00:34:00,809 Un robot, evidentemente, a no ser que quiera que me informe a través de un display o lo que sea, 426 00:34:01,589 --> 00:34:03,309 no tiene que escribir nada, ¿de acuerdo? 427 00:34:03,529 --> 00:34:05,829 Un robot no tiene que escribir nada. 428 00:34:06,369 --> 00:34:10,829 Por lo tanto, yo ya tengo almacenado en centímetros la variable correspondiente a la distancia en centímetros. 429 00:34:11,489 --> 00:34:13,429 Y esa es la que voy a utilizar para tomar las decisiones. 430 00:34:13,590 --> 00:34:20,190 Esto sería lo que yo he llamado aquí en este ciclo procesar la información. 431 00:34:21,170 --> 00:34:27,550 Es decir, hemos leído los sensores, hemos asignado las lecturas a las variables, que es esta orden, 432 00:34:28,449 --> 00:34:34,469 hemos procesado la información, he cogido la información que me ha leído los sensores y la he transformado en los valores correctos 433 00:34:34,469 --> 00:34:48,769 Y luego he tomado las decisiones. Si los centímetros son menores que 10, hago una serie de cosas. Y si no, hago otra. Perfecto. Las actuaciones están en función de la decisión que he tomado si hago una cosa o la otra. 434 00:34:48,769 --> 00:34:56,769 Vale, ¿qué problemas tengo aquí? Bien, fijaros, primero mueve el motor hacia adelante al 100% y mueve el motor hacia adelante al 100%. 435 00:34:56,769 --> 00:35:05,309 Si yo estoy con una distancia mayor que 10 centímetros, me va a mover el motor hacia adelante y me va a mover el motor hacia adelante, pero cuando termine el bucle de metas lo va a volver a mover. 436 00:35:05,309 --> 00:35:18,630 Si os fijáis, yo ejecuto este algoritmo y le digo, leer el sensor de ultrasonido, si le digo que estoy a 125, es decir, a más de 10 centímetros, me sale dos veces. 437 00:35:19,250 --> 00:35:24,050 Mueve el motor 1 hacia delante y el 2 hacia delante y luego otra vez el motor 1 hacia delante y el motor 2 hacia delante. 438 00:35:24,050 --> 00:35:35,269 Esto es absurdo, ¿vale? No es necesario lanzar dos veces la orden al sensor, al motor y de hecho se puede poder dar algún problema con algunos actuadores. 439 00:35:35,489 --> 00:35:48,590 Entonces, estas dos primeras líneas sobran. ¿Por qué sobran? Sobran porque, fijaros, si yo directamente lo primero que hago es leer el sensor, 440 00:35:48,590 --> 00:35:58,849 El sensor, ya os digo que es una cosa que tarda microsegundos, 125, ya solamente entra dentro de la rama del bucle que me dice que estoy a más distancia y me mueve el motor. 441 00:35:59,449 --> 00:36:10,690 Si yo vuelvo a leer el sensor, 160 y estoy más lejos, pues el motor sigue moviéndose hacia delante, pero ya solo sale la orden una vez, lo cual es mejor, ¿vale? 442 00:36:11,170 --> 00:36:17,730 Con lo cual, esa es la primera corrección que había que hacerle importante a este algoritmo. 443 00:36:17,730 --> 00:36:41,630 Luego, la segunda corrección, ¿cuál es? Vale, ¿qué ocurre cuando la distancia es menor a 10 centímetros? Pues lo primero que voy a hacer es esperar un segundo. Pues hombre, si tengo un obstáculo a menos de 10 centímetros, estoy avanzando al 100% y me espero un segundo, pues me choco, ¿vale? Entonces no tengo que esperar nada. Si tengo un obstáculo a menos de 10 centímetros, tengo que actuar de forma inmediata, con lo cual no tengo que esperar nada, ¿vale? 444 00:36:41,630 --> 00:37:03,329 ¿Qué tengo que hacer? Inmediatamente parar los motores. ¿Por qué? Porque si no me choco. Entonces, tengo el obstáculo a menos de 10 centímetros, paro. Ahora, ¿qué hago? Perfecto, muevo el motor 2 hacia atrás 50%, ¿vale? Pues cojo una rueda y muevo hacia atrás. Y aquí sí, esperamos un segundo, ¿vale? Y luego ya movemos hacia adelante. Aquí ya estaría perfecto. 445 00:37:03,329 --> 00:37:27,010 Bien, hay una cosa, ¿vale? Tenemos que recordar que estamos trabajando con dispositivos físicos reales. Entonces, a los que me habéis mandado el reto solucionado, os he dicho, tener en cuenta que si yo estoy moviendo un motor hacia una dirección y de repente cojo y le cambio bruscamente hacia la otra y le digo, anda hacia delante y cambia, puedo cargarme el mecanismo. 446 00:37:27,010 --> 00:37:39,050 Entonces, normalmente, ¿vale? Esto además hay un comando aquí, esto lo voy a cambiar por, esto está bien, pero podríamos poner esperar un segundo, ¿vale? 447 00:37:39,050 --> 00:38:03,619 Y entonces ahora el algoritmo va a esperar realmente un segundo y ahora le digo, escribe, escribir para motor 1 y escribir para motor 2. 448 00:38:04,079 --> 00:38:10,579 vale entonces en esta parte de fijaros que parado los dos motores con lo cual al empezar a andar 449 00:38:10,579 --> 00:38:15,599 hacia atrás ya he parado el movimiento de hacia adelante y lo he salvado el hecho que el motor 450 00:38:15,599 --> 00:38:20,400 no sufra pero ahora para poder poner el motor uno está parado porque el que he hecho para atrás 451 00:38:20,400 --> 00:38:27,900 esté parado simplemente el motor dos es el que están dando hacia atrás lo paro y ya los dos 452 00:38:27,900 --> 00:38:44,039 tiro para adelante. Con lo cual ahora, fijaros lo que ocurre. Tengo mi algoritmo y digo leer el sensor de ultrasonidos, vale, 125, vale, pues hacia adelante, 123, 120, 110, me estoy acercando, 453 00:38:44,139 --> 00:38:53,519 de momento sigo hacia adelante, siempre muevo los motores hacia adelante, 100 y ahora llego a 95. Entonces paro los motores, veis que ha esperado un segundo, 454 00:38:53,519 --> 00:38:55,599 mueve el motor 2 hacia detrás 455 00:38:55,599 --> 00:38:57,480 ¿vale? para el motor 456 00:38:57,480 --> 00:38:58,699 y 457 00:38:58,699 --> 00:39:01,420 mueve, o sea, para el motor 2, perdón 458 00:39:01,420 --> 00:39:04,059 a ver, para los motores 459 00:39:04,059 --> 00:39:05,400 mueve el motor 2 hacia detrás 460 00:39:05,400 --> 00:39:06,739 espera un segundo 461 00:39:06,739 --> 00:39:09,840 ¿de acuerdo? y luego para el motor 2 y los mueve 462 00:39:09,840 --> 00:39:11,800 hacia detrás, con lo cual lo que ha hecho ha sido 463 00:39:11,800 --> 00:39:13,559 una rueda la ha echado hacia detrás 464 00:39:13,559 --> 00:39:15,059 durante un segundo y lo voy a hacer 465 00:39:15,059 --> 00:39:17,579 ¿bien? y se me queda esperando de nuevo 466 00:39:17,579 --> 00:39:19,579 el sensor de ultrasonidos, esta secuencia 467 00:39:19,579 --> 00:39:21,139 de aquí 468 00:39:21,139 --> 00:39:22,559 la ha hecho del tirón 469 00:39:22,559 --> 00:39:38,780 Y hemos utilizado la espera intermedia para poder hacerlo. Lo voy a repetir, imaginaros que ahora estoy a 90, ¿vale? Fijaros que después de mover el motor 2 hacia detrás, se queda esperando un segundo. ¿Veis? Se ha quedado esperando un segundo. 470 00:39:38,780 --> 00:39:43,500 Voy a hacerlo más exagerado y le voy a poner que espere 5 segundos, ¿vale? 471 00:39:43,539 --> 00:39:49,380 Esto haría que el robot estuviera girando sobre sí mismo, pero bueno, para el ejemplo me vale. 472 00:39:50,039 --> 00:39:53,340 Entonces, esperad un segundo que no veo. 473 00:39:55,900 --> 00:40:07,320 Entonces, le damos aquí, ejecutando el proceso robot, le damos el sensor 120, 110, perfecto, y llegamos a 100. 474 00:40:07,980 --> 00:40:11,699 Cuando pasamos de A95, fijaros, mueve el motor 2 hacia atrás, 475 00:40:11,880 --> 00:40:14,579 se queda con el motor 2 hacia atrás esperando durante un segundo 476 00:40:14,579 --> 00:40:16,420 y luego tira para adelante. 477 00:40:16,960 --> 00:40:18,780 Y se vuelve a leer el sensor de ultrasonido. 478 00:40:18,960 --> 00:40:19,760 Y así continuamente. 479 00:40:20,219 --> 00:40:22,599 Y esto es un algoritmo infinito, con lo cual el robot, ¿qué va a hacer? 480 00:40:22,860 --> 00:40:23,260 Avanza. 481 00:40:24,239 --> 00:40:26,619 Cuando se encuentra con un obstáculo, para. 482 00:40:27,760 --> 00:40:29,880 Rueda hacia detrás y vuelve a avanzar. 483 00:40:30,320 --> 00:40:32,099 Cuando se encuentra con otro obstáculo, para. 484 00:40:32,440 --> 00:40:34,320 Rueda hacia detrás y vuelve a avanzar. 485 00:40:34,460 --> 00:40:35,579 Y entonces evita los obstáculos. 486 00:40:35,719 --> 00:40:36,920 Es un robot para evitar obstáculos. 487 00:40:37,320 --> 00:40:44,460 ¿De acuerdo? Bueno, pues esto es un poco como simulamos nosotros en PSEINT estos algoritmos para robots. 488 00:40:45,380 --> 00:40:57,119 Entonces, abro la ronda de preguntas. ¿Vale? ¿Alguien tiene preguntas? ¿Alguno tenéis alguna pregunta? Contestadme sí o no por el chat. 489 00:41:03,429 --> 00:41:13,289 ¿Vale? ¿No hay preguntas? Perfecto. Entonces, ¿qué es lo que...? A ver, un segundo, voy a detener el uso compartido de todo esto para ponerme yo al grande. 490 00:41:13,289 --> 00:41:34,030 Vale, entonces, ¿qué es lo que vamos a usar? Ya lo habéis visto, ya os lo he compartido y ya os he descubierto un poquito cuál es el siguiente paso, ¿vale? El siguiente paso va a ser utilizar Tinkercad, entonces, todos los que no tengáis usuario en Tinkercad os tenéis que sacar el usuario en Tinkercad, ¿vale? 491 00:41:34,030 --> 00:42:01,579 Voy a cerrar esto. Voy a, vale, voy a salir de Tinkercad porque quiero que veáis cómo es el proceso, ¿vale? Entonces, entramos en Tinkercad.com, ¿de acuerdo? Os vais a Tinkercad.com y normalmente os va a pedir que entréis, a ver, un segundo, eh, que me quiero salir. 492 00:42:01,579 --> 00:42:07,639 ah, vale, no, es que es 493 00:42:07,639 --> 00:42:09,780 aquí y aquí 494 00:42:09,780 --> 00:42:11,480 cerrar sesión, perdón 495 00:42:11,480 --> 00:42:13,980 estaba al otro lado, me estaba liando 496 00:42:13,980 --> 00:42:16,139 vale, entonces normalmente tú vas a 497 00:42:16,139 --> 00:42:18,219 Tinkercad, entras aquí y si ya tenéis 498 00:42:18,219 --> 00:42:20,260 usuario en Tinkercad, iniciáis la sesión 499 00:42:20,260 --> 00:42:22,039 y si no, únete ya mismo 500 00:42:22,039 --> 00:42:24,159 vale, le metéis una dirección de correo 501 00:42:24,159 --> 00:42:26,219 electrónico, yo normalmente no utilizo ni Facebook 502 00:42:26,219 --> 00:42:27,960 ni Google para 503 00:42:27,960 --> 00:42:30,179 conectarme, voy a través de un registro 504 00:42:30,179 --> 00:42:31,980 estándar, pero bueno 505 00:42:31,980 --> 00:42:34,119 vosotros podéis utilizar también Google 506 00:42:34,119 --> 00:42:35,780 por ejemplo, entonces 507 00:42:35,780 --> 00:42:57,739 Entonces yo hago mi acceso, entro con mi correo electrónico, mi usuario, ¿vale? Y mi contraseña, ¿de acuerdo? Entro a Tinkercad y cuando entramos en Tinkercad tenemos aquí la opción de circuitos. 508 00:42:57,739 --> 00:43:05,179 Tenemos para diseñar en 3D, que es lo que hemos hecho en otras partes de las asignaturas, ¿vale? 509 00:43:05,280 --> 00:43:07,440 Pero aquí tenemos circuitos. 510 00:43:08,019 --> 00:43:13,139 Pinchando en circuitos tenemos la opción de construir circuitos con nuestras placas Arduino. 511 00:43:13,659 --> 00:43:23,670 Vamos a crear uno nuevo y lo primero que tengo que meter es mi placa Arduino, ¿de acuerdo? 512 00:43:24,389 --> 00:43:29,750 Una placa Arduino, la voy a poner vertical, la puedo girar aquí con este icono de arriba a la izquierda. 513 00:43:30,010 --> 00:43:36,909 veis y aquí tengo mi placa arduino entonces con mi placa arduino lo primero que tengo que ver son 514 00:43:36,909 --> 00:43:45,789 que aquí tengo los pines desde el pin 0 al pin 13 son pines digitales lo veis aquí digital y 515 00:43:45,789 --> 00:43:55,929 aquí tengo desde el acero al a5 pines analógicos de acuerdo entonces también tenemos protoboard 516 00:43:55,929 --> 00:44:04,730 Tenemos por aquí una protoboard, que es la placa de pruebas, que también la puedo girar y la puedo poner aquí. 517 00:44:05,409 --> 00:44:10,869 Y ahora puedo conectar cosas y puedo ir haciendo como si estuviéramos en el laboratorio todos mis diseños. 518 00:44:11,789 --> 00:44:17,610 Entonces, ¿qué voy a hacer? Pues voy a hacer un diseño muy sencillito para que veáis cómo funciona. 519 00:44:17,969 --> 00:44:23,809 La placa esta la voy a poner para no tener que andar girando todos los componentes porque los componentes se salen verticales. 520 00:44:23,809 --> 00:44:33,170 ¿Vale? Entonces, ¿qué voy a hacer? Voy a poner un LED, voy a poner una resistencia, ¿de acuerdo? 521 00:44:34,230 --> 00:44:42,449 Esto me va a sobrar para este ejemplo y lo que voy a hacer es conectar el pin 11, ¿vale? El pin 11 al LED. 522 00:44:42,929 --> 00:44:52,110 Pues yo pincho, es sobre el pin 11, veis que se pone en rojo, pincho, saco, pincho otra vez y me lo llevo aquí y conecto. 523 00:44:52,110 --> 00:45:04,789 Entonces, ahora puedo mover esto si quiero, ¿vale? Lo pongo recto. Después conecto este aquí, pero lo voy a conectar bonito, haciendo una curva, ¿vale? 524 00:45:04,789 --> 00:45:11,489 Y después, este terminal lo voy a conectar a tierra. 525 00:45:13,960 --> 00:45:18,440 Para que no me confunda, el conector de tierra lo voy a poner negro. 526 00:45:19,380 --> 00:45:24,539 El conector del sensor lo voy a poner en amarillo. 527 00:45:25,320 --> 00:45:25,420 ¿Vale? 528 00:45:26,059 --> 00:45:28,659 Entonces, esto es como yo he hecho las conexiones. 529 00:45:28,800 --> 00:45:29,900 Si os fijáis, es muy fácil. 530 00:45:30,119 --> 00:45:32,440 Tengo un montón de cosas aquí para poder meter. 531 00:45:32,619 --> 00:45:34,460 Tengo sensores de distancia, tengo tal. 532 00:45:34,980 --> 00:45:35,179 ¿Vale? 533 00:45:35,179 --> 00:45:47,480 Entonces, lo que vamos a ir haciendo a partir de ahora son una serie de prácticas con esto que os iré poniendo para que vayamos haciendo una serie de ejercicios y podamos ir construyendo ciertas cosas. 534 00:45:47,800 --> 00:45:50,260 Vamos a empezar por cosas muy básicas como un LED. 535 00:45:51,019 --> 00:45:55,199 Ahora aquí en código, fijaros que tengo bloques, ¿vale? 536 00:45:56,260 --> 00:46:02,000 Entonces, los bloques son justo lo mismo que teníamos en PSI. 537 00:46:02,000 --> 00:46:20,219 Por ejemplo, tenemos entradas. Yo puedo leer un pin digital o un pin analógico. Si yo conecto aquí algo, un botón, o conecto aquí un sensor de distancia, yo puedo leer el valor de lo que está conectado a ese pin y almacenarlo en una variable. 538 00:46:20,219 --> 00:46:34,440 ¿De acuerdo? Entonces, leer los pasadores, los pines, pasador es lo mismo que pin o conexión, entonces leer los pines digitales y analógicos, los digitales son todos estos y los analógicos son todos estos. 539 00:46:35,019 --> 00:46:43,820 Y eso me va a permitir leer la información de los sensores. ¿Vale? Entonces, básicamente estos dos son los que voy a utilizar, el resto de momento no se olvida. 540 00:46:43,820 --> 00:47:03,099 Después, puedo actuar, puedo poner un pasador, un pin, cuando es digital lo puedo poner en alta, quiere decir a uno, o digamos activado, o en baja, que quiere decir que está desactivado, ¿vale? 541 00:47:03,099 --> 00:47:10,559 Son los pines digitales que solo tienen dos opciones, o encendido o apagado, como las luces, que es lo que voy a hacer con el tablet. 542 00:47:10,559 --> 00:47:26,320 Y luego también podemos ponerle un pin que sea analógico con un valor entre 0 y 1024, ¿vale? Para poderle generar esa diferencia, ¿de acuerdo? El resto me olvido de momento, ¿de acuerdo? 543 00:47:26,320 --> 00:47:34,019 entonces solamente definir los pasadores, me va a poner los pines analógicos o digitales con los valores que yo indique. 544 00:47:34,420 --> 00:47:37,840 Con lo cual ya puedo interactuar con sensores y con actuadores. 545 00:47:38,099 --> 00:47:45,019 En este caso tengo solamente una luz, que es un pin, o sea, una salida, y sería un actuador. 546 00:47:45,780 --> 00:47:51,639 Y luego tengo en control los mismos elementos que teníamos para trabajar con nuestros algoritmos. 547 00:47:51,639 --> 00:48:12,300 Fijaros, esperar un número de segundos, puedes repetir un número de veces, esto es un bucle de los de tipo for, ¿vale? Un bucle de tipo repetir n veces, los repetir mientras o hasta, ¿vale? Podemos repetir mientras se cumpla una condición, que la pondré aquí, o repetir hasta que se cumpla una condición, que la pondré aquí. 548 00:48:12,300 --> 00:48:15,880 si se cumple una condición 549 00:48:15,880 --> 00:48:17,539 entonces haz algo 550 00:48:17,539 --> 00:48:19,539 y si no se cumple, haz lo 551 00:48:19,539 --> 00:48:21,239 contrario, estas son las bifurcaciones 552 00:48:21,239 --> 00:48:23,500 son los rombos, ¿vale? con la salida 553 00:48:23,500 --> 00:48:25,239 sí y no, y cuando 554 00:48:25,239 --> 00:48:27,360 tenemos una decisión en la cual si 555 00:48:27,360 --> 00:48:29,539 se cumple, ocurre algo 556 00:48:29,539 --> 00:48:30,940 y si no, no hace nada 557 00:48:30,940 --> 00:48:33,460 pues tenemos la opción resumida, que es este 558 00:48:33,460 --> 00:48:35,340 si ocurre algo, entonces 559 00:48:35,340 --> 00:48:37,440 haz esto y ya está, y si no 560 00:48:37,440 --> 00:48:38,000 no hagas nada 561 00:48:38,000 --> 00:48:41,280 y luego tenemos aquí una opción para 562 00:48:41,280 --> 00:48:43,280 contadores, ¿vale? Que también es un bucle, pues 563 00:48:43,280 --> 00:48:45,280 un repetir tantas veces, pues esto 564 00:48:45,280 --> 00:48:47,199 es un contador, lo único que aquí me va llevando una 565 00:48:47,199 --> 00:48:49,239 variable con ese contador, ¿vale? 566 00:48:49,239 --> 00:48:50,940 Un contador 1, 2, 3, 4 567 00:48:50,940 --> 00:48:53,280 o 10, 9, 8, 7, hasta 568 00:48:53,280 --> 00:48:55,280 abajo. Y ya está, ¿vale? 569 00:48:55,440 --> 00:48:56,840 Entonces, bueno, pues en principio 570 00:48:56,840 --> 00:48:59,280 estos son los bloques. ¿Qué vamos 571 00:48:59,280 --> 00:49:01,139 a hacer ahora, vale? Pues os voy a 572 00:49:01,139 --> 00:49:03,179 dejar de momento con esta 573 00:49:03,179 --> 00:49:05,079 información. Luego 574 00:49:05,079 --> 00:49:07,159 aquí, bueno, en matemáticas esto es muy 575 00:49:07,159 --> 00:49:09,260 parecido a Scratch, ¿vale? Tenemos pues las 576 00:49:09,260 --> 00:49:11,179 relaciones, si es mayor 577 00:49:11,179 --> 00:49:16,980 menor, igual o tal, aquí por las operaciones matemáticas, sumar, resta, multiplicar, división, ¿vale? 578 00:49:17,159 --> 00:49:24,780 Y luego también tenemos las operaciones lógicas, is y os, ¿vale? O sea, si algo ocurre y algo ocurre o algo o cuando, ¿vale? 579 00:49:24,840 --> 00:49:35,880 Las nos, ¿vale? Bueno, o sea, aquí tenemos un poco, esto es lo mismo que hemos visto en clase para la lógica normal de cosas que suceden sí o no, ¿vale? 580 00:49:35,880 --> 00:49:41,639 lógica digital. Y luego aquí manejo las variables, aquí me puedo crear mis propias variables a las 581 00:49:41,639 --> 00:49:46,559 cuales voy a asignar un valor. ¿Qué voy a hacer con este? Bueno, pues fijaros, lo que voy a hacer es un 582 00:49:46,559 --> 00:49:54,559 programa, esto lo voy a borrar, ¿vale? Simplemente ya termino con esto, ¿vale? No os preocupéis. 583 00:49:56,519 --> 00:50:02,860 Lo que voy a hacer es activar el pin 11, ¿vale? Entonces voy a ponerle una salida, voy a definir 584 00:50:02,860 --> 00:50:09,699 el pasador digital 11 en alta, con lo cual estoy encendiéndolo, ¿vale? 585 00:50:10,360 --> 00:50:22,079 Después voy a esperar un segundo y ahora voy a poner el pin digital 11 en baja 586 00:50:22,079 --> 00:50:26,719 y ahora voy a esperar otro segundo. 587 00:50:27,420 --> 00:50:30,079 Bien, este es el bucle, esto se va a repetir de forma infinita, 588 00:50:30,079 --> 00:50:33,260 esto no hace falta ponerle el mientras infinito porque ya es un algoritmo 589 00:50:33,260 --> 00:50:36,079 que se va a ejecutar de forma infinita en este robot, ¿vale? 590 00:50:36,079 --> 00:50:39,460 esta resistencia la voy a definir de 220 ohmios 591 00:50:39,460 --> 00:50:40,980 bueno, si no la pongo 592 00:50:40,980 --> 00:50:42,340 me da una alarma, ¿vale? 593 00:50:42,639 --> 00:50:44,179 esto ya lo veremos en la próxima clase 594 00:50:44,179 --> 00:50:46,619 pero ved que yo pongo aquí 595 00:50:46,619 --> 00:50:48,820 la resistencia adecuada para que esto funcione 596 00:50:48,820 --> 00:50:51,139 y ahora cuando yo inicio la simulación 597 00:50:51,139 --> 00:50:51,960 ¿qué es lo que va a hacer? 598 00:50:52,699 --> 00:50:53,440 pues fijaros 599 00:50:53,440 --> 00:50:56,639 a ver, pi de 11, definir de alta 600 00:50:56,639 --> 00:50:59,239 en baja, espera un segundo, ¿por qué no se entiende? 601 00:51:05,400 --> 00:51:06,659 ah, claro, porque lo he conectado 602 00:51:06,659 --> 00:51:08,320 del revés, que listo soy 603 00:51:08,320 --> 00:51:10,820 que esto es un diodo, machote 604 00:51:10,820 --> 00:51:13,139 este es el positivo 605 00:51:13,139 --> 00:51:18,550 perdonad que he sido muy listo, ¿vale? 606 00:51:18,849 --> 00:51:21,349 esto evidentemente ya hay que tener cuidado con ello 607 00:51:21,349 --> 00:51:23,269 pero, vale, o sea, lo que tengo es que 608 00:51:23,269 --> 00:51:26,010 es un diodo con lo cual le tengo que meter por la pata positiva 609 00:51:26,010 --> 00:51:27,590 el activo 610 00:51:27,590 --> 00:51:29,150 ¿vale? vale, iniciamos la simulación 611 00:51:29,150 --> 00:51:30,010 vale, y ahí lo tenemos 612 00:51:30,010 --> 00:51:32,429 entonces, el LED, veis que parpadea 613 00:51:32,429 --> 00:51:33,210 ¿de acuerdo? 614 00:51:33,789 --> 00:51:35,050 entonces, ¿qué es lo que está haciendo? 615 00:51:35,829 --> 00:51:38,449 está, el robot está haciendo de forma infinita 616 00:51:38,449 --> 00:51:40,449 leer sensores, no tengo ningún sensor 617 00:51:40,449 --> 00:51:41,389 con lo cual no leo nada 618 00:51:41,389 --> 00:51:43,110 activo el pin 11 619 00:51:43,110 --> 00:51:52,550 con lo cual le meto voltios aquí, esto se enciende a través del circuito, espero un segundo, ahora lo apago y espero un segundo 620 00:51:52,550 --> 00:52:00,929 y el LED, fijaros, que está parpadeando. ¿Qué pasa si yo aquí le pongo que espere cuatro segundos, vale, cuando está encendido 621 00:52:00,929 --> 00:52:06,250 y uno cuando está, pues que va a hacer la del parpadeo, pero lo va a hacer desigual, es decir, se va a encender cuatro segundos, 622 00:52:06,250 --> 00:52:15,570 luego se apaga uno y se vuelve a encender, pum, pum, ¿vale? Y cuatro segundos, ¿vale? Pum, pum, y cuatro segundos. 623 00:52:15,929 --> 00:52:22,710 Entonces, si os fijáis, este programa lo que me está haciendo es ya actuando sobre los dispositivos de salida 624 00:52:22,710 --> 00:52:27,909 y estoy utilizando mi placa de control, mi placa microcontroladora para actuar sobre elementos. 625 00:52:27,909 --> 00:52:44,670 Si esto yo lo construyo con un arduino, perdonadme, ¿vale? Yo tengo aquí, esto es una placa arduino, ¿vale? Veis que las placas existen y es exactamente igual que lo que tenéis ahí, ¿vale? 626 00:52:44,670 --> 00:52:53,250 Yo os lo estoy enseñando ahora por aquí, veis que tengo mis pines digitales, aquí estarían mis pines analógicos, luego cojo mis cables, ¿vale? 627 00:52:53,690 --> 00:53:02,389 Me cojo un montón de cables, como estos, ¿vale? Cojo cablecitos, quedan un segundo, ¿vale? 628 00:53:02,750 --> 00:53:09,389 Veis que es un cable con pines, entonces esos pines los pincho en los agujerillos, ¿vale? 629 00:53:09,389 --> 00:53:12,329 y voy conectando, pues, exactamente igual que en el dibujo. 630 00:53:12,389 --> 00:53:14,929 Con lo cual, realmente, bueno, con el simulador vamos a poder hacer 631 00:53:14,929 --> 00:53:17,030 algo muy parecido a lo que haríamos en clase. 632 00:53:17,409 --> 00:53:20,150 No va a ser tan chulo porque no va a haber cosas moviéndose por encima de las mesas. 633 00:53:20,570 --> 00:53:24,429 Pero, bueno, al final vamos a intentar que sea más o menos similar. 634 00:53:24,690 --> 00:53:24,949 ¿De acuerdo? 635 00:53:25,570 --> 00:53:30,170 Bueno, pues, entonces, terminamos aquí con el contenido. 636 00:53:30,309 --> 00:53:31,429 Ya sé que ha sido un poco más largo. 637 00:53:31,570 --> 00:53:35,789 Como no hemos tenido clase, vale, a las once y media ya sé que me he pasado un poco. 638 00:53:36,289 --> 00:53:36,489 ¿Vale? 639 00:53:36,489 --> 00:53:51,269 No te preocupes que la semana que viene vamos a tener clase, os diré si es el martes o el jueves, pero vamos a intentar dar clase en nuestro horario, por lo menos mientras que vayamos haciendo la parte de teoría. 640 00:53:51,269 --> 00:54:16,150 Entonces, vale, un segundito, los circuitos que vamos a hacernos los vas a decir por Tinkercad o por tu página de Gmail, vale, no, los circuitos yo os voy a dar unas instrucciones, vale, os daré algunas instrucciones y una de dos, os lo grabo en vídeo, os doy unas instrucciones en un documento, todo lo voy a hacer a través del blog, vale, toda la información yo os la paso a través del blog. 641 00:54:16,670 --> 00:54:21,809 Entonces, el blog es el punto de referencia obligatorio para enteraros de qué es lo que yo os mando. 642 00:54:23,110 --> 00:54:27,869 Aunque yo utilizo el correo para avisaros o lo pongo también en Twitter o lo pongo en otros sitios, 643 00:54:28,530 --> 00:54:31,389 lo importante es que reviséis el blog con cierta frecuencia. 644 00:54:31,510 --> 00:54:34,530 De momento, con la información que tenéis es suficiente. 645 00:54:35,849 --> 00:54:42,110 Mañana probablemente o este fin de semana os ponga los ejercicios que quiero empezar a hacer muy sencillitos y muy guiados. 646 00:54:42,750 --> 00:54:44,769 Y una vez que empecemos ya a hacer esos ejercicios, 647 00:54:45,230 --> 00:54:47,449 vamos a empezar a complicarlo y vais a empezar vosotros a hacer 648 00:54:47,449 --> 00:54:50,949 cosas de forma autónoma, sin que yo os diga la solución, ¿vale? 649 00:54:51,010 --> 00:54:53,090 Entonces, quiero empezar a practicar un poco con Tinkercad. 650 00:54:53,429 --> 00:54:54,869 Si queréis ir jugando, perfecto. 651 00:54:54,989 --> 00:54:57,769 Y si no, pues, según os lo vaya pidiendo, ya lo hacéis. 652 00:54:57,849 --> 00:54:58,429 ¿Qué quieres, Fernando? 653 00:54:58,590 --> 00:54:58,909 Cuéntame. 654 00:55:03,730 --> 00:55:05,130 Vale, los de laos tenéis que ir, ¿vale? 655 00:55:05,150 --> 00:55:05,769 No os preocupéis. 656 00:55:05,849 --> 00:55:07,329 Si ya os habéis ido, fenomenal. 657 00:55:07,329 --> 00:55:10,190 Ya nos hemos quedado 11 de 19, o sea que no os preocupéis. 658 00:55:10,510 --> 00:55:11,409 ¿Dónde vas a subir esto? 659 00:55:11,510 --> 00:55:11,909 Al blog. 660 00:55:12,590 --> 00:55:12,849 ¿Vale? 661 00:55:13,510 --> 00:55:14,150 Al blog. 662 00:55:14,150 --> 00:55:17,250 Todo lo que estoy haciendo lo vamos a subir. 663 00:55:17,610 --> 00:55:18,469 ¿Vale? No os preocupéis. 664 00:55:19,769 --> 00:55:20,130 ¿De acuerdo? 665 00:55:20,909 --> 00:55:23,170 Vale, pues nada, chicos. 666 00:55:23,369 --> 00:55:23,809 Terminamos. 667 00:55:23,989 --> 00:55:25,610 Muchas gracias por vuestra paciencia. 668 00:55:25,750 --> 00:55:27,670 Sé que ha sido una clase un poco más larga de lo normal. 669 00:55:27,829 --> 00:55:29,969 Las siguientes prometo que serán más cortas. 670 00:55:30,530 --> 00:55:30,769 ¿Vale? 671 00:55:31,190 --> 00:55:32,130 Venga, cuidaros.