Evaluación de diferentes placas de desarrollo y creación de prototipos para aplicaciones vestibles

Por Clive "Max" Maxfield

Colaboración de Editores de DigiKey de América del Norte

El concepto de código abierto Arduino ha demostrado ser tremendamente exitoso entre los aficionados y fabricantes. También ha sido adoptado por diseñadores profesionales para el desarrollo temprano y la creación de prototipos, y más recientemente para diseños completos. Con la aparición de aplicaciones como las prendas de vestir y la vigilancia de la salud, ambos tipos de usuarios requieren un mayor rendimiento y una mayor funcionalidad en factores de forma cada vez más reducidos.

En este artículo se examina brevemente la evolución de las placas Arduino para satisfacer las necesidades de los fabricantes y los profesionales en cuanto a alto rendimiento y funcionalidad en aplicaciones de baja potencia y espacio limitado. A continuación, introduce y muestra cómo empezar con una reciente adición a la familia Arduino, la Seeeduino XIAO de Seeed Technology Co.

Cómo Arduino evolucionó para satisfacer las demandas de los diseños vestibles

Muchos aficionados y diseñadores están interesados en desarrollar productos físicamente pequeños para su despliegue en entornos con limitaciones espaciales, incluidos los artículos de vestir. Estos son generalmente sistemas electrónicos inteligentes que a menudo se basan en un microcontrolador junto con dispositivos de detección y/o visualización. En algunos casos, sirven como joyas de alta tecnología. En otros casos, se llevan cerca y/o en la superficie de la piel, donde pueden detectar, analizar y transmitir datos del cuerpo como la temperatura, el ritmo cardíaco y la oxigenación del pulso, así como datos ambientales. En algunos casos, proporcionan una retroalimentación inmediata al usuario.

Para estos diseños, muchos aficionados y fabricantes utilizan las placas de desarrollo de microcomputadoras Arduino. También lo hace un número cada vez mayor de ingenieros profesionales que pueden utilizar estas placas de desarrollo como plataformas de evaluación y creación de prototipos para acelerar y reducir el costo de la evaluación de los circuitos integrados, los sensores y los periféricos.

Estos usuarios suelen empezar con el A000073 Arduino Uno Rev3, que se conoce como, "La placa con la que todo el mundo empieza" (Figura 1). Esta placa se basa en el microcontrolador ATMEGA328P-AUR de Atmel (ahora Microchip Technology). El procesador de 5 voltios ofrece 14 entradas/salidas digitales (E/S), seis de las cuales pueden proporcionar capacidad de modulación de ancho de pulso (PWM), junto con seis pines de entrada analógica, que también se pueden utilizar como I/O digital si es necesario. También soporta dos interrupciones externas en los pines de E/S digitales 2 y 3, junto con una de cada una de las interfaces UART, SPI y I2C.

Imagen de la placa de desarrollo Arduino Uno Rev3Figura 1: La placa de desarrollo Arduino Uno Rev3 se basa en el microcontrolador ATmega328P de 8 bits que funciona a 16 megahercios (MHz). La huella de sus cabeceras, con 14 pines de E/S digitales, 6 pines de entrada analógica y varios pines de potencia, tierra y referencia, es la base de un enorme ecosistema de placas secundarias llamadas escudos. (Fuente de la imagen: Arduino.cc)

Además de la limitación de una ruta de datos de 8 bits y un reloj de 16 MHz, junto con el hecho de que el Arduino Uno ofrece solo 32 Kbytes de memoria de programa Flash y 2 Kbytes de SRAM, esta placa de desarrollo es demasiado grande para muchas aplicaciones, ya que mide 68.6 x 53.4 milímetros (mm) (36.63 centímetros (cm)2).

