Hasta el último momento, los controladores (y Arduino, en particular) trabajaron sin una interfaz, o con interfaces primitivas, relativamente hablando, con uno o dos botones. Con el advenimiento del Arduino Mega Server, la situación cambió drásticamente y se hizo posible hacer cualquier interfaz para su proyecto en Arduino.Hoy iremos más allá y hablaremos sobre cómo crear una interfaz 3D interactiva completa para su proyecto en Arduino. Realizaremos todos los experimentos en el nuevo microcontrolador Genuino 101 fabricado conjuntamente por Intel y Arduino y amablemente proporcionado por Intel para portarle el sistema Arduino Mega Server.¿Por qué necesitas 3D en Arduino?
Por supuesto, puede prescindir de una interfaz y limitarse a un simple control de algo usando el controlador, pero cuánto más conveniente es controlar su dispositivo desde una hermosa interfaz web y cuánto más agradable es observar datos no en forma de conjuntos de números abstractos, sino en forma de hermosos modelos tridimensionales, con con el que puedes interactuar directamente en la pantalla de tu computadora.Aplicaciones 3D
Todo el espectro de aplicación de tecnologías 3D en microcontroladores se puede dividir en tres partes: visualización de datos, interfaces 3D y capacitación interactiva. Consideremos con más detalle cada uno de estos aspectos.Visualización de datos
Las tecnologías 3D se pueden usar para visualizar visualmente procesos complejos que ocurren tanto dentro del sistema (estado de las partes del sistema, operación de funciones, estado de variables, etc.) como fuera (estado de las matrices de sensores, estado de un parámetro u objeto controlado, etc.). )La belleza de los gráficos 3D es que de un vistazo puede evaluar el estado de un sistema complejo y, si es necesario, tomar las medidas necesarias.El mismo modelo 3D es un elemento de control universal, cuando puede escalar el modelo y cambiar el estado de sus partes con un clic del mouse (después de todo, es interactivo). Esto no es más que un nuevo tipo de interfaz.Mundos 3D
Aquí, bajo mundos 3D, nos referimos a modelos 3D interactivos desarrollados que contienen conjuntos de elementos (objetos) y las reglas para la interacción de estos objetos dentro del modelo (la "física" de este mundo).En relación con los controladores (con sus sensores están conectados con el mundo real), este concepto se traduce en la representación de objetos y procesos reales en un mundo virtual en 3D. Y dado que el modelo virtual es interactivo, su impacto en el mundo virtual conduce a un cambio en el estado de los objetos en el mundo real (el controlador está conectado al mundo real por muchos actuadores).Como resultado, este es un nuevo tipo de interfaz, y la base para los conjuntos de entrenamiento, y la base para aplicaciones de juegos de controladores, etc., etc., la gama de aplicaciones de esta tecnología es muy amplia.Aprendizaje en línea
Esta tecnología (junto con las tecnologías Arduino Mega Server y OHAS ) le permite crear controladores que contienen todo lo que necesita para interactuar con el usuario (ejemplos interactivos en 3D, documentación, manuales, manuales, etc.) y construir sistemas complejos es tan fácil como cubos de lego plegables.
Esto se puede usar para enseñar, visualizar procesos complejos, juegos, enciclopedias interactivas y cursos de capacitación (contenidos en el controlador), etc.Problemas tecnológicos
En general, la idea de enseñar a los controladores Arduino a trabajar con gráficos 3D parece muy atractiva, pero la realización de esta idea se encuentra con una barrera para los microcontroladores, tanto en términos de RAM como en la potencia de procesamiento del controlador.Si intenta resolver este problema usted mismo, entonces no tendrá éxito o la solución tomará mucho tiempo y esfuerzo para implementarlo. Nuestra tarea se simplifica enormemente: podemos utilizar el motor listo para usar del sistema Arduino Mega Server, que abordará todas las dificultades de trabajar con archivos y mostrar páginas web en la pantalla del usuario.Solución técnica
La belleza de la solución radica en el hecho de que podemos usar cualquier biblioteca de JavaScript ya preparada (junto con sus muchos ejemplos) y desarrollar rápidamente cualquier solución 3D que necesitemos sobre esta base.En estos ejemplos específicos, se utilizaron las bibliotecas estándar Processing.js y Three.js. Pero, si eres fanático de alguna otra biblioteca, entonces nada te impide usar tu biblioteca favorita.Todo lo que necesita hacer para comenzar a usar 3D en su proyecto Arduino es conectar la biblioteca 3D apropiada de la manera habitual<script src="process.js"></script>
o<script src="three.js"></script>
A continuación, inserte el código de ejemplo 3D en la página o inserte el enlace al archivo con el ejemplo 3D<canvas id="sketch" data-processing-sources="cube.pde"></canvas>
Y esto, de hecho, es todo lo que necesita hacer para obtener un ejemplo 3D en su página Arduino Mega Server. Todo se hace exactamente igual que en un sitio de Internet normal. Y el Arduino Mega Server asume todo el trabajo duro para garantizar la disponibilidad del sistema.Interactividad
Simplemente ejecutar un modelo 3D en Arduino es ciertamente genial, pero no olvide que el trabajo se realiza en el controlador, y este es un dispositivo que está conectado al mundo real con muchos sensores en la entrada y muchos actuadores en la salida. Y sería bueno mostrar algunos parámetros de un sistema real en un modelo 3D.
Consideremos, por ejemplo, la visualización de las funciones de red del microcontrolador.El funcionamiento de la interfaz Arduino Mega Server está garantizado por el intercambio continuo de Ajax entre el controlador y el navegador del usuario. Como modelo 3D, tomamos un hipercubo que consta de seis objetos en cada uno de los tres ejes de coordenadas (un total de 216 objetos).Cada objeto puede cambiar su tamaño, su geometría, color o tipo de movimiento dependiendo del estado del objeto real (función de red, en este caso). En este ejemplo, se selecciona un cambio en el color del brillo de la esfera al activar una función de red.Como resultado, la pulsación medida de dos esferas en un modelo 3D muestra el funcionamiento normal de las funciones Ajax del sistema y tiene otros 214 objetos para indicar cualquier otro parámetro. Y una cantidad casi ilimitada de páginas web para renderizar otros modelos 3D.Interacción del sistema y modelos 3D.
Los valores se transfieren al modelo 3D simplemente cambiando las variables de JavaScript, de manera similar, las acciones de control se pueden generar desde el modelo 3D (haciendo clic en la esfera con el mouse, activando o desactivando, por ejemplo, alguna función o sensor, etc.).Se declara una variable en el archivo scripts.jsvar dash_marker1 = 0;
Y luego se colocan marcadores en los lugares correctos del programa que cambian el estado de la variable. En este caso, cuando "entra" y "sale" de una función de red.dash_marker1 = parseFloat("1.0");
dash_marker1 = parseFloat("0.0");
En un boceto sobre Procesamiento, las variables se declaran para valores de "captura" de JavaScriptfloat for_dash_marker1 = 0;
Y el momento mismo de "atrapar"try {
for_dash_marker1 = float(dash_marker1);
} catch (exception) {
for_dash_marker1 = float("0.0");
}
Y luego se describen acciones con un modelo 3D, dependiendo del estado de las variablesif (for_dash_marker1 < 1.0) {
...
}
Puede ver el resultado de este código en el video, y puede familiarizarse con el paquete de distribución completo (y ejecutarlo, si tiene un controlador Genuino 101) en la página de descarga del proyecto Arduino Mega Server.Video
Video que muestra el trabajo de los gráficos en 3D en ArduinoConclusión
Ahora los gráficos 3D se han vuelto más accesibles que nunca para sus proyectos en Arduino, y le esperan perspectivas aún más emocionantes: Arduino Mega Server está portado a esp8266 y puede hacer todo lo descrito en este artículo mientras trabaja de forma inalámbrica a través de Wi-Fi y está en un módulo de tamaño con una moneda de diez centavos.
Y en el futuro cercano, la distribución AMC para esp8266 aparecerá en el sitio web del proyecto. Estás esperando descargas de archivos y flasheando el controlador por el aire, un servidor FTP y muchas otras características que proporciona el Arduino Mega Server. Y esta es otra revolución en el mercado de IoT.