Logo Studenta

Memoria TFE

¡Este material tiene más páginas!

Vista previa del material en texto

Documento: 
Memoria 
 
 
 
 
 
 
 
 
 
 
 
 T
R
A
B
A
J
O
 F
IN
 D
E
 E
S
T
U
D
IO
S
 
Estudio sobre la interacción 
entre entornos de realidad 
virtual y elementos reales: 
aplicación práctica utilizando 
microcontrolador Arduino 
Autor: 
Héctor Carrasco Berlanga 
Director: 
Jaime Gallego Vila 
Titulación: 
Máster universitario en ingeniería industrial 
Convocatoria: 
Primavera, 2023 
 
Estudio sobre la interacción entre entornos de 
realidad virtual y elementos reales: aplicación 
práctica utilizando microcontrolador Arduino 
 
 
1 
 
Resumen 
Este Trabajo Final de Máster se enfoca en explorar la interacción bidireccional entre entornos de 
realidad virtual y elementos del mundo real utilizando como base el concepto de los gemelos 
digitales. Los gemelos digitales son réplicas virtuales de objetos, sistemas o procesos del mundo 
real que permiten a los usuarios interactuar en un espacio compartido, superando las barreras de 
ubicación física. Estos se utilizan para realizar simulaciones o análisis de procesos en entornos 
virtuales, representando objetos físicos en el mundo real. En este proyecto se busca llevar esta 
interacción un paso más allá. Se pretende que la manipulación realizada en el entorno virtual tenga 
un impacto directo en elementos reales adaptados para este propósito, y que, a su vez, las acciones 
realizadas en el mundo real modifiquen el entorno virtual. De esta manera, se logra una 
correspondencia efectiva entre los dos mundos, mejorando la coexistencia y la integración entre 
ambos. 
Para lograr este objetivo, se han diseñado e implementado prototipos basados en Arduino y Unity 
que ejemplifican esta integración entre mundo virtual y mundo real para trascender las fronteras 
geográficas y físicas, permitiendo a los usuarios interactuar en un espacio compartido sin importar 
su ubicación real. 
El proyecto se estructura en dos módulos principales, cada uno de los cuales representa una etapa 
en la realización de este objetivo: 
 
• Salas Modulables para Realidad Virtual: Se propone el concepto de sala modulable para 
el uso de la Realidad Virtual donde un suelo físico “elevable”, basado en una matriz de 
pistones, pueda adaptarse a su gemelo virtual en 3D elevando diferentes regiones del suelo. 
La viabilidad de estas salas y su prototipado inicial se demuestra en dos apartados: 
 
o Implementación virtual de la matriz de pistones: Este módulo se centra en la 
creación de una matriz de pistones controlables en un entorno de realidad virtual, y 
su representación física utilizando una matriz LED física. 
 
o Implementación del concepto de “suelo elevable” para la creación de salas 
modulables de VR: Este módulo aborda el diseño conceptual de un sistema de 
pistones físicos que pueden modificar el entorno físico según las necesidades del 
usuario en un entorno virtual. 
 
• Control de Mano Robótica: Este módulo involucra el control de una mano robótica física 
a través de una secuencia de movimientos predefinidos. Dichos movimientos son una 
representación tangible en el mundo real del movimiento que realiza un el gemelo digital, 
que por extensión es la representación del movimiento del sujeto representado por el 
gemelo digital. Este proceso destaca la correlación directa entre los sistemas de realidad 
virtual y sus homólogos físicos. 
La realización de este Trabajo Final de Máster se ha llevado a cabo mediante la integración de 
hardware y software, combinando la plataforma Arduino y el motor de desarrollo de juegos y 
entornos 3D Unity. A través de este enfoque, se busca fomentar la accesibilidad y la replicabilidad 
del proyecto, permitiendo la reproducción para futuras implementaciones. El objetivo principal de 
este trabajo es demostrar la viabilidad de la interacción bidireccional RV/RF, proporcionando un 
marco sólido para la exploración de aplicaciones prácticas con un amplio alcance en diversos 
sectores como los juegos, la educación, la medicina, la arquitectura y la colaboración en entornos 
de trabajo compartidos. 
 
Estudio sobre la interacción entre entornos de 
 realidad virtual y elementos reales: aplicación 
práctica utilizando microcontrolador Arduino 
 
 
 
 
Abstract 
This Master's Final Project focuses on exploring the bidirectional interaction between virtual reality 
environments and elements of the real world, using the concept of digital twins as a basis. Digital 
twins are virtual replicas of objects, systems, or real-world processes that allow users to interact in 
a shared space, overcoming physical location barriers. They are used to carry out simulations or 
process analysis in virtual environments, representing physical objects in the real world. This 
project seeks to take this interaction a step further. It is intended that the manipulation carried out in 
the virtual environment has a direct impact on real elements adapted for this purpose, and that, in 
turn, actions performed in the real world modify the virtual environment. In this way, an effective 
correspondence between the two worlds is achieved, improving the coexistence and integration 
between both. 
To achieve this goal, Arduino and Unity-based prototypes have been designed and implemented 
that exemplify this integration between the virtual and the real world to transcend geographic and 
physical borders, allowing users to interact in a shared space regardless of their actual location. 
 
The project is structured into two main modules, each of which represents a stage in achieving this 
goal: 
 
• Modular Rooms for Virtual Reality: The concept of a modular room for the use of 
Virtual Reality is proposed where an "elevatable" physical floor, based on a matrix of 
pistons, can adapt to its 3D virtual twin by elevating different regions of the floor. The 
viability of these rooms and their initial prototyping is demonstrated in two sections: 
 
o Virtual implementation of the piston matrix: This module focuses on creating a 
controllable piston matrix in a virtual reality environment, and its physical 
representation using a physical LED matrix. 
 
o Implementation of the "elevatable floor" concept for the creation of modular 
VR rooms: This module addresses the conceptual design of a system of physical 
pistons that can modify the physical environment according to the user's needs in a 
virtual environment. 
 
 
• Robotic Hand Control: This module involves controlling a physical robotic hand through 
a predefined sequence of movements. These movements are a tangible representation in the 
real world of the motion carried out by a digital twin, which in turn represents the motion 
of the subject depicted by the digital twin. This process underscores the direct correlation 
between virtual reality systems and their physical counterparts. 
 
The realization of this Master's Final Project has been carried out through the integration of 
hardware and software, combining the Arduino platform and the Unity 3D game and environment 
development engine. Through this approach, the aim is to promote the accessibility and 
replicability of the project, allowing reproduction for future implementations. The main objective 
of this work is to demonstrate the viability of the RV/RF bidirectional interaction, providing a solid 
framework for exploring practical applications with a broad scope in various sectors such as 
gaming, education, medicine, architecture, and collaboration in shared work environments. 
 
 
 
Estudio sobre la interacción entre entornos de 
realidad virtual y elementos reales: aplicación 
práctica utilizando microcontrolador Arduino 
 
 
3 
 
Sumario 
 
RESUMEN ................................................................................................................................................... 1 
ABSTRACT ...................................................................................................................................................2 
SUMARIO .................................................................................................................................................... 3 
ÍNDICE DE FIGURAS ..................................................................................................................................... 5 
1. INTRODUCCIÓN....................................................................................................................................... 6 
1.1 OBJETO ............................................................................................................................................... 6 
1.2 ALCANCE ............................................................................................................................................. 8 
1.3 REQUISITOS ......................................................................................................................................... 9 
1.4 JUSTIFICACIÓN ...................................................................................................................................... 9 
2 ANTECEDENTES Y/O REVISIÓN DEL ESTADO DE LA CUESTIÓN ........................................................... 11 
2.1 EVOLUCIÓN DE LA REALIDAD VIRTUAL ..................................................................................................... 11 
2.2 APLICACIONES ACTUALES DE LA REALIDAD VIRTUAL .................................................................................... 11 
2.3 DESAFÍOS Y LIMITACIONES..................................................................................................................... 11 
2.4 TENDENCIAS FUTURAS Y DESARROLLOS .................................................................................................... 12 
2.5 LA REALIDAD VIRTUAL Y LA EDUCACIÓN ................................................................................................... 12 
2.6 LA REALIDAD VIRTUAL EN EL ÁMBITO LABORAL .......................................................................................... 12 
3 METODOLOGÍA ................................................................................................................................. 14 
3.1 ADQUISICIÓN DE COMPETENCIAS Y HERRAMIENTAS ................................................................................... 14 
3.1.1 Kit de Iniciación a Arduino IDE de ELEGOO ................................................................................ 14 
3.1.2 Creación del Juego de la Serpiente con Arduino ........................................................................ 15 
3.1.3 Implementación de un Proyecto Ajeno de Conexión Arduino y Unity ........................................ 16 
3.1.4 Control de la Matriz LED MAX7219 desde Unity ........................................................................ 17 
3.2 DISEÑO E IMPLEMENTACIÓN DEL SISTEMA ................................................................................................ 18 
3.2.1 Esquematización del Sistema ..................................................................................................... 18 
3.2.2 Lista de materiales ..................................................................................................................... 21 
3.2.2.1 Implementación virtual de la matriz de pistones ............................................................................. 21 
3.2.2.2 Concepto de Suelo Elevable ............................................................................................................. 22 
3.2.2.3 Control de la Mano Robótica ............................................................................................................ 22 
3.2.3 Módulo 1: Salas Modulables para Realidad Virtual ................................................................... 22 
3.2.3.1 Descripción del Módulo ................................................................................................................... 22 
3.2.3.2 Implementación virtual de la matriz de pistones ............................................................................. 23 
3.2.3.3 Concepto de Suelo Elevable ............................................................................................................. 25 
3.2.3.4 Arquitectura del código de programación ........................................................................................ 27 
3.2.4 Módulo 2: Control de la Mano Robótica .................................................................................... 29 
3.2.4.1 Descripción del Módulo ................................................................................................................... 29 
3.2.4.2 Arquitectura del código de programación ........................................................................................ 31 
4 PLANTEAMIENTO Y DECISIÓN SOBRE SOLUCIONES ALTERNATIVAS Y DESAFÍOS ................................ 32 
4.1 CAMBIO DE TIPO DE LED EN IMPLEMENTACIÓN VIRTUAL DE LA MATRIZ DE PISTONES ......................................... 32 
4.2 PROBLEMÁTICA CON PISTÓN DE CADENA EN CONCEPTO DE SUELO ELEVABLE ................................................... 32 
4.3 SELECCIÓN DE VERSIÓN DE MANO EN CONTROL DE LA MANO ROBÓTICA ........................................................ 33 
5 MONTAJE DE LA SOLUCIÓN FINAL .................................................................................................... 34 
5.1 MÓDULO 1: SALAS MODULABLES PARA REALIDAD VIRTUAL......................................................................... 34 
5.1.1 Implementación virtual de la matriz de pistones ....................................................................... 34 
5.1.2 Concepto de Suelo Elevable ....................................................................................................... 35 
5.2 MÓDULO 2: CONTROL DE LA MANO ROBÓTICA ........................................................................................ 37 
6 RESUMEN DEL PRESUPUESTO Y/O ESTUDIO DE VIABILIDAD ECONÓMICA ........................................ 41 
 
