Windows 10 IOT Core no Raspberry Pi 2 B

Quando a Microsoft divulgou que seria disponibilizado o Windows 10 IoT Core para o Raspberry Pi 2 B ficámos a ganhar um minicomputador com o sistema operativo Windows gratuitamente.

Mas esta versão está destinada a Internet-of-Things (IoT), e existem várias versões.

Dispositivos da indústriaDesktop Shell, aplicações Win32, 1 GB RAM, 16 GB de armazenamentoVisual Studio e UWPInterfaces de utilizadorMicrosoft Azure IoTConectividade de dispositivo integrado
Dispositivos móveisShell Moderno, Mobile Chassis requirement, 512 MB RAM, 4 GB de armazenamento
Pequenos dispositivosDispositivos dedicados, ecrã opcional, Sem Shell/armazenamento/aplicações

Este não é o primeiro sistema operativo da Microsoft para IoT, já existiam outros, como por exemplo o Windows 8.1 para o Intel Galileo que é uma placa concorrente ao Raspberry.

A IoT é a utilização de componentes físicos e eletrónicos de medida, controle e não só que estão ligados a Internet. Por exemplo numa estufa não é necessário ir a um local X em X horas para controlar a temperatura, com a comunicação machine-to-machine (M2M) os dados da estufa são enviados para uma base de dados utilizando a Internet e os mesmos dados podem ser consultados por outras máquinas.  

O Raspberry Pi 2 B é exatamente igual a Raspberry Pi B+. Sobre a evolução do Raspberry Pi convido-o a ler o artigo Raspberry Pi2 – Evolução ou Revolução? da Rita Peres publicado na edição nº 48 de Março de 2015.

Raspberry Pi B+ e Raspberry Pi 2 B

Para iniciar a instalação do Windows 10 no Raspberry Pi é necessário o seguinte equipamento para o mesmo:

  • Raspberry Pi 2 B;
  • Carregador de 5 Volts micro USB com uma amperagem de 1.0 (carregador de telemóvel micro USB);
  • Cartão micro SD class 10 8GB ou superior;
  • Cabo HDMI;
  • Cabo de rede Ethernet;
  • Não é obrigatório mas recomendo uma caixa para o Raspberry Pi 2 B.

