Espacio Personal

ActiFolio: 20222

20222

Proyecto de Interacción Tangible (desarrollo) CERRADURA MULTIPROPÓSITO

PROTOTIPADO

Definición

Para el diseño del prototipo he adaptado una antigua caja de diskettes de 3.5”, dentro de la cual he instalado el Arduino y una placa de prototipado a la que he conectado el piezoeléctrico y un led RGB, que me servirá como indicador del modo de operación. Un sensor capacitivo realizará la función de botón de selección/activación según el modo elegido.

En el exterior he instalado otra placa de prototipado en la que he situado cuatro bombillas led de colores que se encienden al pulsar el botón correspondiente, cada uno de las cuales emite además un sonido característico a través del piezo instalado en el interior. Un display puede servir como menú de visualización de los ajustes y/o configuración.

En la placa de prototipado exterior he instalado una placa ESP32-WROOM-32D con WiFi / Bluetooth para una posible interacción remota. En esta placa está programada la interacción del display y del sensor de proximidad HC-SR04, y está conectada mediante dos pines con el Arduino para indicar a éste el modo de operación y la posible orden de apertura de la caja.

Además del sensor capacitivo conectado al Arduino, he instalado una llave metálica conectada a un pin TOUCH de la placa ESP32, de manera que al tocar la llave también sirve como botón de acción.

Mediante un potenciómetro se selecciona el modo de operación, girando ángulos de 45º para cada selección. En el display se indica el modo activo, que se transmite al Arduino para unificar las interacciones. A continuación, haré una breve explicación del funcionamiento de cada modo:

  • Mode 0: Modo Sonido ON / OFF

Con el modo seleccionado, al tocar la llave metálica conectada al pin TOUCH se activa / desactiva el sonido para todos los modos del prototipo.

  • Mode 1: Modo apertura libre (botón)

Tocando el pin TOUCH se abre o se cierra la cerradura.

  • Mode 2: Modo sensor de Proximidad

Cuando el sensor detecta a la persona más cerca de 20cm, da la orden de apertura de la cerradura. Cuando se aleja a más de 40cm, espera 5 segundos para dar la orden de cierre y la luz amarilla parpadea poco antes de cerrarse.

  • Mode 3: Modo Juego (SIMON-OPEN)

El juego consiste en reproducir los sonidos/luces aleatorias que produce el Arduino en ese mismo orden, de manera que cuando se logra reproducir la melodía correcta (de 6 tonos en este caso, por hacerlo fácil), la cerradura abre. Tocando el sensor capacitivo se repite la secuencia actual recién generada. Si la caja está desbloqueada, el sensor cierra la cerradura.

  • Mode 4: REMOTE WiFi LOCKER

En este modo se inicia un Servidor Web en el puerto 80 al que nos conectamos a través de la placa ESP32 mediante la red Wifi local, desde cualquier navegador. La página web creada para interactuar con el prototipo tan solo consta de 3 botones: Abrir, Cerrar y Salir.

  • Mode 5: MULTIPURPOSE LOCKER by Vinz

Este modo lo he dejado en blanco, para poder utilizarlo bajo demanda, en función de las necesidades particulares. Aquí se podría instalar cualquiera de las ideas planteadas en el brainstorming de la PEC03, como una cámara de video, lector de huellas, de tarjetas, detector de caras, o el motor de apertura automática.

Mapa conceptual

Enlace al video explicativo de la propuesta

En el siguiente enlace de YouTube está disponible el video con una pequeña explicación de la propuesta planteada y el funcionamiento del prototipo:

PROTOTIPO

Para poder visualizar una parte básica del funcionamiento, he añadido un potenciómetro al prototipo realizado en la PEC anterior, cuya entrada analógica decidirá el modo de operación. He dejado en la parte exterior solo las entradas sobre las que actúa el usuario y he mejorado el funcionamiento operativo del juego que abre la cerradura.

En el prototipo de la versión final, he conectado el potenciómetro a la nueva placa ESP32. Para lograr la interacción entre esta placa y la Arduino Uno utilizo el pin 25 para enviar los datos analógicos del potenciómetro al pin analógico A1 del Arduino, de manera que tengo el mismo modo de operación en ambas placas. Las órdenes de apertura de la cerradura las envío como una señal HIGH / LOW desde el pin 2 del ESP32 al A2 del Arduino.

He conectado también al ESP32 el sensor de proximidad HC-SR04 y la pantalla display 16×2.

