Cómo crear una aplicación para windows 10 arduino (para principiantes)

Microsoft va all-in por Windows 10, finalmente, realizar el sueño de tener aplicaciones que se ejecutan multiplataforma. En combinación con el apoyo oficial para Arduino, usted tiene una nueva y poderosa herramienta a su disposición: la posibilidad de crear fácilmente aplicaciones de Windows universal que tienen una conexión de hardware para el mundo real.

He aquí cómo empezar, incluso si nunca ha programado una aplicación de Windows antes.

Antes de seguir leyendo, echa un vistazo a la demo de lo que vamos a hacer.

Debo señalar, no he utilizado Visual Studio, o incluso tocado C #, desde hace unos 10 años. Voy a esto desde la perspectiva de una nueva instalación de Visual Studio, y después de haber olvidado todo lo que sé.

Si usted está ya bastante experiencia con la programación de aplicaciones de Windows, o incluso en busca de una forma sencilla de empezar con la programación en Windows sin estas cosas Arduino, trate de Ryan Guía para hacer un simple aplicación de Visual Basic. principiantes absolutos de programación pueden querer retirar mi programación 101 (y parte 2) Artículo primero.Cómo usted puede hacer su propia aplicación sencilla con VBACómo usted puede hacer su propia aplicación sencilla con VBAPara aquellos de ustedes que realmente aman a ser capaz de escribir su propia aplicación, pero nunca han escrito una sola línea de código antes, voy a caminar a través de hacer su muy ...Lee mas

Usted debe estar familiarizado con algunos Arduino proyectos de principiantes (Y tal vez incluso leer nuestra Guía Arduino), Pero esto probablemente será la primera vez que se ha intentado crear un poco real de software de computadora para interactuar con él.

descargas

Primero: hay que unirse al Programa de información privilegiada de Windows para obtener la última edición de previsualización Visual Studio 2015, y la última versión de Windows 10 Vista previa. Hacerlo ahora - es gratis. Windows 10 es una vista previa para desarrolladores, y no debe ser instalado como sistema operativo principal. Es con errores como el demonio.

  • Participar en el programa de Windows privilegiada y descarga Windows 10 Technical Preview
  • Obtener la vista previa de Visual Studio 2015 Community Edition (con herramientas de desarrollo de Windows 10).

Estudio visual es propio entorno de desarrollo de Microsoft que vamos a utilizar para crear una aplicación de Windows en C #.

¿Por qué C #? Con fuertes similitudes con Java, que es un lenguaje de programación relativamente fácil para los principiantes para conseguir una aplicación de trabajo en funcionamiento, pero lo suficientemente potente que puede pasar a crear algunas aplicaciones impresionantes (incluso juegos: C # es el lenguaje de programación Unidad de elección - cheque nuestra libro electrónico gratuito, Guía para principiantes a la programación de un juego con la Unidad).Programación de un juego con la Unidad: una guía para principiantesProgramación de un juego con la Unidad: una guía para principiantesEn el paisaje evolutivo de desarrollo de juegos indie, la Unidad se ha convertido en algo así como un estándar de facto: su bajo costo, facilidad de uso y amplio conjunto de características lo hacen ideal para el desarrollo de juegos rápida.Lee mas

Si no lo ha hecho, descargue el Arduino IDE desde el sitio oficial Arduino.cc, e instalar el firmata norma sobre el tablero. Lo encontrará bajo Ejemplos -gt; firmata -gt; Firmata estándar. Esto sólo lo convierte en un dispositivo de “tonto” de serie, que hará lo que nuestra aplicación le dice que - no habrá ninguna lógica de aplicación en la propia placa, simplemente una interfaz entre nuestra aplicación, y los dispositivos sensores o de salida conectado al Arduino .

En términos de cableado, puede pegarse un LED directamente al pin 13 y GND como abajo, o utilizar el LED bordo. También tendrá una resistencia variable (He usado un potenciómetro lineal 10k) de entrar en A0 (con las piernas apropiados en GND y + 5V también, obviamente).

Arduino-Windows 10-demo

Por último, descargue el paquete de cableado remoto desde GitHub. Esta es la capa tenemos que añadir que permitirá a nuestra aplicación de Windows para hablar con el Arduino.

Crear una aplicación