Estudio sobre la interacción entre entornos de 
 realidad virtual y elementos reales: aplicación 
práctica utilizando microcontrolador Arduino 
 
 
 
 
7 ANÁLISIS Y VALORACIÓN DE LAS IMPLICACIONES AMBIENTALES Y SOCIALES ................................... 42 
8 CONCLUSIONES ................................................................................................................................ 44 
9 REFERENCIAS .................................................................................................................................... 46 
 
 
 
 
 
 
Estudio sobre la interacción entre entornos de 
realidad virtual y elementos reales: aplicación 
práctica utilizando microcontrolador Arduino 
 
 
5 
 
Índice de figuras 
ILUSTRACIÓN 1 - MATRIZ LED CONTROLADA CON JOYSTICK. ..................................................................... 14 
ILUSTRACIÓN 2 - PRUEBAS CON SERVOMOTOR ........................................................................................ 14 
ILUSTRACIÓN 3 - JUEGO DE LA SERPIENTE FUNCIONANDO. ...................................................................... 15 
ILUSTRACIÓN 4 - PROYECTO DE ERIKA AGOSTINELLI ................................................................................. 16 
ILUSTRACIÓN 5 - INTERFAZ DE USUARIO DEL PROYECTO PREVIO MAX7219 .............................................. 17 
ILUSTRACIÓN 6 - MAPA CONCEPTUAL DEL SISTEMA IDEAL COMPLETO ..................................................... 19 
ILUSTRACIÓN 7 - MAPA CONCEPTUAL DEL MÓDULO 1 .............................................................................. 20 
ILUSTRACIÓN 8- MAPA CONCEPTUAL DEL MÓDULO 2 ............................................................................... 21 
ILUSTRACIÓN 9 - IMPLEMENTACIÓN FÍSICA EN EL ESTADO PREDISEÑADO “1” .......................................... 23 
ILUSTRACIÓN10 - IMPLEMENTACIÓN VIRTUAL EN EL ESTADO PREDISEÑADO "1" .................................... 24 
ILUSTRACIÓN 11 - PISTÓN LINEAL MONTADO ........................................................................................... 26 
ILUSTRACIÓN 12 - PISTÓN DE CADENA MONTADO .................................................................................... 26 
ILUSTRACIÓN 13 - BRAZO ROBÓTICO MONTADO ...................................................................................... 30 
ILUSTRACIÓN 14 - MUESTRA DEL SWITCH UNA VEZ SOLDADO .................................................................. 33 
ILUSTRACIÓN 15 - MONTAJE DE MATRIZ DE LED SIN CABLEAR LA PROTOBOARD ...................................... 34 
ILUSTRACIÓN 16 - PROTOBOARD CABLEADA PARA SALA MODULABLE ..................................................... 35 
ILUSTRACIÓN 17 - CREMALLERA DEL PISTÓN LINEAL EN MORDAZA .......................................................... 36 
ILUSTRACIÓN 18 - PISTÓN DE CADENA EN PROCESO DE MONTAJE............................................................ 36 
ILUSTRACIÓN 20 - LÍNEA DE PESCA DE MANO ROBÓTICA MAL PUESTA ..................................................... 37 
ILUSTRACIÓN 21 - FALANGES DESMONTADAS ........................................................................................... 38 
ILUSTRACIÓN 22 - INTERIOR DE LA MANO ................................................................................................ 38 
ILUSTRACIÓN 23 - MANO CABLEADA ........................................................................................................ 39 
ILUSTRACIÓN 24 - BRAZO ROBÓTICO FINALIZADO .................................................................................... 40 
 
 
 
 
 
 
 
Estudio sobre la interacción entre entornos de 
 realidad virtual y elementos reales: aplicación 
práctica utilizando microcontrolador Arduino 
 
 
 
 
1. Introducción 
1.1 Objeto 
El objeto de este Trabajo Final de Máster (TFM) es explorar, desarrollar e implementar un modelo 
de interacción entre la realidad virtual (RV) y la realidad física (RF) basándonos en el concepto de 
los gemelos virtuales (IBM, 2023), con el propósito de ampliar las capacidades de las aplicaciones 
de RV y realidad aumentada (RA) y mejorar la inmersión y la interactividad RV/RF. 
El concepto de gemelos digitales consiste en la creación de réplicas virtuales precisas de objetos, 
sistemas o procesos del mundo real en un entorno digital. Estas réplicas, o "gemelos", sirven como 
representaciones exactas del objeto físico, incorporando datos en tiempo real y características 
intrínsecas para permitir simulaciones y análisis precisos. 
Estos gemelos digitales se alimentan de datos recopilados en tiempo real de múltiples fuentes, lo 
que permite una representación actualizada y precisa de su contraparte física. De este modo, los 
gemelos digitales facilitan la interacción, el análisis y la optimización en un entorno seguro y 
controlado antes de implementar cambios en el mundo real. Esto permite anticipar 
comportamientos, evitar errores y tomar decisiones informadas. Este concepto resulta muy valioso 
en una variedad de campos, como la industria manufacturera, la ingeniería, la medicina y la 
planificación urbana, entre otros. 
Este proyecto se fundamenta en la creación de un entorno físico real preparado para ser modificado 
de acuerdo con la configuración de su gemelo virtual, desarrollado en 3D para tal fin, de manera 
que eventos que sucedan en la RV modifiquen la RF y viceversa. La utilidad directa de esta 
interacción que se quiere explorar en este trabajo aparece en la posibilidad de que se interactúe con 
los elementos de la realidad virtual con una sensación de contacto real, pues el entorno físico 
adaptado al modelo 3D posibilitará poder tocar e interactuar con elementos simples de RV como 
pudieran ser paredes, mesas o sillas. 
 
Para demostrar esta configuración avanzada de gemelo virtual, en el marco del presente trabajo se 
proponen dos implementaciones detalladas a continuación: 
• Sala modulable para realidad virtual: Se propone el concepto de sala modulable para el 
uso de la Realidad Virtual donde un suelo físico “elevable”, basado en una matriz de 
pistones, pueda adaptarse a su gemelo virtual en 3D elevando diferentes módulos que 
conforman el suelo. La viabilidad de estas salas se analiza a partir de su prototipado 
realizado con la plataforma Arduino (Arduino, 2023) y gestionado mediante programación 
en C++ y C# para Unity (Unity Technologies, 2023). Esta matriz permite la configuración 
dinámica del espacio físico, elevando o bajando los pistones para crear diferentes 
configuraciones espaciales. 
Una de las aplicaciones destacables de esta tecnología es su potencial para facilitar la 
interacción remota. Imagine a dos individuos en ubicaciones geográficamente distantes, 
cada uno en su propia sala modulable. A través de sus gafas de RV, ambos podrían 
compartir el mismo entorno virtual, interactuando con los mismos objetos virtuales y, por 
extensión, con los mismos objetos físicos gracias a la modulación de la sala. 
• Control de Mano Robótica: Este módulo implica el control de una mano robótica física a 
través de una secuencia de movimientos predefinidos. Estos movimientos son una 
representación tangible en el mundo real del movimiento realizado por su gemelo digital. 
Es una representación directa del movimiento del sujeto que el gemelo digital está 
replicando. Este proceso resalta la correlación directa entre los sistemas de realidad virtual 
y sus homólogos físicos. La mano robótica está construida a partir del modelo Open Source 
de InMoov (Langevin, 2012), pudiendo ser programada utilizando el mismo entorno 
Arduino + Unity. 
 