Las funciones del servo para apertura de la puerta y el modo juego siguen implementados íntegramente en la placa Arduino Uno.

Los componentes utilizados son los siguientes:

1x Arduino UNO
1x ESP32-WROOM-32D DevKitC V4
1x Piezoeléctrico
7x Resistencias 220 Ohms
2x Resistencias 470 Ohms
2x Resistencias 10 kOhms
1x Resistencia 1 kOhms
1x Resistencia 4,7 kOhms
4x Pulsadores
4x LED de color verde, amarillo, rojo y azul
1x LED RGB (por simplificar, finalmente dejé puesto un LED azul)
2x Potenciómetros
1x Condensador de 0.1nF
1x Servomotor
1x Sensor de proximidad HC-SR04
1x Display Liquid Crystal 16×2

Esquema y conexiones

Arduino Uno

He utilizado el pin analógico A0 del Arduino para recibir la tensión que llega de los pulsadores, que será diferente según se haya pulsado uno u otro botón debido al montaje en escalera de resistencias.

Los pines 2, 3, 4 y 5 los utilizo como salida digital para encender los LED, y el 7 servirá para enviar los datos al piezo.

El pin 6 lo utilizo en modo PWM para modificar el ángulo del brazo del servo.

Los pines 12 y 13 los utilizo para activar el sensor capacitivo.

ESP32-WROOM-32D

El potenciómetro de selección del modo de operación está conectado al pin 13 del ESP32.

El sensor de proximidad HC-SR04 está conectado a los pines 32 y 35 para el trigger y el echo, respectivamente.

Los pines de salida al display son el 21, 19, 18, 5, 17 y 16 para las conexiones rs, enable, d4, d5, d6 y d7, respectivamente.

Además, utilizo el pin TOUCH 4 para utilizarlo como botón interacción en la placa ESP32.

 

Éste es el esquema del conexionado, implementado utilizando Fritzing:

BIBLIOGRAFÍA y ENLACES

MADUELL, Eloi y VILANOVA, Santiago. Interacción tangible. Barcelona: FUOC, 2022 (PID_00287694)
Disponible en línea: https://materials.campus.uoc.edu/daisy/Materials/PID_00287694/html5/PID_00287694.html

VILANOVA, Santiago. Teclados. Barcelona: FUOC, 2022 (PID_00287691)
Disponible en línea: https://materials.campus.uoc.edu/daisy/Materials/PID_00287691/html5/PID_00287691.html

VILANOVA, Santiago. Dispositivos apuntadores. Barcelona: FUOC, 2022 (PID_00287688)
Disponible en línea: https://materials.campus.uoc.edu/daisy/Materials/PID_00287688/html5/PID_00287688.html

VILANOVA, Santiago. Análisis de Audio. Barcelona: FUOC, 2022 (PID_00287692)
Disponible en línea: https://materials.campus.uoc.edu/daisy/Materials/PID_00287692/html5/PID_00287692.html

MOR, Enric. Design Toolkit [en línea]. Barcelona: UOC. [consulta: 20 de abril de 2023]. Disponible en: http://design-toolkit.recursos.uoc.edu/es/

VILANOVA, Santiago. Dispositivos electrónicos. Barcelona: FUOC, 2022 (PID_00287689)
Disponible en línea: https://materials.campus.uoc.edu/daisy/Materials/PID_00287689/html5/PID_00287689.html

MADUELL, Eloi. Visión artificial. Barcelona: FUOC, 2022 (PID_00287695)
Disponible en línea: https://materials.campus.uoc.edu/daisy/Materials/PID_00287695/html5/PID_00287695.html

INTERACTION DESIGN FOUNDATION (2023). Literatura de código abierto y acceso abierto [en línea][consulta: 16 de abril de 2023]. Disponible en: https://www.interaction-design.org/literature

VILANOVA, Santiago. Comunicación y tratamiento de datos. Barcelona: FUOC, 2022 (PID_00287690)
Disponible en línea: https://materials.campus.uoc.edu/daisy/Materials/PID_00287690/html5/PID_00287690.html

 

ARDUINO. 01 Starter Kit: Your First Circuit. YouTube [consulta: 9 de marzo de 2023]. Disponible en: https://www.youtube.com/watch?v=r0KErKHxHf0

AFROTECHMODS (Fun with electronics). Canal YouTube [consulta: 9 de marzo de 2023]. Disponible en: https://www.youtube.com/channel/UCosnWgi3eorc1klEQ8pIgJQ