Vaya por delante y abrir Visual Studio. Si esta es la primera vez que ejecuta este programa, se le dará la opción de iniciar sesión. No haga caso de que si te gusta. Escoger Visual C # como opción de desarrollo y continue- de cualquier manera, se tarda unos pocos minutos para preparar Visual Studio para el primer uso.

Crear un nuevo proyecto, utilizando la plantilla Visual C # -gt; Aplicación en blanco (Windows universal). Llamé a la mina “Prueba Arduino”, pero eso no importa.

nuevos do sostenido ventanas de aplicaciones universales

En este punto, me encontré con un error de tener que cambiar de ventana 10 en el modo de programador si quería realmente ejecutar la aplicación. Seguir adelante y hacer esto, sin embargo si usted encuentra su acumulación de Windows 10 está rompiendo en ese entorno, es un error conocido y necesitará utilizar el editor de directivas de grupo para habilitar el modo de desarrollador.

A continuación, haga clic derecho en cualquier parte del Explorador de la solución (Eso es lo más a la derecha) y seleccione Añadir -gt; Proyecto existente.

Explorador de soluciones añadir proyectos

Navegar a donde descargó los archivos de cableado remoto desde Github - si se ha descomprimido, debe ser una carpeta llamada remoto cableado desarrollar. En el interior hay encontrará Microsoft.Maker.win10- y en el interior de ese encontrará otras 3 carpetas. A su vez, agregue cada uno navegando dentro de esas tres carpetas y encontrar el archivo de proyecto.

Si recibe errores de “archivo XAML 8.2 no encontrado”, usted tiene la versión incorrecta de Visual Studio o no tienen las herramientas para desarrolladores instalados aún. Ir de nuevo al comienzo de este artículo y asegurarse de que haya descargado e instalado los dos archivos vinculados Visual Studio.

Estos 3 proyectos que acaba de añadir son sólo diferentes capas de la interfaz de Arduino. Desde el explorador de soluciones, si hace clic derecho y seleccionar dependencias -gt; dependencias de compilación, se puede ver las capas que dependen de la cual (De serie no depende de cualquier cosa: firmata Serial-depende de RemoteWiring depende de ambos). El único cambio es necesario hacer aquí es seleccionar su proyecto en el menú desplegable, y marque cada casilla para indicar que el proyecto depende de todos estos otros proyectos.

comprobar las dependencias

Un último paso: desde el explorador de soluciones de nuevo, haga clic derecho en el referencias elemento bajo su proyecto, y seleccione Añadir referencia. Desde la izquierda, vaya a universal de windows, a continuación, marque la casilla al lado de El paquete de Microsoft Visual C ++ Runtime AppLocal. No cierre el cuadro de diálogo todavía.

las referencias del proyecto

Siguiente a navegar proyectos (También en el mismo cuadro de diálogo, en la lista de la izquierda), y marca la casilla junto a cada uno de los tres Microsoft.Maker proyectos.

referencias fabricante

Eso fue más difícil de lo que debería ser, pero sólo tiene que hacerlo una vez- ahora podemos pasar un buen rato con la programación - Prometo que no es tan aterrador.

Programación

Si tiene problemas para seguir adelante, el código completo está disponible en Pastebin. Sugiero encarecidamente la lectura a través de las notas por debajo de todas formas aunque, por lo que puedo explicar lo que realmente hace el código.

En primer lugar, tenemos que añadir un poco de código que dice que necesitamos un puerto USB para comunicarse con el Arduino. Encuentra el Package.appxmanifest archivo desde el explorador de soluciones y haga doble clic para editarlo. Hay que pegar un código en aquí - técnicamente, vamos a ser “la inserción de un nodo hijo” porque es un archivo XML, pero basta con sustituir la totalidad sección con el código de abajo por lo que se ve así:

capacidades

El código exacto variará si usted está usando Bluetooth, o si usted está apuntando Win8.1 en lugar de 10, pero el siguiente es para una, conexión USB de Windows 10.

lt;capacidadesgt;lt;Nombre capacidad="internetClient" /gt;lt;Nombre DeviceCapability="comunicación serial"gt;lt;ID del dispositivo="alguna"gt;lt;Tipo de función="Nombre: SERIALPORT"gt;lt;/Dispositivogt;lt;/DeviceCapabilitygt;lt;/capacidadesgt;

