El escritorio de Microsoft Windows se enfrenta con Arduino: ¿El sueño de un diseñador?
Colaboración de Editores europeos de DigiKey
2017-09-26
La comunidad de diseñadores está inundada con nuevas ideas. Muchas se basan en el uso de la tecnología y aportan nuevas maneras de ofrecer y entregar un servicio. Otras ofrecen posibilidades que antes no se consideraban posible. Para aquellas mentes brillantes capaces de brindar estas ideas, el reto de llevar un diseño de producto del papel a la realidad puede ser desalentador. Los empresarios nueva generación se han dado cuenta de que el primer mercado es crucial y que exige una fase de rápido desarrollo. Las computadoras monoplaca integradas (SBC), como Arduino, Raspberry Pi y BeagleBone Black, se han convertido rápidamente en la plataforma de elección para muchos fabricantes. La inmensa mayoría de las SBC utilizan Linux como el sistema operativo de su elección. Sin embargo, al tiempo que incorpora un gran número de características y flexibilidad en un diseño, Linux no requiere un grado de familiaridad cuando usted se inicia, y bien podría disuadir a los menos confiados con el uso de un sistema operativo de fuente abierta. Arduino es quizás una excepción en que no utiliza un sistema operativo. Esto, sin embargo, no limita en modo alguno la credibilidad de Arduino en llevar la simplicidad y facilidad de programación al desafío de la interfaz de palabra real en diseños integrados. Muy popular dentro de la comunidad de diseñadores y especialmente para aquellos nuevos a la electrónica, se destaca Arduino por haber resucitado el interés en la electrónica para aficionados, y a su vez, por ser responsable de avivar la imaginación detrás de muchas nuevas ideas de productos.
Cuando se trata de desarrollar un nuevo producto, el desafío para muchos fabricantes es cómo crear el prototipo de un producto que combine lo mejor que ofrece Arduino con la familiaridad de usuario y aplicaciones de Microsoft® Windows. Al ofrecer una gran variedad de opciones de conectividad como SPI, I2C y UART, junto con GPIO, PWM y periféricos de ADC, no hay duda de que Arduino proporciona una forma muy creíble y capaz de conseguir un diseño de detección y conectado con el mundo real. Desde una perspectiva de desarrollo de aplicaciones, es muy probable que usted esté más versado en el desarrollo de aplicaciones de escritorio que utilizan el IDE Microsoft Visual Studio con lenguajes como C#, Java y Python, en lugar de Linux. Hasta hace poco no había una manera sencilla de integrar los distintos dominios de Windows Desktop y Arduino, pero una SBC llamada LattePanda de DFRobot promete hacer justo eso (Figura 1).

Figura 1: LattePanda de DFRobot.
Esencialmente una computadora Windows monoplaca extremadamente compacta que viene preinstalada con Microsoft Windows 10 Home Edition, la LattePanda alberga un microprocesador de núcleo cuádruple Intel® Atom Z8350 Cherry Trail capaz de operar a 1,8 GHz además de un Arduino-compatible Atmel ATmega32u4 co-procesador. Tenga en cuenta que este es un completo sistema de Windows 10 no una versión IoT reducida. Hay dos modelos disponibles, una placa de almacenamiento e-MMC de 32 GB y 2 GB de RAM, o una versión de 64 GB y 4 GB de RAM . Las placas LattePanda también están disponibles sin activar una clave de Windows 10. Como opciones de conectividad estándar, LattePanda tiene USB 2.0 y USB 3.0, un puerto Ethernet de 100 Mbps, salida HDMI, un conector de audio de 3,5 mm, un zócalo microSD, Bluetooth 4.0 y Wi-Fi. La figura 2 ilustra los principales componentes y las interfaces de los LattePanda. La placa se alimenta mediante una fuente única de 5 VCC, y 2,5 amp mediante un micro USB. Asegúrese de que el adaptador de corriente es capaz de suministrar al menos 2,3 amperios durante la operación para evitar que LattePanda se reinicie durante el arranque. Mide tan sólo 88 mm x 70 mm (3.46" x 2.76"), LattePanda es lo suficientemente pequeña como para incorporarse en diseños con limitación de espacio. Para facilitar la colocación dentro de un gabinete, las especificaciones mecánicas de LattePanda y archivos de modelos 3D están disponibles en el foro de la placa. Al colocar la placa en un espacio confinado, se recomienda que se proporcione enfriamiento con aire forzado a través de un ventilador, y disipación térmica adecuada ya que la temperatura de la placa es bastante elevada durante el funcionamiento normal. Un conjunto personalizado de disipadores térmicos de cobre está disponible para su uso con LattePanda. Se ofrece alimentación del ventilador de 5 VCC en la placa

