Inicio Instrumentación Dando vida a Windows 10 IoT Core

Dando vida a Windows 10 IoT Core

El ámbito del desarrollo de sensores y controles conectados de IoT siempre ha estado dominado por las técnicas tradicionales de diseño integrado, pero parece que el reciente anuncio de Windows 10 IoT Core de Microsoft ofrece una alternativa viable. Los mercados de las tecnologías de escritorio y servidor han sido durante mucho tiempo dominio del sistema operativo Windows de Microsoft, por lo que resulta muy interesante que la compañía haya comenzado a proporcionar cierto nivel de compatibilidad para las placas de computación pequeñas, tales como las de Raspberry Pi, Arduino y MinnowBoard MAX.

 

En esencia, Windows 10 IoT Core es una versión más pequeña y compacta del sistema operativo Windows 10, que se ha diseñado especialmente para estos compactos ordenadores de una sola placa, que, en comparación, tienen recursos más limitados. Está diseñado para dispositivos de 400 MHz o para las plataformas superiores de x86 y basadas en ARM sin pantalla con un mínimo de 256 MB de RAM, o para dispositivos Windows con pantalla con al menos 512 MB de RAM; asimismo, necesita como mínimo 2 GB de almacenamiento.

Junto con la completa compatibilidad que ofrece la cadena de herramientas en forma de Visual Studio y los diversos paquetes de soporte para placas, Windows 10 IoT Core proporciona un entorno viable en el que basar sus diseños de IoT. Ya que las placas compatibles gozan de gran popularidad entre la comunidad de fabricantes, encontrará una enorme cantidad de trucos, consejos y ejemplos prácticos de diseño disponibles en línea. Por lo que, tanto si es un desarrollador profesional en plantilla como un fabricante, puede estar seguro de que hay más personas en su situación que utilizan Windows IoT Core.

A nivel de placa, Microsoft ofrece la posibilidad de crear una imagen personalizada que es compatible con tantas capacidades de la plataforma como sea necesario. Por ejemplo, para muchas aplicaciones de sensores de IoT, no será necesario suministrar recursos de audio o vídeo. Sin embargo, para acelerar la implementación en las plataformas populares, Microsoft ofrece imágenes específicas de las placas listas para su instalación. Esto incluye las placas sin salida de HDMI ni vídeo compuesto para las que tampoco se necesitaría Windows Shell.

Se recomienda que los desarrolladores que estén pensando en utilizar Windows 10 IoT Core visiten primero la página de IoT del Centro de desarrollo de Windows. Este útil recurso documenta y enlaza con las placas compatibles, y proporciona información sobre el aprovisionamiento de conectividad de IoT y da a conocer toda una serie de proyectos alojados en el popular sitio de la comunidad de desarrolladores Hackster.io.

Actualmente hay tres placas de desarrollo que son totalmente compatibles con Microsoft Windows 10 IoT Core: la Raspberry Pi 2, la MinnowBoard MAX y la Intel Galileo. Además, aunque no sea capaz de ejecutar el sistema operativo IoT Core, se proporciona compatibilidad para interactuar con aplicaciones basadas en Arduino a través de dos componentes de biblioteca. Hablaremos sobre las funciones de las bibliotecas más adelante.

Independientemente de la placa que elija para su desarrollo, el primer paso para la instalación de Windows 10 IoT Core es preparar un PC para la transferencia y los posteriores desarrollos. La última versión de Microsoft Windows 10 debe estar ejecutándose en el PC, junto con la versión gratuita de Visual Studio Community o las versiones Professional o Enterprise de Visual Studio 2015. También debe validarse la versión de Visual Studio instalada; los detalles para ello se pueden encontrar en el ya mencionado sitio del Centro de desarrollo.

Una vez se hayan completado estos pasos, deben añadirse las plantillas de proyecto de Windows IoT Core a través de la galería de Visual Studio. La placa MinnowBoard de código abierto (véase la Figura 1), por ejemplo, ofrece un SoC de 64 bits Intel Atom E38xx, 2 GB de memoria RAM DDR3 y está equipada con una compatibilidad periférica integral que incluye HDMI, SATA2, USB3 y USB2, 10/100/1000 Ethernet y 8 pines GPIO. Esta placa compacta, que solo necesita una alimentación de 5 V CC y mide 99 x 74 mm, es ideal para una gran cantidad de aplicaciones de IoT.