ADELL, Ferran y SERRA, Laura. Galería de proyectos de interacción tangible [en línea] Barcelona: UOC. (PID_00287693) [consulta: 9 de marzo de 2023]. Disponible en: http://interaccio-tangible.aula.uoc.edu/es/

HACKERS (An Avnet Comunity) [en línea][consulta: 9 de marzo de 2023]. Disponible en: https://www.hackster.io/

PROJECT HUB (Arduino Projects) [en línea][consulta: 9 de marzo de 2023]. Disponible en: https://projecthub.arduino.cc/

PROCESSING ELECTRONICS [en línea]. UOC. [consulta: 27 de marzo de 2023]. Disponible en: https://processing.org/tutorials/electronics

ESP32-DevKitC V4 Getting Started Guide [2023] [consulta: 8 de mayo de 2023]. Disponible en: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/get-started-devkitc.html

INGENIERO EN CASA. Programar ESP32 con Arduino IDE. YouTube [consulta: 8 de mayo de 2023]. Disponible en: https://www.youtube.com/watch?v=wVRcAMWvWko&list=PL2bw5I2fJF8YTESrwu2HSYjp15v_vDuFB&index=2

PROGRAMADOR NOVATO. Curso ESP32. YouTube [consulta: 8 de mayo de 2023]. Disponible en: https://www.youtube.com/watch?v=VuJkqL2Ys3Y&list=PLCTD_CpMeEKTvjzabAvLGHakg-ql6t0q6

LA BUHARDILLA DEL LOCO. Curso ESP32 desde 0 en español. YouTube [consulta: 8 de mayo de 2023]. Disponible en: https://www.youtube.com/watch?v=pdgFqPbw64g&list=PLWXJr4iWm_MXA0yQRKs62YHCTnYirJldM

SINAPTEC. ESP32 desde Cero – Tutorial 6: Servidor Web (WebServer). [2018][en línea]. UOC. [consulta: 29 de mayo de 2023]. Disponible en:
http://www.sinaptec.alomar.com.ar/2018/09/esp32-desde-cero-tutorial-6-servidor.html

 

 

SOFTWARE

 

ARDUINO IDE Versión 2.1.0 [2023] https://www.arduino.cc/

LUCID SOFTWARE Inc. Lucidchart, 2023 [software en línea]. Disponible en: https://www.lucidchart.com

FRITZING (beta) Versión 0.9.10. https://fritzing.org/

 

 

 

IMÁGENES

00_key5
vecteezy_cyber-technology-security-network-protection-background-design-vector-illustration_1330255

01_altavoz-inteligente-control-casa-tecnologia-innovadora
Imagen de rawpixel.com en Freepik https://www.freepik.es/foto-gratis/altavoz-inteligente-control-casa-tecnologia-innovadora_13463638.htm#query=cerradura&position=14&from_view=search&track=sph

02_ojo-verde-mirando-ojo-cerradura
Imagen de Freepik https://www.freepik.es/foto-gratis/ojo-verde-mirando-ojo-cerradura_31499101.htm#query=cerradura&position=0&from_view=search&track=sph

03_bloqueo-teclado
Imagen de mrsiraphol en Freepik https://www.freepik.es/foto-gratis/bloqueo-teclado_1115734.htm#query=lock&position=33&from_view=search&track=sph

04_candado-acero-letrero-vacio
Imagen de d3images en Freepik https://www.freepik.es/foto-gratis/candado-acero-letrero-vacio_955373.htm#query=lock&position=29&from_view=search&track=sph

05_vecteezy_fingerprint-lock-vector-icon-on-white-background_7167694

06_pexels-ylanite-koppens-612800
Foto de Ylanite Koppens: https://www.pexels.com/es-es/foto/dos-llaves-maestras-negras-612800/

07_pexels-david-martins-589038
Foto de david martins: https://www.pexels.com/es-es/foto/persona-sosteniendo-cofre-de-madera-marron-589038/

08_concepto-seguridad-seguridad-empresarial-proteccion-corporativa
Imagen de rawpixel.com en Freepik https://www.freepik.es/foto-gratis/concepto-seguridad-seguridad-empresarial-proteccion-corporativa_3533269.htm#query=lock&position=10&from_view=search&track=sph

09_conjunto-ilustracion-3d-cursores-puntero-mano
Imagen de upklyak en Freepik https://www.freepik.es/foto-gratis/conjunto-ilustracion-3d-cursores-puntero-mano_32331555.htm#query=press%20button&position=23&from_view=search&track=ais