Ir a la Construir -gt menú; Volver a generar solución, y asegúrese de que usted no recibe ningún error.

Desde el explorador de soluciones, expanda el MainPage.xaml nodo. Haciendo doble clic en que se carga el diseñador de formularios, que volveremos más adelante, pero por ahora abrirse MainPage.xaml.cs, que contiene la lógica principal de nuestra aplicación.

Añadir dos líneas en la primera sección, para indicar que vamos a “Uso” los bits de Arduino.

utilizando microsoft.Fabricante.de serie-utilizando microsoft.Fabricante.RemoteWiring-

También he añadido una línea para decir que va a utilizar Diagnostico del sistema- lo que nos permite utilizar el Debug.WriteLine () la función de mensajes de depuración de salida a la IDE.

En primer lugar, vamos a definir algunas variables que usaremos a lo largo. Añadir estas líneas justo antes de la MainPage pública () declaración de la función.

conexión usbserial-Arduino RemoteDevice-lastvalue UInt16-

A continuación, saltar a la función MainPage () - esto se llama el constructor, y es una función que es llamada inmediatamente al crear nuestra aplicación, por lo que lo utilizan para configurar todo.

En primer lugar, añadir una línea para establecer la conexión en serie de USB a un dispositivo USB específico (el Arduino).

conexión =nuevo usbserial("VID_2341", "PID_0043")-

Tenga en cuenta que los ID USB de un estándar de Arduino Uno se codifican en el bloque ya, pero se puede verificar esto desde Administrador de dispositivos -gt; Puertos (COM y LPT) -gt; Arduino Uno -gt; detalles pestaña -gt; Identificadores de hardware.

comprobar USB HID pid

A continuación, añadir las siguientes líneas justo después de eso.

Arduino = nuevo RemoteDevice(conexión)-conexión.Conexión establecida += OnConnectionEstablished-conexión.empezar(57600, SerialConfig.SERIAL_8N1)-

Algunas cosas están sucediendo aquí. En primer lugar, estamos creando un objeto RemoteDevice - recuerde, eso es la capa que nos da un montón de comandos de Arduino - y dándole el nombre de la variable “Arduino”. La siguiente línea es unir al evento ConnectionEstablished, decir “Una vez con éxito se ha establecido la conexión USB, ejecuta la función llamada OnConnectionEstablish ()”.

La final sólo le dice la conexión a empezar ya, a una velocidad de transmisión de 57600, utilizando el patrón de bits 8N1.

Usted también necesitará para crear la función que OnConnectionEstablished () ahora, para moverse fuera de la función MainPage () y acaba de hacer una función en blanco de la siguiente manera.

