Crea tus aplicaciones con M5Stick y UIFlow. Parte 1

La familia M5Stick está compuesta por dispositivos ‘listos para usar’ que integran una potente CPU con una gran cantidad de periféricos, lo que los transforma en herramientas geniales para desarrollar distintos tipos de proyectos. En esta serie de artículos, te mostraré las características principales del M5StickC Plus2, cómo programarlo de manera sencilla en UIFlow y cómo aprovechar su potencial para que desarrolles tus propias aplicaciones.

Introducción

Como te conté en un artículo anterior, M5Stack nos ofrece una amplísima variedad de controladores y módulos periféricos que nos permiten desarrollar distintos tipos de aplicaciones de una forma rápida y sencilla.

Si eres un hobbysta o estudiante que quiere aprender a programar sin complicarse con el hardware, o si eres un profesor que quiere interesar a tus alumnos en las aplicaciones prácticas del Internet de las cosas, la robótica o incluso la inteligencia artificial, estos dispositivos son ideales, porque resuelven en gran medida y de una manera simple el hardware necesario y nos brindan muchas herramientas que nos permiten enfocarnos en el nivel del software y la aplicación.

Fig. 1. El M5StickC Plus2

En este tutorial, dividido en partes, te voy a dar los detalles de un miembro destacado de la familia M5Stack, el M5Stick C Plus2, un módulo que integra una gran cantidad de periféricos que lo hacen sumamente versátil. Te contaré cuales son sus características, cómo puedes programarlo y te mostraré paso a paso como prepararlo para desarrollar aplicaciones de una forma super simple empleando el lenguaje gráfico UIFlow. Finalmente, te mostraré un ejemplo que demuestra que sencillo es tener funcionando una aplicación en muy poco tiempo.

Características

El M5Stick C Plus2 es la última versión (por ahora) del M5Stick, un módulo listo para usar o autocontenido que integra una CPU ESP32 con una multitud de chips especializados en distintas funciones.

Veamos cuales son sus caracteristicas:

CPU: ESP32 (ESP32-­PICO-­V3-­02-Base)

  • Dual Core, 240 MHz
  • Conectividad: Wifi (2,4 GHz), Bluetooth V4.2, BLE
  • RAM: 2MB PSRAM
  • Flash: 8MB

Periféricos incluidos:

  • IMU -acelerómetro mas giróscopo- de 6 ejes (MPU6886)
  • Transmisor infrarrojo
  • Microfono (SPM1423)
  • RTC -reloj de tiempo real- (BM8563)
  • Tres botones de uso múltiple
  • LCD TFT (1.14 pulgadas, 135*240 pixeles, ST7789v2)
  • Bateria LiPo de 3,7V y 200mAh
  • Buzzer pasivo

Conexiones al exterior:

  • Conector de expansión: Pines G0, G25/G36, G26 del ESP32
  • Conector Grove: Pines G32, G33 del ESP32
  • USB-C para alimentación (5V) y programación

Montaje:

  • Wearable y sobre pared con soportes o imanes.

Ampliación:

  • A través de HATs (módulos específicos para M5Stick) en el conector de expansión.
  • Usando el conector tipo Grove (I2C+GPIO+UART)
Fig. 2. Resumen de características (Fuente: M5Stack)
Fig. 3. El conector de expansión (de color negro) y un HAT
Fig. 4. Un módulo conectado al conector Grove

El conector Grove

Si bien los distintos controladores de M5Stack tienen distintas formas de conectar con sus módulos de ampliación y periféricos, un elemento en común a todos ellos es el conector Grove, así que me parece que se merece un apartado para explicarlo con mas detalle.

El conector Grove no es un estandar en el sentido en que no está definido por una norma, pero se ha hecho popular y son varias las marcas que lo incluyen en algunas de sus placas, como Adafruit, Seeed, Arduino, Raspberry y M5Stack, claro.

Fué introducido por la empresa Seeed Studio en el año 2010 con la idea de facilitar la conexión de distintos módulos que pueden contener sensores o actuadores de distinto tipo a una placa base o CPU.

El siguiente video hace un breve introducción a este sistema:

https://youtube.com/watch?v=lxhZRxg2L0Q%3Fsi%3DZOpb-cjAdXvQTJAW

El conector Grove tiene un paso de 2mm y cuenta con 4 pines, de los cuales dos se reservan para la alimentación (VCC y GND) y los otros sirven para entradas y salidas, tanto digitales como analógicas o como pines de un protocolo de comunicaciones tal como UART o I2C.

Si bien la asignación de los pines de alimentación está claramente definida, el uso de los otros dos pines puede variar considerablemente entre distintos fabricantes.

Fig. 5. El conector Grove y un cable de conexión

En el caso particular de M5Stack, el conector Grove se asocia con un puerto (Port) de conexiones que puede ser de uno de estos tres tipos:

  • A (rojo) para conectar módulos que usen el protocolo I2C.
  • B (negro) es del tipo GPIO, para conectar entradas o salidas digitales o analógicas.
  • C (azul) para módulos o placas que se comuniquen empleando el protocolo UART.

De todos modos, en algunos casos (como en el M5Stick), el puerto es “multiuso” y puede funcionar en cualquiera de los tres modos descriptos mas arriba.

Fig. 6. Tres módulos con distintos puertos: A la izquierda Sensor Ambiental (I2C) al centro Doble Relé (GPIO) y a la derecha GPS (UART).

Programación

El M5Stick C Plus2, como los otros integrantes de la familia M5Stack pueden ser programados de distintas maneras:

  • Arduino
  • Micropython
  • UIFlow
  • .NET nano framework

Antes de poder programarlo en cualquier de esos lenguajes, debes instalar un firmware específico. En la segunda parte de este tutorial te explicaré paso a paso como instalar el firmware de UIFlow.

Conclusiones

Los dispositivos de M5Stack y particularmente el M5Stick son excelentes para encarar proyectos en distintas áreas, aunque se destacan en especial en aplicaciones de IOT (Internet de las cosas). El M5Stick incluye una rica variedad de chips especializados que permiten realizar muchos proyectos útiles y divertidos sin conectar absolutamente nada mas, aunque tiene la posibilidad de ampliar su funcionalidad conectandole HATs y módulos adicionales.

En esta primera parte de este tutorial desarrollé las características principales del M5Stick y sus posibilidades de interconexión. En la parte 2 te mostraré con detalle como instalar y comenzar a usar el lenguaje gráfico UIFlow para que empieces a escribir tus propios programas.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Habilitar notificaciones OK No, gracias