10_tocando-pantalla-telefono-movil_2202
Imagen de ibrandify en Freepik https://www.freepik.es/vector-gratis/tocando-pantalla-telefono-movil_953660.htm#query=open%20mobile&position=24&from_view=search&track=ais

11_pexels-cottonbro-studio-3945663
Foto de cottonbro studio: https://www.pexels.com/es-es/foto/manos-tecnologia-blanco-juego-3945663/

 

LA SOBREPOBLACIÓN MUNDIAL: ¿CRECIMIENTO INCONTROLADO O DEFICIENTE GESTIÓN DE RECURSOS?

La sobrepoblación mundial se refiere a la proliferación descontrolada de la población del planeta, de manera que se supera el número de individuos que pueden satisfacer sus necesidades con los recursos disponibles en su nicho ecológico. La teoría malthusiana ya lo definía en el siglo XVIII como una disparidad entre el crecimiento de la población humana y la generación de recursos necesarios para sostenerla.

Tras la Revolución Industrial el crecimiento de la población del planeta ha sido exponencial y, a pesar de que el ritmo de crecimiento es más lento desde 1950, se prevé alcanzar un máximo de 10.400 millones de personas durante la década de 2080, momento en el que se producirá un aumento cero de la población.

Este crecimiento exponencial ha sido causado principalmente por el descenso en la tasa de mortalidad, debido a las mejoras tecnológicas en sanidad y producción de alimentos.

Sin embargo, esto producirá un mundo más envejecido y con mayor esperanza de vida, lo que amenaza el futuro próximo del planeta en términos económicos, ambientales y sociales. El agotamiento de los recursos naturales producirá la degradación del medioambiente, la desaparición de especies animales y vegetales y el calentamiento global.

Ante esta problemática social, la humanidad tiene el gran reto de minimizar el impacto del crecimiento poblacional y del cambio climático, reduciendo la huella de carbono, promoviendo un desarrollo urbano y movilidad inteligente y sostenible, apostando por una economía circular y un consumo responsable.


No cabe duda de la necesidad de reducir la población o mejorar la eficiencia en la gestión de recursos, o ambas cosas. En este artículo se debate sobre la conveniencia de disminuir nuestras demandas individuales sobre el planeta, la conveniencia o no de los avances tecnológicos dirigidos a aumentar nuestra esperanza de vida y los dirigidos a mejorar la eficiencia de producción y gestión de recursos, centrándonos en las poblaciones de mayor densidad frente al conflicto ético que supondría evitar el crecimiento en los países más pobres.

DE PLATÓN A LA ACTUALIDAD, PASANDO POR LA TEORÍA MALTHUSIANA

La problemática en cuestión no es un tema únicamente preocupante en la actualidad. Platón, en su obra “La República” que data del año 375 antes de Cristo, ya debatía sobre una ciudad-estado imaginaria consumista que sobrepasaba el límite de sus necesidades y terminaba con los recursos disponibles, lo que los llevaría a guerras por ocupar poblaciones vecinas para apoderarse de sus recursos.

¿El problema es la sobrepoblación humana o son los recursos que consume?

Ya en el siglo XIX, tras la publicación del “Ensayo sobre el principio de la población” de Thomas Malthus, se creó la llamada teoría malthusiana como un escenario muy pesimista en el que el incremento de la población conduce a escenarios de escasez de recursos y grandes conflictos entre los individuos, fundamentada en que el ritmo de aumento de la población es muy superior al ritmo de generación de los recursos indispensables.

Otras teorías contradictorias de algunos filósofos de la época, entre los que se encontraba Karl Marx, afirmaban que la ciencia y la tecnología sería capaz de sostener el crecimiento poblacional. De hecho, fue durante la propia Revolución Industrial cuando se produjo el punto de inflexión en el aumento de la raza humana, debido a las profundas transformaciones económicas, sociales, culturales y tecnológicas: una revolución médica, agrícola, financiera, de transportes…

Esto nos lleva a abordar la primera cuestión puesta en práctica: ¿debemos reducir el crecimiento de la población o aumentar el ritmo de producción de los recursos para abastecerla?

La respuesta sería sencilla si no existiera un problema adicional: Los recursos son limitados.

En la actualidad hemos alcanzado los 8.000 millones de personas y, a pesar de que hace 250 años (en el siglo XVIII) éramos menos de 800 millones, este crecimiento exponencial se está desacelerando y se prevé un máximo de unos 10.400 millones de personas durante la década de 2080, momento en el que se producirá un aumento cero de la población.