Figura 2: Principales componentes e interfaces de LattePanda
Además del sistema operativo Windows, la placa está precargada con Microsoft Visual Studio y el IDE de Arduino. La placa es capaz de funcionamiento automatizado mediante una adecuada aplicación de terminal Virtual Network Computing (VNC) como TightVNC, o conectando el panel de panatall LCD de 1074 x 600 y 7 pulgadas de LattePanda con su correspondiente panel táctil. La pantalla y el panel táctil capacitivo se conectan a LattePanda a través de cables FFC y zócalos ZIF.
Cuando se trata de utilizar los distintos periféricos de ES, la combinación de Windows y Arduino ha sido bien pensada. La figura 3 ilustra el patillaje disponible. Las señales de Atom y ATmega32u4 están disponibles, la mayoría son de Arduino a través de un zócalo de hilera doble de 24 pines. El Atom IO se puede encontrar en el área U1 de la figura 3. Todos los 20 pines GPIO (analógico A0 - A5 y digital D0 - D13) utilizan lógica de 5 V y pueden ser utilizados como entrada o salida, 12 de los cuales se pueden ajustar individualmente para uso de entrada analógica. Ver área U2 de la figura 3. Al conectar los sensores o dispositivos a la ES, asegúrese de que también están usando lógica de 5 V. Se necesitan convertidores de nivel lógico si se emplea un dispositivo de 3,3 VCC. Cada pin analógico tiene una resolución de 10 bits que proporciona 1024 valores desde un rango de tensión de entrada de 0 a 5 VCC. Los pines D3, D5, D6, D9, D10 y D13 pueden utilizarse como salidas PWM de 8 bits. Además, D7, D3, D2, D1 y D0 se pueden utilizar para activar una interrupción externa a través de una serie de condiciones diferentes. En consonancia con la tradición de Arduino, hay un LED conectado a D13 que se pueden utilizar con el LED estándar parpadeante.

