1 00:00:01,330 --> 00:00:05,950 Bienvenidos a todos los asistentes al curso de investigación y método científico en el aula 2 00:00:05,950 --> 00:00:10,070 y en concreto a la serie de vídeos dedicados a proyectos de investigación de tecnología. 3 00:00:10,710 --> 00:00:15,710 En esta ocasión, en este vídeo, vamos a presentar un proyecto titulado Cerradura Codificada 4 00:00:15,710 --> 00:00:22,289 que es un proyecto aún por desarrollar con los alumnos, solamente tenemos el prototipo 5 00:00:22,289 --> 00:00:25,649 y vamos a explicar su funcionamiento y sus características. 6 00:00:25,649 --> 00:00:45,469 En primer lugar se trata de un proyecto que incorpora varios sensores y actuadores, es un proyecto que incorpora un teclado, que incorpora una pantalla LCD con comunicación I2C, incorpora también un servomotor de 180 grados que va a simular las veces de la cerradura 7 00:00:45,469 --> 00:00:56,189 y finalmente un altavoz piezoeléctrico para indicar las pulsaciones y para avisar también de forma acústica si el pin introducido es correcto. 8 00:00:56,189 --> 00:01:05,629 La finalidad de este proyecto es mostrar cómo se puede implementar una cerradura codificada y cómo el servomotor se activará o no 9 00:01:05,629 --> 00:01:15,409 dependiendo de que el pin introducido por el teclado corresponda con el pin almacenado en la memoria del programa que hemos implementado dentro de Arduino. 10 00:01:15,469 --> 00:01:25,010 Para ello vamos a describir un poquito el proceso, el montaje, perdón, como vemos incorpora 11 00:01:25,010 --> 00:01:30,030 en este caso una tarjeta Arduino a la que conectamos un teclado, en este caso formado 12 00:01:30,030 --> 00:01:35,370 por pulsadores, no es un teclado de membrana, es otro modelo diferente y como recordaremos 13 00:01:35,370 --> 00:01:42,010 en los videos anteriores donde explicábamos en concreto este sensor, simplemente hay que 14 00:01:42,010 --> 00:01:46,150 identificar los pines adecuados de filas y columnas que corresponde con estos 15 00:01:46,150 --> 00:01:48,489 pinos de aquí para que luego en el programa podamos identificarlos 16 00:01:48,489 --> 00:01:56,109 correctamente con los pines de arduino como vemos en el pin número 9 17 00:01:56,109 --> 00:02:03,390 conectamos la señal pwm del servomotor en el altavoz piezoeléctrico está 18 00:02:03,390 --> 00:02:07,390 conectado al pin número 10 y finalmente la 19 00:02:07,390 --> 00:02:13,009 tarjeta perdón el display lcd está conectado por i2t con los famosos pines 20 00:02:13,009 --> 00:02:17,949 a 4 y a 5 como ya sabemos bien vamos a ver las características del programa y 21 00:02:17,949 --> 00:02:25,449 cómo funciona en concreto el programa que vemos aquí en todos los dos 22 00:02:25,449 --> 00:02:30,189 elementos principales el bucle inicializar que como vemos pues es un 23 00:02:30,189 --> 00:02:36,250 bucle que lo que hacemos es configurar los pines de conexión de la 24 00:02:36,250 --> 00:02:41,969 tarjeta arduino y del teclado en las pilas y columnas correspondientes, después inicializamos 25 00:02:41,969 --> 00:02:47,030 también la pantalla LCD indicando el direccionamiento que tiene esta pantalla y el modelo, en este 26 00:02:47,030 --> 00:02:53,110 caso de dos líneas y 16 caracteres. Luego también establecemos tres variables, la variable 27 00:02:53,110 --> 00:03:01,550 acceso, que es el pin guardado en memoria que tendrá que introducir correctamente el 28 00:03:01,550 --> 00:03:06,770 usuario si quiere accionar la cerradura en la variable pin que en este caso no 29 00:03:06,770 --> 00:03:10,990 almacenamos nada será lo que vaya a pulsar el usuario finalmente 30 00:03:10,990 --> 00:03:13,729 establecemos el número de pulsaciones porque va a ser muy importante en este 31 00:03:13,729 --> 00:03:19,310 caso se trata de una cerradura con un pin de cuatro dígitos y luego finalmente 32 00:03:19,310 --> 00:03:23,669 aparte de limpiar evidentemente la pantalla lcd para que aparezcan los 33 00:03:23,669 --> 00:03:27,310 mensajes correspondientes vamos a activar el servomotor en el que ya está 34 00:03:27,310 --> 00:03:30,349 conectado en el pin 9 como ya hemos comentado y lo colocamos en la posición 35 00:03:30,349 --> 00:03:36,449 adecuada para que la cerradura esté en este caso cerrada luego dos pequeñas 36 00:03:36,449 --> 00:03:41,590 funciones la función error y la función ok son simplemente funciones para luego 37 00:03:41,590 --> 00:03:47,590 cuando el altavoz piezoeléctrico se active pues nos de una una señal 38 00:03:47,590 --> 00:03:53,189 acústica que indica un error vale o que indica un acierto en este caso un 39 00:03:53,189 --> 00:03:58,310 ping correctamente introducido bien pues vamos a ver un poco el programa el 40 00:03:58,310 --> 00:04:01,430 programa en realidad es muy sencillo porque realmente lo que hacemos es 41 00:04:01,430 --> 00:04:07,430 comparar las pulsaciones introducidas por el teclado y compararlas 42 00:04:07,430 --> 00:04:14,810 con el valor 1234 que es el pin, en este caso, almacenado en formato de texto para 43 00:04:14,810 --> 00:04:19,410 poder compararlo. Como vemos en el bucle principal tenemos un 44 00:04:19,410 --> 00:04:24,889 primer bucle, un repetir, mientras que cualquier tecla 45 00:04:24,889 --> 00:04:27,389 del teclado no sea pulsada 46 00:04:27,389 --> 00:04:29,209 entonces si no se ha pulsado ninguna tecla 47 00:04:29,209 --> 00:04:31,490 lo que visualizamos en la pantalla 48 00:04:31,490 --> 00:04:33,470 LCD es la información acceso codificado 49 00:04:33,470 --> 00:04:35,230 pulse una tecla y esto se desplaza 50 00:04:35,230 --> 00:04:37,269 constantemente en retardo 51 00:04:37,269 --> 00:04:39,670 de 100 milisegundos hacia la izquierda 52 00:04:39,670 --> 00:04:41,490 ¿vale? y esta información permanece 53 00:04:41,490 --> 00:04:43,050 constantemente en la pantalla LCD 54 00:04:43,050 --> 00:04:45,730 mientras como digo no se pulse ninguna tecla 55 00:04:45,730 --> 00:04:47,410 ¿qué ocurre si pulsamos una tecla? 56 00:04:47,509 --> 00:04:49,490 entonces el programa continúa y en este caso el altavoz 57 00:04:49,490 --> 00:04:50,490 pisoeléctrico, el zumbador 58 00:04:50,490 --> 00:04:51,870 activa un 59 00:04:51,870 --> 00:04:55,110 hace sonar un pequeño tono 60 00:04:55,110 --> 00:04:56,689 para indicar que efectivamente ya hemos 61 00:04:56,689 --> 00:04:58,310 iniciado el proceso de lectura 62 00:04:58,310 --> 00:05:00,689 del PIN y limpiamos la 63 00:05:00,689 --> 00:05:02,550 pantalla LCD para que ya no aparezca nada y 64 00:05:02,550 --> 00:05:04,470 empiece a aparecer la información que vamos a teclear 65 00:05:04,470 --> 00:05:05,709 en concreto 66 00:05:05,709 --> 00:05:08,870 lo que hacemos es repetir 67 00:05:08,870 --> 00:05:10,629 en este caso la lectura 68 00:05:10,629 --> 00:05:12,629 de las teclas pulsadas 69 00:05:12,629 --> 00:05:14,750 hasta 4 70 00:05:14,750 --> 00:05:16,509 pulsaciones, para comparar 71 00:05:16,509 --> 00:05:17,230 después finalmente 72 00:05:17,230 --> 00:05:20,410 las pulsaciones de las teclas con el 73 00:05:20,410 --> 00:05:27,550 mensaje con el código con el pin 1 2 3 y 4 entonces lo que hacemos es como digo guardar 74 00:05:27,550 --> 00:05:35,410 la tecla pulsada en este caso en la variable tecla y si la tecla si no es distinta de ninguna 75 00:05:35,410 --> 00:05:41,050 pulsación es decir que la tecla ha sido pulsada una tecla cualquiera pues entonces guardamos esa 76 00:05:41,050 --> 00:06:02,449 Y lo que hacemos es convertir la variable pin con la nueva tecla pulsada y la variable anterior pin, que en este caso no contenía nada, pero ahora le vamos a ir sumando a medida que vamos haciendo este bucle de cuatro pulsaciones, vamos a ir añadiendo al pin las teclas que vamos pulsando, ¿de acuerdo? 77 00:06:02,449 --> 00:06:10,189 Y por supuesto incrementamos la variable pulsaciones, este contador de cuatro pulsaciones, cada vez que realizamos una pulsación. 78 00:06:10,189 --> 00:06:17,149 De manera que al final podemos visualizar en la pantalla las cuatro pulsaciones de la variable pin. 79 00:06:17,810 --> 00:06:28,529 Como vemos aquí, cada vez que introducimos una pulsación, imprimimos en la pantalla LCD, en este caso el texto pin acceso y la tecla que ha sido pulsada. 80 00:06:28,529 --> 00:06:47,610 De manera que finalmente, una vez que ya tenemos las cuatro pulsaciones, ya tendremos entonces la variable pin completada, introducida por el usuario, y lo que hacemos ahora es compararla con nuestra variable guardada en el programa, que en este caso es una variable del pin 1, 2, 3 y 4. 81 00:06:47,610 --> 00:07:10,310 Entonces lo comparamos, si esto es correcto, es decir, si la variable de acceso de texto es igual a la variable pin, entonces en este caso lo que hacemos es introducir en la pantalla LCD una información, acceso permitido, indicamos, como habíamos dicho antes, la función sonido OK, un sonido indicando que es correcto el pin introducido, 82 00:07:10,310 --> 00:07:17,290 y en este caso activamos el servomotor hacia un ángulo de 90 grados para que evidentemente gire en una posición 83 00:07:17,290 --> 00:07:22,110 y permita la apertura de la cerradura simulada por el servomotor. 84 00:07:22,550 --> 00:07:29,550 Esto lo mantenemos durante dos segundos y luego si esto no ha sido así, la información que aparece es acceso denegado, 85 00:07:29,550 --> 00:07:37,370 es decir, no corresponde la variable acceso 1, 2, 3 y 4 con la variable ping introducida por el usuario 86 00:07:37,370 --> 00:07:40,050 y por lo tanto además indicaríamos un sonido de error 87 00:07:40,050 --> 00:07:41,829 para avisar de esta situación 88 00:07:41,829 --> 00:07:43,910 cuando todo eso se ha producido 89 00:07:43,910 --> 00:07:45,910 esperamos dos segundos 90 00:07:45,910 --> 00:07:47,629 y reiniciamos todo 91 00:07:47,629 --> 00:07:49,670 establecemos la variable pulsaciones a cero 92 00:07:49,670 --> 00:07:51,490 establecemos la variable ping 93 00:07:51,490 --> 00:07:53,810 en este caso una variable vacía 94 00:07:53,810 --> 00:07:55,709 en este caso sin ningún tipo de datos 95 00:07:55,709 --> 00:07:57,449 limpiamos 96 00:07:57,449 --> 00:07:59,649 la patente del LCD 97 00:07:59,649 --> 00:08:01,029 y de nuevo colocamos 98 00:08:01,029 --> 00:08:04,009 el servomotor en su posición original 99 00:08:04,009 --> 00:08:04,850 de manera que 100 00:08:04,850 --> 00:08:11,769 Este programa se está constantemente reproduciendo, 101 00:08:11,870 --> 00:08:14,430 se está constantemente texteando las pulsaciones, 102 00:08:14,949 --> 00:08:16,970 las cuatro pulsaciones que se van introduciendo. 103 00:08:17,069 --> 00:08:19,470 Una vez que se introducen las cuatro pulsaciones, se compara 104 00:08:19,470 --> 00:08:23,529 y si es correcto se abre el servomotor, se gira el servomotor 105 00:08:23,529 --> 00:08:26,269 y si no es correcto, pues no se... 106 00:08:26,269 --> 00:08:29,029 De esta manera tendríamos un proyecto bastante interesante. 107 00:08:30,069 --> 00:08:33,269 El vídeo que vamos a mostrar ahora es un vídeo en el que se muestra 108 00:08:33,269 --> 00:08:39,110 el funcionamiento de esta cerradura codificada, hemos sustituido en este prototipo, hemos 109 00:08:39,110 --> 00:08:43,409 sustituido una tarjeta Arduino Uno por una tarjeta Arduino Nano. El funcionamiento es 110 00:08:43,409 --> 00:08:47,649 exactamente el mismo, lo único que varía en este caso es el tipo de conexión USB y 111 00:08:47,649 --> 00:08:53,549 la disposición de los pines, pero dispone también de pines de entrada y salida digitales, 112 00:08:53,549 --> 00:08:58,250 pines analógicos, etc. Es decir, que funcionalmente es exactamente el mismo. La opción de utilizar 113 00:08:58,250 --> 00:09:02,669 un Arduino Nano básicamente era por el tema de espacio y para tener un prototipo compacto 114 00:09:02,669 --> 00:09:10,009 que enseñar a los alumnos. Vemos también que incluimos un pequeño zócalo de inserción 115 00:09:10,009 --> 00:09:15,330 para este Arduino Nano para facilitar las conexiones, dado que no dispone de los pines 116 00:09:15,330 --> 00:09:22,210 hembra que utiliza Arduino Uno. Entonces hemos utilizado un zócalo especial para Arduino 117 00:09:22,210 --> 00:09:28,049 Nano y facilitar las conexiones de Arduino con el resto de los periféricos. Vemos también 118 00:09:28,049 --> 00:09:32,470 aquí que tenemos un servomotor que a las veces de la cerradura, al girar en este caso 119 00:09:32,470 --> 00:09:38,789 el eje pues saldrá de esta pequeña guía simulando una cerradura. Tenemos por supuesto el teclado de botón 120 00:09:38,789 --> 00:09:44,490 que habíamos dicho de botones de pulsadores y todo este conjunto de cables son las conexiones del teclado 121 00:09:44,490 --> 00:09:51,450 hacia la tarjeta Arduino Nano. Y como no, la pantalla LCD con comunicación I2T que también se comunica 122 00:09:51,450 --> 00:09:56,690 directamente con Arduino Nano. El altavoz que no se aprecia aquí está justamente debajo de este soporte 123 00:09:56,690 --> 00:10:02,230 para ganar espacio. Vamos a ver entonces el funcionamiento y lo vamos a ir comentando. 124 00:10:02,470 --> 00:10:12,590 En primer lugar, como vemos, al realizar una primera pulsación, entramos entonces en ese bucle que habíamos comentado antes, en el que ya vamos a realizar la lectura correspondiente del PIN. 125 00:10:12,870 --> 00:10:14,210 Vamos a introducir un PIN erróneo. 126 00:10:19,340 --> 00:10:29,200 Vemos como efectivamente el PIN erróneo se visualiza también y la información, una vez que se compara con el PIN 1, 2, 3 y 4, PIN de texto guardado en la memoria inicial, 127 00:10:29,580 --> 00:10:34,139 pues al no coincidir nos visualiza el mensaje de error. 128 00:10:34,620 --> 00:10:49,460 De nuevo entramos una vez en el bucle de lectura de PIN y ahora ya introducimos correctamente el valor, nos dice acceso permitido, el servomotor se desplaza para permitir la apertura.