Nueva Insider Preview de Windows 10 IoT Core (Build 10531)

 

El 10 de agosto se presentó la versión de Windows 10 para dispositivos embebidos, Windows 10 IoT Core. Esta versión del sistema operativo de Windows está pensada para pequeños dispositivos sin pantalla y permite desarrollar aplicaciones con diversos lenguajes Open Source. La filosofía detrás de su creación es facilitar la labor de los desarrolladores permitiéndoles el uso de lenguajes y frameworks en los que se sientan más cómodos.

El 25 de septiembre se publicó la preview de la nueva versión de Wndows 10 IoT Core, que incluye correcciones de los errores detectados en la versión anterior, actualizaciones a nivel de seguridad y más flexibilidad para desarrolladores. Los cambios introducidos con la Build 10531 son:

  • Añadidas características adicionales para Web Server (WebB): cambiar el nombre del PC, cambiar la contraseña e iniciar procesos.
  • Secure boot habilitado.
  • Mejoras en la experiencia con Node.Js. Algunas son: instalador unificado para todos los componentes necesarios, soporte para librerías de seriales y soporte para Cylon con una nueva plantilla.
  • Aumento de la compatibilidad para librerías Python.
  • Soporte para chips externos ADC y PWM.
  • Actualización del core del sistema operativo
  • Corrección de errores de la versión anterior

Esta nueva versión está disponible para descargar para Raspberry Pi 2 y MinnowBoard Max. Para consultar las notas las notas sobre esta nueva versión puedes acceder a la página de Windows Dev Center.

A continuación, vamos a realizar un pequeño ejemplo de aplicación con la nueva versión del sistema operativo comenzando desde la descarga de la misma.

Para poder realizar este ejemplo se necesita:

  • Un ordenador con Windows 10
  • Una Raspberry Pi 2
  • Alimentador de corriente USB de 5V
  • Una tarjeta Micro SD de 8GB o más
  • Cable HDMI y monitor
  • Cable Ethernet
  • Lector de tarjeta SD
  • Un led
  • Una resistencia de 220 Ω
  • Una breadboard
  • Dos cables

Antes de empezar debemos preparar el ordenador:

  • Instalar Visual Studio 2015 (Community Edition es suficiente)
  • Instalar las plantillas de Windows IoT Core (disponibles aquí).
  • Habilitar el modo desarrollador en el sistema operativo del ordenador siguiendo las siguientes instrucciones.

Una vez está todo preparado accedemos a la página de descargas de Windows y seleccionamos la versión Insider Preview para nuestro dispositivos, en este caso Raspberry Pi. Si aún no te has registrado como Insider puedes hacerlo desde esta misma página.

clip_image002

Una vez se haya descargado el fichero realizamos la instalación. Esto nos creará una carpeta en la ruta C:\Program Files (x86)\Microsoft IoT con una archivo te tipo “ffu” que debemos grabar en la tarjeta SD.

clip_image004

Podemos ver que también se ha instalado “IoTCoreImageHelper”, herramienta necesaria para grabar la imagen en la tarjeta y “WindowsIoTCoreWatcher” que nos permite buscar dispositivos conectados a la misma red.

Introducimos la tarjeta en el ordenador y abrimos “IoTCoreImageHelper”.

clip_image006

Seleccionamos la tarjeta SD y la imagen que queremos grabar (archivo “ffu” generado en la instalación). Pulsamos en “Flash” y esperamos a que la imagen se grabe.

Una vez se haya completado el proceso extraemos la tarjeta y la introducimos en la Raspberry, la conectamos a la red mediante el cable Ethernet, a la corriente a través del alimentador y a la pantalla por HDMI.

Windows 10 IoT Core carga automáticamente al conectar el dispositivo a la corriente. Una vez se haya iniciado podremos ver en la pantalla una serie de datos como el nombre del dispositivo o la dirección IP asignada.

clip_image008

El siguiente paso es conectarse al dispositivo para cambiar la contraseña que viene por defecto. Es posible conectarse mediante PowerShell o SSH. En este caso lo haremos utilizado PowerShell.

clip_image010

Abrimos la aplicación y la ejecutamos como administrador. Se abrirá la consola. Es posible que tengas que iniciar el servicio WinRM para habilitar las conexiones remotas. Para ello, escribe el siguiente comando:

net start WinRM

A continuación, escribimos en la consola lo siguiente sustituyendo <machine-name or IP Address> por el nombre o IP de nuestro dispositivo (podemos ver esta información en la pantalla que está conectada a la Raspberry).

Set-Item WSMan:\localhost\Client\TrustedHosts -Value <machine-name or IP Address>

Ahora iniciamos una sesión con el dispositivo.

Enter-PSSession -ComputerName <machine-name or IP Address> -Credential <machine-name or IP Address or localhost>\Administrator

La contraseña por defecto es “p@ssw0rd”. La conexión tarda unos 30 segundos en llevarse a cabo y una vez haya tenido lugar ya podremos acceder a la Raspberry. Debemos cambiar la contraseña introduciendo la siguiente instrucción y sustituyendo [new password] por la nueva contraseña.

net user Administrator [new password]

Una vez tenemos el dispositivo preparado vamos a realizar el código de la aplicación que a continuación desplegaremos en la Raspberry.

En primer lugar descargamos la carpeta con los códigos de ejemplo de GitHub (puedes descargarla aquí). Seleccionamos la carpeta samples-develop\Blinky\CS y abrimos la solución en Visual Studio.

A continuación, conectamos el led a la Raspberry siguiendo el siguiente esquema.

clip_image012

Ahora ya tenemos el dispositivo preparado para desplegar la aplicación. Accedemos a la solución en Visual Studio y seleccionamos “Remote Machine” para el despliegue. Como vamos a usar una Raspberry debemos compilar para ARM.

clip_image013

Al seleccionar la maquina remota nos pedirá que introduzcamos la IP del dispositivo.

Debemos comprobar que la autenticación está desactivada, sino no podremos desplegar. Para ello abrimos las propiedades del dispositivo y vamos al apartado “Debug”.

clip_image015

Comprobamos que el check de “Use Authentication” no está marcado y que la IP se corresponde con la de nuestro dispositivo.

Ahora ya está todo listo para ejecutar la aplicación. La desplegamos desde visual studio y veremos cómo, pasados unos segundos, el led comienza a parpadear y en la pantalla conectada a la Raspberry podemos ver un círculo que cambia de color en función de si el led se encuentra encendido o no.

clip_image017

Puedes modificar el código para mostrar otro tipo de información por la interfaz o añadir más leds a la bredboard. Si buscas más tutoriales y ejemplos puedes encontrarlos aquí.

 

Beatriz García Roces
@BeRoces
Intern Technical Evangelist