Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

IoT:Windows Remote Arduino e aplicativos universais

Componentes e suprimentos

Arduino UNO
× 1
SparkFun Bluetooth Modem - BlueSMiRF prata
Usei a versão Gold
× 1

Sobre este projeto


Nota:Veja as atualizações nos comentários na parte inferior.

Um aplicativo UWP do Windows 10 pode ser criado com base no cabeamento remoto biblioteca de modo que o aplicativo possa interagir com um dispositivo Arduino executando Firmata. Um aplicativo, semelhante ao exemplo do Windows Remote Arduino “Blinky”, mas com acréscimos de recursos, é desenvolvido. Ele executa GPIO (saída E entrada), bem como algum IO analógico. Este aplicativo é funcionalmente igual à versão do Windows 8.1 no blog anterior desta série. Este blog funciona com o mesmo material (ou seja, repete muito dele) que o blog anterior, mas a partir do contexto da Plataforma Universal do Windows (UWP), em vez do contexto do Windows 8.1 Universal App. O destino do aplicativo é o desktop Win 10, o telefone Win 10 e o Raspberry PI2 (executando o Win 10 IoT). O último alvo é um "trabalho em andamento". Este blog pode ser lido sem referência ao blog anterior.

Este projeto está detalhado em meu blog em http://embedded101.com/Blogs/David-Jones/entryid/636/Windows-10-IoT-Windows-Remote-Arduino-and-Universal-Windows-Platform-Apps

O exemplo do Windows Remote Arduino “Blinky” está em ms-iot.github.io.







Aplicativos universais e aplicativos universais da plataforma Windows


Os aplicativos universais (UA) alcançaram seu apogeu no Windows 8.1. Você pode implementar aplicativos direcionados ao desktop do Windows Intel, ARM RT Surface e Windows Phone (ARM), todos na mesma solução. Eles podem compartilhar código comum, como manipuladores de eventos, computação geral e dados. O código XAML deve ser específico para o destino. Você acabou de compilar os subprojetos separados para cada destino. Durante as compilações, o código comum foi incluído.

Com a mudança de paradigma “One Windows” no Windows 10, o mesmo código para todos os destinos, incluindo o código XAML, pode ser usado para todos os destinos. O mesmo projeto só precisa ser recompilado para destinos diferentes. Com o nome UA aplicado aos aplicativos do Windows 8, um novo nome foi necessário para os aplicativos verdadeiramente universais. Por isso, o nome de aplicativos da Plataforma Universal do Windows foi cunhado para o Windows 10.

Todas as plataformas do Windows 10 oferecem suporte a aplicativos UWP. Mas existem extensões específicas para cada plataforma. Por exemplo, as extensões IoT do Windows 10 oferecem suporte a GPIO, I2C, SPIO, etc. As extensões móveis oferecem suporte a funções de telefone. Etc. UWP fornece uma camada API central garantida em todos os dispositivos.


Os SDKs de extensão do Windows 10. As extensões Desktop, Mobile e IoT são verificadas.

Para este blog, usamos o modelo UWP em vez do UA como no blog anterior. Não precisamos de nenhum SDK de extensão.







[1] Configure a comunicação Bluetooth com o dispositivo Arduino.


Você pode pular esta seção se já tiver feito a atividade do Win 8.1.

USB ou Bluetooth podem ser usados ​​para as comunicações Firmata entre o dispositivo Arduino e o dispositivo Windows. Para Windows 10, ambos podem ser usados, enquanto para Windows 8.1 apenas o Bluetooth pode ser usado. Para esta versão do aplicativo, o Bluetooth será usado. Eu usei um Sparkfun Bluetooth Mate Gold enquanto o Sparkfun Bluetooth Mate Silver foi usado com o exemplo “Blinky” mencionado acima. A principal diferença é que o alcance do Gold é de até 100m enquanto que o do Silver é de 10m. As configurações de handshaking padrão também são diferentes. Ambos têm uma interface UART de nível TTL que pode ser usada tanto para configurar o modo de operação do dispositivo Bluetooth quanto para interagir com a porta serial do Arduino.