Una vez el PC está preparado, puede prepararse a continuación la placa elegida para ejecutar el sistema operativo IoT Core. El proceso es similar para cada una de las tres placas compatibles, y consiste en instalar la última versión del firmware para placas, descargar la imagen ISO preparada para la placa elegida desde el Centro de descargas de Microsoft, transferir la imagen a una tarjeta SD y, a continuación, cargarla en la placa elegida. A continuación, puede arrancarse la placa. Véase la figura 2.

Después de haber arrancado la placa con Windows 10 IoT Core, ya está listo para continuar con su primer diseño, pero antes de explorar algunos ejemplos, vamos a comentar brevemente las funciones de las bibliotecas de Arduino que hemos mencionados antes.

A día de hoy, la serie de placas Arduino no son compatibles como placas arrancables, pero aún así se pueden aprovechar la potencia y la simplicidad ofrecen. La biblioteca Windows Remote Arduino es un componente de Windows Runtime de código abierto que permite a los desarrolladores controlar un Arduino a través de una conexión USB o Bluetooth. Los idiomas de Windows Runtime, como C++, C# y JavaScript, pueden acceder a la biblioteca al trabajar en un desarrollo en Visual Studio. Un ejemplo de aplicación podría ser la utilización de un Arduino para recopilar datos ambientales a partir de una serie de sensores, en la que la aplicación de escritorio recopilaría estos datos para analizarlos y supervisarlos de manera regular. La otra biblioteca es Windows Virtual Shields para Arduino. Está diseñada principalmente para su uso con la placa Arduino UNO y dirigida a aplicaciones de Universal Windows de código abierto que se pueden ejecutar en cualquier dispositivo Windows 10, como un teléfono Windows Lumia, para suministrar comunicación entre el dispositivo y el Arduino. De este modo, los sensores del teléfono pueden leerse e interpretarse desde un sketch de Arduino.

Volvamos a la placa arrancada con IoT Core. Un primer paso adecuado para comprobar que la placa funciona correctamente es utilizar la aplicación de ejemplo de parpadeo del LED documentada en el Centro de desarrollo de Microsoft. Al utilizar el código proporcionado en Visual Studio, se comprueba la configuración completa antes de embarcarse en un proyecto más complicado.

Visual Studio también proporciona diferentes opciones de idioma para este tipo de aplicaciones, por lo que los desarrolladores pueden elegir entre C++, C#, Python o node.js para su diseño. Visual Basic, C # y HTML/JavaScript también son compatibles. Puede determinarse el idioma que se va a utilizar en función del que sea más adecuado para la aplicación o, simplemente, según las preferencias del desarrollador.

La plataforma en la nube Azure de Microsoft complementa a Windows 10 IoT Core. Está diseñada para toda una serie de aplicaciones de computación, almacenamiento y análisis basadas en la nube, y también es ideal como repositorio de almacenamiento y análisis de los datos de los sensores del IoT.

La plataforma es capaz de recibir datos de un número ilimitado de sensores y dispositivos registrados, y también puede configurarse para analizar los datos, responder a cambios en los datos y activar mensajes e instrucciones de control para otros dispositivos y actuadores conectados.

El proyecto de código abierto ConnectTheDots.io de Microsoft (véase la Figura 4) ofrece una serie de bibliotecas, ejemplos de código y scripts de configuración para establecer la comunicación entre su aplicación de Windows 10 IoT Core y el servicio de Microsoft Azure.

Al seleccionar cualquier ordenador integrado de una sola placa, hay una lista casi interminable de posibles aplicaciones de IoT que se pueden realizar. Para el desarrollador, el acceso a herramientas de desarrollo de efectividad comprobada es igual de importante que encontrar una amplia gama de foros y comunidades a los que poder recurrir cuando el software o la plataforma elegida no responden de la manera deseada. Las comunidades online como Hackster.io proporcionan una gran cantidad de ejemplos de Windows IoT Core con Raspberry Pi 2, MinnowBoard MAX y Arduino.