Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

IoT:Aplicaciones universales y Arduino remoto de Windows

Componentes y suministros

Arduino UNO
× 1
Módem Bluetooth SparkFun - BlueSMiRF Silver
Usé la versión Gold
× 1

Acerca de este proyecto

Nota:vea las actualizaciones en los comentarios en la parte inferior.

Se puede crear una aplicación de Windows 10 para UWP sobre Cableado remoto biblioteca de modo que la aplicación pueda interactuar con un dispositivo Arduino que ejecute Firmata. Se desarrolla una aplicación similar al ejemplo "Blinky" de Windows Remote Arduino, pero con funciones adicionales. Realiza GPIO (salida Y entrada) así como algunas E / S analógicas. Esta aplicación es funcionalmente igual a la versión de Windows 8.1 en el blog anterior de esta serie. Este blog funciona con el mismo material (es decir, lo repite en gran parte) que el blog anterior, pero desde el contexto de la Plataforma universal de Windows (UWP) en lugar del contexto de la aplicación universal de Windows 8.1. El objetivo de la aplicación es el escritorio Win 10, el teléfono Win 10 y Raspberry PI2 (con Win 10 IoT). El último objetivo es un "trabajo en progreso". Este blog se puede leer sin referencia al blog anterior.

Este proyecto se detalla en mi blog en http://embedded101.com/Blogs/David-Jones/entryid/636/Windows-10-IoT-Windows-Remote-Arduino-and-Universal-Windows-Platform-Apps

El ejemplo de Windows Remote Arduino "Blinky" está en ms-iot.github.io.


Aplicaciones universales y aplicaciones de la plataforma universal de Windows

Las aplicaciones universales (UA) alcanzaron su cenit en Windows 8.1. Podía implementar aplicaciones dirigidas al escritorio de Windows Intel, ARM RT Surface y Windows Phone (ARM), todo en la misma solución. Podrían compartir código común, como controladores de eventos, cálculo general y datos. El código XAML tenía que ser específico para el destino. Acaba de compilar los subproyectos separados para cada objetivo. Durante las compilaciones, se incluyó el código común.

Con el cambio de paradigma "One Windows" en Windows 10, se puede usar el mismo código para todos los destinos, incluido el código XAML, para todos los destinos. Solo es necesario volver a compilar el mismo proyecto para diferentes objetivos. Con el nombre de UA aplicado a las aplicaciones de Windows 8, se necesitaba un nuevo nombre para las aplicaciones verdaderamente universales. De ahí que se acuñó el nombre de aplicaciones de la Plataforma universal de Windows para Windows 10.

Todas las plataformas de Windows 10 admiten aplicaciones para UWP. Pero hay extensiones específicas para cada plataforma. Por ejemplo, las extensiones de Windows 10 IoT son compatibles con GPIO, I2C, SPIO, etc. Las extensiones móviles son compatibles con las funciones del teléfono. Etc. UWP proporciona una capa de API central garantizada en todos los dispositivos.


Los SDK de extensión de Windows 10. Las extensiones de Escritorio, Móvil e IoT están marcadas.

Para este blog usamos la plantilla UWP en lugar del UA como en el blog anterior. No necesitamos ninguno de los SDK de extensión.


[1] Configure la comunicación Bluetooth con el dispositivo Arduino.

Puede omitir esta sección si ya ha realizado la actividad de Win 8.1.

Se puede usar USB o Bluetooth para las comunicaciones Firmata entre el dispositivo Arduino y el dispositivo Windows. Para Windows 10 se pueden usar ambos, mientras que para Windows 8.1 solo se puede usar Bluetooth. Para esta versión de la aplicación, se utilizará Bluetooth. Usé un Sparkfun Bluetooth Mate Gold mientras que el Sparkfun Bluetooth Mate Silver se usó con el ejemplo "Blinky" mencionado anteriormente. La principal diferencia es que el alcance del Gold es de hasta 100 m, mientras que el del Silver es de 10 m. La configuración predeterminada del protocolo de enlace también es diferente. Ambos tienen una interfaz UART de nivel TTL que se puede utilizar tanto para configurar el modo de funcionamiento del dispositivo Bluetooth como para interactuar con el puerto serie Arduino.