Figura 3: LattePanda - pines de periféricos.
Tenga en cuenta que algunos pines de Arduino, D9, D10, D11, A0, A1 y A2, aparecen tanto en el conector de núcleo de Arduino como para su uso con los sensores Gravity de DFRobot.
Se puede acceder a los pines desde una aplicación que se ejecuta en el ATmega32u4 y el núcleo de Atom. Además de las ES estándar basadas en GPIO, las comunicaciones seriales mediante I2C y SPI también están disponibles desde los cabezales de pines. También se proporciona un conector ICSP de 6 bits. Las aplicaciones de Windows pueden utilizar fácilmente los pines GPIO Arduino gracias a la biblioteca de código abierto LattePanda Firmata suministrado para usar con Visual Studio. Esto le da a cualquier solicitud el acceso y control de cualquier pin a través del uso de las funciones de clase. Una explicación detallada de las funciones de biblioteca individual junto con Visual Studio C# para descargar los archivos de ejemplo se puede encontrar aquí.
Figura 4: Captura de pantalla de Visual Studio del código de parpadeo del LED a bordo.
Para comprobar que todo funcione correctamente, el código de C# de Visual Studio que llama a la biblioteca de clases de Firmata se ilustra en la figura 4. Cuando se ejecuta, este hace parpadear el LED a bordo. Los lectores familiarizados con estructura y funciones de código basadas en Arduino C se darán cuenta de la similitud de las funciones de clase para aquellos utilizados dentro de un sketch de Arduino.
La creación de aplicaciones con la LattePanda se hace aún más fácil gracias a la disponibilidad de un conjunto de sensores que están diseñados de forma personalizada para la placa. Comprende un total de 14 sensores y sus cables de conexión, el kit de inicio Gravity Sensor incluye sensores de temperatura, luz, gas y sensores de llama, un sensor de rotación analógica, pulsadores digitales, ledes de varios colores, y un módulo de relé. Estos se conectan en la fila de seis conectores Gravity de 3 pines en la placa, el cuyo patillaje se indica en la figura 3.
El bus I2C de la placa proporciona otra forma conveniente de conectar sensores, actuadores y pantallas. La biblioteca Firmata proporciona las funciones de clase necesarias para enviar y recibir datos directamente en una aplicación de Visual Studio utilizando las funciones wireBegin, wireRequest y didI2Cdatareceive. El siguiente ejemplo muestra el uso de una placa de evaluación de acelerómetro de 3 ejes I2C de Adafruit. Esta tarjeta utiliza el ADXL345 que es un sensor MEMS de 3 ejes de potencia ultrabaja y alta resolución de Analog Devices. Los sensores MEMS están conectados al LattePanda como se ilustra en la figura 5.

Figura 5: Cableado del sensor MEMS de 3 ejes ADXL345 de Adafruit a LattePanda
Se suministra alimentación desde 22 pines (5 V) y 21 (GND) y el I2C conectado al pin 6 - cable amarillo SDA y pin 8 - cable azul SCL.
El código fuente de la figura 6 muestra la placa del sensor al escribirse utilizando un sensor de dirección predeterminada de 0x53 y un rango de medición predeterminada de 0x2D (2 g). Los datos se leen desde el sensor continuamente y se analizan en lecturas de X, Y y Z para mostrar en la pantalla de la consola.
Figura 6: El código C# que muestra la configuración y lectura del MEMS de 3 ejes ADXL345 mediante interfaz I2C.
Los dos ejemplos anteriores sirven para ilustrar no sólo cuán rápidamente se puede crear una aplicación utilizando el LattePanda, sino también el hecho de que esta tarjeta proporciona una plataforma certificada previamente sobre qué aplicaciones pueden desarrollarse rápidamente y desplegarse en el mercado. En lugar de tener que desarrollar un adecuado diseño integrado desde cero con los costos, los riesgos y el tiempo de salida al mercado asociados de NRE, se puede implementar un diseño utilizando un SBC en cuestión de semanas. Una vez que las primera ventajas han sido garantizadas mediante la obtención de un diseño en el mercado y en las instalaciones de los clientes, si los volúmenes de producción apoyan el caso de negocio, el equipo de ingeniería puede preparar una lista de materiales para un diseño personalizado haciendo pleno uso de los modelos mecánicos LattePanda proporcionados con el foro.
Entre las muchas posibles aplicaciones para LattePanda es el uso para soluciones de Internet de las cosas (IoT). Tiene suficientes recursos de conectividad y computación para leer datos desde un host de sensores conectados de conexión alámbrica e inalámbrica en tiempo real, sumar los resultados y, a continuación, enviarlos a una plataforma de análisis de cloud a través de Wi-Fi o comunicación Ethernet. Este enfoque de la puerta de enlace está, sin duda, ganando popularidad en las aplicaciones de Internet Industrial de cosas (IIoT). Denominado como la "niebla" informática, este método es menos dependiente de tener conectividad a la nube continua, ya que algunas funciones de control pueden hacerse localmente sin necesidad de esperar a que una aplicación en la Nube pueda responder. Un ejemplo es encender una planta de aire acondicionado una vez que se ha alcanzado cierto punto de temperatura. Con el sensor de temperatura y el actuador de la planta local conectados a la puerta de enlace, la demanda de aire del enfriador puede repararse sin incurrir en costos de comunicaciones, el control de la latencia ni requerir recursos de informática en la Nube.
La plataforma Azure IoT Hub de Microsoft es una popular plataforma de informática en la Nube que apoya plenamente la SBC LattePanda. Un repositorio GitHub documenta el proceso de lograr que la placa se comunique con la plataforma Azure. Esto es en adición a la información proporcionada por LattePanda. Para suavizar el proceso de desarrollo y pruebas, Microsoft proporciona archivos de ejemplo Node.js que prueban la conectividad a la IoT hub. Antes de descargar estas muestras, primero debe utilizar el portal Azure para configurar una cuenta de Azure y crear un nuevo dispositivo IoT (Figura 7).