Estudio sobre la interacción entre entornos de 
realidad virtual y elementos reales: aplicación 
práctica utilizando microcontrolador Arduino 
 
 
7 
 
 
La realización de este proyecto ha requerido la utilización de placas Arduino Mega 2560, 
elementos de conexionado y impresión de piezas 3D de InMoov (Langevin, 2012). Así mismo, ha 
sido necesario realizar un proceso de aprendizaje completo para comprender y manejar de manera 
efectiva las tecnologías y lenguajes de programación que sirven como base para el desarrollo de la 
propuesta. Esto incluye el estudio exhaustivo de Arduino, familiarizándose con su hardware y el 
lenguaje de programación C++ necesario para su uso eficiente, así como adquirir habilidades de 
programación en C# para Unity. La preparación para este TFM involucró lecciones prácticas y 
proyectos que proporcionaron una comprensión más profunda de estas tecnologías y su potencial. 
 
Este TFM es un esfuerzo por explorar y demostrar cómo la integración de los mundos virtual y 
físico puede conducir a innovaciones en diversas áreas, desde el entretenimiento y los videojuegos 
hasta la medicina y las reuniones a distancia. A través de este trabajo, que ha significado un 
profundo proceso de aprendizaje y superación personal, esperamos proporcionar una base sólida 
para futuras investigaciones y desarrollos en este apasionante campo emergente. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Estudio sobre la interacción entre entornos de 
 realidad virtual y elementos reales: aplicación 
práctica utilizando microcontrolador Arduino 
 
 
 
 
1.2 Alcance 
Este proyecto tiene como objetivo desarrollar e implementar una tecnología innovadora que integre 
Realidad Virtual (RV) y Realidad Física (RF), proporcionando una experiencia más inmersiva y 
tangible. Este proyecto se basa en el concepto de gemelos virtuales, y busca ampliar este concepto 
para permitir una adaptación en tiempo real de la RF según los cambios realizados en su 
contraparte virtual. Para demostrar las posibilidades de esta integración, se propone la creación de 
dos módulos principales, cada uno de los cualesaborda una faceta distinta de la integración entre 
RV y RF. A pesar de la amplitud del tema, el alcance del proyecto está definido por estos dos 
módulos y se centrará en los siguientes aspectos: 
 
1. Salas Modulables para Realidad Virtual: El objetivo es desarrollar un suelo físico 
"elevable" que pueda ser manipulado en tiempo real para reflejar los cambios en su gemelo 
virtual. Este módulo incluye: 
 
1.1 Implementación virtual de la matriz de pistones: Centrándose en la creación de 
una matriz de pistones controlables en un entorno de realidad virtual y su 
representación física usando una matriz LED física. 
 
1.2 Implementación del concepto de "suelo elevable" para la creación de salas 
modulables de RV: Aborda el diseño conceptual de un sistema de pistones físicos 
que pueden modificar el entorno físico según las necesidades del usuario en un 
entorno virtual. 
 
2. Control de Mano Robótica: Este módulo aborda el control de una mano robótica física a 
través de una secuencia de movimientos predefinidos, los cuales representan las acciones 
de un gemelo digital en un entorno virtual. 
 
Por último, aunque el proyecto tiene un alcance definido, también es adaptable y puede ser 
ampliado en el futuro para incluir nuevas funcionalidades o aplicaciones. Por ejemplo, aunque el 
módulo de control de la mano robótica se centrará inicialmente en el control de una sola mano 
robótica, el sistema podría ser ampliado en el futuro para controlar un robot completo, o incluso 
varios robots a la vez. De la misma manera, el sistema de Salas Modulables para Realidad Virtual 
podría ser implementado en un prototipo completo en miniatura y posteriormente escalado a una 
implementación real, abriendo una amplia gama de aplicaciones en diversos campos, desde el 
entretenimiento hasta la medicina o la industria. 
 
 
Estudio sobre la interacción entre entornos de 
realidad virtual y elementos reales: aplicación 
práctica utilizando microcontrolador Arduino 
 
 
9 
 
1.3 Requisitos 
Para cumplir con los objetivos del proyecto, se han identificado una serie de requisitos básicos que 
la solución final debe satisfacer. Estos requisitos abordan aspectos técnicos y funcionales, así como 
consideraciones de seguridad y usabilidad. 
 
Compatibilidad y conectividad: La solución final debe ser compatible con los sistemas operativos 
y hardware de realidad virtual existentes. Además, debe ser capaz de conectarse de forma segura y 
fiable con los actuadores y sistemas físicos que se utilizarán en los módulos. 
 
Interactividad: La interfaz de usuario de la solución final debe ser intuitiva y fácil de usar. Los 
usuarios deben ser capaces de interactuar con el entorno virtual y los objetos físicos de una manera 
natural y sin esfuerzo. 
 
Tiempo real: La solución final debe ser capaz de procesar las interacciones del usuario y 
reflejarlas en el entorno físico en tiempo real, sin retrasos perceptibles. 
 
Seguridad: La solución final debe ser segura. Esto incluye tanto la seguridad de los datos del 
usuario como la seguridad física de los usuarios y de cualquier otra persona presente en el entorno 
físico. Los sistemas de actuación física deben ser seguros y predecibles en su funcionamiento. 
 
Escalabilidad: La solución debe ser escalable, lo que significa que debe ser capaz de manejar un 
mayor número de usuarios o una mayor complejidad en las interacciones sin sufrir una disminución 
en el rendimiento o la calidad de la experiencia. 
 
Robustez: La solución final debe ser robusta y resistente a los fallos. Esto significa que debe ser 
capaz de manejar situaciones inesperadas, como interrupciones en la conectividad o fallos en el 
hardware, sin causar interrupciones en la experiencia del usuario. 
 
Flexibilidad: La solución final debe ser flexible y adaptable, permitiendo la incorporación de 
nuevas características y funcionalidades en el futuro. 
 
Estos requisitos proporcionan una base sólida para el desarrollo del proyecto y garantizarán que la 
solución final cumpla con las expectativas y necesidades de los usuarios. Sin embargo, también 
representan un conjunto de restricciones que deberán tenerse en cuenta durante el diseño y la 
implementación del proyecto. Cada decisión que se tome durante el desarrollo del proyecto deberá 
equilibrar estas consideraciones para asegurar que la solución final sea tanto funcional como viable. 
1.4 Justificación 
La Realidad Virtual (RV) ha experimentado un crecimiento significativo y una innovación 
emocionante, impulsada por los avances en la tecnología y las aplicaciones cada vez más diversas. 
Si bien inicialmente se popularizó en la industria del entretenimiento, la RV se ha expandido a una 
multitud de sectores, demostrando su potencial para mejorar y optimizar numerosas operaciones. 
 
 
Estudio sobre la interacción entre entornos de 
 realidad virtual y elementos reales: aplicación 
práctica utilizando microcontrolador Arduino 
 
 
 
 
El propósito principal de este estudio es explorar y desarrollar un modelo de interacción entre la 
realidad virtual (RV) y la realidad física (RF), un campo emergente pero que tiene el potencial de 
cambiar la forma en que interactuamos con los entornos virtuales. A través de este estudio, se busca 
ampliar las posibilidades de las aplicaciones de la RV y la Realidad Aumentada (RA), llevando la 
inmersión y la interactividad a un nivel superior. 
Además, este estudio también sirve para resaltar el valor y la importancia del aprendizaje continuo 
y la adaptabilidad en un mundo cada vez más dominado por la tecnología. Para llevar a cabo este 
proyecto, fue necesario adquirir nuevos conocimientos y habilidades en áreas como el uso del 
Arduino, la programación en C++ y C# para Arduino IDE y Unity respectivamente, y la 
implementación de la interacción entre la RV y la RF. Esta experiencia de aprendizaje es un 
testimonio del proceso de adaptación constante que se requiere en la era digital y es un componente 
esencial del desarrollo de este proyecto. 
Este estudio no sólo servirá como una demostración de las posibilidades de interacción entre la RV 
y la realidad física, sino que también proporcionará una visión práctica del proceso de 
implementación de dicha interacción. Aunque este proyecto puede estar en sus etapas iniciales y la 
tecnología subyacente aún puede estar en desarrollo, los hallazgos de este estudio podrían inspirar 
y orientar investigaciones futuras en esta dirección. 
Finalmente, este estudio será útil no solo para académicos y profesionales interesados en la RV, 
sino también para empresas y organizaciones que buscan incorporar esta tecnología en sus 
operaciones. Aunque la implementación exacta puede variar dependiendo de las necesidades 
específicas de cada organización, este estudio proporciona un ejemplo concreto de cómo la 
interacción entre la RV y la RF puede ser factible y valiosa. 
 
 
 
Estudio sobre la interacción entre entornos de 
realidad virtual y elementos reales: aplicación 
práctica utilizando microcontrolador Arduino 
 
 
11 
 
