1 00:00:01,300 --> 00:00:06,419 Bienvenidos de nuevo a todos los asistentes al curso de investigación y método científico en el aula 2 00:00:06,419 --> 00:00:11,080 y en concreto a la serie de vídeos dedicados a los proyectos de investigación de tecnología. 3 00:00:11,500 --> 00:00:16,120 En esta ocasión presentamos un nuevo vídeo dedicado a los proyectos tecnológicos 4 00:00:16,120 --> 00:00:19,679 y en concreto al proyecto titulado Papelera Inteligente Contantes. 5 00:00:20,539 --> 00:00:28,620 Este proyecto tecnológico ha sido presentado en el V Premio Nacional de Ingeniería a la Investigación Tecnológica 6 00:00:28,620 --> 00:00:36,000 organizado por la Unión de Asociaciones de Ingenieros Técnicos Industriales y Graduados en Ingeniería Industrial. 7 00:00:36,659 --> 00:00:44,799 Este concurso busca como objetivo principal que los estudiantes tanto del segundo ciclo de ESO como de bachillerato 8 00:00:44,799 --> 00:00:52,140 desarrollen un proyecto tecnológico como respuesta a una necesidad cercana, ya sea dentro o fuera del centro. 9 00:00:52,140 --> 00:01:19,040 Bueno, pues la propuesta que nosotros hemos presentado es una propuesta basada en la utilización de un nuevo sensor, en este caso un lector de tarjetas RFID de radiofrecuencia y que consiste en nuestro proyecto en la realización de una modificación de una papelera de reciclaje para poder ser utilizada por cualquier usuario que disponga de una tarjeta y por lo tanto pueda ser identificado 10 00:01:19,040 --> 00:01:29,459 y pueda utilizar esa papelera accionando la papelera, abriendo la papelera, utilizando una tarjeta de radiofrecuencia. 11 00:01:29,640 --> 00:01:41,379 De esta manera, si la tarjeta es válida, la papelera se pone en funcionamiento, abre el soporte para poder, la tapa para poder depositar el objeto a reciclar 12 00:01:41,379 --> 00:01:50,620 y además realiza un sorteo de unos códigos que pueden ser premiados para poder canjear en la cafetería del centro. 13 00:01:51,219 --> 00:01:58,560 De esta forma se fomenta el uso de las papeleras de reciclaje y además se consigue que el estudiante pueda obtener un premio canjeable 14 00:01:58,560 --> 00:02:02,019 en la cafetería del centro, una pieza de fruta, un zumo, etc. 15 00:02:02,599 --> 00:02:08,280 Y evidentemente cuantas más veces utilice la papelera, más opciones tiene de conseguir algún premio. 16 00:02:08,280 --> 00:02:18,340 No en todas las ocasiones, obviamente, el premio puede ser conseguido, pero evidentemente cuantas más veces la utilices, pues más posibilidades tendrás de obtener ese premio. 17 00:02:18,860 --> 00:02:23,099 Entonces, como digo, el objetivo fundamental de este proyecto era la modificación de una papelera. 18 00:02:23,280 --> 00:02:35,099 Para ello utilizamos una papelera facilitada por la empresa Ecoembes, que tiene un programa que permite la utilización de estas papeleras en determinados centros educativos. 19 00:02:35,099 --> 00:02:46,419 y el equipo de trabajo de estudiantes lo que hizo fue modificar la tapa, bueno, sustituir la tapa de esta papelera 20 00:02:46,419 --> 00:02:53,280 e incorporar un sistema programable, en este caso con una tarjeta Arduino, con un lector de tarjetas RFDI 21 00:02:53,280 --> 00:03:00,080 y un dispositivo, un servomotor para abrir la tapa de la papelera 22 00:03:00,080 --> 00:03:08,039 una pantalla LCD para indicar al usuario las diferentes fases por las que va atravesando para utilizar la papelera 23 00:03:08,039 --> 00:03:15,680 y finalmente un altavoz piezoeléctrico para ir señalizando las diferentes fases de su uso. 24 00:03:17,039 --> 00:03:23,680 En primer lugar habría que detallar cómo funciona un lector de tarjetas RFDI. 25 00:03:23,680 --> 00:03:29,599 Hay que decir que en concreto este lector de tarjetas, este que vemos aquí, es el modelo RC522 26 00:03:29,599 --> 00:03:38,780 y es un modelo muy utilizado porque es fácilmente programable con una tarjeta Arduino mediante una conexión SPI. 27 00:03:39,099 --> 00:03:49,719 Como recordamos, la conexión SPI requiere de varios cables, no solamente de dos cables como pasaba con la comunicación I2C. 28 00:03:50,259 --> 00:03:58,139 En este caso, la comunicación SPI requiere de todos estos cables que vemos aquí conectados 29 00:03:58,139 --> 00:04:04,020 y en concreto de las siguientes conexiones. 30 00:04:04,240 --> 00:04:09,520 La primera conexión, la conexión SS o CS, es la conexión para seleccionar, en este caso, 31 00:04:09,639 --> 00:04:12,139 el dispositivo o el periférico con el que vamos a comunicarnos. 32 00:04:12,879 --> 00:04:18,000 SS vendría de Select Slave, es decir, la selección de esclavo, 33 00:04:18,519 --> 00:04:26,079 y después tendríamos el ping de reloj necesario para la transmisión serie de los datos. 34 00:04:26,079 --> 00:04:39,079 Y luego estos dos conexiones, si recordamos, eran las conexiones MOSI y MISO, que son las conexiones de Master Output Slave Input y Master Input Slave Output. 35 00:04:39,980 --> 00:04:46,819 Esto es, evidentemente, para realizar la comunicación direccional del emisor al receptor y viceversa. 36 00:04:46,819 --> 00:04:53,600 el pin IRQ de interrupción, este lo podemos deshabilitar, no es necesario utilizarlo 37 00:04:53,600 --> 00:05:00,199 y por supuesto las correspondientes alimentaciones GND y VCC del propio lector de tarjetas RFDI 38 00:05:00,199 --> 00:05:06,639 adicionalmente también tenemos el pin reset para poder resetear el dispositivo 39 00:05:06,639 --> 00:05:12,660 bien, el control es muy sencillo, si observamos en este caso esta conexión que vemos que es muy sencilla 40 00:05:12,660 --> 00:05:23,079 recordamos que en la tarjeta Arduino las conexiones por comunicación SPI requieren la utilización de estos pines 41 00:05:23,079 --> 00:05:31,920 que vemos aquí a partir del 9, 10, 11, 12 son las comunicaciones que se emplean habitualmente 42 00:05:31,920 --> 00:05:40,660 y como vemos en el bloque inicial para configurar la comunicación con el lector de tarjetas RFDI 43 00:05:40,660 --> 00:05:56,500 Lo que es lo único que tenemos que seleccionar, porque el resto de comunicaciones de pines MOS y MISO son obvios, pero tenemos que comunicar e identificar en este bloque el pin SS o el pin CS, chip select, es el mismo. 44 00:05:56,500 --> 00:06:01,819 en este caso lo hemos configurado en el pin 10 y el pin de reset que en este caso está configurado en el pin 9 45 00:06:01,819 --> 00:06:06,620 de manera que luego el resto, el 11, 12 y 13 son el resto de las comunicaciones que nos faltan 46 00:06:06,620 --> 00:06:12,860 al margen por supuesto de la alimentación y como hemos dicho del pin de reset que en este caso está en el 9 47 00:06:12,860 --> 00:06:14,759 bien, ¿cómo funciona este dispositivo? 48 00:06:14,759 --> 00:06:17,639 pues una vez que hemos configurado solamente estos dos pines 49 00:06:17,639 --> 00:06:21,500 porque el resto, insisto, tienen que ser obligatoriamente en estos pines de comunicaciones 50 00:06:21,500 --> 00:06:24,459 porque Arduino se comunica por SPI a través de estos pines 51 00:06:24,459 --> 00:06:38,259 Los únicos bloques que utiliza Arduino BLOCK para poder utilizar el lector de tarjetas RFDI es, en este caso, el bloque de identificación de una tarjeta que se ha acercado al lector. 52 00:06:38,259 --> 00:06:45,660 recordamos que las tarjetas RFDI son en realidad antenas que se activan al 53 00:06:45,660 --> 00:06:51,379 acercar a este lector y entonces esta misma señal de radiofrecuencia activa 54 00:06:51,379 --> 00:06:54,879 también la tarjeta que incluye un chip en el que podemos leer en este caso el 55 00:06:54,879 --> 00:06:58,240 código identificativo de esa tarjeta pues una vez que este bloque ha 56 00:06:58,240 --> 00:07:03,459 identificado la presencia de una tarjeta podemos leer su valor y al leer su valor 57 00:07:03,459 --> 00:07:08,480 y en este caso el bloque es expulsar, ya podemos tener la tarjeta identificada 58 00:07:08,480 --> 00:07:12,879 y en este caso este simple bloque lo que hace es enviarlo por el puerto serie para poder identificarlo. 59 00:07:13,360 --> 00:07:19,980 Es decir, que este pequeño programita en realidad nos sirve para identificar el código de una tarjeta RFDI 60 00:07:19,980 --> 00:07:21,560 que acerquemos a nuestro lector. 61 00:07:22,339 --> 00:07:27,220 Bien, teniendo claro entonces que el dispositivo que va a permitir utilizar la papelera 62 00:07:27,220 --> 00:07:31,939 va a ser el lector de tarjetas RFDI, pues vamos un poco a detallar, 63 00:07:31,939 --> 00:07:40,480 En este caso, las características de nuestras conexiones y de los elementos que conecta nuestra papelera. 64 00:07:40,800 --> 00:07:47,759 En primer lugar, como hemos dicho, tenemos la tarjeta Arduino, la conexión que ya hemos visto anteriormente de la tarjeta RFDI 65 00:07:47,759 --> 00:07:55,660 y para realizar nuestro montaje de la tapa, la modificación de la tapa que sustituiría a la tapa original, 66 00:07:55,660 --> 00:08:03,100 incluimos una pantalla LCD, en este caso comunicación I2C, un servomotor que es el que nos va a abrir la compuerta 67 00:08:03,100 --> 00:08:12,519 para poder depositar nuestra base de reciclaje y finalmente un altavoz piezoeléctrico para poder avisar de forma acústica 68 00:08:12,519 --> 00:08:16,240 en este caso el proceso de apertura y de cierre de la tapa. 69 00:08:16,240 --> 00:08:22,139 el proceso en sí de utilización de la papelera 70 00:08:22,139 --> 00:08:25,079 como vemos es primero una fase de lectura de la tarjeta 71 00:08:25,079 --> 00:08:26,759 para identificar si es correcto o no 72 00:08:26,759 --> 00:08:29,319 después se procede a la apertura de la papelera 73 00:08:29,319 --> 00:08:33,519 y finalmente se genera un código aleatorio 74 00:08:33,519 --> 00:08:35,279 que puede ser un código premiado 75 00:08:35,279 --> 00:08:37,419 esto serían las tres fases de nuestro proyecto 76 00:08:37,419 --> 00:08:41,240 que veremos después en el vídeo publicitario del proyecto 77 00:08:42,240 --> 00:08:50,659 Bueno, pues vamos a analizar entonces el funcionamiento de este algoritmo que nos va a permitir realizar toda esta secuencia que hemos comentado. 78 00:08:51,200 --> 00:09:01,740 Bien, pues vamos a analizar en este caso el programa informático y qué mejor que un flujograma para un poco ver las diferentes fases por las que va pasando el programa. 79 00:09:01,919 --> 00:09:07,679 Después analizaremos ya en concreto, en este caso, con lenguaje Arduino Blocks, cada una de las funciones y el programa principal. 80 00:09:07,679 --> 00:09:12,059 y como vemos aquí pues tendríamos aquí una papelera esta sin modificar en este caso es 81 00:09:12,059 --> 00:09:17,340 para cartón y para papel y demás y esta papelera que es la que está modificada en la que incluimos 82 00:09:17,340 --> 00:09:23,159 una tapa nueva fabricada en madera con una compuerta que se va a abrir y cerrar ahora 83 00:09:23,159 --> 00:09:28,679 veremos los vídeos que se elaboraron para el proyecto y como digo la pantalla lcd por la 84 00:09:28,679 --> 00:09:33,840 que se va a ir señalizando las fases de funcionamiento de la papelera el lector 85 00:09:33,840 --> 00:09:37,919 como no, de tarjetas RFDI y un pequeño 86 00:09:37,919 --> 00:09:41,039 altavoz piezoeléctrico para señalar el tratamiento del proceso 87 00:09:41,039 --> 00:09:45,440 bueno, vamos entonces con el algoritmo principal, en este caso 88 00:09:45,440 --> 00:09:48,159 lo que vemos es que se trata de 89 00:09:48,159 --> 00:09:53,139 nada más encender el dispositivo 90 00:09:53,139 --> 00:09:57,500 pues aparece en este caso un mensaje en la 91 00:09:57,500 --> 00:10:01,519 pantalla LCD, que en este caso es para leer a contarles, consigue 92 00:10:01,519 --> 00:10:06,200 premios y automáticamente ya empieza el programa propiamente dicho. El programa 93 00:10:06,200 --> 00:10:12,379 propiamente dicho es la lectura constante de cualquier tarjeta que se 94 00:10:12,379 --> 00:10:18,220 acerque al lector de tarjetas RFID. Si no se detecta 95 00:10:18,220 --> 00:10:22,419 tarjeta automáticamente el programa continúa leyendo la tarjeta hasta que 96 00:10:22,419 --> 00:10:27,320 finalmente existe una tarjeta. Si esa tarjeta que se ha acercado al 97 00:10:27,320 --> 00:10:33,259 lector de tarjetas no es válida se indica además con un mensaje en la 98 00:10:33,259 --> 00:10:36,740 pantalla LCD que esa tarjeta no es válida y volvemos otra vez al principio pero si 99 00:10:36,740 --> 00:10:39,799 la tarjeta es válida entonces ya empezamos todo el proceso de funcionamiento de la 100 00:10:39,799 --> 00:10:44,700 papelera que en este caso es indicar por la pantalla LCD que deposite el envase 101 00:10:44,700 --> 00:10:51,080 después se activa el motor que permite abrir la compuerta y además se avisa 102 00:10:51,080 --> 00:10:58,480 con un zumbido constante e intermitente que la compuerta está abierta 103 00:10:58,480 --> 00:11:02,779 y por lo tanto hay que depositar el correspondiente envase 104 00:11:02,779 --> 00:11:07,759 y finalmente una vez que se ha cerrado ya la tapa del motor 105 00:11:07,759 --> 00:11:13,080 se indica una frase de agradecimiento y se genera el código 106 00:11:13,080 --> 00:11:16,019 este código en realidad es un número aleatorio entre 1 y 100 107 00:11:16,019 --> 00:11:22,799 y establecemos en este caso el parámetro para el cual vamos a premiar los códigos. 108 00:11:22,980 --> 00:11:25,799 ¿Que el número que aparece es menor de 25? 109 00:11:25,960 --> 00:11:32,159 Pues en este caso tenemos una cuarta o 25% de posibilidades de que el premio sea seguro. 110 00:11:32,299 --> 00:11:34,500 Entonces en este caso indicamos que el código ha sido premiado 111 00:11:34,500 --> 00:11:39,360 y elegimos de una lista almacenada de premios el primer elemento de la lista. 112 00:11:40,139 --> 00:11:44,500 Luego eliminamos ese elemento de la lista, mostramos el código seleccionado 113 00:11:44,500 --> 00:11:52,000 y le indicamos al usuario que anote ese código para, como digo, volver otra vez a la posición inicial. 114 00:11:52,480 --> 00:11:57,019 Si el número aleatorio entre 1 y 100 es mayor, en este caso de 25, 115 00:11:57,440 --> 00:12:04,700 pues el código no es premiado y nos indica directamente al usuario que se agradece su participación, 116 00:12:04,840 --> 00:12:07,840 pero no hay ningún código premiado. 117 00:12:08,000 --> 00:12:13,480 Obviamente este número de 25 puede ser perfectamente modificable para facilitar o no los premios. 118 00:12:13,480 --> 00:12:25,559 De hecho, en el programa, como vemos, el código premiado en este caso tiene que ser un valor mayor de 50 porque hemos preferido facilitar la obtención de premios utilizando la papelera. 119 00:12:25,559 --> 00:12:42,059 Bueno, pues vamos entonces a ver ahora el programa. El programa, como digo, inicialmente en el bloque inicializar preparamos todos los elementos que vamos a utilizar. En primer lugar, el servomotor lo colocamos en su posición correcta de cierre de la abertura de la papelera. 120 00:12:42,059 --> 00:12:50,840 después activamos en este caso, mejor dicho, inicializamos por el CPI el lector de tarjetas que tenemos 121 00:12:50,840 --> 00:12:57,679 después también inicializamos en este caso la pantalla LCD e indicamos además un mensaje 122 00:12:57,679 --> 00:13:03,080 en este caso papelera sin contacto, papelera inteligente, consigue premios 123 00:13:03,080 --> 00:13:09,039 y después, bueno, pues aquí en este caso inicializamos dos funciones, la función inicio, la función lista de códigos 124 00:13:09,039 --> 00:13:16,340 que ahora vamos a ver, y establecemos el contador que veremos para qué sirve a 0. 125 00:13:16,879 --> 00:13:20,600 Decir en primer lugar que las tarjetas que vayan a ser válidas tenemos que leerlas previamente 126 00:13:20,600 --> 00:13:23,740 con este pequeño programa que hemos visto anteriormente, y simplemente lo que hacemos 127 00:13:23,740 --> 00:13:28,220 es leer el valor de identificación almacenado en la tarjeta y guardarlo. 128 00:13:28,539 --> 00:13:32,899 En este caso el programa es para una única tarjeta, en el que cuando identifiquemos ese código 129 00:13:32,899 --> 00:13:38,039 lo almacenaremos en memoria, que en este caso en el bucle principal, que es este que está aquí, 130 00:13:39,039 --> 00:13:46,399 El código almacenado es este que vemos aquí, que previamente habremos leído en una tarjeta que vamos a dar como tarjeta válida para que el proceso funcione. 131 00:13:46,399 --> 00:13:59,840 De esta manera, esta tarjeta se identificará con un usuario o también puede ser en el propio centro educativo una misma tarjeta que pueda ser facilitada a los usuarios de la papelera para poder utilizarla de una manera eficiente. 132 00:13:59,840 --> 00:14:02,799 Bien, pues el buque principal 133 00:14:02,799 --> 00:14:04,440 una vez que ya hemos inicializado todo 134 00:14:04,440 --> 00:14:06,700 indicamos la propiedad de reciclaje 135 00:14:06,700 --> 00:14:08,679 y como siempre hemos dicho anteriormente 136 00:14:08,679 --> 00:14:10,600 estamos detectando si existe una tarjeta 137 00:14:10,600 --> 00:14:12,360 si la tarjeta es correcta 138 00:14:12,360 --> 00:14:14,440 entonces si la tarjeta se ha acercado 139 00:14:14,440 --> 00:14:16,960 leemos la identificación de la tarjeta 140 00:14:16,960 --> 00:14:18,740 y lo guardamos en la variable código 141 00:14:18,740 --> 00:14:21,480 esa variable código la comparamos 142 00:14:21,480 --> 00:14:23,899 con la numeración que hemos dicho 143 00:14:23,899 --> 00:14:24,659 que la tarjeta es correcta 144 00:14:24,659 --> 00:14:26,100 porque podría ser una tarjeta no válida 145 00:14:26,100 --> 00:14:27,720 y por lo tanto el dispositivo no funcionaría 146 00:14:27,720 --> 00:14:34,159 porque no tenemos autorización para utilizar la papelera, o mejor dicho, porque no tenemos identificado al usuario de esa papelera. 147 00:14:36,019 --> 00:14:42,440 Como digo, si la tarjeta es válida, entonces se indica por mensaje que la tarjeta es correcta y se le indica al usuario que deposite el envase. 148 00:14:43,059 --> 00:14:47,320 Y entonces aparecen las dos funciones que vemos aquí, deposita envase y código premiado. 149 00:14:47,720 --> 00:14:48,879 ¿Qué es deposita envase? 150 00:14:48,879 --> 00:15:06,879 Bueno, pues el programa Deposita Envase, como veis aquí, en realidad es un programa para activar el piezo eléctrico con un tono que se repite en este caso 10 veces para que el tono durante este tiempo esté avisando al usuario de que tiene que depositar el envase. 151 00:15:06,879 --> 00:15:16,299 activamos en este caso el servomotor durante dos segundos para que permanezca abierto de manera que 152 00:15:16,299 --> 00:15:21,120 caerá el envase que hayamos depositado caerá en el interior de la papelera y finalmente colocamos 153 00:15:21,120 --> 00:15:26,080 de nuevo el servomotor en su posición y por lo tanto cerraremos la compuerta además de depositar 154 00:15:26,080 --> 00:15:34,779 el envase como vemos el programa ejecuta la función código premiado y aquí es digamos la 155 00:15:34,779 --> 00:15:39,399 parte más interesante donde vemos que la función código premiado en realidad lo 156 00:15:39,399 --> 00:15:45,500 que hace es como digo generar un número aleatorio entre 1 y 100 y en este caso 157 00:15:45,500 --> 00:15:49,539 establecemos un van a variable contador para que pueda realizarlo 25 veces que 158 00:15:49,539 --> 00:15:53,679 son los 25 premios que tenemos almacenados entonces como vemos aquí si 159 00:15:53,679 --> 00:16:01,000 el número aleatorio generado es menos de 50 pues en este 160 00:16:01,000 --> 00:16:08,740 caso lo que haremos será indicarle al usuario que el código ha sido premiado y de la lista que 161 00:16:08,740 --> 00:16:15,240 tenemos aquí almacenada de 25 premios elegimos el primero de ellos por eso el contador está 162 00:16:15,240 --> 00:16:21,879 inicialmente a cero no lo ponemos a 1 y elegimos el primer elemento de la lista de premios y eso 163 00:16:21,879 --> 00:16:27,379 aparece como vemos aquí en la fila 1 de la pantalla lcd junto con el mensaje en la parte 164 00:16:27,379 --> 00:16:32,100 arriba de código premia esto está durante cuatro segundos para que el usuario pueda anotar ese 165 00:16:32,100 --> 00:16:39,259 código o haga una foto directamente a la pantalla lcd y pueda después ese código que es cualquiera 166 00:16:39,259 --> 00:16:45,559 de estos 25 aunque están seleccionando evidentemente en orden en el orden que aparece 167 00:16:45,559 --> 00:16:53,879 aquí pues podrá después en la cafetería del centro y con ese código y poder canjear obviamente si el 168 00:16:53,879 --> 00:16:59,039 valores es mayor de 50 pues entonces en este caso no se le indica que mi premio y que otra vez será 169 00:16:59,039 --> 00:17:04,740 de acuerdo y luego al final pues limpiamos la pantalla lcd para luego empezar otra vez con el 170 00:17:04,740 --> 00:17:09,339 programa principal como vemos en realidad el programa es muy sencillo porque en realidad es 171 00:17:09,339 --> 00:17:14,400 controlar en la compuerta de apertura y cierre y luego evidentemente un programa que te permite en 172 00:17:14,400 --> 00:17:20,279 una lista seleccionar de manera ordenada cada uno de los códigos almacenados cuando se han agotado 173 00:17:20,279 --> 00:17:26,519 los 25 códigos el contador indicará que es un valor mayor de 25 entonces en este caso ya en 174 00:17:26,519 --> 00:17:31,980 este caso pues no sé no sé no se indicará ningún ningún código y por lo tanto no aparecerán 175 00:17:34,559 --> 00:17:43,700 y vemos aquí como decíamos una foto de cómo sería implementado el proyecto en este caso en el hall 176 00:17:43,700 --> 00:17:49,119 del centro y como vemos aquí el dispositivo como visto antes en la fabricación de este dispositivo 177 00:17:49,119 --> 00:17:52,180 se realizó nada más utilizando una impresión en 3d para en este caso la 178 00:17:52,180 --> 00:17:57,920 carcasa de la pantalla lcd y aquí vemos cómo es con la parte interior en la 179 00:17:57,920 --> 00:18:01,660 compuerta que es un servomotor al que se le ha acoplado esta compuerta que se 180 00:18:01,660 --> 00:18:09,109 abre y se cierra de acuerdo bueno vamos entonces ahora a ver el vídeo en el que 181 00:18:09,109 --> 00:18:12,650 describimos un poquito todo el proceso y todo el funcionamiento para dejar que 182 00:18:12,650 --> 00:18:15,450 ahora un poquito en qué consiste el proyecto y cómo y cómo funciona