Figura 7: Crear una entrada de Azure IoT hub.
La figura 8 ilustra la configuración de los detalles de la entrada del hub y los nombres de los host. Este proceso proporciona las credenciales (cadenas de conexión y claves de acceso) que se utilizan para identificar y atar un sensor de LattePanda con Azure IoT hub. Una vez completado este proceso usted puede editar posteriormente el archivo suministrado "Simple_sample_device.js" e introducir la cadena de conexión antes de generar y ejecutar el código. En el Azure IoT hub, la función de utilidad DeviceExplorer proporciona un medio de observar mensajes que el hub está recibiendo del LattePanda.

Figura 8: Azure IoT Hub - Registrar un nuevo dispositivo.
Una vez que esté satisfecho de que se ha establecido la comunicación, usted está listo para procesar su solicitud de diseño usando los servicios de Azure. Por ejemplo, puede utilizar el servicio de almacenamiento de Azure para construir una tabla de las lecturas del sensor. Azure Stream Analytics y Azure Power BI son otros dos ejemplos de aplicaciones Azure que pueden interpretar, analizar y mostrar los valores y tendencias de los datos del sensor.

Figura 9: Ejemplo de sensor de luz Node.js ejemplo mostrando las funciones de almacenamiento Azure.
La figura 9 ilustra el ejemplo de código Node.js que lee los valores desde un sensor de luz Gravity conectado a la clavija 'A0' y los almacena en una tabla de almacenamiento Azure. Las funciones que se comunican con el Almacenamiento Azure están resaltadas en rojo.
El desarrollo en LattePanda es muy fácil. Es una plataforma compatible con gran cantidad de documentación del fabricante, un foro de comunidad en línea y su propio repositorio GitHub que contiene modelos mecánicos, las bibliotecas y los ejemplos de código. Además, el núcleo del sistema operativo, Microsoft Windows 10, está muy bien apoyado con muchos entornos de desarrollo comercial y las aplicaciones disponibles. Además, el coprocesador Arduino tiene una amplia comunidad de desarrolladores, publicaciones y programación de recursos. El IDE de Arduino es probablemente el IDE más ubicuo que usted puede hallar. Microsoft Visual Studio es el compañero IDE ideal, capaz de apoyar los acontecimientos en una variedad de lenguajes de programación como C#, Python y F#/.Net.
Conclusión
LattePanda introduce un nuevo concepto para la comunidad de diseñadores. Ser capaz de combinar la facilidad de interacción del mundo real de Arduino con la gran comunidad de desarrolladores de Windows y sus aplicaciones amplía el alcance de los diseños integrados mucho más, con la apertura de infinitas oportunidades para nuevos productos.
Descargo de responsabilidad: Las opiniones, creencias y puntos de vista expresados por los autores o participantes del foro de este sitio web no reflejan necesariamente las opiniones, las creencias y los puntos de vista de DigiKey o de las políticas oficiales de DigiKey.