2 Antecedentes y/o revisión del estado de la cuestión 
La realidad virtual es un tema fascinante que ha capturado la imaginación de investigadores, 
tecnólogos y entusiastas por igual. A lo largo de las últimas décadas, la RV ha evolucionado desde 
ser un concepto futurista hasta convertirse en una tecnología accesible y práctica que está 
transformando una serie de industrias y disciplinas. En este capítulo, revisaremos el estado actual 
de la RV y cómo se está utilizando para mejorar y enriquecer nuestras vidas y experiencias. 
2.1 Evolución de la Realidad Virtual 
El concepto de realidad virtual tiene sus raíces en la ficción y la teoría científica, pero la tecnología 
práctica que conocemos hoy en día comenzó a desarrollarse a mediados del siglo XX. Las primeras 
iteraciones de la RV eran dispositivos voluminosos y costosos, utilizadosprincipalmente para 
entrenamiento militar y aeroespacial. En los años 80 y 90, la RV comenzó a penetrar en el mercado 
de consumo, pero la falta de potencia de procesamiento y las limitaciones de la tecnología de 
visualización impedían que estas experiencias fueran verdaderamente inmersivas. 
Sin embargo, el avance en la tecnología de computación y visualización ha permitido un desarrollo 
significativo en el campo de la RV. Hoy en día, los dispositivos de RV son más pequeños, más 
potentes y asequibles que nunca, lo que permite experiencias de RV altamente inmersivas y 
realistas. 
2.2 Aplicaciones actuales de la Realidad Virtual 
La realidad virtual (RV) no sólo está encontrando uso en el entretenimiento y la educación, sino 
que también se está utilizando cada vez más en el ámbito laboral. Las empresas de una amplia 
gama de industrias están explorando cómo pueden utilizar la RV para mejorar su eficiencia, 
productividad y seguridad. 
En primer lugar, la RV se está utilizando para la formación y educación de los empleados. La 
formación en este campo puede ser particularmente valiosa en profesiones donde los errores 
pueden tener graves consecuencias, como la medicina, la construcción, o la industria aeroespacial. 
Por ejemplo, los cirujanos pueden practicar procedimientos en un entorno virtual antes de 
realizarlos en un paciente real, mientras que los trabajadores de la construcción pueden aprender a 
operar maquinaria pesada en un entorno seguro y controlado. 
Además, la RV también está siendo utilizada para la colaboración y la comunicación en el lugar de 
trabajo. Por ejemplo, las empresas con equipos distribuidos en diferentes ubicaciones pueden 
utilizar la RV para realizar reuniones virtuales, lo que puede ahorrar tiempo y dinero en viajes. 
Asimismo, los diseñadores y arquitectos pueden utilizar la RV para visualizar y discutir los 
proyectos en tres dimensiones, lo que puede mejorar la comprensión y la toma de decisiones. 
Por último, la RV también está encontrando uso en el diseño de productos y la simulación. Los 
ingenieros pueden utilizar la RV para visualizar y probar diseños de productos antes de que se 
produzcan físicamente, lo que puede ahorrar tiempo y dinero en el desarrollo de productos. 
2.3 Desafíos y Limitaciones 
A pesar de los avances significativos en la tecnología de RV, todavía existen varios desafíos y 
limitaciones que deben superarse. Uno de los desafíos más significativos es la creación de 
interacciones físicas realistas en entornos virtuales. Aunque la tecnología de seguimiento de 
movimiento y los controladores hápticos han mejorado la capacidad de interactuar con los entornos 
virtuales, todavía hay una desconexión significativa entre las acciones del usuario en el mundo 
virtual y las respuestas físicas que experimentan. 
 
Estudio sobre la interacción entre entornos de 
 realidad virtual y elementos reales: aplicación 
práctica utilizando microcontrolador Arduino 
 
 
 
 
Otro desafío es la necesidad de hardware potente y especializado para ejecutar aplicaciones de RV. 
Esto puede hacer que la RV sea prohibitiva para muchos usuarios y limitar su adopción 
generalizada. 
Además, existen desafíos en términos de seguridad y privacidad. La RV puede recopilar una gran 
cantidad de datos sobre los usuarios, incluyendo sus movimientos, interacciones y reacciones. Esto 
plantea cuestiones sobre cómo se recopilan, almacenan y utilizan estos datos, y cómo se protege la 
privacidad de los usuarios en entornos virtuales. 
2.4 Tendencias futuras y desarrollos 
A pesar de los desafíos actuales, la RV está avanzando a un ritmo rápido y se espera que tenga un 
impacto significativo en una serie de sectores en el futuro cercano. 
La realidad virtual inalámbrica, que en el pasado era una aspiración, hoy se ha convertido en la 
norma. Los dispositivos de RV que una vez requerían conexiones físicas a una computadora o 
consola de juegos para su funcionamiento, ahora son en su mayoría completamente independientes 
y portátiles, gracias a los avances en la tecnología inalámbrica y la computación móvil. 
Una tendencia actual es la integración de la RV con otras tecnologías emergentes, como la 
inteligencia artificial y el Internet de las cosas. Este tipo de integración permite experiencias de RV 
más interactivas y personalizadas, y amplía el espectro de aplicaciones de la RV. 
En términos de desarrollo, una de las áreas más emocionantes es la mejora de la interacción física 
en la RV. Este enfoque se manifiesta en el desarrollo de tecnologías hápticas avanzadas, que 
permiten a los usuarios "sentir" objetos y entornos virtuales, al interactuar con objetos físicos 
modulables en la sala. Asimismo, se están mejorando las tecnologías de seguimiento de 
movimiento para permitir una interacción con el mundo virtual de una manera más natural y 
realista. Estos avances, que están empujando los límites de lo que es posible en la RV, son una 
prueba del potencial de esta tecnología para transformar nuestra interacción con el mundo digital. 
2.5 La Realidad Virtual y la Educación 
En el campo de la educación, la realidad virtual ofrece un potencial significativo para mejorar y 
enriquecer la enseñanza y el aprendizaje. La RV puede ofrecer a los estudiantes la oportunidad de 
explorar entornos y situaciones que serían difíciles o imposibles de experimentar en el aula 
tradicional. Por ejemplo, los estudiantes pueden explorar el sistema solar, caminar por la antigua 
Roma, o incluso visualizar y manipular complejas estructuras moleculares. 
Además, la RV puede facilitar el aprendizaje activo y experiencial, lo que puede mejorar la 
comprensión y retención de los estudiantes. También puede ofrecer oportunidades para la 
enseñanza personalizada y adaptativa, donde las experiencias de aprendizaje pueden adaptarse a las 
necesidades y habilidades individuales de cada estudiante. 
Sin embargo, la implementación efectiva de la RV en la educación plantea una serie de desafíos. 
Estos incluyen el coste de la tecnología, la necesidad de desarrollar contenido de aprendizaje 
adecuado para la RV, y la necesidad de formación y apoyo para los educadores. 
2.6 La Realidad Virtual en el ámbito laboral 
El ámbito laboral está experimentando un cambio importante con la adopción de tecnologías 
emergentes como la realidad virtual, dónde está demostrando ser una herramienta valiosa para 
mejorar la eficiencia, aumentar la seguridad y proporcionar nuevas oportunidades para la 
colaboración en el lugar de trabajo. 
Un área en la que la RV está teniendo un impacto significativo es en la formación y el desarrollo de 
los empleados. La capacidad de la RV para crear experiencias inmersivas y realistas puede 
 
Estudio sobre la interacción entre entornos de 
realidad virtual y elementos reales: aplicación 
práctica utilizando microcontrolador Arduino 
 
 
13 
 
proporcionar a los empleados oportunidades de aprendizaje que van más allá de lo que es posible 
con los métodos de formación tradicionales. Por ejemplo, los empleados pueden aprender a 
manejar maquinaria peligrosa o a responder a situaciones de emergencia en un entorno controlado 
y seguro antes de enfrentarse a estas situaciones en la vida real. 
La RV también está cambiando la forma en que los equipos colaboran y comunican. Las reuniones 
virtuales pueden permitir a los equipos distribuidos trabajar juntos como si estuvieran en la misma 
sala, lo que puede mejorar la comunicación y la toma de decisiones. Además, la RV puede permitir 
a los trabajadores visualizar y manipular modelos y diseños en tres dimensiones, lo que puede 
mejorar la comprensión y facilitar la colaboración en proyectos complejos. 
Además, la RV está siendo utilizada para mejorar la seguridad en el lugar de trabajo. Por ejemplo, 
puede ser utilizada para simular situaciones peligrosas y entrenar a los trabajadores sobre cómo 
responder, sin poner en riesgo su seguridad.Estudio sobre la interacción entre entornos de 
 realidad virtual y elementos reales: aplicación 
práctica utilizando microcontrolador Arduino 
 
 
 
 
3 Metodología 
3.1 Adquisición de Competencias y Herramientas 
3.1.1 Kit de Iniciación a Arduino IDE de ELEGOO 
Mi primer paso en este proyecto fue familiarizarme con Arduino IDE a través del uso de un kit de 
iniciación de ELEGOO (ELEGOO, 2023). Este paquete de herramientas me proporcionó un amplio 
abanico de experiencias prácticas con 33 lecciones distintas, abarcando desde la instalación del 
entorno de desarrollo integrado (IDE) hasta el control de motores paso a paso con un codificador. 
En este proceso, aprendí a programar en C/C++, el lenguaje de programación nativo de Arduino, 
que se utiliza para escribir sketches o programas que se cargan en las placas Arduino. 
Este recorrido educativo me permitió adquirir competencias esenciales y abordar una variedad de 
módulos y sensores. Completé todas las lecciones, las cuales me proporcionaron una sólida base en 
la utilización de Arduino y sus diversas aplicaciones. Las lecciones incluían temas como la 
activación de un zumbador, el uso de sensores de inclinación, la interpretación de entradas digitales, 
y mucho más. 
En la siguiente ilustración se pueden apreciar las pruebas realizadas para monitorizar el 
movimiento del Joystick mediante luces LED y representado en la matriz LED MAX7219. 
 