Evolución de la población mundial desde hace 12.000 años y proyección hasta 2100

https://www.epdata.es/datos/tendencias-poblacion-mundo-datos-graficos/411

La disminución de las tasas de fecundidad, propiciada por el aumento de la educación en el uso de los anticonceptivos, y los movimientos migratorios favorecerán la solución a la disyuntiva a la que habíamos llegado. Pero, ¿es esto suficiente? Analicemos las causas y las consecuencias de la sobrepoblación, para llegar a la conclusión de que, además, debemos aumentar el ritmo de producción promoviendo un desarrollo urbano y movilidad inteligentes y sostenibles, apostando por una economía circular y un consumo responsable.

CAUSAS DE LA SOBREPOBLACIÓN MUNDIAL

Por la definición dada al principio de este artículo, debemos establecer que la principal causa de la sobrepoblación mundial es que los recursos naturales son limitados ya que, si esto no fuera así, con la tecnología emergente no habría grandes problemas en aumentar el ritmo de explotación de los recursos para abastecer a la población, aunque fuera infinita. Pero los recursos son los que son y la humanidad debe adaptarse al medio en el que vive (el planeta Tierra, a día de hoy).

Como he mencionado anteriormente, la Revolución Industrial trajo consigo unas mejoras tecnológicas cuyos avances científicos permitieron vencer enfermedades que hasta entonces suponían la muerte de gran parte de la población. Las vacunas o el descubrimiento de antibióticos como la penicilina supusieron un descenso significativo en la tasa de mortalidad. La medicina, la mejora de las condiciones laborales y otros aspectos de la vida moderna nos llevan a un aumento de la esperanza de vida y un descenso de la mortalidad infantil. Según aseguran fuentes de la ONU, se estima que la esperanza de vida al nacer aumentará, de manera global, de 72,8 años en 2019 a 77,2 en 2050. Manteniendo constante la tasa de natalidad, la población aumenta.

Del mismo modo, estos avances tecnológicos permitieron progresos en la producción de alimentos. Las mejoras en la producción agrícola para mantener los cultivos durante todo el año, semillas más resistentes, plaguicidas, o mejoras en las técnicas de pesca y ganadería contribuyeron en gran medida al crecimiento poblacional.

Otra causa de sobrepoblación, aunque menos relevante, es la migración y concentración urbana. Países que reciben un gran número de refugiados o migrantes pueden ofrecer una mayor esperanza de vida a los recién llegados.

CONSECUENCIAS DE LA SOBREPOBLACIÓN

Como consecuencia principal de esta sobrepoblación está el agotamiento de los recursos naturales disponibles, fundamentalmente de los recursos que se consumen a una velocidad mayor a la de su regeneración natural. El Fondo Mundial para la Naturaleza (WWF) advierte que “la actual sobreexplotación de los recursos naturales está generando un enorme déficit, ya que cada año se consume un 20 % más de los que se pueden regenerar y ese porcentaje no deja de crecer”.

Este sobreconsumo de los recursos naturales tiene como consecuencia directa la destrucción de los ecosistemas, la deforestación y desertización, la extinción de numerosas especies animales y vegetales.

Otra consecuencia es el aumento del consumo energético y su efecto sobre el cambio climático. Los gases de efecto invernadero se acumulan en la atmósfera y retienen el calor, incrementando el efecto invernadero y contribuyendo al aumento de la temperatura media del planeta.

Este agotamiento de los recursos, por ende, los encarece, de manera que llegamos a un nivel de vida más caro donde sólo una parte de la población podrá cubrir sus necesidades y se generará un aumento del desempleo que puede desembocar en un aumento de la delincuencia y revueltas sociales.

La tendencia a agruparse en grandes ciudades también puede suponer un problema por la despoblación de las zonas rurales. Sin embargo, la alta concentración de gente en entornos urbanos también favorece la investigación y el desarrollo que busca soluciones a las demandas de las personas. Estamos hablando del aspecto positivo de la sobrepoblación: Los avances tecnológicos. De este modo llegan alternativas sostenibles como las Smart Cities (ciudades inteligentes) adaptadas para garantizar unas buenas condiciones de vida a un número creciente de habitantes, o la proliferación de las tecnologías de la comunicación mediante el Big Data; la generación, recolección y aprovechamiento de datos a gran escala con fines sostenibles.