Una forma de reducir la huella física de la placa de desarrollo del microprocesador es pasar a un microcontrolador ABX00028 Arduino Nano Every, que se basa en el ATMEGA4809-MUR de Atmel (Figura 2). Tiene un 50% más de memoria de programa que el Arduino Uno (48 Kbytes) y 3 veces la cantidad de SRAM (6 Kbytes). Al igual que el Arduino Uno, el Arduino Nano Every se basa en un procesador de 5 voltios que ofrece 14 E/S digitales junto con seis pines de entrada analógica, que también se pueden utilizar como E/S digitales si es necesario. También, como el Uno, el Nano Every ofrece una interfaz UART, SPI e I2C. Sin embargo, a diferencia del Uno, que solo soporta dos interrupciones externas, todos los pines digitales del Nano Every pueden ser usados como interrupciones externas.

Imagen de Arduino Nano EveryFigura 2: El Arduino Nano Every es una evolución del tradicional Arduino Nano, pero cuenta con un procesador significativamente más potente, el ATMEGA4809, que tiene un 50% más de memoria de programa que el Arduino Uno, y mucho más espacio para las variables ya que el SRAM es 3 veces más grande a 6 Kbytes. (Fuente de la imagen: Arduino.cc)

Aunque el Arduino Nano Every todavía tiene la limitación de un bus de datos de 8 bits, tiene un reloj más rápido (20 MHz) y más memoria (48 Kbytes de Flash y 6 Kbytes de SRAM). Más importante aún para proyectos de tamaño limitado, el Arduino Nano Every es solo 45 x 18 mm (8.1 cm2).

Otra alternativa popular que puede ser programada usando el entorno de desarrollo integrado (IDE) de Arduino es el DEV-13736 Teensy 3.2 de SparkFun Electronics (Figura 3). Cuando se trata de E/S, esta placa de desarrollo de 3.3 voltios realmente sube la apuesta, con 34 pines digitales, 12 de los cuales soportan PWM, junto con 21 entradas analógicas de alta resolución.

Imagen de Teensy 3.2Figura 3: La Teensy 3.2 es una pequeña placa de desarrollo diseñada por Paul Stoffregen en PRJC.com. Esta placa de desarrollo fácil de usar ofrece una plataforma de bajo costo de 32 bits Arm® Cortex®-M4 a aficionados, estudiantes e ingenieros profesionales. (Fuente de la imagen: PRJC.com)

El Teensy 3.2 está alimentado por un microcontrolador MK20DX256VMC7R Kinetis K20 de NXP. El K20 cuenta con un núcleo de procesador de 32 bits Arm Cortex-M4 que funciona a 72 MHz, con 256 Kbytes de memoria Flash y 64 Kbytes de SRAM. De particular interés para los proyectos de tamaño limitado es el hecho de que, midiendo en 35 x 18 mm (6.3 cm2), el Teensy 3.2 es aproximadamente tres cuartas partes del tamaño del Nano Every de Arduino.

Presentamos el Seeeduino XIAO

Aunque el Teensy 3.2 es solo 6.3 cm2, sigue siendo demasiado grande para muchas aplicaciones. La solución para aquellos que buscan plataformas aún más pequeñas y poderosas se encuentra dentro del vasto ecosistema de Arduino. Una opción relativamente nueva es el Seeeduino XIAO de Seeed Technology (Figura 4), que mide solo 23.5 x 17.5 mm (4.11 cm2), o el tamaño de un sello de correos estándar. Los diseñadores del Seeeduino XIAO también se centraron en el costo ultrabajo.

Imagen de Seeeduino XIAO, un amante de las tablas de surf. Figura 4: Actualmente la placa de desarrollo de microcontroladores más pequeña compatible con Arduino de la familia Seeeduino, la placa de desarrollo Seeeduino XIAO, de fácil manejo, proporciona a los usuarios un potente procesador de 32 bits Arm Cortex-M0+ que funciona a 48 MHz. (Fuente de la imagen: Seeed Studio)