Ilustración 1 - Matriz LED controlada con Joystick. 
De todas estas lecciones, dos se destacaron como particularmente relevantes para la ejecución de 
este proyecto. La lección sobre el uso de servomotores (Lección 9) resultó esencial para entender 
cómo controlar componentes mecánicos con precisión. Por otro lado, la lección sobre el módulo de 
matriz de puntos LED MAX7219 (Lección 15) me proporcionó una valiosa comprensión de cómo 
trabajar con interfaces visuales LED. Ambas lecciones se convirtieron en una parte fundamental de 
mi base de conocimientos para desarrollar los sistemas interactivos de este proyecto. 
 
Ilustración 2 - Pruebas con servomotor 
 
Estudio sobre la interacción entre entornos de 
realidad virtual y elementos reales: aplicación 
práctica utilizando microcontrolador Arduino 
 
 
15 
 
3.1.2 Creación del Juego de la Serpiente con Arduino 
El Juego de la Serpiente, también conocido como Snake, es un proyecto que tomé para consolidar 
mis conocimientos adquiridos en la programación en C++. Este juego, aparentemente simple pero 
sorprendentemente desafiante, se adaptó a una configuración de Arduino para hacerlo interactivo y 
atractivo. La complejidad del juego no radica en su concepto, sino en cómo puede poner a prueba y 
fortalecer mis habilidades de programación en C++, especialmente en términos de manejo de 
matrices y control de periféricos. 
Para este proyecto, usé un Joystick para controlar la dirección de la serpiente y un módulo de 
matriz LED MAX7219 para mostrar el juego. El joystick proporciona una entrada fácil de usar para 
los usuarios, y el MAX7219 ofrece una excelente manera de visualizar el estado del juego. Este 
enfoque no solo permitió un juego divertido y entretenido, sino que también destacó los desafíos 
únicos asociados con la programación de hardware y la optimización del rendimiento. 
Dentro del código que desarrollé para este proyecto, pude abordar una serie de conceptos de 
programación fundamentales y avanzados, incluyendo la gestión de la memoria, el uso eficiente de 
estructuras de datos y el control de hardware a través de la programación que más adelante 
utilizaría para el desarrollo la programación de salas modulables para la realidad virtual. Este 
pequeño proyecto previo proporcionó una valiosa experiencia práctica y una sólida comprensión de 
cómo los principios de la programación en C++ se pueden aplicar de manera efectiva en la realidad. 
El código relacionado con este trabajo previo se encuentra en los anexos de esta memoria, es 
importante mencionar que este proyecto previo sirvió como una excelente forma de explorar y 
poner en práctica mis habilidades de programación. Además, la satisfacción de ver el juego 
funcionar con éxito en un sistema de hardware real fue un hito importante en mi viaje de 
aprendizaje. 
 
Ilustración 3 - Juego de la serpiente funcionando. 
 
 
 
 
 
Estudio sobre la interacción entre entornos de 
 realidad virtual y elementos reales: aplicación 
práctica utilizando microcontrolador Arduino 
 
 
 
 
 
3.1.3 Implementación de un Proyecto Ajeno de Conexión Arduino y Unity 
Este proyecto de Erika Agostinelli (Agostinelli, 2020) me ofreció la oportunidad de explorar y 
comprender la interacción entre Unity y Arduino, dos plataformas con funcionalidades muy 
distintas pero que pueden integrarse para llevar a cabo proyectos interesantes y novedosos. 
Concretamente, este proyecto consistía en un semáforo simulado en Unity, que estaba sincronizado 
con un semáforo de hardware construido con Arduino. Este modelo, aunque sencillo, proporciona 
una visión clara y práctica de cómo se puede establecer la comunicación entre estas dos 
plataformas. 
 
Para implementar el proyecto, utilicé los scripts proporcionados por Agostinelli (Agostinelli, 2020). 
Los scripts de Unity enviaban señales a través del puerto serial a Arduino, dependiendo de la 
interacción del usuario con las esferas de colores en la aplicación Unity. En respuesta, el código en 
Arduino recibía estas señales y encendía el LED correspondiente en el hardware. Aunque no 
desarrollé los códigos por mí mismo, la implementación y el análisis de estos scripts 
proporcionaron una comprensión sólida de cómo Unity y Arduino pueden interactuar y 
comunicarse entre sí. Fue un valioso aprendizaje práctico que amplió mis conocimientos y 
competencias para para poder afrontar futuros proyectos donde se requiera una integración similar 
entre software y hardware. 
 
 
Ilustración 4 - Proyecto de Erika Agostinelli 
 
 
 
 
 
Estudio sobre la interacción entre entornos de 
realidad virtual y elementos reales: aplicación 
práctica utilizando microcontrolador Arduino 
 
 
17 
 
3.1.4 Control de la Matriz LED MAX7219 desde Unity 
Para profundizar mi comprensión de la interacción entre Unity y Arduino, decidí embarcarme en un 
proyecto personal. Esta iniciativa implicaba la creación de una matriz de esferas en Unity que, 
cuando se activaban con un clic, alteraban el estado correspondiente de un LED en una matriz LED 
MAX7219 conectada a Arduino. Este proyecto me permitió aplicar y consolidar los conocimientos 
adquiridos en el trabajo previo con el proyecto de Erika Agostinelli (Agostinelli, 2020). 
El desarrollo del proyecto se centró en dos aspectos clave. En primer lugar, se creó una matriz de 
esferas en Unity utilizando un script en C#. Este script generaba automáticamente 64 esferas en la 
escena, las cuales podían activarse con un clic para cambiar de color entre blanco y rojo. En 
segundo lugar, se estableció una comunicación efectiva con Arduino para controlar la matriz de 
LED en función de las acciones realizadas en Unity. 
En el lado del hardware, el código de Arduino se diseñó para manejar la matriz LED MAX7219. Se 
configuró de tal forma que se mantiene un seguimiento del estado de cada LED de la matriz. 
Cuando se recibe un comando desde Unity a través del puerto serie, se identifica el LED 
correspondiente en la matriz y se cambia su estado. Esto se logra mediante la implementación de 
una función de conmutación que alterna el estado del LED especificado. 
 
Este proyecto representó un reto gratificante que permitió una aplicación práctica y tangible de la 
interacción entre el software de Unity y el hardware de Arduino. El código de programación se 
encuentra en los Anexos del presente proyecto. 
 
 
Ilustración 5 - Interfaz de usuario del proyecto previo MAX7219 
 
 
 
 
 
Estudio sobre la interacción entre entornosde 
 realidad virtual y elementos reales: aplicación 
práctica utilizando microcontrolador Arduino 
 
 
 
 
3.2 Diseño e implementación del Sistema 
En esta sección del proyecto, nos sumergiremos en el diseño e implementación del sistema 
propuesto, poniendo en práctica todo lo aprendido hasta ahora. Nos centraremos en dos módulos 
fundamentales que ejemplifican la integración de la Realidad Virtual y la Realidad Física. Por un 
lado, llevaremos a cabo la creación de una sala modulable representada en una matriz LED, y por 
otro, nos adentraremos en el control de una mano robótica que ejecutará una serie de movimientos 
predefinidos. Ambos componentes servirán para ilustrar las posibilidades de esta interacción, 
demostrando cómo se puede influir en el mundo físico a través de la realidad virtual y cómo se 
puede representar esta interacción en un gemelo digital. 
La Sala Modulable para Realidad Virtual es un espacio único que existe simultáneamente tanto en 
la realidad como en su contraparte digital en el entorno de Realidad Virtual. Este espacio 
interactivo consta de dos componentes fundamentales que se reflejan mutuamente en ambos 
dominios: la configuración física y su representación virtual. 
En la realidad física, este espacio se simplifica y representa mediante una matriz LED. Esta matriz 
no es más que una abstracción de la configuración real, que para fines de este proyecto, nos permite 
demostrar de manera más eficiente y económica las posibilidades de la sala modulable. Esta matriz 
LED es el equivalente simplificado de lo que podría ser una matriz de pistones real en un proyecto 
a mayor escala. 
En la demostración, también se proporcionará una breve muestra de dos posibles configuraciones 
de pistones que podrían ser utilizadas para construir la matriz de pistones real. Estas 
configuraciones son solo ejemplos de lo que se podría lograr con una matriz de pistones física, 
permitiendo una representación más completa y precisa del espacio en la realidad virtual. 
La sala modulable permite la adaptación y personalización de la realidad virtual y la física a las 
necesidades del usuario, es decir, cualquier cambio producido en un mundo se visualiza en su 
homólogo real o virtual, proporcionando una interactividad y capacidad de inmersión que va más 
allá de los entornos de Realidad Virtual convencionales. 
Por la parte de la representación del usuario, el componente del brazo robótico simula una serie de 
movimientos predefinidos que representan las acciones del gemelo digital del usuario en el espacio 
virtual. Este brazo robótico es una extensión física que refleja las interacciones del usuario en la 
Realidad Virtual, proporcionando una retroalimentación tangible y una inmersión más profunda. 
Aunque la mano robótica sigue una serie de movimientos preestablecidos en esta demostración, en 
teoría podría reaccionar a los movimientos en tiempo real del usuario en la Realidad Virtual. 
3.2.1 Esquematización del Sistema 
Este mapa conceptual es una representación esquemática de un sistema integrado de Realidad 
Virtual (RV) y Realidad Física (RF), que funcionaría de manera ideal. En el centro, encontramos el 
Sistema RV/RF Integrado, el núcleo que vincula ambas realidades. En el plano de la Realidad 
Física, tenemos a un Sujeto Real y a un Robot en una Sala Distante, que está diseñada para ser 
modulable (Sala Modulable RF). 
Por otro lado, en el dominio de la Realidad Virtual, tenemos a disposición un conjunto de Gemelos 
Digitales que reproducen tanto el entorno como al sujeto. Así, contamos con un Gemelo Digital del 
Sujeto, que replica las acciones de su contraparte real, y un Gemelo Digital de la Sala, que refleja 
los cambios en la sala física, conformando así la Sala Modulable RV. El concepto de 'Gemelo 
Digital' abarca la representación virtual de cualquier objeto o ente real, permitiendo una 
correspondencia directa entre los elementos de la Realidad Física y la Realidad Virtual. 
Este sistema propone un entorno unificado donde la RV y la RF interactúan y se transforman 
mutuamente, proporcionando una experiencia de inmersión y adaptabilidad. 
 