Para descarregar o Windows 10 é necessário aceder ao programa Microsoft Connect (https://connect.microsoft.com/windowsembeddediot/SelfNomination.aspx?ProgramID=8558) com uma conta Microsoft. Depois de aceder clique em “Surveys” e terá de aceitar todos os surveys que estão disponíveis se estiver de acordo com os termos dos mesmos.

Windows 10 IoT: surveys

Após aceitar todos os surveys clique em “Downloads” e selecione “Windows 10 IoT Core Insider Preview Image for Raspberry Pi 2”. Antes de clicar no botão “Download” selecione a localização mais próxima para que o mesmo seja mais rápido. É possível fazer o Download de duas formas, direto clicando em Download na coluna “Download single file”, ou através de um gestor de transferência de ficheiros selecionado os ficheiros que se pretende na caixa de seleção e a seguir clicando no botão azul “Download”.

Windows 10 IoT: download

Ao concluir o Download é necessário extrair o seu conteúdo para uma pasta. Recomendo a criação de uma pasta temporária na raiz do disco, por exemplo temp, a mesma contém o ficheiro Flash.ffu que é a imagem do Windows 10 a ser transferida para o cartão SD.

Windows 10 IoT: ficheiros

Antes de colocar o Windows 10 no cartão SD recomendo a formatação do mesmo e para tal utilize a aplicação SDFormatter (https://www.sdcard.org/downloads/formatter_4/). Esta aplicação é gratuita e permite formatar cartões de memória SA, SDHC e SDXC. Com o cartão formatado inicia-se a linha de comandos do Windows com opções administrativas, antes de clicar na aplicação “Linha de comandos” no menu iniciar clique uma vez com o botão direito do rato e selecione a opção “Executar como administrador”. 

Executar aplicação como administrador

Ligue o cartão de memória SD no computador e execute o seguinte comando wmic diskdrive list brief, que vai identificar todos os sistemas de armazenamento que estão ligados no computador. A seguinte imagem mostra que o cartão SD está ligado a um leitor de cartões e que o mesmo está identificado como Device 1.

Windows 10 IoT: formatação do cartão SD

Para transferir a imagem do Windows 10 para o cartão SD é utilizada a aplicação Microsoft Deployment Image Servicing and Management (DISM). Esta aplicação é uma ferramenta de implementação de imagens. A mesma é também é utilizada para implementar a instalação do Windows em USB flash drive (Pen drive).

O DISM já se encontra instalado no Windows mas se utilizar o Windows 7, como a versão está desatualizada, é necessário instalar o Microsoft Windows Assessment and Deployment Kit (ADK) para Windows 10 (http://go.microsoft.com/fwlink/p/?LinkId=526740).

Na instalação do ADK não são necessários todos os componentes, selecione apenas os seguintes:  “Deployment Tools” e “Flashing Tools”.

Windows 10 IoT: escolha dos componentes do ADK

No Windows 7 a 64 bits execute o seguinte comando cd C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\DISM.

No Window7 a 32 bits execute o seguinte comando cd C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\x86\DISM.

No Windows 8 ou superior não é necessário qualquer comando.

Para transferir a imagem execute o seguinte comando dism.exe /Apply-Image /ImageFile:[localização da pasta]Flash.ffu /ApplyDrive:\\.\PhysicalDrive[numero da unidade] /SkipPlatformCheck.

Na seguinte imagem está a ser utilizado o Windows 7 a 64 bits com o ADK a localização do ficheiro está na raiz da unidade C na pasta temp e o cartão SD está identificado como unidade 1.

Win10IOT9

Ao finalizar a transferência da imagem já pode colocar o cartão SD no Raspberry e ligar o mesmo.

A primeira informação que o Raspberry vai mostrar é que está a iniciar Graphics Console Started.

A primeira inicialização do Windows pode demorar alguns minutos e até carregar completamente irá ver o logotipo do Windows 10, só depois um segundo logotipo.

Windows 10 IoT: a carregar Windows 10 IoT: a carregar

Por fim quando carregar completamente o Windows irá mostrar informação com o nome da máquina e endereço IP em que está configurado.

Windows 10 IoT: arranque concluído

Com o Raspberry completamente ligado pode verificar que não existe nenhum sistema de janelas como nas versões de trabalho do Windows. Assim é possível reduzir o consumo de recursos utilizados. Isto já acontece com o Windows Server 2012, em que um administrador de sistema pode instalar um novo servidor sem Graphical user interface (GUI) e fazer toda administração por PowerShell conseguindo assim mais performance.

É possível aceder ao Windows no Raspberry de três formas. Por navegador de internet, FTP ou PowerShell através do endereço de IP. O nome de utilizador por defeito é Administrator e a palavra passe é p@ssw0rd.

Windows 10 IoT: acesso por browser

Por navegador de internet podemos desligar ou reiniciar o equipamento, instalar ou retirar aplicações, ver a performance. Por FTP podemos consultar, inserir, modificar e apagar ficheiros. Por PowerShell podemos fazer a gestão.

Para fazer a gestão por PowerShell recomendo a utilização da aplicação gráfica PowerShell Integrated Scripting Environment (ISE) que está incluída no Windows Management Framework 3.0 (https://www.microsoft.com/en-us/download/details.aspx?id=34595). Após a instalação o PowerShell ISE está disponível no menu iniciar, inicie o mesmo com privilégios administrativos (a mesma opção utilizada quando foi executado a Linha de comandos).

Para executar comandos remotamente é necessário executar o seguinte script:

net start WinRM
Set-Item WSMan :\localhost\Client\TrustedHosts -Value MINWINPC
remove-module psreadline -force
Enter-PsSession -ComputerName MINWINPC -Credential MINWINOC\Administrador

Ao executar o script será solicitado a palavra passe do administrador e por fim é feita a ligação remota.

Windows 10 IoT: ligação remota com PowerShell

Com a ligação efetuada agora pode-se inserir qualquer comando diretamente na sub-janela abaixo. A primeira recomendação é alterar a palavra-passe. Para alterar insira o seguinte comando net user Administrator [nova palavra passe].

Windows 10 IoT: alteração da palavra-passe

Após a confirmação do comando anterior é necessário executar o seguinte comando schtasks /Delete /TN Microsoft\Windows\IoT\Startup /F. Este comando apenas é executado uma vez.

Se quiser alterar a identificação do equipamento o comando é set computername [novo nome]. Para assumir a alteração é necessário reiniciar com o comando shutdown /r /t 0.

A partir agora o Windows 10 no Raspberry Pi 2 B está pronto a ser utilizado. Pode experimentar as demonstrações disponíveis na documentação disponível no Windows Dev Center (http://ms-iot.github.io/content/en-US/win10/StartCoding.htm).

Uma lista de comandos para PowerShell está disponível no Windows Dev Center ( https://ms-iot.github.io/content/en-US/win10/tools/CommandLineUtils.htm).

Acho excelente que a Microsoft continue a apostar no IoT fornecendo uma versão completamente gratuita que permita ao programador interagir com o hardware conseguindo-se assim um modelo de prototipagem em que pode trabalhar diretamente com sensores e outros componentes eletrónicos.

Com convergência de todos os sistemas operativos da Microsoft para uma só plataforma conseguimos criar aplicações universais não só compatíveis com pequenos dispositivos mas também com equipamentos móveis ou industriais.

Windows 10 IoT: convergência de plataformas

Temos também mais vantagens. Com o Raspberry Pi 2 B + Windows 10 conseguimos ter uma forma de aprender a fazer script em PowerShell e a Microsoft continua a inovar e melhorar os seus serviços em nuvem com o Microsoft Azure (http://azure.microsoft.com/pt-pt/) a mesma já disponibiliza um grande conjunto de serviços para IoT para poder receber e processar a informação recolhida dos dispositivos.

Microsoft Azure IoT

Os ficheiros de PowerShell estão no GitHub em: https://github.com/rramoscabral/PowerShell/tree/master/Windows_10/Iot

Publicado na edição 50 (PDF) da Revista PROGRAMAR.