privado vacío OnConnectionEstablished(){// lógica aquí}

Saltar de nuevo al diseñador de formularios he mencionado anteriormente (si se le ha olvidado cómo: haga doble clic en MainPage.xaml desde el explorador de solución). Cree dos botones. Para ello, abre la pestaña Caja de herramientas que encontrará clavado verticalmente en el lado izquierdo de la pantalla. Arrastre dos botones en la página, a continuación, etiquetar uno En y uno Apagado.

diseñador de formularios añadir botones

Seleccione el primer botón, a continuación, desde el cuadro de propiedades en la parte inferior derecha, el nombre de “OnButton”. Haga clic en el icono de rayo pequeño - esta es la lista de eventos y acciones que se usa para especificar qué sucede cuando los elementos de formulario se interactuaba con. Tipo “OnButtonclick” en el Hacer clic campo.

Al pulsar Intro, se creará automáticamente el código para ese evento particular y botón de cargar la vista de código estándar. Volver al diseñador de formularios para el presente y hacer lo mismo con el botón de apagado, pero esta vez lo llaman “OffButton”, y “OffButtonclick”. Mientras esté allí, seguir adelante y el nombre de la forma de la ventana principal detrás de él como “página” - que vamos a utilizar más tarde. Ahora debería tener algo parecido a la siguiente imagen:

diseñador crea eventos

Volver al diseñador de nuevo por un momento, y otra vez para cada uno de los botones, ajustar la está habilitado propiedad a Falso. O haces esto escribiendo la propiedad directamente en la vista de código XAML, o usted puede encontrar que la casilla de verificación en el cuadro de propiedades (haga clic en la llave si todavía estás en las acciones de vista) - es bajo el ampliado Común categoría de propiedades.

Esto no es esencial, pero es una buena práctica para desactivar los botones hasta que estemos seguros de la Arduino está enchufada y conectada.

Para volver a activarlos, añada lo siguiente a la función OnConnectionEstablished (). No se preocupe demasiado por el significado exacto del código por ahora, es sólo la forma en que se supone que manejar cambios de forma en modernas aplicaciones de Windows para asegurar un buen rendimiento. Una vez que hemos conectado a la placa Arduino, fijamos el Está habilitado propiedad de los botones situados a cierta.

privado vacío OnConnectionEstablished(){// activar el apagado en los botonesvar acción = Transportista.RunAsync(ventanas.IU.Núcleo.CoreDispatcherPriority.Normal, nuevo ventanas.IU.Núcleo.DispatchedHandler(() =gt; {OnButton.Está habilitado = cierto-OffButton.Está habilitado = cierto-}))-Arduino.pinMode(14, pinMode.COSA ANÁLOGA)-Arduino.AnalogPinUpdatedEvent += MyAnalogPinUpdateCallback-Depurar.Línea de escritura(Arduino.analogRead(14))-}

También verá una declaración más familiar pinMode (), decir que tenemos una entrada analógica en la patilla 14 (hay 13 pines digitales, por lo que empieza a contar desde A0 14). Entonces tenemos otra declaración evento - cuando los cambios de valor pin analógico, llame al MyAnalogPinUpdateCallback función.

Por último, tenemos que editar los eventos de clic de botón y decidir lo que sucede cuando cambia la entrada analógica. Vamos a empezar con los botones. Podemos interactuar con el Arduino utilizando nombres de funciones similares a las de código regular de Arduino, de la siguiente manera:

Arduino.digitalWrite(13, PinState.ALTO)-

Pasta que para el evento onButton, y esto por el offButton:

Arduino.digitalWrite(13, PinState.BAJO)-

Sencillo. La entrada analógica desde el Arduino es un poco más difícil, pero esto es lo que ocurrió.

público vacío MyAnalogPinUpdateCallback(byte alfiler, UInt16 valor){Si(valor-lastvalue gt;5 || lastvalue-valor gt; 5){
Depurar.Línea de escritura("Un pin" + alfiler + " es ahora " + valor)-var acción = Transportista.RunAsync(ventanas.IU.Núcleo.CoreDispatcherPriority.Normal, nuevo ventanas.IU.Núcleo.DispatchedHandler(() =gt; {byte num = Convertir.ToByte(valor / 4)-Página.Fondo = nuevo SolidColorBrush(ventanas.IU.Color.FromArgb(255, num, num, Convertir.ToByte(255 -num)))-}))-}lastvalue = valor-}

Tenga en cuenta que estoy almacenando el valor anterior que recibimos de la clavija en una variable llamada lastValue- esto nos permite comprobar cuánto se cambia el valor, y sólo reaccionaría si la diferencia es significativa (una especie de suavizado de señal). Si se cambia en cualquier dirección más de 5 (0-1024 es el rango completo de valores), entonces reaccionamos cambiando el valor RGB color de fondo del elemento de página.

Dado que sólo tenemos un número de trabajar, y yo estaba en una punta, que eludieron las cosas un poco aquí con los 3 números necesarios para realizar R, G y B. es probable que pueda llegar a algo mucho más bonita.

Terminado

ventanas de Arduino 10 completaron

Eso es todo - ejecuta el código, y usted debería ver algo similar a la imagen de arriba. Los botones a su vez, el LED de encendido y apagado, y la resistencia variable va a cambiar el fondo. Si tuvo problemas, no se olvide el código completo está aquí.

Ahora que usted puede escribir sus propias aplicaciones de Windows 10 que interactúan con Arduino, ¿qué vas a hacer? tal vez una central domótica? Házmelo saber en los comentarios.La domótica con Frambuesa Pi y ArduinoLa domótica con Frambuesa Pi y ArduinoEl mercado de la automatización del hogar se inunda con los sistemas de consumo costosos, incompatibles entre sí y costosos de instalar. Si usted tiene un Pi de frambuesa y un Arduino, básicamente se puede lograr lo mismo en ...Lee mas

Artículos Relacionados