Estudio sobre la interacción entre entornos de 
realidad virtual y elementos reales: aplicación 
práctica utilizando microcontrolador Arduino 
 
 
19 
 
 
Ilustración 6 - Mapa conceptual del sistema ideal completo 
 
 
 
Para materializar el sistema integrado de Realidad Virtual (RV) y Realidad Física (RF), se ha 
propuesto dividir el proyecto en dos módulos. El primer módulo consiste en demostrar la 
funcionalidad de una Sala Modulable mediante su control de su gemelo virtual, capaz de adaptarse 
y reflejar los cambios en un entorno virtual y viceversa. El segundo módulo presenta el concepto de 
un Gemelo Digital y su contraparte robótica en una ubicación distante, ejemplificando la 
potencialidad de la interacción entre las realidades física y virtual en contextos geográficamente 
distintos. 
 
Estudio sobre la interacción entre entornos de 
 realidad virtual y elementos reales: aplicación 
práctica utilizando microcontrolador Arduino 
 
 
 
 
 
 
Ilustración 7 - Mapa conceptual del módulo 1 
 
El esquema del primer módulo ilustra la bidireccionalidad del sistema a través del sistema RV / RF 
Integrado. En la realidad virtual, se utiliza una interfaz de usuario para modificar la sala modulable 
de ambas realidades. Paralelamente, desde la realidad física, se puede cambiar el estado de la sala 
modulable mediante el uso de un mando y un sensor de infrarrojos, transformando así también la 
configuración de la sala modulable de las dos realidades. 
 
 
 
 
Estudio sobre la interacción entre entornos de 
realidad virtual y elementos reales: aplicación 
práctica utilizando microcontrolador Arduino 
 
 
21 
 
 
Ilustración 8- Mapa conceptual del módulo 2 
El anterior esquema representa el segundo módulo del proyecto, representando la interacción del 
gemelo digital y su correspondiente mano robótica en la realidad física. La secuencia de 
movimientos programada simboliza las acciones del gemelo digital. Estos movimientos se 
reproducen en la realidad física a través de una mano robótica, demostrando así la viabilidad de los 
sistemas de realidad virtual o gemelos digitales y sus homólogos físicos. 
 
3.2.2 Lista de materiales 
Como en todo proyecto, es esencial realizar un inventario de los materiales requeridos. Este 
proceso garantiza que disponemos de todos los recursos técnicos necesarios para el desarrollo 
adecuado de cada módulo, la sala modulable y el control de la mano robótica. 
3.2.2.1 Implementación virtual de la matriz de pistones 
Para la implementación del del sistema integrado de RV / RF simbolizando la sala modulable con 
una matriz LED se han utilizado los siguientes materiales: 
• Arduino Mega 2560 (podría haberse utilizado Arduino UNO) 
• Protoboard ELEGOO 
• Receptor IR 
• Mando a distancia IR 
• Potenciómetro 
• MB-V2 Fuente de alimentación para Protoboard, salida de 3,3-5V y 700mA máximo 
• Matriz LED AZDelivery 8x8 LED RGB, tipo de LED WS2812B 
• Cables macho-macho y hembra-macho para conexionado 
 
Estudio sobre la interacción entre entornos de 
 realidad virtual y elementos reales: aplicación 
práctica utilizando microcontrolador Arduino 
 
 
 
 
3.2.2.2 Concepto de Suelo Elevable 
Para la representación conceptual del suelo elevable se han utilizado los siguientes materiales: 
• Arduino Mega 2560 (podría haberse utilizado Arduino UNO) 
• Protoboard ELEGOO 
• Cables macho-macho y hembra-macho para conexionado 
• Servomotor SG90 de 9g 
• Motor de engranajes GA12-N20 DC 3V (30RPM) 
• Impresión 3D de las piezas del pistón de cadena (Gzumwalt, 2021) 
• Impresión 3D de las piezas del pistón lineal (PotentPrintables, 2018) 
3.2.2.3 Control de la Mano Robótica 
Para la realización del segundo módulo se ha necesitado del siguiente material: 
• Arduino Mega 2560(podría haberse utilizado Arduino UNO) 
• Protoboard ELEGOO 
• MB-V2 Fuente de alimentación para Protoboard, salida de 3,3-5V y 700mA máximo 
• Cables macho-macho para conexionado 
• Impresión 3D de las piezas de la mano robótica (Langevin, 2012) 
• 25x tornillos de cabeza avellanada M3 x 16mm 
• 5x tornillos de cabeza avellanada M3 x 4mm 
• 1x tornillo de cabeza avellanada M3 x 12mm 
• 15x tuercas M3 
• 5x tornillos de cabeza plana M1.5 x 4mm 
• 5x muelles de 3/16" x 1-3/4 
• 6x servomotores DSSERVO-3225MG de 180 grados 
• 1x línea de pesca trenzada de 0.8mm 200LB, 3 metros 
• 1x tubos de teflón ID1.5MM X OD2.5MM, 3 metros 
3.2.3 Módulo 1: Salas Modulables para Realidad Virtual 
3.2.3.1 Descripción del Módulo 
El primer módulo constituye una innovación en la manera en que concebimos la interacción entre 
los espacios físicos y las experiencias inmersivas de la Realidad Virtual (RV). La esencia de este 
módulo reside en su ambición de modelar el entorno físico de acuerdo con los parámetros y 
acciones que suceden en la RV y viceversa. 
El concepto de una sala modulable puede ser interpretado como un espacio físico que puede ser 
modelado dinámicamente para igualar su contraparte en un ambiente de RV. Esto puede permitir 
una inmersión sin precedentes en la RV, ya que los usuarios pueden experimentar cambios físicos 
en su entorno inmediato que se correlacionan directamente con los cambios que están haciendo en 
la RV y en la RF. 
El principio que guía este módulo es la creación de un gemelo digital del espacio físico y la 
posibilidad de que este gemelo digital pueda modificar su entorno físico de acuerdo con la 
interacción del usuario en la RV, y de la misma manera, el entorno virtual pueda ser modificado de 
acuerdo con los cambios producidos en la RF. Por lo tanto, el propósito es hacer que la realidad 
física sea tan adaptable como su contraparte virtual, permitiendo un flujo dinámico de interacción 
entre ambos. 
La principio fundamental detrás de las Salas Modulables es que pueden ser modificadas en tiempo 
real para imitar cualquier ambiente creado en RV, proporcionando así una verdadera inmersión para 
los usuarios, más allá de la visualización en una pantalla. La apariencia física, la disposición del 
 
Estudio sobre la interacción entre entornos de 
realidad virtual y elementos reales: aplicación 
práctica utilizando microcontrolador Arduino 
 
 
23 
 
espacio e incluso la topografía del suelo en las salas modulables pueden ser controladas mediante la 
interacción en la RV. 
Para demostrar la viabilidad de este concepto, este módulo se divide en dos demostraciones 
esenciales, implementación virtual de la matriz de pistones y concepto de suelo elevable. 
3.2.3.2 Implementación virtual de la matriz de pistones 
La implementación virtual de la matriz de pistones representa la materialización del concepto de las 
Salas Modulables para Realidad Virtual. Esta implementación, que se ha logrado tanto en un 
entorno físico como en uno virtual, sirve como demostración de la bidireccionalidad de este 
sistema entre el gemelo virtual de una sala real y su homóloga virtual. 
La construcción en RF y RV se ha desarrollado de la siguiente manera: 
• La implementación física del módulo se centra en una matriz LED RGB de 8x8, del tipo 
WS2812B. Esta matriz LED, es controlada por una placa Arduino Mega 2560 y es capaz 
de emitir una amplia gama de colores, lo que permite una representación visual necesaria 
para el proyecto. La elección de la placa Arduino Mega 2560, en lugar de una placa 
Arduino UNO, se debe a la posibilidad de conectar los 2 módulos del proyecto a la vez en 
Arduino sin sobrecargarlo. 
 
La matriz LED requiere una cantidad de energía que el Arduino no puede suministrar por sí 
solo. Para superar esta limitación, se ha utilizado una fuente de alimentación externa para 
protoboard, la MB-V2, que es capaz de proporcionar una salida de 3.3-5V y hasta 700mA. 
Esta fuente de alimentación se conecta a la protoboard, que también alberga un 
potenciómetro para regular la intensidad del LED y el receptor de infrarrojos (IR) 
conectados a la placa Arduino. 
 
