Windows 10 e Universal Apps, como eles afetam o desenvolvimento de sistemas embarcados?

Windows 10

O Windows 10 IoT surge com a proposta de uma Plataforma Universal do Windows (UWP) para diferentes dispositivos. Esse novo conceito se baseia na utilização de um núcleo unificado do Windows 10, que permite a elaboração de um programa que seja executado para qualquer dispositivo, desde Windows Phone ao Surface.

 

O que confere essa universalização da plataforma UWP é que além do núcleo unificado surge o conceito de uma classe Universal Family, que na hierarquia da família de dispositivos, passa a herdar todas as APIs das famílias filhas. Tal característica garante que todas as APIs estão presentes na Universal Family, conferindo a esta a característica de construir um programa e poder executado em qualquer aparelho que suporte o Windows 10.

 

Windows 10 IoT - hierarquia
Figura 1 - Hierarquia da família de dispositivos do Windows 10

 

Através deste sistema operacional unificado a escolha do sistema operacional para determinado dispositivo deixa de ser a parte mais importante, a parte mais importante passa a ser a escolha da família de dispositivos a qual seu aplicativo será destinado, podendo escolher-se uma ou mais famílias, e até mesmo destinar a todas as famílias. A escolha da família será determinada pela utilização de quais APIs será adequada ao uso do seu dispositivo, por exemplo a escolha da família filho como a Desktop irá destinar a utilização do programa somente em dispositivos desktop, e consequentemente irá conter somente as APIs desta família.

 

Para dispositivos embarcados surge a versão Windows IoT Core, que é a versão do Windows 10 otimizada para tais dispositivos e que pode ser utilizada na Raspberry Pi 2 e 3 e outras placas destinadas a makers, possuindo assim uma API com vários recursos para o mesmo. A seguir, encontra-se o link para os primeiros passos para a instalação do Windows IoT Core.

 

Neste artigo, vamos explorar o conceito de UWP criando um pequeno exemplo capaz de rodar no Windows 10 tradicional em um PC de arquitetura x86, mas ao mesmo tempo capaz de rodar em uma placa Raspberry Pi 2 e em um Computador em módulo de arquitetura ARM Cortex-A9. O computador embarcado ARM que utilizo aqui é o Colibri T30, que está sendo vendido em caráter de promoção pela Toradex.

 

As instruções para a instalação inicial estão aqui.

 

Para o desenvolvimento de programas e aplicações no Windows 10 neste artigo lança-se mão da ferramenta Visual Studio 2015. Para criar o projeto foi selecionada a opção File>New>Project, para um projeto utilizando a Universal device family na aba à esquerda foi selecionada a opção C#>Windows e em seguida escolhido o template Blank App (Universal Windows). Em seguida foi escolhido o nome e a pasta e, enfim, ao clicar em OK o projeto será criado.

 

Windows 10 IoT - Projeto
Figura 2 - Página para criação do projeto

           

Para aplicação “Hello Word”, foi criado um botão que ao ser clicado, exibe a mensagem “Hello Word”. Quando o projeto for criado selecione o arquivo MainPage.xaml na janela Solution Explorer no lado direito do programa, vide figura abaixo. Este arquivo conterá a parte gráfica do programa a ser criado. No lado direito da tela na janela Toolbox, que contém componentes que podem ser adicionadas ao seu programa, escolher a opção Button e arrastá-la para a janela onde será criado o programa e posicioná-lo onde preferir.

           

Windows 10 IoT - Modo gráfico
Figura 3 - Visual Studio no modo gráfico

 

Depois de criado o Botão, dê dois cliques no mesmo e aparecerá a janela MainPage.xaml.cs, onde será definida a rotina que será exibida ao clicar no botão. Dentro da função que foi criada, button_Click, digite o código de acordo com a figura abaixo, note que o código foi escrito dentro do método “button_Click”. Para esta aplicação foi adicionada uma funcionalidade extra, a exibição de uma imagem que aparece quando o botão é clicado. Para tal foi adicionada uma imagem através da Toolbox adicionando a opção Image e em seguida em Properties definir Visibility>Collapsed, através da segunda linha de comando do método button_Click  a imagem é mostrada somente ao ser clicado o botão.

 

Windows 10 IoT - Modo edição
Figura 4 -  Visual Studio no modo edição

 

O objetivo deste artigo é mostrar a funcionalidade do Universal App para compatibilidade multiplataforma. Para isso, configura-se o target de sua aplicação conforme a figura abaixo, as plataformas disponíveis são ARM, x64, x86.

           

Windows 10 IoT - Plataformas disponíveis
Figura 5 - Escolha da plataforma a qual o programa irá ser executado

 

Quando selecionada a opção Remote Machine, o Visual Studio irá abrir a janela Remote Connection onde seu dispositivo será identificado automaticamente (caso não seja, digite o IP do seu dispositivo no campo Address e em seguida clique em Select para que o VS o identifique). Se esta opção não abrir automaticamente vá até a opção Debug> NomeDoSeuPrograma Properties e faça a configuração adequada. 

 

Através destas opções descritas acima um mesmo programa criado a partir da opção Universal Windows pode ser executada em qualquer dispositivo que execute o Windows 10, modificando assim somente a opção da plataforma a qual irá destinar o seu programa. E para finalizar segue um vídeo ilustrando o programa rodando primeiramente no computador e em seguida em uma placa Raspberry Pi 2 e em um módulo Toradex Colibri T30, onde somente foi alterada a plataforma a qual o programa se destina:

 

 

 

Referências

 

Imagem de destaque - Fonte: https://msdn.microsoft.com/library/windows/apps/dn894631.aspx

Figura 1 - Fonte: https://msdn.microsoft.com/library/windows/apps/dn894631.aspx

NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Heloisa Junqueira Barbosa
Estudante de Engenharia Elétrica pela pela Escola de Engenharia de São Carlos (USP). Participei do grupo de robótica Warthog Robotics como diretora da Divisão de eletrônica de potência e atualmente sou estagiária na empresa Toradex Brasil na área de Windows.

Deixe um comentário

avatar
 
  Notificações  
Notificar