Hoy vamos a hablar de M5Stack, una familia de dispositivos basados en el ESP32 que están teniendo una gran popularidad entre la comunidad.
Los que compartirnos Twitter, habréis visto que últimamente voy a todos lados con una pequeña cajita naranja con una pantalla. Este dispositivo es uno de los varios miembros de la familia M5Stack.
Esta familia es mucho más amplia, y recoge tanto unidades de procesador, como sensores y accionadores. La filosofía de M5Stack es una serie de componentes apilables (de ahí su nombre) que podemos unir fácilmente, como un “lego”.
Dentro de los procesadores, la mayoría cuentan con un procesador ESP32, en distintas versiones. Ya conocemos las características del ESP32 pero, en resumen, dos núcleos de 240Mhz, WiFi y Bluetooth.
En cuanto a periféricos, M5Stack cuenta con una gran variedad, incluyendo sensores de temperatura, humedad, luz, accionadores de motores, servos. Incluso encontramos pequeños robots, por ejemplo, con ruedas, o incluso mecanum wheel.
Así que vamos a revisar algunas de estas unidades. Hay más de las que vamos a ver, y se amplía continuamente, pero vamos a ver las que tengo yo y puedo opinar.
M5Stick-C
La cajita naranja que os conectaba. Un dispositivo de pequeñas dimensiones, que incorpora un ESP32 Pico, batería, una pantalla LCD, acelerómetro, tres botones, RTC, LED, sensor de IR y micrófono. ¡Ahí es na!
Incorpora todos los dispositivos que necesitas para hacer pruebas y “jugar”. La primera versión montaba una pantalla LCD de 160x80 pixels. La siguiente versión, llamada M5Stick-Plus mejoró la pantalla a 240x135 pixel. Por contra la versión Plus tiene unas pequeñas fugas de luz, que se observan sobre todo en la esquina inferior derecha. No es un gran problema, pero esperemos que lo mejoren en futuras versiones.
Como ya os adelantaba, no puedo estar más enamorado de este bicho. Es un formato muy cómodo, que puedo llevar a cualquier lado, y usar mientras hago pruebas. Si tuviera un IMU de 9 ejes, rozaría la perfección.
Tiene un puerto de conexión tipo Groove, más un puerto de conexión con Vin, Gnd, 5V, 3V3 y 3 pines. A este puerto, además de cables dupont, pueden añadirse una serie de módulos de extensión (hats) como altavoz, sensor de temperatura, etc…
M5 Atom
Los más pequeñitos de la familia, incorporan igualmente un ESP32 Pico. El modelo básico dispone de un LED RGB en la parte superior, mientras que el modelo Matrix monta una matrix de 5x5 LED RGB.
Los Atom disponen un botón en la parte superior, pero carecen de batería, acelerómetro, y resto de dispositivos del M5Stack. (lógico, pero una pena, porque una mínima batería permitiría hacer dispositivos tipo el botón de Amazon Echo)
Por el contrario, los Atom cuentan con muchos más pines GPIO disponibles en su parte trasera. Esto hace que sean la base de una gran cantidad de periféricos, incluyendo servos, motores, y (aquí sí) un módulo adicional con batería.
M5 Core (1 y 2)
Los Core son la “flagship” de la saga M5. En el momento de escribir esta entrada, el Core 2 es el modelo actual. Mantiene respecto a la versión anterior la pantalla LCD de 320x240 pixels, pero esta pasa a ser táctil. Por este motivo, el Core 2 prescinde de los tres botones físicos que disponía la original.
La gama Core está propulsada por un ESP32 modelo D0WDQ6-V3, que incorpora 16MB Flash y 8MB PSRAM. La memoria PSRAM es una característica muy interesante, que carecen los otros modelos, y permiten abordar proyectos mucho más “grandes”.
Además, dispone de batería, IMU de 6 ejes (nuevamente, que bien le irían 9), RTC, tarjeta micro-sd, motor de vibración, micrófono, altavoz… vamos, todo lo que podríais esperar en el dispositivo estrella de la familia.
Conclusión
Como es decía, para mí la familia de M5Stack son todo un acierto en cuanto a diseño, formato, y funcionalidad. Son muy cómodos de usar, están muy bien pensados, y la calidad es muy buena.
Personalmente, no me interesa tanto el ecosistema de periféricos (servos, sensores, etc). Yo lo que quiero es controlar componentes “estándar”, o acoplarlos a mis montajes. Pero encuentro que puede ser un acierto para el ámbito docente por su sencillez.
Pero como dispositivos independientes, encuentro los M5Stack muy interesantes. No sin motivo están cosechando tanto éxito, y la familia se amplía continuamente (incluso tienen módulos con cámara, y ¡un Lidar!)
Asimismo, la documentación, librerías, y ejemplos están bastante bien desarrollados. Pueden programarse en C++, MicroPython, y en un entorno propio llamado UI Flow, pero a mi estos dos últimos no me interesan).
En definitiva, unos dispositivos muy interesantes y los que conviene echar un ojo en el futuro, y todo un ejemplo de cómo hacer realmente bien las cosas.