La implementación física del módulo se complementa con un mando a distancia IR que 
permite el control manual de la matriz LED. Este mando a distancia se utiliza para 
seleccionar y ejecutar varios estados predefinidos de la matriz, ofreciendo una interacción 
rápida y sencilla con el sistema. 
 
 
Ilustración 9 - Implementación física en el estado prediseñado “1” 
 
Estudio sobre la interacción entre entornos de 
 realidad virtual y elementos reales: aplicación 
práctica utilizando microcontrolador Arduino 
 
 
 
 
 
• Para la implementación virtual se ha desarrollado un modelo correspondiente de la 
matriz de pistones en Unity, un motor de desarrollo de videojuegos 3D. Al igual que la 
matriz de LED física, la representación virtual también consta de una matriz 8x8, aunque 
en este caso los "LED" son prismas que pueden variar en altura y color. Cada prisma 
representa un "pistón" en el sistema, y su altura y color reflejan el estado del pistón 
correspondiente en la matriz LED física. 
 
Además, se ha añadido un menú de 10 botones numerados del 0 al 9 que servirá para 
manejar estados prediseñados de la matriz de la misma manera que podrá hacerse desde la 
RF con los botones del mando a distancia. 
 
 
Ilustración 10 - Implementación Virtual en el estado prediseñado "1" 
El funcionamiento para poder modificar el estado de la matriz de pistones en RF y RV se ha 
diseñado de la siguiente manera: 
• En la implementación virtual, al seleccionar un prisma y hacer clic en él, este pasa al 
siguiente estado, elevándose y cambiando de color para reflejar su nuevo estado. Los 
colores cambian gradualmente de blanco a rojo, siendo blanco el más bajo y rojo el más 
alto. En el caso de que el prisma ya esté en su estado más alto (representado por el color 
rojo), este regresará al estado más bajo (representado por el color blanco), permitiendo un 
ciclo de operación continuo. El cambio en el estado del prisma seleccionado se refleja de 
inmediato en el LED correspondiente en la matriz física. 
De manera similar, al seleccionar un número en el menú de botones, se carga una 
configuración predefinida para toda la matriz, con cada prisma (y, por tanto, cada LED 
correspondiente) cambiando a un estado específico definido por esa configuración. Esto 
proporciona un medio rápido y fácil para cambiar a una serie de estados predefinidos, y 
sirve como una demostración poderosa de la versatilidad y la capacidad de respuesta del 
sistema. 
 
Estudio sobre la interacción entre entornos de 
realidad virtual y elementos reales: aplicación 
práctica utilizando microcontrolador Arduino 
 
 
25 
 
 
• En la implementación física, el funcionamiento es similar al del menú de la RV, pero 
adaptado a las características del mando a distancia IR. Al presionar un botón específico en 
el mando a distancia, la matriz LED cambia a una configuración predefinida. Cada botón 
del mando a distancia está vinculado a una configuración específica, lo que permite un 
cambio rápido y sencillo entre una variedad de estados prediseñados. La intensidad de los 
LED se controla a través de un potenciómetro conectado a la placa Arduino, ofreciendo un 
control adicional sobre la visualización. Los cambios realizados se reflejan inmediatamente 
en la representación virtual, manteniendo la coherencia y la correspondencia entre ambos 
entornos. 
Una de las principales fortalezas de esta implementación es la estrecha correspondencia entre los 
estados físicos y virtuales de la matriz. Esto permite una demostración eficaz de cómo los cambios 
en la realidad física pueden reflejarse en tiempo real en un entorno virtual, y viceversa, lo que es 
fundamental para el concepto de las Salas Modulables para Realidad Virtual. 
La implementación del módulotambién hace un uso inteligente del código de programación para 
manejar el flujo de información entre los dos entornos. Aunque el flujo de información es 
bidireccional, en lugar de simplemente enviar una señal de cambio de estado de un entorno al otro, 
el sistema está diseñado para enviar la configuración de estado completa de la matriz cada vez que 
se realiza un cambio. Esto no solo busca sincronizar ambos entornos, sino que pretende representar 
de manera más precisa el flujo bidireccional de información que se produciría en un escenario de 
gemelos virtuales. Es decir, si un cambio se produce en un mundo, no sólo se envía una orden a la 
contraparte para cambiar a un estado determinado, sino que se transfiere la configuración entera de 
la matriz reflejando el cambio, permitiendo así una correspondencia más fidedigna entre ambos 
mundos. 
 
3.2.3.3 Concepto de Suelo Elevable 
En el marco del proyecto, uno de los conceptos centrales es la creación de un suelo modulable que 
permita la simulación física de terrenos en un espacio de realidad virtual. Para lograr esto, se 
propone la creación de una matriz formada por una serie de pistones controlados individualmente, 
capaces de alterar su altura para replicar las variaciones de un terreno virtual. En este sentido, en la 
sección 3.2.3.3 se abordan dos propuestas de diseño para estos pistones. 
La primera propuesta de diseño es un pistón lineal simple, que se basa en la acción de un 
servomotor SG90 para producir el movimiento vertical. Se escogió un diseño de @PotentPrintables 
de Ali (PotentPrintables, 2018) Este tipo de pistón tiene la ventaja de ser sencillo y directo en su 
funcionamiento, permitiendo un control preciso y fácil de implementar a nivel de programación. 
Sin embargo, su capacidad para soportar cargas pesadas puede ser limitada, lo que podría ser un 
desafío al considerar su aplicación en una matriz de 64 pistones lineales en una escala mayor que 
debiera soportar el peso de una persona. 
 
Estudio sobre la interacción entre entornos de 
 realidad virtual y elementos reales: aplicación 
práctica utilizando microcontrolador Arduino 
 
 
 
 
 
Ilustración 11 - Pistón lineal montado 
La segunda propuesta de diseño es un pistón basado en un sistema de engranajes de cadena, que es 
impulsado por un motor de engranajes GA12-N20 DC 3V de 30RPM. Este diseño promete una 
mayor capacidad de carga gracias al uso de engranajes, pero su implementación y control pueden 
ser más complejos que el pistón lineal. Los engranajes de cadena requieren un mayor cuidado en su 
montaje y mantenimiento, y el control de su altura puede no ser tan directo como en el pistón lineal. 
 
Ilustración 12 - Pistón de cadena montado 
 
 
Estudio sobre la interacción entre entornos de 
realidad virtual y elementos reales: aplicación 
práctica utilizando microcontrolador Arduino 
 
 
27 
 
Ambas propuestas de diseño de pistones fueron probadas mediante programas sencillos de Arduino, 
demostrando su funcionalidad y proporcionando una idea del tipo de movimiento que podrían 
proporcionar en una sala modulable física. 
Por supuesto, cabe recalcar que las propuestas presentadas en este apartado representan 
conceptualmente lo que podrían ser los pistones de una sala modulable. En realidad, estos modelos 
de pistones, servomotor SG90 y el motor de engranajes GA12-N20 son versiones a escala y 
funcionan como demostraciones a nivel de prototipo. 
En una implementación real, estos pistones deberían ser de una escala mucho mayor, y 
probablemente requerirían componentes más robustos y de alto rendimiento para soportar el peso y 
el uso continuado en una sala de realidad virtual. También se deberían tener en cuenta factores 
adicionales, como la seguridad del usuario, la estabilidad de los pistones, y la capacidad para 
soportar movimientos rápidos y constantes cambios de carga. 
 
3.2.3.4 Arquitectura del código de programación 
La arquitectura del código de programación es un aspecto fundamental de este proyecto, dado que 
facilita la interacción entre los entornos de realidad física y virtual. Es importante destacar que esta 
sección no tiene como objetivo proporcionar un análisis línea por línea del código, sino que se 
centra en explicar su arquitectura general y cómo las diferentes partes del código interactúan para 
permitir las funciones del módulo. Para aquellos interesados en los detalles técnicos más precisos, 
el código completo está disponible en los anexos del documento. 
Los scripts de Unity, programados en C#, constituyen el núcleo de la lógica de interacción y control 
en la aplicación. Estos scripts abarcan varias responsabilidades y funcionalidades, incluyendo el 
manejo de eventos de usuario, la gestión del estado de la matriz LED virtual, la comunicación con 
el hardware de Arduino y la interacción con la interfaz de usuario. A continuación, desglosaremos 
cada script individualmente para entender mejor su propósito y cómo interactúan entre sí para crear 
una experiencia de usuario coherente y funcional: 
 
1. UIGeneral.cs: Este script es el encargado de inicializar la interfaz de usuario. Distribuye el 
script ControlBotones.cs a cada botón en la interfaz, asignándole a la variable 
"NumeroBoton" del script el número correspondiente al botón. Esto se hace mediante un 
bucle, que recorre todos los botones del menú. De esta forma, cada botón queda 
correctamente configurado con su número correspondiente y con el script necesario para 
interactuar con el resto de la aplicación. 
 
2. ControlBotones.cs: Este script contiene los diferentes estados predefinidos de la matriz 
LED. Cuando un botón es presionado, dependiendo del número asignado a la variable 
"NumeroBoton", este script envía el estado predefinido de la matriz al script 
ComunicacionArduino.cs y a todos los scripts ControlPistones.cs asignados a cada prisma. 
De esta forma, tanto el Arduino como la representación virtual de la matriz en Unity 
reciben la información necesaria para cambiar su estado al estado predefinido 
correspondiente al botón presionado. 
 