El XIAO está alimentado por un microcontrolador ATSAMD21G18A-MUT SAMD21G18 de Atmel. Este microcontrolador cuenta con un núcleo de procesador de 32 bits Arm Cortex-M0+ que funciona a 48 MHz y está soportado por 256 Kbytes de memoria Flash y 64 Kbytes de SRAM.

Aunque el XIAO proporciona solo 11 pines de datos, cada uno de estos pines puede utilizarse como una E/S digital o como una entrada analógica (Figura 5). Diez de los pines soportan PWM, y uno está equipado con un convertidor digital-analógico (DAC), lo que le permite proporcionar una verdadera capacidad de salida analógica. Además, el XIAO soporta una de cada una de las interfaces UART, SPI e I2C.

El diagrama de once pines de datos puede actuar como E/S digitales (D0 a D10) o entradas analógicas (A0 a A10)Figura 5: Los once pines de datos pueden actuar como E/S digitales (D0 a D10) o entradas analógicas (A0 a A10). Además, A0 puede actuar como una verdadera salida analógica, D4 y D5 pueden actuar como una interfaz I2C, D6 y D7 pueden ser usados como una interfaz UART, y D8, D9 y D10 pueden actuar como una interfaz SPI. (Fuente de la imagen: Seeed Studio)

Desplegando y usando el Seeeduino XIAO

En general, trabajar con el Seeeduino XIAO es tan fácil como trabajar con cualquier otra placa de desarrollo compatible con Arduino o Arduino, pero hay algunos consejos y trucos que vale la pena señalar.

Un buen punto de partida es asegurarse de trabajar con la versión más actual del Arduino IDE. A continuación, visite el Seeeduino XIAO Wiki para obtener instrucciones sobre cómo aumentar el IDE de Arduino con el administrador de la placa apropiada.

Muchos de los proyectos de Seeeduino XIAO -llevables y de otro tipo- implicarán el uso de NeoPíxeles tricolores basados en WS2818 de Adafruit, como la tira de 2970 con 144 NeoPíxeles por metro (Figura 6).

La imagen de Seeeduino XIAO puede ser usada para controlar individualmente cientos de NeoPíxeles tricoloresFigura 6: Un solo pin en el Seeeduino XIAO puede usarse para controlar individualmente cientos de NeoPíxeles tricolores, como los que se encuentran en la franja negra de 144 NeoPíxeles por metro de Adafruit. (Fuente de la imagen: Adafruit.com)

Un problema potencial es que, mientras que las placas de desarrollo tradicionales de Arduino pueden seguir funcionando con versiones más antiguas de la biblioteca de Adafruit NeoPixel, el Seeeduino XIAO requiere la última y más grande versión.

Si se instala una biblioteca NeoPixel más antigua, pueden aparecer mensajes de error extraños y confusos. La solución es eliminar del sistema cualquier versión antigua de la biblioteca, y luego seguir las instrucciones en Adafruit's NeoPixel Überguide para instalar la última y mejor versión.

Una preocupación potencial es que los NeoPíxeles son sensibles a excederse o no alcanzar sus pines de datos. El problema es que las rápidas velocidades de borde de las señales de los modernos microcontroladores pueden dar lugar a tales características. La solución es añadir una resistencia en serie lo más cerca posible del primer elemento de la cadena de NeoPíxeles (Figura 7). Un ejemplo adecuado sería una resistencia de tolerancia del 5%, 1/4 de vatio, 390 ohm (Ω), como una resistencia de película de carbono CF14JT390R de Stackpole Electronics Inc.

Diagrama de la resistencia en serie colocada lo más cerca posible del primer NeoPixelFigura 7: Una resistencia en serie colocada lo más cerca posible del primer NeoPíxel de la cadena elimina el sobreimpulso y el subimpulso en los bordes del flujo de datos de la MCU. (Fuente de la imagen: Max Maxfield)