Si necesita configurar el dispositivo Bluetooth, se puede usar un dispositivo Sparkfun o Freetronics USB-Serial o Free para configurar el dispositivo a través de un terminal serial de escritorio. También puede restablecer de fábrica el dispositivo a la configuración predeterminada conectando el pin PIO6 (en realidad, PIO4) a alto y alternar tres veces.

Bluetooth Mate tiene el mismo pin que el Sparkfun FTDI Basic, por lo que se pueden usar indistintamente. no puede conectar directamente el Bluetooth Mate a una placa FTDI Basic (tendrá que intercambiar TX y RX). Esa configuración se puede usar con un terminal serial de escritorio, con el dispositivo FTDI USB conectado al escritorio, para configurar el dispositivo Bluetooth (o para usar el dispositivo Bluetooth para comunicaciones seriales desde el escritorio.

La configuración de serie TTL UART predeterminada es:

  • · Velocidad en baudios 115,200
  • · 8 bits
  • · Sin paridad
  • · 1 bit de parada
  • · Control de flujo de hardware habilitado (en Mate Silver esto es Ninguno)
  • · Perfil de puerto serie (SPP): FireFly-WXYZ
    donde WXYZ son los últimos 4 dígitos de la dirección BT MAC del dispositivo.
  • · Contraseña 1234

Tenga en cuenta que el dispositivo puede almacenar hasta 8 emparejamientos de dispositivos.

La documentación del dispositivo Bluetooth se encuentra en:
http://www.sparkfun.com/datasheets/Wireless/Bluetooth/rn-bluetooth-um.pdf

La configuración de Firmata es para una velocidad en baudios de 57600 que debe cambiarse o el dispositivo Bluetooth configurado para eso. Para este ejercicio, modificaremos la configuración de Firmata, que es el enfoque más sencillo. El flujo de control del hardware también puede manejarse configurando el dispositivo Bluetooth, pero para este ejercicio se maneja conectando RTS a CTS.

Si bien el dispositivo Bluetooth puede montarse en una placa de pruebas y conectarse al dispositivo Arduino desde allí, elegí montar un enchufe para él en un protector de prototipos.

Se soldó un encabezado Arduino Shield de 6 pines al dispositivo Bluetooth en los pines TTL UART con el zócalo hacia afuera. Los pines se doblaron 900 hacia abajo para que el dispositivo se pueda enchufar verticalmente en otro cabezal de protección. El enchufe BT se puede usar para conectarlo directamente al módulo básico FTDI montado de manera similar si se requiere configuración. Posteriormente, se soldó un cable a PIO6 (PIO4) en el módulo Bluetooth, para restablecer los valores de fábrica.

Figura 3 Módulo Bluetooth con encabezado de protección en los pines UART y encabezados de protección

Se montó un cabezal de 8 escudos en el medio del escudo prototipo en la parte inferior. También agregue encabezados en el exterior del escudo para que pueda conectarse directamente al Uno.

Figura 4 Arduino Prototype Shield para montar el módulo Bluetooth

Luego, el módulo Bluetooth se inserta mirando hacia los pines GPIO, hacia los pines 0 y 1 (Rx / Tx)., Dejando la ubicación amarilla clara. Uno de esos se puede utilizar como ubicación temporal para el cable de restablecimiento de fábrica.

Figura 6 Módulo Bluetooth montado en dispositivo Arduino


[2] Configurar Firmata

Puede omitir esta sección si ya ha realizado la actividad de Win 8.1.

Nota: Los pines 0 y 1 de UART de Arduino Uno no están disponibles cuando se está programando a través de USB desde el IDE de Arduino. Estos mismos pines son los que se conectan a la interfaz TTL UART del módulo Bluetooth cuando se interconecta para las comunicaciones Firmata. Por lo tanto, cuando se va a programar el dispositivo Arduino en esta sección, el dispositivo Bluetooth no debe estar conectado.

2.1 Suponiendo que ha desarrollado previamente para un dispositivo Arduino (Uno), cree un nuevo escudo Standard Firmata:

2.2 Se debe realizar un cambio, la velocidad en baudios. En el IDE, haga una búsqueda de 57600. Reemplácelo por 115200. Guarde el boceto, lo llamé Firmata_115200. Programe el Uno y esta parte está lista.


[3] Configurar la pila de software de Universal App Firmata

Esta sección solo es ligeramente diferente a la que ya realizó la actividad de Win 8.1.

La pila de software consta de tres capas:

La API de cableado remoto implementa propiedades (configuración), métodos y eventos a un nivel conceptualmente alto para la interacción del hardware Arduino. Por ejemplo, GPIO (p. Ej. Obtener y establecer pin, On Pin cambiado, etc.). Se comunica con la capa Firmata mediante el protocolo Firmata. Firmata se comunica con la pila a través del protocolo serial que se implementa como capas de transporte Bluetooth y USB-Serial en la capa serial. La opción USB no está disponible para Windows 8.1.

Esta pila de software llamada está disponible para dos fuentes:

  1. https://github.com/ms-iot/windows-remote-arduino-samples
  2. https://github.com/ms-iot/remote-wiring/

Ambos contienen versiones de Windows 8.1 y Windows 10. Si bien se compilarán las versiones de Windows 10 de ambas versiones, he descubierto que el Windows 8.1 de la segunda no se compilará. Usé la versión de Visual Studio 2015 RC:

  • Microsoft Visual Studio Community 2015 RC
  • Versión 14.0.22823.1 D14REL
  • Microsoft .NET Framework
  • Versión 4.6.00076

3.1 Descarga la primera versión. Para hacerlo correctamente, debe clonar el repositorio (no descargue el zip):

  • Instale git o GitHub
  • En git shell o GitHub Desktop Shell (es Powershell), ingrese lo siguiente desde un directorio adecuado:
     git clone --recursive https://github.com/ms-iot/windows-remote-arduino-samples.git 

    La estructura de directorio de lo que obtiene es:

windows-remote-arduino-samples o cableado remoto Microsoft.Maker.win8_1 Microsoft.Maker.win10 fuente o win8_1 o win10

Las dos últimas carpetas (win8_1 y win10) son solo aplicaciones de ejemplo (incluido el ejemplo "blinky") que ignoraremos por ahora. Ambas versiones de Maker utilizan la misma carpeta de fuentes, por lo que para Windows 10 solo necesitamos:

windows-remote-arduino-samples o cableado remoto Microsoft.Maker.win10 fuente

a una carpeta adecuada. Sugiero uno en la raíz de la unidad, por ejemplo, c:\ wras10, ya que descubrí que puede obtener algunos errores con una compilación ARM relacionados con nombres de ruta demasiado largos. Es posible que desee copiar también los archivos .md como referencia. Estos se pueden abrir en VS.

3.2 Abra el archivo de solución en Microsoft.Maker.win10

3.3 Establezca el destino en Win32 para construir la solución.

Se hacen tres construcciones. Uno para cada una de las tres capas de la pila de software.

3.4 Haga lo mismo para la configuración ARM. Si tiene una máquina x64, es posible que desee probar esa compilación también.


[4] Cree la aplicación HW LED UWP

Hay un "cortocircuito" en esta sección para aquellos que han realizado la actividad anterior de Win 8.1.

Para esta versión inicial de la aplicación, un botón de software encenderá un LED de hardware y otro lo apagará. El LED se conectará al pin 5 de GPIO.

La documentación de "Blinky" dice que hay varias formas de obtener y utilizar estas bibliotecas. En última instancia, Nuget será el camino, pero aún no está disponible. Puede hacer referencia a estas versiones compiladas de manera general en su sistema de desarrollo. La forma más fácil es simplemente agregar la aplicación Universal requerida a la solución y hacer referencia a ellas. Usaremos ese método.

4.1 Agregue una nueva aplicación C # Windows Blank Universal a la solución . (Tenga en cuenta que esta vez no Windows 8.1):

Dale un nombre adecuado. Llamé al mío wrauwp:Windows Remote Arduino Universal app UWP.
Tenga en cuenta que esta vez solo se creó UN proyecto (UWP). El código XAML y CSharp es el mismo para las versiones de escritorio y móviles de la aplicación. La diferencia está en cómo se compila.

Las capacidades serie y Bluetooth son necesarias en el manifiesto de pacakage:

4.2 Abra el package.appmanifest en el editor de texto (no su GUI) por Ver código. La capacidad del Cliente de Internet se incluye en la parte inferior. Modifique esta sección para:

En packkage.appmanifest

Además, si estuviéramos usando USB-Serial en lugar de Bluetooth-Serial en el escritorio, agregaríamos una capacidad para eso.

Se requiere una referencia a cada una de las capas de software relevantes:

4.3 Agregue referencias Firmata, RemoteWiring y Serial para el escritorio UA (nuevamente solo es necesario hacer esto para un proyecto):

SUGERENCIA: Para aquellos que ya han hecho la versión anterior de Windows 8.1, ahora pueden cortocircuitar lo que sigue :

  • Copie el código xml de la cuadrícula de ese proyecto a MainPage.xaml en este nuevo proyecto.
  • Ahora puede pasar a probar la aplicación en los objetivos

Para aquellos que continúan aquí ...

4.4 Modifique el XAML de cuadrícula de UA para:

MainPage.xaml:UI

Comentar Solo tenemos un MainPage.cs esta vez, ya que solo hay un proyecto de aplicación… Una Windows.
Anteriormente había uno para el escritorio y otro para el teléfono, que hicimos común al colocar una versión en el subproyecto compartido.

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

4.7 En la clase MainPage agregue las siguientes declaraciones en la parte superior de la clase:

Declaraciones de MainPage.cs

// Usb no es compatible con Win8.1. Para ver los pasos de la conexión USB, consulte la solución win10. BluetoothSerial bluetooth; Arduino RemoteDevice; // Los pines utilizados. Nota:números PIN reales. const privado int LED_PIN =5;

4.8 en el constructor MainPage, después de InitializeComponent () agregue:

En MainPage () el constructor

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

Reemplace FireFly-748B con su SPP.

4.9 Implementar OnConnectionEstablished agregando el siguiente método a la clase:

Agregar OnConnectionEstablished ()

vacío privado OnConnectionEstablished () { // ¡habilita los botones en el hilo de la interfaz de usuario! var action =Dispatcher.RunAsync (Windows.UI.Core.CoreDispatcherPriority.Normal, nuevo Windows.UI.Core.DispatchedHandler (() => { this.OnButton.IsEnabled =true; esto. OffButton.IsEnabled =true; arduino.pinMode (LED_PIN, PinMode.OUTPUT); })); }

4.10 Y finalmente agregue los controladores de eventos para los botones a la clase:

Agregar controladores de eventos de botón

private void OnButton_Click (remitente del objeto, RoutedEventArgs e) { // enciende el LED conectado al pin 5 arduino.digitalWrite (5, PinState.HIGH); } private void OffButton_Click (remitente del objeto, RoutedEventArgs e) { // apaga el LED conectado al pin 5 arduino.digitalWrite (5, PinState.LOW); }

4.11 Pruebe la compilación de la aplicación para UWP en configuraciones x86, x64 y ARM


[5] Implementar y probar las aplicaciones universales.

En esta sección conectaremos el LED de hardware al dispositivo Arduino y ejecutaremos la aplicación en el escritorio y en un Windows 10 Phone *

Prueba en tu escritorio

5.1 Configurar la aplicación de escritorio como proyecto de inicio

5.2 Establezca el destino en x86 y máquina local. Reconstruir la aplicación de escritorio para UWP

5.3 Conecte el Pin 5 de Arduino a un LED de hardware. Proporcione GND, VCC y una resistencia adecuada en serie.

Como se mencionó en un blog anterior con respecto a Windows 10 IoT Raspberry PI 2 GPIO Utilizo una placa de desarrollo para implementar mi IO de prueba, como LED, interruptores, etc. Si no tiene una placa similar, es posible que desee utilizar la Configuración de hardware "Blinky" pero deberá invertir la polaridad de la configuración de los pines en los controladores de botones.

5.4 Encienda el dispositivo Arduino y empareje el módulo Bluetooth con su escritorio (contraseña =1234). .. Asumiré que sabes cómo hacer esto.

5.5. Ejecute la aplicación.

5.6 Probablemente le preguntará si está bien que la aplicación se conecte al dispositivo Bluetooth .. OK

5.7 Pruebe la funcionalidad de la aplicación. Establezca un punto de interrupción en los controladores de botones y compruebe que puede depurar.

5.8 Repita 4.1 a 4.6 para x64 si tiene un escritorio de 64 bits.

5.9 Apague Bluetooth en su escritorio

Ahora para probar su Windows 10 Phone, asumiendo que el teléfono está configurado para desarrollo.

5.10 Encienda su teléfono, vaya a Configuración / Bluetooth y enciéndalo. Emparéjelo con el módulo Bluetooth (contraseña =1234).

5.11 Continuando con la aplicación Windows Universal como proyecto de inicio.

5.12 Establecer el objetivo en ARM ,, Dispositivo y reconstruir

5.11 Conecte el teléfono a través de USB Serial al escritorio e implemente la aplicación.

Ahora para probar Raspberry PI 2

ESTE ES UN TRABAJO EN CURSO. VER NOTA AL FINAL DE ESTA SECCIÓN

5.13 El depurador remoto ya está instalado y activo en el RPI2 configurado para Win 10 IoT.

5.14 Determine la dirección IP del RPI2, por ejemplo, con Windows IoT Core Watcher

5.15 En Propiedades del proyecto-Depurar, configure el destino en Máquina remota, Sin autenticación e ingrese la dirección IP

5.16 Reconstruir la aplicación para UWP

5.17 Implemente y pruebe la aplicación en el RPI2.

Todavía no tengo la versión RPI2 para conectarme a través de Bluetooth:

  • Bluetooth en general aún no es compatible
  • Por favor, deje algún comentario si tiene alguna idea o si tiene éxito con esto.
  • Actualizaré aquí cuando avance
El dongle Bluetooth está cargado en el RPI2

[6] Mejora la interfaz de usuario

Lo siguiente mejorará la interfaz de usuario y agregará botones de conexión y desconexión de Bluetooth.

6.1 Modifique el código XAML de la cuadrícula de la interfaz de usuario a ( PD:tenga en cuenta el cambio en las filas de la cuadrícula de botones anteriores ):

Agregar dos botones & amp; amp;

Conectar

Proceso de manufactura

  1. Mando a distancia universal Raspberry Pi
  2. Windows IoT:puerta de reconocimiento facial
  3. Windows 10 IoT Core y SHT15
  4. Windows 10 IoT Core para Raspberry Pi 3 Modelo B +
  5. GoPiGo v2 con Windows IoT
  6. Las aplicaciones y dispositivos que admiten equipos de cadena de suministro remota
  7. Control remoto universal usando Arduino, 1Sheeld y Android
  8. Animación LCD y juegos
  9. IOT - Smart Jar usando ESP8266, Arduino y sensor ultrasónico
  10. Guía de PCB e IoT
  11. Cisco presenta soluciones de monitoreo remoto de IoT para TI y OT