3. MatrizPistones.cs: Este script es responsable de crear los "pistones" (prismas) en la matriz 
LED en Unity. Los prismas no son objetos preexistentes en el escenario de Unity, sino que 
son creados dinámicamente por este script, lo que permite personalizar parámetros como la 
distancia entre prismas o su grosor. Al crearse, a cada prisma se le asigna el script 
ControlPistones.cs y se les otorga un valor a las variables xPosicion y zPosicion que 
representan su ubicación en la matriz. 
 
 
 
Estudio sobre la interacción entre entornos de 
 realidad virtual y elementos reales: aplicación 
práctica utilizando microcontrolador Arduino 
 
 
 
 
4. ControlPistones.cs: Este script es fundamental para el comportamiento individual de cada 
"pistón" en la matriz LED. Al iniciarse la aplicación, se asigna a cada pistón con las 
variables xPosicion y zPosicion predefinidas por MatrizPistones.cs. El script permite 
cambiar el estado del pistón (altura y color) cuando un usuario interactúa directamente con 
él. También recibe información del script ComunicacionArduino.cs cuando hay cambios en 
el estado de los LED debido a datos recibidos desde el Arduino, permitiendo que la matriz 
virtual en Unity refleje fielmente el estado de la matriz física en el hardware. 
 
5. ComunicacionArduino.cs: Este script es el encargado de manejar la comunicación entre 
la aplicación Unity y el hardware Arduino a través del puerto serie. Cuando se inicia la 
aplicación, verifica que la conexión sea correcta para prevenir errores y, en caso de que no 
lo sea, informa al usuario. Al hacer click en un prisma, envía al Arduino un mensaje con las 
coordenadas del prisma y su nuevo estado. Al pulsar un botón del menú que cambia todo el 
estado de la matriz, envía una cadena de texto que el Arduino reconoce como un cambio 
total de estadoen la matriz LED. Recíprocamente, cuando el Arduino recibe un cambio de 
estado desde el receptor IR (mando a distancia), envía esta información a Unity codificada 
también como una cadena de texto. ComunicacionArduino.cs recibe esta cadena de texto, 
la interpreta como una nueva configuración de matriz y envía esta nueva información a 
todos los pistones (a su script ControlPistones.cs correspondiente). De esta forma, el script 
asegura que la representación virtual de la matriz en Unity esté siempre sincronizada con la 
matriz física en el Arduino. 
 
Para resumirlo un poco más y facilitar la comprensión, UIGeneral.cs se encarga de la interfaz de 
usuario y la inicialización de los botones, ControlBotones.cs maneja la lógica específica de cada 
botón y contiene los estados predefinidos de la matriz, MatrizPistones.cs se encarga de la creación 
y configuración de los prismas en Unity, ControlPistones.cs gestiona las interacciones individuales 
con cada prisma y actualiza su estado basándose en la información recibida, y finalmente, 
ComunicacionArduino.cs es el nexo de unión con el hardware Arduino, manejando todas las 
comunicaciones entrantes y salientes a través del puerto serie y asegurando el sincronismo entre 
RV y RF. 
En conjunto, estos cinco scripts de Unity forman un sistema interconectado que maneja tanto la 
interfaz de usuario como la interacción con el hardware Arduino. La distribución de tareas entre los 
scripts permite mantener una separación clara de responsabilidades, lo que facilita la comprensión 
del sistema y la corrección de posibles errores. 
Ahora nos adentraremos en el código Arduino que controla el hardware y recibe/envía 
información al software Unity. Este código está diseñado para recibir las instrucciones de Unity a 
través del puerto serie, interpretarlas y manipular los componentes físicos (en este caso, los LED, 
potenciómetro y receptor IR) en respuesta. Del mismo modo, también es capaz de enviar 
información a Unity, por ejemplo, cuando el usuario interactúa con el mando a distancia, 
permitiendo de esta manera que se actualice la representación virtual de la matriz en Unity. A 
continuación, desglosaremos y explicaremos los aspectos más relevantes de este código Arduino: 
1. Inclusión de bibliotecas, inicialización de constantes y asignación de PINs: Aquí es 
donde se prepara el entorno de trabajo del código de Arduino. Se importan las bibliotecas 
necesarias para controlar los periféricos, se establecen las constantes que se utilizarán en el 
código, y se asignan los PINs de los periféricos a las variables correspondientes. 
2. Matrices prediseñadas: Se declaran las matrices que representan los distintos estados 
prediseñados de la matriz de LED. Cada matriz es de 8x8 y los números van de 0 a 4, 
representando los diferentes estados de los LED. 
3. Función setup(): Se inicializa el puerto Serial para la comunicación con Unity, se ajusta el 
brillo de la matriz LED y se inicia el receptor de infrarrojos. Finalmente, se llama a la 
 
Estudio sobre la interacción entre entornos de 
realidad virtual y elementos reales: aplicación 
práctica utilizando microcontrolador Arduino 
 
 
29 
 
función IniciarLeds(), la cual se encarga de poner todos los LED en blanco al inicio del 
programa. 
4. Función IniciarLeds(): Esta función se utiliza para inicializar el estado de la matriz LED, 
poniendo todos los LED en blanco. Se llama a esta función solo una vez, durante el setup. 
5. Función loop(): Esta es la función principal que se ejecuta continuamente en Arduino. 
o En primer lugar, se lee el valor del potenciómetro a través de la entrada analógica y 
se evalúa si ha habido un cambio significativo en su valor. En caso afirmativo, se 
ajusta la intensidad de la matriz LED. 
 
o Después, se comprueba si hay datos disponibles en el puerto Serial. Si los hay, se 
lee el mensaje y se determina su longitud. Si el mensaje es de 3 caracteres, se 
interpreta como un clic en un prisma en Unity y se actualiza la matriz EstadosLed 
en la posición correspondiente con el nuevo estado. Si el mensaje es de 71 
caracteres, se interpreta como una actualización completa de la matriz y se 
actualizan todos los estados en EstadosLed en consecuencia. En ambos casos, se 
establece la variable EntradaDatos a true para indicar que hay nuevos datos. 
 
o Luego, se procesan las señales del receptor de infrarrojos. Según el botón pulsado 
en el mando a distancia, se actualiza la matriz EstadosLed con una de las matrices 
prediseñadas y se establece EntradaDatos a true. Además, se codifica el nuevo 
estado de la matriz en una cadena de 71 caracteres y se envía a través del puerto 
Serial a Unity. 
 
o Finalmente, si EntradaDatos es true, se entra en un bucle anidado que actualiza 
los colores de la matriz LED física según los estados en la matriz EstadosLed. 
Una vez que se ha actualizado la matriz, se establece EntradaDatos a false para 
evitar sobrescribir la matriz LED continuamente, lo cual podría causar un parpadeo 
visible y bloquear el programa. 
 
3.2.4 Módulo 2: Control de la Mano Robótica 
3.2.4.1 Descripción del Módulo 
La mano robótica utilizada en este proyecto es una representación física de un gemelo digital, es 
decir, es la versión física de un avatar controlado por un usuario en un entorno de realidad virtual. 
En la configuración ideal, un usuario interactuaría con su entorno virtual a través de su avatar 
digital y todas sus acciones serían replicadas fielmente por un robot en el mundo físico. 
El módulo 2 del proyecto, "Control de la Mano Robótica", es una representación física de la 
actividad en un entorno virtual. Esta representación toma la forma de una mano robótica que se 
mueve de acuerdo con una serie de acciones predefinidas. Cabe mencionar que en este proyecto se 
decidió programar estos movimientos en lugar de replicar las acciones del usuario en tiempo real, 
una decisión motivada por los objetivos y el enfoque de este trabajo. 
Para entender esta elección, es importante recordar la conexión con el módulo 1, "Salas 
Modulables para Realidad Virtual". En este primer módulo, se demostró la interacción entre el 
gemelo virtual y la realidad física, estableciendo una conexión bidireccional entre estos dos 
mundos. Tras haber abordado esta interacción en el módulo 1, el propósito del módulo 2 es destacar 
la viabilidad de crear un gemelo físico que imite las acciones del usuario en el espacio virtual. 
A nivel más técnico, la mano robótica es controlada por servomotores, que permiten una amplia 
gama de movimientos articulados. Cada dedo de la mano robótica puede moverse 
independientemente, lo que permite una gama de gestos y posiciones de la mano. Para este 
 
Estudio sobre la interacción entre entornos de 
 realidad virtual y elementos reales: aplicación 
práctica utilizando microcontrolador Arduino 
 
 
 
 
proyecto, los movimientos de la mano han sido programados para representar una serie de gestos y 
acciones típicos, como agarrar un objeto o girar la muñeca. 
La mano robótica utilizada en este proyecto se ha construido a partir del modelo OpenSource de 
InMoov, que es un proyecto global de robótica de código abierto que permite a cualquiera construir 
su propio robot personal utilizando una impresora 3D y algunos componentes electrónicos. En 
nuestro caso, todas las piezas de la mano robótica se han impreso en PETG, un material robusto y 
flexible que ofrece una excelente durabilidad y resistencia. 
En el sitio web de InMoov, es posible descargar todos los componentes necesarios para construir el 
robot completo, que incluye mucho más que solo la mano. Sin embargo, para los propósitos de este 
proyecto, nos hemos centrado únicamente en la mano y parte del antebrazo. Aunque el modelo 
completo incluye características como una cabeza móvil, caja torácica, brazos o piernas, estas 
partes no son necesarias para la demostración que se está realizando

Continuar navegando