Otro problema relacionado con el NeoPixel es que las salidas digitales de 3.3 voltios del Seeeduino XIAO pueden no ser suficientes para manejar las entradas de datos de 5 voltios del NeoPixel. Una solución sería emplear una placa de ruptura de convertidor de nivel lógico BOB-12009 de SparkFun (Figura 8).

Imagen del convertidor de nivel lógico BOB-12009 de SparkFunFigura 8: El convertidor de nivel lógico BOB-12009 de SparkFun proporciona cuatro canales bidireccionales que pueden ser usados para traducir señales entre los dominios de 3.3 voltios y 5 voltios. (Fuente de la imagen: Adafruit.com)

Todo lo que se requiere para una aplicación NeoPixel es un solo canal unidireccional. El problema del BOB-12009 es que proporciona cuatro canales bidireccionales, lo que lo convierte en una solución relativamente grande para un proyecto con limitaciones de espacio, y una solución relativamente cara para un proyecto de costo elevado. Una alternativa sencilla es utilizar un único diodo 1N4001 de Comchip Technology (Figura 9).

El diagrama de NeoPixel "sacrificatorio" puede ser coaccionado para que actúe en el papel de un convertidor de nivel de voltaje.Figura 9: Usando un diodo 1N4001 para proporcionar una caída de voltaje de 0.7 voltios, un NeoPíxel "sacrificable" puede ser coaccionado para actuar en el papel de un convertidor de nivel de voltaje. (Fuente de la imagen: Max Maxfield)

Los NeoPíxeles consideran que un lógico 1 es cualquier cosa por encima de 0.7 * VCC. En este caso, el NeoPíxel considerará que un 1 lógico es 0.7 * 5 = 3.5 voltios.

Alimentar un píxel "de sacrificio" a través de un diodo IN4001, que tiene una caída de voltaje de 0.7 voltios, resulta en que se alimente con un VCC de 5 - 0.7 = 4.3 voltios, lo que significa que considerará un lógico 1 como 0.7 * 4.3 = 3.01 voltios. A su vez, esto significa que una señal de 3.3 voltios del Seeeduino XIAO es más que capaz de conducir el píxel de sacrificio. Mientras tanto, la salida de 4.3 voltios del píxel de sacrificio es más que suficiente para conducir la entrada de datos al siguiente NeoPíxel de la cadena.

Conclusión:

Las primeras placas de desarrollo de Arduino, como la Arduino Uno de 8 bits y 16 MHz, eran físicamente grandes y limitadas en cuanto a capacidad y rendimiento. Hoy en día, el ecosistema de Arduino incluye una tremenda variedad de placas que abarcan una amplia gama de formas, tamaños y capacidades.

Para proyectos de tamaño limitado, como los que se pueden llevar puestos, el Seeeduino XIAO ofrece un núcleo de procesador Arm-Cortex-M0+ de 32 bits que funciona a 48 MHz con 256 Kbytes de memoria Flash y 64 Kbytes de SRAM. Todo esto se presenta en una plataforma diminuta, amigable, de solo 4.11 cm2 con un amplio apoyo del ecosistema.

DigiKey logo

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.

Información sobre el autor

Image of Max Maxfield

Clive "Max" Maxfield

Clive "Max" Maxfield received his BSc in Control Engineering in 1980 from Sheffield Hallam University, England and began his career as a designer of central processing units (CPUs) for mainframe computers. Over the years, Max has designed everything from silicon chips to circuit boards and from brainwave amplifiers to steampunk Prognostication Engines (don't ask). He has also been at the forefront of Electronic Design Automation (EDA) for more than 30 years.

Max is the author and/or co-author of a number of books, including Designus Maximus Unleashed (banned in Alabama), Bebop to the Boolean Boogie (An Unconventional Guide to Electronics), EDA: Where Electronics Begins, FPGAs: Instant Access, and How Computers Do Math. Check out his “Max’s Cool Beans” blog.

Información sobre la editorial

Editores de DigiKey de América del Norte