Se você precisar configurar o dispositivo Bluetooth, um dispositivo Sparkfun ou Freetronics USB-Serial ou Free pode ser usado para configurar o dispositivo por meio de um terminal serial de desktop. Você também pode redefinir o dispositivo para as configurações padrão, conectando o pino PIO6 (na verdade, é PIO4) em alto e alternando três vezes.

O Bluetooth Mate tem o mesmo pino do Sparkfun FTDI Basic e, portanto, podem ser usados ​​de forma intercambiável. você não pode conectar o Bluetooth Mate diretamente a uma placa FTDI Basic (você terá que trocar TX e RX). Essa configuração pode ser usada com um terminal serial de área de trabalho, com o dispositivo FTDI USB conectado à área de trabalho, para configurar o dispositivo Bluetooth (ou para usar o dispositivo Bluetooth para comunicações seriais a partir da área de trabalho.

As configurações seriais TTL UART padrão são:
  • · Taxa Baud 115.200
  • · 8 bits
  • · Sem paridade
  • · 1 ponto de parada
  • · Controle de fluxo de hardware habilitado (no Mate Silver é nenhum)
  • · Perfil de porta serial (SPP): FireFly-WXYZ
    onde WXYZ são os últimos 4 dígitos do endereço BT MAC do dispositivo.
  • · Senha 1234

Observe que o dispositivo pode armazenar até 8 pares de dispositivos.

A documentação do dispositivo Bluetooth está em:
http://www.sparkfun.com/datasheets/Wireless/Bluetooth/rn-bluetooth-um.pdf

A configuração do Firmata é para uma taxa Baud de 57600 que precisa ser alterada ou o dispositivo Bluetooth configurado para isso. Para este exercício, vamos modificar a configuração do Firmata, que é a abordagem mais fácil. O fluxo de controle do hardware também pode ser gerenciado configurando o dispositivo Bluetooth, mas para este exercício é gerenciado conectando RTS ao CTS.

Enquanto o dispositivo Bluetooth pode ser montado em uma placa de ensaio e conectado ao dispositivo Arduino a partir daí, optei por montar um soquete para ele em um escudo de prototipagem.

Um Arduino Shield Header de 6 pinos foi soldado ao dispositivo Bluetooth nos pinos TTL UART com o soquete voltado para fora. Os pinos foram dobrados 900 para baixo para que o dispositivo possa ser conectado verticalmente em outro conector de proteção. O soquete BT pode então ser usado para conectá-lo diretamente ao módulo FTDI Basic montado de forma semelhante, se a configuração for necessária. Um fio foi posteriormente soldado ao PIO6 (PIO4) no módulo Bluetooth, para redefinição de fábrica.

Figura 3 Módulo Bluetooth com cabeçalho de proteção nos pinos UART e cabeçalhos de proteção

Um cabeçalho de 8 blindagem foi montado no meio da blindagem do protótipo na parte inferior. Adicione também cabeçalhos na parte externa da blindagem para que ele possa se conectar diretamente ao Uno.

Figura 4 Arduino Prototype Shield para montagem do módulo Bluetooth

O módulo Bluetooth é então inserido voltado para os pinos GPIO, em direção aos pinos 0 e 1 (Rx / Tx), deixando o local amarelo claro. Um deles pode ser usado como um local temporário para o fio de redefinição de fábrica.

Figura 6 Módulo Bluetooth montado no dispositivo Arduino







[2] Configurar Firmata


Você pode pular esta seção se já tiver feito a atividade do Win 8.1.

Nota: Os pinos 0 e 1 do UART do Arduino Uno não estão disponíveis quando estão sendo programados via USB a partir do IDE do Arduino. Esses mesmos pinos são os que são conectados à interface TTL UART do módulo Bluetooth quando ele faz interface para comunicações Firmata. Portanto, quando o dispositivo Arduino for programado nesta seção, o dispositivo Bluetooth não deve ser conectado.

2.1 Supondo que você tenha desenvolvido anteriormente para um dispositivo Arduino (Uno), crie um novo escudo Firmata padrão:

2.2 Há uma alteração a ser feita, a taxa Baud. No IDE, faça uma busca por 57600. Substitua 115200. Salve o Sketch, chamei-o de Firmata_115200. Programe o Uno e esta parte está feita.







[3] Configure a pilha de software Universal App Firmata


Esta seção é apenas um pouco diferente daquela já realizada na atividade do Win 8.1.

A pilha de software consiste em três camadas:

A API Remote-Wiring implementa propriedades (configuração), métodos e eventos em um nível conceitualmente alto para interação de hardware do Arduino. Por exemplo, GPIO (por exemplo, Get e Set Pin, On Pin alterado etc). Ele se comunica com a camada Firmata usando o protocolo Firmata. Firmata se comunica pela pilha por meio do protocolo serial que é implementado como camadas de transporte Bluetooth e USB-Serial na camada Serial. A opção USB não está disponível para Windows 8.1.

Esta pilha de software chamada está disponível para duas fontes:
  1. https://github.com/ms-iot/windows-remote-arduino-samples
  2. https://github.com/ms-iot/remote-wiring/

Ambos contêm versões do Windows 8.1 e Windows 10. Embora as versões do Windows 10 de ambas as versões sejam compiladas, descobri que o Windows 8.1 da segunda não será compilado. Usei a versão RC do Visual Studio 2015:
  • Microsoft Visual Studio Community 2015 RC
  • Versão 14.0.22823.1 D14REL
  • Microsoft .NET Framework
  • Versão 4.6.00076

3.1 Baixe a primeira versão. Para fazer isso corretamente, você precisa clonar o repositório (não baixe o zip):
  • Instale git ou GitHub
  • No shell git ou GitHub Desktop Shell (é o Powershell), digite o seguinte em um diretório adequado:
     git clone --recursive https://github.com/ms-iot/windows-remote-arduino-samples.git 

    A estrutura do diretório que você obtém é:

windows-remote-arduino-samples o cabeamento remoto Microsoft.Maker.win8_1 Microsoft.Maker.win10 fonte o win8_1 o win10

As duas últimas pastas (win8_1 e win10) são apenas aplicativos de exemplo (incluindo o exemplo “blinky”) que iremos ignorar por enquanto. Ambas as versões do Maker usam a mesma pasta de fontes, portanto, para o Windows 10, precisamos apenas:

windows-remote-arduino-samples o cabeamento remoto Microsoft.Maker.win10 fonte

para uma pasta adequada. Eu sugiro um na raiz da unidade, digamos, c:\ wras10, pois descobri que você pode obter alguns erros com uma compilação de ARM devido a nomes de caminho serem muito longos. Você também pode copiar os arquivos .md para referência. Eles podem ser abertos no VS.

3.2 Abra o arquivo de solução em Microsoft.Maker.win10

3.3 Defina o destino como Win32 para construir a solução.

Três compilações estão concluídas. Um para cada uma das três camadas da pilha de software.

3.4 Faça o mesmo para a configuração ARM. Se você tem uma máquina x64, também pode tentar essa versão.







[4] Crie o aplicativo HW LED UWP


Há um "curto-circuito" nesta seção para aqueles que fizeram a atividade anterior do Win 8.1.

Para esta versão inicial do (s) aplicativo (s), um botão de software acenderá um LED de hardware e outro o apagará. O LED será conectado ao pino 5 do GPIO.

A documentação do “Blinky” diz que existem várias maneiras de obter e usar essas bibliotecas. Em última análise, o Nuget será o caminho, mas ainda não está disponível. Você pode fazer referência a essas versões construídas de uma maneira geral em seu sistema de desenvolvimento. A maneira mais fácil é apenas adicionar o aplicativo Universal necessário à solução e fazer referência a eles. Usaremos esse método.

4.1 Adicionar um novo aplicativo C # Windows Blank Universal à solução . (Observe, não o Windows 8.1 desta vez):

Dê a ele um nome adequado. Chamei o meu de wrauwp:aplicativo Windows Remote Arduino Universal UWP.
Observe que, desta vez, há apenas UM projeto criado (UWP). O código XAML e CSharp é o mesmo para as versões desktop e móvel do aplicativo. A diferença está em como ele é compilado.

Os recursos serial e Bluetooth são necessários no manifesto pacakage:

4.2 Abra o package.appmanifest no editor de texto (não em sua GUI) por View Code. O recurso Cliente da Internet está incluído na parte inferior. Modifique esta seção para:

Em packkage.appmanifest





Além disso, se estivéssemos usando USB-Serial em vez de Bluetooth-Serial no desktop, adicionaríamos um recurso para isso.

É necessária uma referência a cada uma das camadas de software relevantes:

4.3 Adicionar referências Firmata, RemoteWiring e Serial para o desktop UA (novamente só precisa fazer isso para um projeto):


DICA: Para aqueles que já fizeram o Windows 8.1 anterior, você pode agora dar um curto-circuito no que se segue :
  • Copie o código xml da grade desse projeto para MainPage.xaml neste novo projeto.
  • Agora você pode pular para o teste do aplicativo no (s) destino (s)

Para aqueles que continuam aqui…

4.4 Modificar o Grid XAML do UA para:

MainPage.xaml:UI


Comentário Desta vez, temos apenas um MainPage.cs, pois há apenas um projeto de aplicativo ... Um Windows.
Anteriormente, havia um para a área de trabalho e outro para o telefone, o que tornamos comum colocando uma versão no subprojeto de compartilhamento.

Todo o código cs se referirá a MainPage.cs

4.7 Na classe MainPage, adicione as seguintes declarações no início da classe:

MainPage.cs Declarations

// Usb não é compatível com Win8.1. Para ver as etapas de conexão USB, consulte a solução win10. BluetoothSerial bluetooth; RemoteDevice arduino; // Os pinos usados. Nota:Números PIN reais. private const int LED_PIN =5;



4.8 no construtor MainPage, após InitializeComponent () adicione:

Em MainPage () o construtor

bluetooth =new BluetoothSerial ("FireFly-748B"); arduino =novo RemoteDevice (bluetooth); bluetooth.ConnectionEstablished + =OnConnectionEstablished;



Substitua FireFly-748B pelo seu SPP.

4.9 Implemente OnConnectionEstablished adicionando o seguinte método à classe:

Adicionar OnConnectionEstablished ()

private void OnConnectionEstablished () { // habilite os botões na linha de execução da IU! var action =Dispatcher.RunAsync (Windows.UI.Core.CoreDispatcherPriority.Normal, new Windows.UI.Core.DispatchedHandler (() => { this.OnButton.IsEnabled =true; isso. OffButton.IsEnabled =true; arduino.pinMode (LED_PIN, PinMode.OUTPUT); })); }

4.10 E, finalmente, adicione os manipuladores de eventos para os botões à classe:

Adicionar manipuladores de eventos de botão

private void OnButton_Click (object sender, RoutedEventArgs e) { // LIGUE o LED conectado ao pino 5 arduino.digitalWrite (5, PinState.HIGH); } private void OffButton_Click (objeto remetente, RoutedEventArgs e) { // DESLIGUE o LED conectado ao pino 5 arduino.digitalWrite (5, PinState.LOW); }

4.11 Teste a compilação do aplicativo UWP em configurações x86, x64 e ARM







[5] Implementação e teste de aplicativos universais.


Nesta seção, conectaremos o LED de hardware ao dispositivo Arduino e executaremos o aplicativo na área de trabalho e um Windows 10 Phone *

Teste em seu desktop

5.1 Definir o aplicativo Desktop como o projeto de inicialização

5.2 Defina o destino como x86 e Máquina Local. Reconstrua o aplicativo UWP da área de trabalho

5.3 Conecte o Pin 5 do Arduino a um LED de hardware. Fornece GND, VCC e um resistor adequado em série.

Conforme mencionado em um blog anterior a respeito de Windows 10 IoT Raspberry PI 2 GPIO Eu uso uma placa de desenvolvimento para implementar meu IO de teste, como LEDs, interruptores etc. Se você não tiver uma placa semelhante, você pode querer usar o Configuração de hardware “Blinky” mas você precisará inverter a polaridade da configuração do pino nos manipuladores de botão.

5.4 Ligue o dispositivo Arduino e emparelhe o módulo Bluetooth com seu desktop (Passkey =1234). .. Presumo que você saiba como fazer isso.

5.5. Execute o aplicativo.

5.6 Provavelmente, ele irá perguntar a você se está tudo bem para o aplicativo se conectar ao dispositivo Bluetooth. OK

5.7 Teste a funcionalidade do aplicativo. Defina um ponto de interrupção no (s) manipulador (es) de botão e verifique se você pode depurar.

5.8 Repita 4.1 a 4.6 para x64 se você tiver uma área de trabalho de 64 bits.

5.9 Desligue o Bluetooth em seu desktop

Agora, para testar seu Windows 10 Phone, presumindo que o telefone esteja configurado para desenvolvimento.

5.10 Ligue o telefone, vá para Configurações / Bluetooth e ligue-o. Emparelhe com o módulo Bluetooth (senha =1234).

5.11 Continuando com o aplicativo Windows Universal como o projeto de inicialização ..

5.12 Defina o alvo para ARM ,, dispositivo e reconstrua

5.11 Conecte o telefone via USB Serial à área de trabalho e implante o aplicativo.

Agora, para testar o Raspberry PI 2

ESTE É UM TRABALHO EM ANDAMENTO. VEJA A NOTA NO FINAL DESTA SEÇÃO

5.13 O depurador remoto já está instalado e ativo no RPI2 configurado para Win 10 IoT.

5.14 Determine o endereço IP do RPI2, por exemplo, com o Windows IoT Core Watcher

5.15 Em Propriedades do Projeto-Depurar defina o destino como Máquina Remota, Sem autenticação e insira o endereço IP

5.16 Reconstrua o aplicativo UWP

5.17 Implante e teste o aplicativo no RPI2.

Ainda não tenho a versão RPI2 para conectar via Bluetooth:
  • Bluetooth em geral ainda não é compatível
  • Deixe comentários se tiver alguma ideia ou sucesso com isso.
  • Vou atualizar aqui quando eu fizer progresso
O dongle Bluetooth está carregado no RPI2



[6] "embelezar" a interface do usuário


O seguinte irá embelezar a IU e adicionar botões Bluetooth Connect e Disconnect.

6.1 Modifique o código UI GRID XAML para ( PS:observe a alteração nas linhas da grade dos botões anteriores ):

Adicione dois botões & amp; amp;

Código

  • WindowsRemoteArduino_Win10.zip
WindowsRemoteArduino_Win10.zipC#
An extended version of "Blinky"
Input, Output, Analog Input
Fancier UI
No preview (download only).

Esquemas


Processo de manufatura

  1. Controle remoto universal Raspberry Pi
  2. Windows IoT:Porta de reconhecimento facial
  3. Windows 10 IoT Core e SHT15
  4. Windows 10 IoT Core para Raspberry Pi 3 Modelo B +
  5. GoPiGo v2 com Windows IoT
  6. Os aplicativos e dispositivos que dão suporte a equipes de cadeia de suprimentos remotas
  7. Controle remoto universal usando Arduino, 1Sheeld e Android
  8. Animação de LCD e jogos
  9. Guia para PCBs e IoT
  10. Cisco apresenta soluções de monitoramento remoto de IoT para TI e OT