LAS NUEVAS TECNOLOGÍAS

Una vez analizadas las causas y las consecuencias de la sobrepoblación, nos encontramos de nuevo ante una disyuntiva, ya que una de las causas proviene de las mejoras tecnológicas en sanidad y nos lleva a un descenso en la tasa de mortalidad. Esto producirá un mundo más envejecido y con mayor esperanza de vida, lo que amenaza el futuro próximo del planeta en términos económicos, ambientales y sociales.

¿Es beneficioso para la humanidad seguir alargando la esperanza de vida?

Éticamente, entiendo que sí. Las nuevas tecnologías nos deben servir para lograr una economía circular en la que los avances no tengan que ir en una dirección opuesta al sentir de la humanidad. No solo debemos seguir trabajando para mejorar la calidad de vida, sino que debemos fomentar el rejuvenecimiento de la humanidad apostando por una adecuada gestión de los recursos naturales, comenzando desde la educación infantil.

CONCLUSIÓN

Debemos mejorar la eficiencia de las actividades humanas, para lo cual es necesario llevar a cabo procesos de I+D+I que nos permitan desarrollar nuevas tecnologías que influyan en el bienestar del planeta. Preservar el valor de los productos, componentes y materiales durante el mayor tiempo posible para conseguir sistemas de producción y consumo más eficientes, gracias a ciclos continuos y regenerativos.

Las infraestructuras, las comunicaciones, los recursos humanos y la inversión están orientados a un desarrollo económico completamente sostenible empleando las nuevas tecnologías (TIC). Se realiza una correcta gestión de los recursos naturales, con la participación y el compromiso de los ciudadanos. El proceso de mejora es constante, aprovechando que cada vez hay mayores y mejores avances tecnológicos.

Efectivamente, estoy hablando de las ciudades inteligentes o Smart Cities.

Smart City

Imagen de shayne_ch13 en Freepik

BIBLIOGRAFÍA

ECOLOGÍA VERDE (2022). Sobrepoblación mundial: causas, consecuencias y soluciones. [en línea][consulta: 10 de abril de 2023]. Disponible en:
https://www.ecologiaverde.com/sobrepoblacion-mundial-causas-consecuencias-y-soluciones-1563.html

ECOLOGÍA VERDE (2022). Qué son las ciudades inteligentes. [en línea][consulta: 10 de abril de 2023]. Disponible en: https://www.ecologiaverde.com/que-son-las-ciudades-inteligentes-3863.html

CONCEPTO (2022). Sobrepoblación mundial. [en línea][consulta: 10 de abril de 2023]. Disponible en:
https://concepto.de/sobrepoblacion-mundial/

SOSTENIBILIDAD (2022). Ya somos 8.000 millones de personas. Causas y consecuencias de la sobrepoblación. [en línea][consulta: 10 de abril de 2023]. Disponible en: https://www.sostenibilidad.com/desarrollo-sostenible/causas-consecuencias-sobrepoblacion/?_adin=11551547647

NATIONAL GEOGRAPHIC (2023). La población mundial crece mucho menos de lo previsto. [en línea][consulta: 10 de abril de 2023]. Disponible en: https://www.nationalgeographic.com.es/mundo-ng/poblacion-mundial-crece-mucho-menos-previsto_19098

NACIONES UNIDAS (2022). Población. [en línea][consulta: 10 de abril de 2023]. Disponible en: https://www.un.org/es/global-issues/population

IBERDROLA (2023). La evolución de la población mundial y su impacto en el futuro del planeta. [en línea][consulta: 10 de abril de 2023]. Disponible en: https://www.iberdrola.com/sostenibilidad/evolucion-poblacion-mundial

WORLDOMETER (2023). Población Mundial. [en línea][consulta: 10 de abril de 2023]. Disponible en: https://www.worldometers.info/es/poblacion-mundial/

BBC NEWS MUNDO (2022). La Tierra alcanza los 8.000 millones de habitantes: ¿a cuántas personas puede albergar nuestro planeta? [en línea][consulta: 10 de abril de 2023]. Disponible en: https://www.bbc.com/mundo/vert-fut-62855426

ELIKA (2022). Alimentación Circular. [en línea]. Estrategia de Economía Circular del País Vasco 2030 [consulta: 10 de abril de 2023]. Disponible en: https://sostenibilidad.elika.eus/alimentacion-circular/

Interacción Tangible | PEC02 – SIMON OPEN

JUSTIFICACIÓN

