El Wio Terminal es una placa de desarrollo Open Hardware diseñada por Seeed Studio, un dispositivo que incorpora pantalla LCD, WiFI y Bluetooth, y resulta una alternativa a Arduino.
El Wio Terminal está diseñado para destacar por su sencillez de uso y conectividad inalámbrica, lo que lo hace indicado en aplicaciones de docencia y en proyectos de IoT.
En el interior de este pequeño dispositivo, encontramos el potente procesador Atmel SAMD51P19 ARM Cortex-M4F a 120Mhz, al que podemos hacer overclock hasta 200Mhz. El conjunto se completa con 4MB de memoria Flash y 192KB de RAM.
Para la conectividad inalámbrica el Wio Terminal confía en el conocido Realtek RTL8720DN, que proporciona conectividad WIFi Dual Band 2.4Ghz y 5Ghz (802.11 a/b/g/n) y Bluetooth BLE 5.0.
El cuerpo del Wio Terminal está formado por una carcasa de ABS blanco, con un diseño sencillo pero agradable. Las dimensiones de 72mm x 57mm x 12mm, por lo que cabe perfectamente en la palma de la mano.
La estética del conjunto queda dominada por la aparente pantalla LCD en color de 2.4” y 320x240 controlada por un driver ILI9341.El comportamiento de la pantalla es adecuado, aunque notamos una falta de uniformidad en el backlight, algo frecuente en dispositivos de este rango de precios y tamaño.
También encontramos tres botones en la parte superior, un slider en el lateral que sirve para controlar el modo de arranque, y un joystick de 4 direcciones + pulsador en forma de un pequeño círculo azul.
En general, la respuesta de los botones es correcta, y su posición resulta agradable para su uso. Físicamente, el conjunto da la apariencia de robustez y durabilidad, algo que no siempre encontramos al probar dispositivos de este tamaño.
Uno de los puntos fuertes del Wio Terminal es la gran cantidad de dispositivos integrados que incorpora. Estos incluyen un IMU (LIS3DHTR), micrófono, altavoz, sensor de luz, emisor infrarrojo de 940 nm, y lector de tarjetas micro SD.
En cuanto a la conexión, el dispositivo cuenta con un puerto USB-C en la parte inferior. Además, el Wio Terminal incluye funciones de USB Host y Cliente, y soporte para OTG.
En la parte trasera encontramos un puerto de conexión de 2x20 pins de 2.54”, que podemos emplear para conectar el dispositivo con el resto de componentes de nuestro proyecto.
En teoría, este puerto de 40 pins es compatible con el puerto de GPIO de Rasperry Pi. De hecho, está diseñado para poder trabajar de forma conjunta actuando como “Hat”, al menos para la versión 1 a 3 de Rpi.
Sin embargo, decimos en “teoría” porque, como a menudo ocurre con los Hat, ser eléctricamente compatible no significa físicamente compatible. En el sentido de que podemos encontrar que el dispositivo “choca” con alguna parte (un disipador, otro periférico, y no os cuento nada con cualquier tipo de envoltura que le pongamos a la Rpi).
Por otro lado, en la parte inferior encontramos dos puertos multifuncionales de tipo Grove. Ya estamos acostumbrandonos a ver este tipo de conexión en otros dispositivos como el M5Stack, que parecen estar convirtiéndose en una tendencia en el ámbito de los procesadores para docencia.
Sin embargo, al final el sistema Grove no deja de ser un conector estándar diseñado para hacer más sencilla las conexiones. Lo que significa que también podemos usarlos como puertos de conexión con cualquier dispositivo, siguiendo el siguiente pinout.
Como ‘peros’, en su uso echamos de menos una batería, aunque sea pequeña, que el conjunto parece estar pidiendo a gritos. Si bien es cierto existe un HAT que podemos adquirir por 9€, el propio fabricante reconoce que tiene algunos problemas que serán resueltos en próximas versiones, sin especificar cuándo.
Como decíamos al principio, Wio Terminal es Open Source y toda la documentación la encontraremos en la página web del proyecto en Seeed Studio, donde también podemos adquirir el dispositivo por un precio de 29.90€ + gastos de envío.
Probando el WIO Terminal
Para la programación disponemos de múltiples opciones, las ya habituales en un dispositivo que se mueve dentro del ecosistema de Arduino.
Estas incluyen desde ‘Wiring’ (C++), MicroPython, y ArdyPy (un desarrollo propio de Seeed Studio para programar en Python desde el entorno de Arduino). Todo ello está bastante bien documentado en la Guía de inicio del proyecto.
Por ejemplo, para programar el Wio Terminal como un “Arduino normal”, desde el IDE de Arduino, simplemente debemos añadir al gestor de placas la siguiente URL.
https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json
A continuación, vamos al gestor de placas y añadimos la familia “Seed SAMD Boards”
Tras la instalación de la definición de placas ya podremos seleccionarla y comenzar a programar. Por ejemplo, vamos a hacer un sencillo programas de ejemplo para comprobar que todo funciona correctamente.
#include <TFT_eSPI.h>
#include <SPI.h>
TFT_eSPI tft = TFT_eSPI();
unsigned long drawTime = 0;
void setup(void) {
Serial.begin(115200);
tft.init();
tft.begin();
tft.setRotation(3);
tft.fillScreen(TFT_BLACK);
tft.setTextColor(TFT_WHITE);
tft.setTextSize(2);
tft.drawString("www.luisllamas.es", 50, 120);
tft.setTextSize(1);
tft.drawString("¡Hola desde WIO terminal!", 50, 80);
}
void loop() {
}
Este sería el resultado de este sencillo programa de “hola mundo”.
La definición de placas que hemos añadido al entorno de Arduino incorpora un repertorio amplio de ejemplos que podemos consultar para probar el Wio Terminal.
Por otro lado, la documentación en la página del proyecto es sorprendentemente buena, con abundancia de ejemplos sobre todas las funciones del dispositivo. Incluso, encontramos una sección donde los desarrolladores y los usuarios comparten proyectos desarrollados, para que sirvan de inspiración al resto.
Conclusión
La verdad que el Wio Terminal es una auténtica cucada que entra por los ojos nada más tenerlo en la mano. La sensación es muy buena, da la impresión de robusto y bien fabricado.
El SAMD51P19 proporciona una gran potencia y velocidad, a la vez que tenemos conectividad WiFi y Bluetooth, y una gran cantidad de periféricos integrados, todo ello en un único dispositivo compacto.
Respecto a la utilidad, como suele pasar… depende de para que uso lo contemplemos. Desde luego lo veo una máquina muy apropiada para la docencia, o para un regalo a alguien que quiera aprender.
Por un poco más de lo que cuesta un Arduino “original”, tenemos un dispositivo infinitamente más avanzado y versátil. Una buena muestra de que, como me habréis oído comentar a veces, el Arduino “original” (o su precio) es irreal a día de hoy.
Por otro lado, por supuesto, el Wio Terminal no puede competir en precio con un Arduino clónico, Aunque ya hemos dicho un Arduino Atmega328P no es remotamente comparable con esta máquina en prestaciones.
Para encontrar algo similar, probablemente, encontremos su rival natural en el ESP32 y en los desarrollos basados en él, como el M5Stack. De hecho, encontramos paralelismos entre ambos desarrollos, aunque cada uno tenga su propia personalidad.
El precio del Wio Terminal es ligeramente superior, pero a cambio incorpora más dispositivos y la sensación general es de más calidad. Pero, nuevamente, echamos mucho de menos una batería integrada (aunque fuera pequeñita).
En cualquier caso, es un dispositivo interesante y muy divertido con el que jugar, y una alternativa más a enriquecer el ecosistema de Arduino.