1 00:00:00,300 --> 00:00:19,239 Bien, siguiendo entonces con este segundo vídeo dedicado a los automatismos y sistemas automáticos de control, simplemente recordar que en el vídeo anterior habíamos visto las tres principales estructuras de control que podemos encontrarnos en un programa habitual a este nivel, 2 00:00:19,239 --> 00:00:25,440 que es la estructura secuencial en la que cada uno de las instrucciones se ejecuta una detrás de otra y ya está 3 00:00:25,440 --> 00:00:28,160 como si fuese por ejemplo un semáforo 4 00:00:28,160 --> 00:00:34,140 la estructura condicional que es aquella en la cual el programa puede tomar un camino o puede tomar otro 5 00:00:34,140 --> 00:00:36,479 dependiendo de que se cumpla o no una condición 6 00:00:36,479 --> 00:00:42,780 y finalmente una estructura repetitiva que nos va a permitir que un programa se ejecute un número determinado de veces 7 00:00:42,780 --> 00:00:48,659 o realmente se ejecute unas tareas un número determinado de veces mientras se cumpla una condición 8 00:00:48,659 --> 00:01:06,579 El conjunto de estas tres estructuras de control nos van a permitir realizar diferentes programas informáticos para que nuestro sistema de control permita ejecutar determinadas tareas en esos automatismos y sistemas automáticos de control. 9 00:01:06,579 --> 00:01:14,459 El sistema por excelencia que se utiliza en la educación en los últimos años es la plataforma Arduino 10 00:01:14,459 --> 00:01:21,500 La plataforma Arduino que ya hemos visto en el tema anterior es una pequeña tarjeta que tiene un microcontrolador 11 00:01:21,500 --> 00:01:24,200 Y que podemos programar de muy diferentes formas 12 00:01:24,200 --> 00:01:31,799 Desde el propio código Arduino que utiliza de forma gratuita 13 00:01:31,799 --> 00:01:38,859 que puedes utilizar de forma gratuita una vez que instalas el software y tienes una tarjeta Arduino o compatible, 14 00:01:39,379 --> 00:01:46,640 hasta diferentes lenguajes gráficos basados en el lenguaje de Scratch, es decir, basados en los bloques que vas arrastrando 15 00:01:46,640 --> 00:01:53,040 y como si fuese un puzle vas creando el programa en función de tus necesidades. 16 00:01:53,040 --> 00:01:59,159 Bueno, pues hay como digo infinidad de entornos de programación, vamos a ver aquí dos de ellos gráficos 17 00:01:59,159 --> 00:02:01,819 con sus correspondientes diferencias 18 00:02:01,819 --> 00:02:02,819 pero insisto, hay muchos 19 00:02:02,819 --> 00:02:04,340 y muy variados 20 00:02:04,340 --> 00:02:07,200 los gráficos, eso sí, todos más o menos 21 00:02:07,200 --> 00:02:08,379 se basan en la misma idea 22 00:02:08,379 --> 00:02:11,219 del conocido lenguaje de programación 23 00:02:11,219 --> 00:02:13,159 Scratch, en las cuales tienes una serie 24 00:02:13,159 --> 00:02:14,719 de bloques que los puedes encajar 25 00:02:14,719 --> 00:02:16,919 bueno, pues el primero de ellos, el primero de esos 26 00:02:16,919 --> 00:02:18,919 entornos de programación gráfico, se llama 27 00:02:18,919 --> 00:02:20,860 Arduino Bronze, para mí uno de los 28 00:02:20,860 --> 00:02:23,199 entornos de programación más completos 29 00:02:23,199 --> 00:02:25,379 que nos permite programar 30 00:02:25,379 --> 00:02:27,039 la tarjeta físicamente 31 00:02:27,039 --> 00:02:28,539 y 32 00:02:28,539 --> 00:02:32,719 aunque puedes programarlo de forma online 33 00:02:32,719 --> 00:02:36,219 es decir, de hecho esto es una aplicación online 34 00:02:36,219 --> 00:02:40,539 en la que tú arrastras en estos bloques que llamamos librerías 35 00:02:40,539 --> 00:02:44,520 arrastras los bloques y vas colocando uno detrás de otro 36 00:02:44,520 --> 00:02:46,699 en función de tu programa 37 00:02:46,699 --> 00:02:51,219 finalmente si quieres programar la tarjeta Arduino compatible 38 00:02:51,219 --> 00:02:55,979 una vez que has hecho tu programa en el entorno online 39 00:02:55,979 --> 00:03:01,120 Lo que tienes que hacer es descargarte un pequeño programa llamado Arduino Block Connector en tu propio ordenador 40 00:03:01,120 --> 00:03:10,000 Que lo que hace es poner en comunicación tu tarjeta Arduino a través del puerto serie con la plataforma online en la que has hecho tu programación 41 00:03:10,000 --> 00:03:16,460 Por supuesto puedes descargar también su propio programa en código Arduino 42 00:03:16,460 --> 00:03:21,840 Una vez que tienes aquí en esta parte que pone bloques, puedes ver el código en código Arduino 43 00:03:21,840 --> 00:03:29,020 Puedes descargar ese código o puedes incluso descargarlo para luego descargarlo y copiarlo en el entorno de Arduino 44 00:03:29,020 --> 00:03:33,000 O descargarlo en formato zip y también cargarlo en el entorno de Arduino 45 00:03:33,000 --> 00:03:42,120 Bueno, digamos que la interfaz gráfica de este entorno de programación es muy básico 46 00:03:42,120 --> 00:03:48,280 Como digo, estos bloques que vemos aquí tienen todas las instrucciones para poder realizar la programación 47 00:03:48,280 --> 00:04:02,900 Tiene normalmente por defecto, se abren, digamos, como dos bucles. El primer bucle se llama inicializar y lo que hace es, bueno, pues configurar un poquito los periféricos y los diferentes elementos que vas a utilizar en el caso de que sean necesarios. 48 00:04:02,900 --> 00:04:07,319 y luego en el diagrama este 49 00:04:07,319 --> 00:04:09,099 en el bloque bucle 50 00:04:09,099 --> 00:04:10,699 ves donde vas a ir colocando 51 00:04:10,699 --> 00:04:13,419 los diferentes bloques de programación 52 00:04:13,419 --> 00:04:15,639 tiene también más estructuras 53 00:04:15,639 --> 00:04:17,079 que esperamos más adelante 54 00:04:17,079 --> 00:04:18,939 pero básicamente digamos que este sería el entorno 55 00:04:18,939 --> 00:04:20,620 tiene una pequeña papelera para arrastrar 56 00:04:20,620 --> 00:04:21,459 lo que te interesa 57 00:04:21,459 --> 00:04:25,139 y finalmente puedes programar 58 00:04:25,139 --> 00:04:26,220 la tarjeta Arduino 59 00:04:26,220 --> 00:04:28,500 como digo si te descargas el programa Arduino Block 60 00:04:28,500 --> 00:04:30,759 y cuando ese programa Arduino Block Connector 61 00:04:30,759 --> 00:04:32,279 se está ejecutando 62 00:04:32,279 --> 00:04:38,459 te permite una vez que conectes la tarjeta Arduino observar aquí en qué puerto COM está conectado esa tarjeta Arduino 63 00:04:38,459 --> 00:04:45,620 y finalmente le das al botón subir y esta plataforma online descargará en tu tarjeta física Arduino 64 00:04:45,620 --> 00:04:46,860 descargará el programa. 65 00:04:47,300 --> 00:04:54,279 Como digo, es un programa que permite programar la tarjeta Arduino con un lenguaje de tipo gráfico. 66 00:04:55,759 --> 00:05:00,879 Pero luego nos encontramos también en la posibilidad de programar la tarjeta Arduino de forma virtual, 67 00:05:00,879 --> 00:05:07,379 Es decir, utilizar un simulador de Arduino, un simulador de programación para la plataforma Arduino. 68 00:05:08,360 --> 00:05:19,040 Es un simulador muy habitual también en nuestros entornos, que ya conocéis probablemente porque habéis hecho algunos tipos de prácticas con circuitos eléctricos y electrónicos. 69 00:05:19,420 --> 00:05:22,180 Y se llama, como ya veis aquí, ThinkerCastCircuit. 70 00:05:22,180 --> 00:05:32,160 Lo mismo, también tiene una barra en la cual tiene diferentes elementos y los puedes arrastrar a la ventana de edición y realizar las correspondientes conexiones 71 00:05:32,160 --> 00:05:38,060 Bueno, como digo, a diferencia del anterior entorno de programación, este además permite simularlo 72 00:05:38,060 --> 00:05:48,120 Es decir, que tú puedes ejecutar con la pestaña bloques, permite abrir una nueva ventana en la que puedes programar mediante un lenguaje gráfico de bloques 73 00:05:48,120 --> 00:05:55,620 pero también con su correspondiente código Arduino, puedes elegir si quieres programarlo con esta interfaz gráfica de bloques muy básica 74 00:05:55,620 --> 00:06:00,500 o utilizar también el código Arduino que se emplea habitualmente para estas tarjetas 75 00:06:00,500 --> 00:06:07,139 y luego como digo le das a iniciar simulación y permite interactuar con los diferentes elementos, sensores y actuadores 76 00:06:07,139 --> 00:06:11,779 y programar la tarjeta Arduino, es creo un entorno bastante completo 77 00:06:11,779 --> 00:06:18,040 pero es muy importante tener en cuenta que este entorno Tinkercad Circuit es un simulador 78 00:06:18,040 --> 00:06:21,500 por lo tanto no programa directamente la tarjeta Arduino 79 00:06:21,500 --> 00:06:25,579 simula la programación pero no la programa físicamente en tu ordenador 80 00:06:25,579 --> 00:06:26,600 entonces ¿cómo se haría? 81 00:06:26,899 --> 00:06:31,720 pues para ello tendrías evidentemente que descargar en la pestaña bloques el código de Arduino 82 00:06:31,720 --> 00:06:37,939 después abrir el ID de Arduino que es el entorno por excelencia para poder programar la tarjeta 83 00:06:37,939 --> 00:06:41,040 y copiar ese código de texto que tú has hecho aquí 84 00:06:41,040 --> 00:06:50,199 Es decir, que en realidad sí se puede luego programar la tarjeta física, pero necesitas el programa propiamente dicho de descarga para programar la tarjeta. 85 00:06:50,199 --> 00:07:09,560 Pero bueno, lo interesante de estos entornos es que si no dispones de una tarjeta de una mano, puedes simular todo el proceso, evidentemente con las limitaciones que tengan aquí de los propios sensores, pero nos permite simularlo y si luego nos interesa, pues ya podemos pasar a la programación física de la propia tarjeta. 86 00:07:11,040 --> 00:07:22,060 Como digo, estos dos entornos son muy interesantes a este nivel, pero en realidad lo que nos interesa, una vez que ya dominamos un poquito y conocemos un poquito el entorno de programación Arduino, 87 00:07:22,060 --> 00:07:37,180 realmente lo que nos interesaría ya es ser capaz de programar la tarjeta en su código específico, que es el código Arduino, que en realidad, como digo, es un lenguaje de código de texto basado en Processing, 88 00:07:37,180 --> 00:07:41,939 que también es un lenguaje muy conocido y está inspirado en el lenguaje C. 89 00:07:42,399 --> 00:07:49,279 Bueno, la ventana, una vez que te descargas el IDE de Arduino, que es como se llama a esta interfaz, 90 00:07:49,600 --> 00:07:59,220 que es Entorno de Desarrollo Integrado, estas letras vienen de esa abreviación de Entorno de Desarrollo Integrado, 91 00:07:59,600 --> 00:08:02,980 pues lo descargas de la página oficial de Arduino y lo que tienes, por cierto, 92 00:08:02,980 --> 00:08:08,180 que lo puedes instalar en entornos de sistemas operativos Windows, Linux y demás 93 00:08:08,180 --> 00:08:12,800 y también puedes descargar simplemente una carpeta que no necesita instalación 94 00:08:12,800 --> 00:08:16,720 y ejecutar dentro de la carpeta la interfaz 95 00:08:16,720 --> 00:08:19,459 bueno, es muy elemental y muy básica como veis aquí 96 00:08:19,459 --> 00:08:24,639 en realidad lo que disponemos es de una ventana 97 00:08:24,639 --> 00:08:28,860 en la que tenemos aquí la ventana de edición para insertar el código de texto 98 00:08:28,860 --> 00:08:31,959 y aquí una ventana de comunicación, una consola que es como se llama 99 00:08:31,959 --> 00:08:37,720 que nos permite conocer e interactuar con el programa y con la nuestra tarjeta y luego aquí 100 00:08:37,720 --> 00:08:45,480 nos unos simples botones de descargar de verificar el programa copiar etcétera como se estructura una 101 00:08:47,480 --> 00:08:52,899 un programa en código arduino bueno pues en primer lugar tenemos un primer bloque que suele 102 00:08:52,899 --> 00:08:59,860 ser normalmente suele estar puesto entre entre estos dos símbolos la línea inclinada y el 103 00:08:59,860 --> 00:09:04,120 asterisco y esto es todo lo que esté incluido dentro de este de estos dos 104 00:09:04,120 --> 00:09:08,139 etiquetas en realidad no forman parte del programa como tampoco forma parte del 105 00:09:08,139 --> 00:09:13,460 programa todo lo que esté detrás de doble barra inclinada en realidad estos 106 00:09:13,460 --> 00:09:17,980 son comentarios de texto comentarios de las instrucciones muy importantes para 107 00:09:17,980 --> 00:09:20,559 poder seguir el programa especialmente para las personas que no lo han 108 00:09:20,559 --> 00:09:24,340 programado y cualquier otra persona que quiera reutilizar el código pues con 109 00:09:24,340 --> 00:09:27,519 la ayuda de estos comentarios más o menos va a poder enterarse de qué es lo 110 00:09:27,519 --> 00:09:32,860 que está haciendo este programa. Como digo, ese primer bloque suele ser una cabecera en 111 00:09:32,860 --> 00:09:39,480 la que se incluyen más o menos los elementos importantes que se detallan del programa, 112 00:09:39,740 --> 00:09:45,600 pero nos interesa el bloque 2. En el bloque 2 está dentro de unas llaves y comienza con 113 00:09:45,600 --> 00:09:51,700 la instrucción voice setup y dos paréntesis. ¿Qué es voice setup? Pues la misma palabra 114 00:09:51,700 --> 00:09:56,039 dice configura las entradas y las salidas y las comunicaciones, es decir, establece 115 00:09:56,039 --> 00:10:00,799 si los pines de la tarjeta Arduino van a ser de entrada o de salida, etc. 116 00:10:01,279 --> 00:10:04,700 Esto se ejecuta una única vez, y una vez que se ha ejecutado esto, 117 00:10:04,799 --> 00:10:09,480 ya empieza a ejecutarse el programa de forma cíclica, en un bucle, constantemente. 118 00:10:10,519 --> 00:10:13,960 Este bloque 3 que veis aquí, está dentro de estas llaves, 119 00:10:14,240 --> 00:10:16,820 y comienza con la instrucción void loop, 120 00:10:17,059 --> 00:10:20,940 seguido de dos paréntesis que indican una función concreta, la función loop, 121 00:10:20,980 --> 00:10:21,600 y la función setup. 122 00:10:22,000 --> 00:10:24,940 Pues todo lo que está en estas llaves se ejecuta de forma cíclica, 123 00:10:24,940 --> 00:10:54,919 Y aquí vamos colocando las diferentes instrucciones en código Arduino. Esas instrucciones que vamos a ver ahora nos van a permitir configurar nuestra tarjeta Arduino, configurar los pinner de entrada y de salida y por lo tanto ejecutar un sistema de control programado en el cual recibiremos información con los sensores y la tarjeta Arduino en función del programa actuará sobre sus salidas y los actuadores se activarán. 124 00:10:54,940 --> 00:10:59,879 o no en función de ese programa. En el caso de que haya algún tipo de interacción con 125 00:10:59,879 --> 00:11:06,039 el programa, pues en esta consola podemos ver esa información. Bueno, lo más importante 126 00:11:06,039 --> 00:11:12,539 de la tarjeta Arduino es que la comunidad ha ido creando lo que se llaman librerías 127 00:11:12,539 --> 00:11:16,879 que no son más que pequeños programas que ejecutan y que hacen funcionar determinados 128 00:11:16,879 --> 00:11:21,820 periféricos que van apareciendo en el mercado. De manera que con esa librería de ese periférico 129 00:11:21,820 --> 00:11:25,759 tú con la tarjeta Arduino puedes programar ese sensor o ese actuador. 130 00:11:26,700 --> 00:11:34,159 Bueno, pues vamos a ver las funciones básicas que nos vamos a encontrar en el entorno de programación en código Arduino 131 00:11:34,159 --> 00:11:39,480 y bueno, vamos a clasificarlas en entradas y salidas digitales, en entradas y salidas analógicas, etc. 132 00:11:39,480 --> 00:11:51,340 En primer lugar, la tarjeta Arduino nos permite configurar estos pines como entradas o como salidas. 133 00:11:51,340 --> 00:12:00,840 es decir, digitales, es decir, que nos va a permitir configurar un pin para poder introducir tensión eléctrica, corriente eléctrica o para poder sacar corriente eléctrica. 134 00:12:01,179 --> 00:12:12,360 Eso lo hacemos a través de la instrucción pin mode y que nos permite configurar, entre paréntesis, el número del pin que tú quieres configurar y decir si va a ser de entrada o de salida. 135 00:12:12,779 --> 00:12:18,340 Con lo cual, con esta instrucción, tú ya tendrías aquí la configuración de esa entrada. 136 00:12:18,340 --> 00:12:19,840 también puedes 137 00:12:19,840 --> 00:12:22,620 una vez que lo has configurado 138 00:12:22,620 --> 00:12:23,720 puedes escribir 139 00:12:23,720 --> 00:12:26,360 en ese pin 140 00:12:26,360 --> 00:12:28,179 un nivel alto o un nivel bajo, es decir 141 00:12:28,179 --> 00:12:30,460 que ese pin tenga un nivel alto 142 00:12:30,460 --> 00:12:32,259 o un nivel bajo, y también puedes leer 143 00:12:32,259 --> 00:12:34,320 qué tipo de señal eléctrica 144 00:12:34,320 --> 00:12:36,440 posee digitalmente, es decir, si está 145 00:12:36,440 --> 00:12:38,539 en estado alto o en estado bajo, cuando hablamos de estado alto 146 00:12:38,539 --> 00:12:40,559 o estado bajo, decimos si tiene corriente o no tiene 147 00:12:40,559 --> 00:12:42,500 corriente, bueno, lo que habíamos 148 00:12:42,500 --> 00:12:44,299 comentado aquí de la estructura del programa básicamente es 149 00:12:44,299 --> 00:12:45,299 un voice tap y un voice loop 150 00:12:45,299 --> 00:12:48,259 para que lo tengamos presente 151 00:12:48,259 --> 00:12:52,220 bueno, eso será la configuración de entradas y salidas digitales 152 00:12:52,220 --> 00:12:55,779 vamos a ver cómo configuraríamos las entradas y las salidas analógicas 153 00:12:55,779 --> 00:12:58,580 bueno, esto lo podremos hacer de la siguiente manera 154 00:12:58,580 --> 00:13:01,960 con las instrucciones analogRead indicando el pin 155 00:13:01,960 --> 00:13:04,159 y analogWritePin y el valor 156 00:13:04,159 --> 00:13:07,700 es decir, podemos escribir en los pines digitales 157 00:13:07,700 --> 00:13:11,200 mejor dicho, podemos leer en los pines analógicos 158 00:13:11,200 --> 00:13:14,019 que van desde el A0 al A5 159 00:13:14,019 --> 00:13:15,879 estos pines se encuentran exactamente 160 00:13:15,879 --> 00:13:37,740 a ver si vemos aquí, esto lo vemos exactamente aquí, en esta tarjeta Arduino aquí tenemos las entradas analógicas, estas entradas analógicas en realidad lo que hacen es leer un valor en función de una tensión que puede ser desde 0 a 5 voltios, 161 00:13:37,740 --> 00:13:45,559 en lugar de que sea 0 o 5 voltios puede ser 2.3 voltios, 4.3 voltios, 3.3 voltios 162 00:13:45,559 --> 00:13:52,320 bueno pues todo eso lo lee la tarjeta Arduino como si fuera un valor que vaya desde 0 hasta 1023 163 00:13:52,320 --> 00:13:58,320 siendo 0, 0 voltios y 1023, 5 voltios 164 00:13:58,320 --> 00:14:04,039 eso sería como leeríamos los pines analógicos que hemos visto ahí 165 00:14:04,039 --> 00:14:07,779 que van desde la 0 hasta la 5, es decir, que tenemos 6 pines analógicos de entrada. 166 00:14:08,299 --> 00:14:15,059 Y luego podemos escribir en los pines anteriores, en los pines digitales, 167 00:14:15,100 --> 00:14:17,379 bueno, no en todos, exactamente en estos que están aquí, 168 00:14:17,840 --> 00:14:23,200 estos pines que están numerados en esta tarjeta y que tienen exactamente ese simbolito característico, 169 00:14:23,200 --> 00:14:27,440 bueno, pues todo lo que tenga ese simbolito característico nos va a permitir sacar por ahí una señal analógica 170 00:14:27,440 --> 00:14:31,200 que en realidad no es una señal analógica como tal, sino que es una señal pulsatoria, 171 00:14:31,200 --> 00:14:35,360 pulsatoria, pero que hace las veces una señal analógica, con lo cual podemos, digamos, 172 00:14:35,500 --> 00:14:40,779 graduar la salida y en lugar de que salga solamente 0 voltios o salga 5 voltios, puede 173 00:14:40,779 --> 00:14:47,639 salir 2,2, 4,3 voltios, pueden salir 3,3 voltios, que en realidad salen esos, pero porque lo 174 00:14:47,639 --> 00:14:51,639 que hacemos es que la señal es pulsatoria y entonces no llega toda la señal eléctrica 175 00:14:51,639 --> 00:14:55,779 que debiera. Pero bueno, a efectos reales es como si fuera una señal analógica y para 176 00:14:55,779 --> 00:15:03,100 ello estableceríamos la salida en unos parámetros que van desde este 0 hasta 255 es decir que la 177 00:15:03,100 --> 00:15:10,360 instrucción analog write ping y valor no se establecería en el pin correspondiente de 178 00:15:10,360 --> 00:15:15,840 escritura analógica que son estos de aquí el valor que puede ir desde 0 hasta 255 siendo 0 179 00:15:15,840 --> 00:15:21,740 0 voltios y la salida máxima de 5 voltios 255 por lo tanto si pongo 120 y pocos por lo que 180 00:15:21,740 --> 00:15:25,000 esta lista de sacando por ese ping es aproximadamente unos dos voltios y medio 181 00:15:25,000 --> 00:15:28,820 de acuerdo otras instrucciones que tenemos aquí pues por ejemplo la 182 00:15:28,820 --> 00:15:33,120 instrucción de light y entre paréntesis colocar y colocaríamos un valor que se 183 00:15:33,120 --> 00:15:38,720 expresaría en milisegundos y luego tenemos otra serie de instrucciones que 184 00:15:38,720 --> 00:15:43,679 tienen que ver con las librerías propias ya del propio entorno arduino 185 00:15:43,679 --> 00:15:47,460 y que nos permiten escribir en este caso pues en la consola de abajo en la 186 00:15:47,460 --> 00:15:52,559 consola está de comunicaciones nos permite escribir texto o leer en este 187 00:15:52,559 --> 00:15:57,840 caso caracteres por el puerto serie en el caso de que activáramos el teclado 188 00:15:57,840 --> 00:16:01,860 impulsamos una tecla pues podríamos leer con estas instrucciones que teclas ya 189 00:16:01,860 --> 00:16:06,700 sea se ha pulsado y vamos a ver aquí ahora 190 00:16:06,700 --> 00:16:12,940 estas estas tres programas para entender cómo 191 00:16:12,940 --> 00:16:19,700 es el código establecido en la programación en código arduino aquí tenemos un típico programa 192 00:16:19,700 --> 00:16:25,279 en el cual como veis aquí empieza por dos líneas inclinadas con lo cual esto es un texto que no se 193 00:16:25,279 --> 00:16:29,679 tiene en cuenta en el programa y que nos permite escribir por la consola está en el puerto serie 194 00:16:29,679 --> 00:16:35,799 escribir un valor en este caso en la configuración de la función voy setup establecemos que vamos a 195 00:16:35,799 --> 00:16:40,700 establecer una comunicación por el puerto serie de 9.600 pares esto es habitual normalmente para 196 00:16:40,700 --> 00:16:42,539 estas tecnologías, establecer esta comunicación 197 00:16:42,539 --> 00:16:44,759 aunque se puede hacer en las comunicaciones más rápidas 198 00:16:44,759 --> 00:16:47,179 pero bueno, con la instrucción serial.begin 199 00:16:47,179 --> 00:16:48,759 y entre paréntesis 9600 200 00:16:48,759 --> 00:16:51,059 vamos a comunicarnos con el 201 00:16:51,059 --> 00:16:52,419 puerto com 202 00:16:52,419 --> 00:16:54,580 en el IDE de Arduino hay 203 00:16:54,580 --> 00:16:56,179 la opción, vamos a ver 204 00:16:56,179 --> 00:16:58,799 en el IDE de Arduino que está por aquí, esta opción 205 00:16:58,799 --> 00:17:00,679 de aquí nos permite abrir ese monitor 206 00:17:00,679 --> 00:17:02,700 serial en el cual vamos a recibir 207 00:17:02,700 --> 00:17:04,740 información, vale, bueno 208 00:17:04,740 --> 00:17:06,299 pues como digo 209 00:17:06,299 --> 00:17:08,740 una vez que establecemos esta instrucción, en la 210 00:17:08,740 --> 00:17:10,400 instrucción Boilube lo que hacemos es 211 00:17:10,400 --> 00:17:12,700 o la instrucción seria, el punto println 212 00:17:12,700 --> 00:17:14,539 escribir la 213 00:17:14,539 --> 00:17:16,759 palabra entre 214 00:17:16,759 --> 00:17:18,880 comillas 215 00:17:18,880 --> 00:17:19,779 de hola mundo 216 00:17:19,779 --> 00:17:22,339 esperamos un segundo 217 00:17:22,339 --> 00:17:24,680 y esto se ejecuta constantemente, con lo cual si nosotros 218 00:17:24,680 --> 00:17:26,180 abriéramos ese monitor serie 219 00:17:26,180 --> 00:17:28,039 lo que estaríamos viendo es hola mundo 220 00:17:28,039 --> 00:17:30,859 esperamos un segundo, hola mundo, esperamos un segundo 221 00:17:30,859 --> 00:17:32,660 hola mundo, etc, etc, es decir que se ejecuta 222 00:17:32,660 --> 00:17:34,480 simplemente una información por el puerto 223 00:17:34,480 --> 00:17:35,799 de salida, simplemente para 224 00:17:35,799 --> 00:17:38,299 para ver un poco 225 00:17:38,299 --> 00:17:39,740 el funcionamiento de este puerto serie 226 00:17:39,740 --> 00:17:42,619 como por ejemplo 227 00:17:42,619 --> 00:17:44,720 haríamos que los, en este caso 228 00:17:44,720 --> 00:17:45,920 por ejemplo este programa que veis aquí 229 00:17:45,920 --> 00:17:48,019 conectado a estos pines que vemos aquí 230 00:17:48,019 --> 00:17:50,859 permitan encender alternativamente el led rojo 231 00:17:50,859 --> 00:17:52,339 y el led azul 232 00:17:52,339 --> 00:17:54,099 lo primero que hacemos es 233 00:17:54,099 --> 00:17:56,500 en la función voice setup 234 00:17:56,500 --> 00:17:57,980 establecemos que los dos pines 235 00:17:57,980 --> 00:18:00,640 los pines conectados en los pines 236 00:18:00,640 --> 00:18:03,039 13 y 12, los establecemos como salida 237 00:18:03,039 --> 00:18:04,920 configuramos esos dos pines como salida 238 00:18:04,920 --> 00:18:07,079 y ahora como sería el programa 239 00:18:07,079 --> 00:18:08,720 que se ejecuta de forma cíclica 240 00:18:08,720 --> 00:18:17,059 Bien, pues en esta función Boilut lo que tenemos aquí es un par de instrucciones DigitalWrite 241 00:18:17,059 --> 00:18:22,319 Un par de instrucciones para los pines 13 y 12 242 00:18:22,319 --> 00:18:28,579 En las cuales uno lo encendemos con la instrucción DigitalWrite 13,Hide y DigitalWrite 12,Low 243 00:18:28,579 --> 00:18:34,779 De manera que encendemos el pin digital 13, apagamos el pin digital 12 244 00:18:34,779 --> 00:18:41,900 esperamos 100 milisegundos y después invertimos las acciones de manera que efectivamente si esto se ejecuta de manera cíclica 245 00:18:41,900 --> 00:18:46,759 pues vamos a observar como estos dos diodos LED se van a encender de manera alternativa 246 00:18:46,759 --> 00:18:57,420 y aquí tendríamos en este siguiente programa como la señal de salida del pin número 13 247 00:18:57,420 --> 00:19:03,000 lo que vamos a hacer es, perdón, del pin número 11, disculpadme, vamos a hacerlo un poquito más grande 248 00:19:03,000 --> 00:19:22,220 En el pin número 11 lo que hacemos es sacar una señal, como decíamos, de alguna manera analógica, no es exactamente una señal analógica expulsatoria, pero bueno, a efectos reales como si fuera una señal analógica, que nos va a ir sacando corriente eléctrica desde 0 voltios hasta 5 voltios. 249 00:19:22,220 --> 00:19:43,160 ¿Y esto cómo lo hacemos? Bueno, pues en este programa, como veis aquí, lo que hacemos es primero definir en el void setup, en la función de configuración inicial, la salida número, el pin número 11 configurado como salida, mediante la instrucción pin mode 11, output, y finalmente en la instrucción void loop, lo que hacemos, perdón, en la función void loop, lo que hacemos es lo siguiente. 250 00:19:43,160 --> 00:19:47,140 establecer mediante esta instrucción que es una instrucción que se llama contador 251 00:19:47,140 --> 00:19:50,519 lo que hacemos con esta instrucción for, con este conjunto de instrucciones 252 00:19:50,519 --> 00:19:55,000 lo que hacemos es establecer un contador que va desde una variable i que vale 0 253 00:19:55,000 --> 00:19:58,539 hasta esta variable que valga 255 254 00:19:58,539 --> 00:20:03,480 y cada vez más con esta instrucción i++ lo que hacemos es incrementar en cada vuelta que pasa por aquí 255 00:20:03,480 --> 00:20:06,000 incrementamos esa variable i en 1 256 00:20:06,000 --> 00:20:11,900 de manera que en realidad lo que estamos haciendo es contando hasta 255 cada vez que pasamos una vuelta por aquí 257 00:20:11,900 --> 00:20:13,980 porque la variable I la vamos incrementando 258 00:20:13,980 --> 00:20:17,019 bueno, y que hacemos escribiendo 259 00:20:17,019 --> 00:20:21,700 y como conseguimos que se vaya progresivamente sacando corriente eléctrica 260 00:20:21,700 --> 00:20:24,079 desde 0 hasta 5 voltios en la salida número 11 261 00:20:24,079 --> 00:20:26,359 para que este LED vaya progresivamente iluminándose 262 00:20:26,359 --> 00:20:29,099 pues fijaros, escribimos como dice aquí 263 00:20:29,099 --> 00:20:33,619 escribimos en la instrucción analogWrite el pin número 11 264 00:20:33,619 --> 00:20:36,640 con el valor que tenga la variable I 265 00:20:36,640 --> 00:20:39,079 la variable I al principio tendrá un valor de 0 266 00:20:39,079 --> 00:20:45,900 pero luego tendrá un valor de 1, después un valor de 2, de 100, 150, 200 hasta 255 267 00:20:45,900 --> 00:20:52,839 que es el valor máximo que nos permite sacar por aquí y que se traduce en que la señal que aparece por aquí es hasta 5 voltios 268 00:20:52,839 --> 00:20:58,420 insisto, en realidad es pulsatoria pero bueno es como si sacáramos desde 0 voltios hasta 5 voltios 269 00:20:58,420 --> 00:21:05,240 de manera que entonces lo que hace el diodo LED es desde 0 voltios hasta 5 voltios iluminarse de manera progresiva 270 00:21:05,240 --> 00:21:08,619 y cuando alcanzamos el máximo correspondiente 271 00:21:08,619 --> 00:21:12,660 y cuando alcanzamos el máximo correspondiente a 255 272 00:21:12,660 --> 00:21:14,599 lo que hacemos es decrementarlo 273 00:21:14,599 --> 00:21:17,220 es decir, en lugar de sumar hasta 255 274 00:21:17,220 --> 00:21:19,720 pues a partir de 255 lo que hacemos es restarlo 275 00:21:19,720 --> 00:21:21,579 de manera que, ¿qué es lo que estamos haciendo? 276 00:21:21,920 --> 00:21:24,259 pues que en realidad en este primer bucle 4 277 00:21:24,259 --> 00:21:25,900 que es como se llama este bucle 278 00:21:25,900 --> 00:21:30,180 lo que hacemos es incrementar desde 0 hasta 255 279 00:21:30,180 --> 00:21:32,440 y escribir en ese pin digital 11 ese valor 280 00:21:32,440 --> 00:21:34,240 y esperar eso sí 10 milisegundos 281 00:21:34,240 --> 00:21:36,799 para ir viendo como se ilumina de manera progresiva 282 00:21:36,799 --> 00:21:40,640 y cuando alcanzamos los 255 entra en funcionamiento el siguiente bucle 283 00:21:40,640 --> 00:21:43,420 que va desde los 255 hasta 0 284 00:21:43,420 --> 00:21:49,740 con lo cual vamos haciendo que la luminosidad de este LED vaya decreciendo 285 00:21:49,740 --> 00:21:53,519 esto sería en código Arduino 286 00:21:53,519 --> 00:21:59,839 pero observar como estaría aquí el programa en un lenguaje gráfico 287 00:21:59,839 --> 00:22:23,420 Veis aquí los dos bucles, se repite 255 veces, aquí también se repite 255 veces, pero en un caso sumamos y en el otro caso restamos de uno en uno, ¿vale? Yo creo que es muy didáctico ver un poco cómo sería el programa en código Arduino y cómo sería el programa en un código gráfico, que en este caso es el propio de Tinkercad Circuit, ¿vale? del simulador. 288 00:22:23,420 --> 00:22:25,619 pero bueno, como veis es muy similar 289 00:22:25,619 --> 00:22:27,420 si lo escribiéramos en ArduinoBlock 290 00:22:27,420 --> 00:22:29,279 sería exactamente igual o cualquier BitBlock 291 00:22:29,279 --> 00:22:32,079 cualquier otro lenguaje gráfico 292 00:22:32,079 --> 00:22:33,240 bueno, pues con esto 293 00:22:33,240 --> 00:22:35,039 tenemos ya una visión general 294 00:22:35,039 --> 00:22:37,200 de cómo se puede programar la tarjeta Arduino 295 00:22:37,200 --> 00:22:38,880 y ahora ya lo único que nos queda 296 00:22:38,880 --> 00:22:41,319 es una serie de actividades que tenéis 297 00:22:41,319 --> 00:22:43,480 aquí, actividades que como siempre 298 00:22:43,480 --> 00:22:45,680 tendréis que hacer en el cuaderno y enviarme 299 00:22:45,680 --> 00:22:46,660 la correspondiente 300 00:22:46,660 --> 00:22:49,099 respuesta 301 00:22:49,099 --> 00:22:51,259 la correspondiente fotografía 302 00:22:51,259 --> 00:22:53,279 o pegada a un Word o un Tinko que queráis 303 00:22:53,279 --> 00:22:57,500 para con estos ejercicios resueltos en el cuaderno 304 00:22:57,500 --> 00:23:01,539 de acuerdo, bueno, no me voy a extender mucho más 305 00:23:01,539 --> 00:23:04,900 yo creo que con esto más o menos hemos visto o tenemos ya una visión general 306 00:23:04,900 --> 00:23:09,839 de cómo sería la programación de esta tarjeta 307 00:23:09,839 --> 00:23:16,200 y bueno, hemos visto una visión muy global de todo este tema relacionado con la robótica 308 00:23:16,200 --> 00:23:20,440 que tiene mucha amiga y que bueno, pues solamente nos quedará hacer algunas prácticas 309 00:23:20,440 --> 00:23:22,400 o algunos ejercicios 310 00:23:22,400 --> 00:23:24,460 que veremos a ver como lo implementamos 311 00:23:24,460 --> 00:23:25,619 bueno, lo dicho 312 00:23:25,619 --> 00:23:27,339 nos vemos, hasta luego