El presente documento se corresponde con la segunda Prueba de Evaluación Continua (PEC02) de la asignatura de Interacción Tangible del Grado en Técnicas de Interacción Digital y Multimedia de la UOC.

En esta prueba nos proponen crear un mini proyecto con Arduino en el que la acción de usuario actúe sobre, al menos, dos controles como iluminación, audio y/o imagen. Debemos trabajar el desarrollo del proyecto a través de las fases del design thinking (empatizar, definir, idear, prototipar, testear).

Se publica en Folio un extracto de la memoria, con la que podéis reproducir fácilmente el prototipo, junto con el video del funcionamiento.

HISTORIA

Imagen del Prototipo Simon OpenEl proyecto es un guiño al juego de SIMON SAY (Simón dice), ya que el funcionamiento de memorizar los colores o tonos es el mismo, aunque un poco más sencillo. La diferencia es que se trata de una única melodía con un número de notas predefinido. Cuando se logra reproducir correctamente podemos abrir la cerradura, por lo que he llamado al prototipo SIMON OPEN.

La cerradura bloquea una caja que contiene a Van Gogh pintando su autorretrato. El juego se trata de liberarlo reproduciendo la melodía aleatoria. ¡Si no eres capaz de memorizar un sencillo código sonoro-luminoso, no podrás salvarlo! 😉.

 

DEFINICIÓN

El proyecto consiste en cuatro bombillas led de colores que se encienden al pulsar el botón correspondiente, cada uno de las cuales emite además un sonido característico.

El juego consiste en reproducir los sonidos/luces aleatorias que produce el Arduino en ese mismo orden, de manera que cuando se logra reproducir la melodía correcta (de 6 tonos en este caso, por hacerlo fácil), tenemos la posibilidad de abrir la cerradura de una caja tocando un sensor capacitivo.

PLANTEAMIENTO

Para resolver el problema planteado necesitaré generar números aleatorios (del 0 al 3) y almacenar la secuencia en un array de n posiciones. Comparando la secuencia pulsada por el usuario en los 4 pulsadores disponibles con la generada aleatoriamente podremos averiguar si es correcta y activar el sensor capacitivo para poder abrir la cerradura.

En el momento en que presionamos un botón equivocado, que difiere de la melodía generada, volvemos a empezar y se genera una nueva aleatoriamente.

Mapa conceptual

Enlace al video explicativo del funcionamiento

En el siguiente enlace está disponible una pequeña explicación del funcionamiento del prototipo, en el que se testea tanto el acierto como el fallo en la reproducción de la secuencia aleatoria:

PROTOTIPO

Para diseñar el prototipo he instalado la placa de interconexión y el Arduino sobre una antigua caja de diskettes, colocando la palanca del servomotor actuando como cerradura. Los componentes utilizados son los siguientes:

1x Arduino UNO
1x Piezoeléctrico
5x Resistencias 220 Ohms
2x Resistencias 10 kOhms
1x Resistencia 4,7 kOhms
4x Pulsadores
4x LED de color verde, amarillo, rojo y azul
1x Condensador de 0.1nF
1x Servomotor

Esquema y conexiones

He utilizado el pin analógico A0 del Arduino para recibir la tensión que llega de los pulsadores, que será diferente según se haya pulsado uno u otro botón debido al montaje en escalera de resistencias.

Los pines 2, 3, 4 y 5 los utilizo como salida digital para encender los LED, y el 8 servirá para enviar los datos al piezo.

El pin 9 lo utilizo en modo PWM para modificar el ángulo del brazo del servo.

El esquema del conexionado, implementado utilizando Fritzing:

Diseño esquemático

EL CÓDIGO

//Importamos las librerías para el servo y el sensor capacitivo y creamos las instancias

#include <Servo.h>

#include <CapacitiveSensor.h>

CapacitiveSensor capSensor = CapacitiveSensor (13,12);    //Defino los pines para activar el sensor

Servo myServo;

 

const int numNote = 6;      //Número de notas de la secuencia, que proporciona la dificultad al juego

int notes[] = {1915,1519,1275,956};   //array que guarda las 4 frecuencias

int sequence[numNote];   //array que guarda la secuencia inicial (random)

int userSequence[numNote];   //array que guarda la secuencia generada por el usuario

int position = 0; //posición en la que guardar la nota

 

boolean locked = true;  //Al inicio la puerta está bloqueada

int sensorValue;        //variable que almacena el valor del sensor capacitivo

 

void setup() {

Serial.begin(9600);   //iniciamos la comunicación en serie para poder utilizar el monitor serie

 

myServo.attach(9);     //Salida al servo

pinMode(2,OUTPUT);     //Salida a led verde

pinMode(3,OUTPUT);     //Salida a led amarillo

pinMode(4,OUTPUT);     //Salida a led rojo

pinMode(5,OUTPUT);     //Salida a led azul

 

//inicializamos los arrays

for (int i=0;i<numNote;i++){

userSequence[i] = 0;

sequence[i] = 0;

}

myServo.write(90);    //Colocamos el brazo del servo a 90 grados (bloqueo)

secuenciaInicio();    //Función que reproduce la secuencia de inicio del juego

 

}

 

void loop() {

//Leemos el sensor de contacto

sensorValue = capSensor.capacitiveSensor(30);

// Leemos el valor analógico y lo mostramos por el monitor del puerto serie

int keyVal = analogRead(A0);

Serial.println(keyVal);

Serial.print(sensorValue);

Serial.print(»    La secuencia es: «);

for (int i=0;i<position;i++) Serial.print(userSequence[i]);

//Dependiendo del valor que llegue tocamos una nota u otra, y encendemos el led correspondiente

if (keyVal == 1023){

tone(8, notes[3],500);

digitalWrite(5, HIGH);

delay(700);

grabarTono(3);

}

else if (keyVal >= 900 && keyVal <= 1022){

tone(8,notes[2],500);

digitalWrite(4, HIGH);

delay(700);

grabarTono(2);

}

else if (keyVal >= 650 && keyVal <= 710){

tone(8,notes[1],500);

digitalWrite(3, HIGH);

delay(700);

grabarTono(1);

}

else if (keyVal >= 500 && keyVal <= 550){

tone(8,notes[0],500);

digitalWrite(2, HIGH);

delay(700);

grabarTono(0);

}

else {            //Si no estamos pulsando mantenemos el silencio y los led apagados

noTone(8);

for (int i=2;i<6;i++) digitalWrite(i, LOW);

}

//Si tocamos la malla metálica y la caja no está bloqueada abrimos el brazo del servo y desbloqueamos la cerradura

if (sensorValue > 1000 & locked == false){

myServo.write(180);

}

}

 

/**************************************************************************************************************/

//FUNCIONES

//La secuencia de inicio reproduce la secuencia random muy rápidamente indicando que comienza el juego

void secuenciaInicio(){

for (int i=0;i<numNote;i++) sequence[i] = random(4); //generamos una secuencia aleatoria con números del 0 al 3 (Ej: {0,0,1,2,3,1,2,3,0,1})

for(int i=0;i<3;i++){

for (int j=0;j<numNote;j++){

tone(8,notes[sequence[j]],50);

digitalWrite(sequence[j]+2, HIGH);

delay(70);

noTone(8);

digitalWrite(sequence[j]+2, LOW);

delay(10);

}

}

delay(1000);

reproducirSecuencia();

}

//Función que reproduce la secuencia random pausadamente

//Aprovecho que los pines digitales coinciden con la posición de la frecuencia correspondiente +2

void reproducirSecuencia(){

for(int i=0;i<numNote;i++){

tone(8,notes[sequence[i]],500);

digitalWrite((sequence[i])+2, HIGH);

delay(700);

noTone(8);

digitalWrite((sequence[i])+2, LOW);

}

}

//En esta función se graba la secuencia pulsada en un array que se va comparando con la aleatoria

//La variable position

void grabarTono(int note){

userSequence[position] = note;

//Si el usuario se equivoca reiniciamos todo y bloqueamos

if (userSequence[position] != sequence[position]){

position = 0;

for (int i=2;i<6;i++) digitalWrite(i, LOW);

for (int i=0;i<numNote;i++){

userSequence[i] = 0;

sequence[i] = 0;

}

Serial.println(«FALLO»);

//close the door

myServo.write(90);

locked = true;

delay(500);

secuenciaInicio();

}

else{

position++;

//Si la variable position alcanza el valor definido activamos el sensor capacitivo para poder abrir la cerradura

if(position == numNote) {

for(int i=0;i<20;i++) {

Serial.println(«PRUEBA SUPERADA!!!»);

for (int j=2;j<6;j++) digitalWrite(j, HIGH);

delay(50);

for (int j=2;j<6;j++) digitalWrite(j, LOW);

delay(50);

}

//open the door

locked = false;

 

}

}

 

}