Los procesadores de M5Stack

Objetivos

 
 

  • Presentar el M5Stack. Con ESP32
  • Instalar pluggins y drivers varios.
  • Escribir nuestros primeros mensajes en la pantalla
  •  

    Material requerido.

     

     

    MOdelo basico  

     

    Un M5Stack

     

     

     Detalle de conectores Un cable USB C

     

    M5STACK y ESP32

     

    Somos unos enamorados de micro ESP32 de Espressif, Menuda novedad. Llevamos tiempo publicando tutos sobre el ESP32 y más aún sobre su hermano pequeño (Que nació antes) el  ESP8266.

    Son micros bien dotados, con comunicaciones incluidas y un precio ridículo que llevan el concepto Arduino un paso más allá para cualquiera que tenga interés en el DIY y el IOT. Tengo que reconocer con vergüenza que me daba un poco pereza empezar a hacer series de tutos basados en el ESP32 porque ya había multitud de ellos por internet y no estaba muy seguro de que tuviera sentido más de lo mismo.

    Estábamos tan acostumbrados a usar los Arduino y ESPs con sus cablecitos y protoboards que no se nos había ocurrido que podía haber un sistema mejor, y por eso cuando descubrimos el M5Stack y su cantidad de módulos satélite entramos en shock todo el panel de Prometec.

    MOdelo basicoUn módulo integrado, con diseño elegante en forma de cajita con display, con un conector estándar, que permite apilar y conectar diferentes módulos sin mas que hacer presión y todo queda firme, elegante y conectado.  Era una idea tan buena que no entendíamos como no se nos había ocurrido a nosotros (El mundo está lleno de gente más lista que yo, fue duro comprenderlo)

    El M5Stack es una cajita increible, que contiene internamente un ESP32 con WIFI+Bluetooth + procesador 32 bits doble. Incluye un panel LCD color de 320×240 puntos más altavoz, lector de tarjetas SD, 3 botones, alimentador USB C, botón de encendido y batería.

    Además es, por supuesto, compatible Arduino. Se puede programar en C++ en Bloques y en Python y disponen de un conjunto de librerías organizadas con mucho sentido común e integrados de modo coherente y sistemático que facilita el aprendizaje.

    Si normalmente los fabricantes nos van entregando librerías independientes por cada sensor o elemento que nos venden, lo que nunca agradeceremos bastante, los chicos de M5Stack integran diferentes librerías en un recubrimiento global a base de clases genéricas que van descendiendo hasta donde queramos.

    Descripcion de elementos

    Y aún más (Por si aún no habíais visto lo emocionado que estoy) cubren todo el espectro, que va desde bajo nivel para acceder así hardware incluido en el módulo, hasta un ya disponible acceso a cosas como el WIFI, el Bluetooth el Lora de forma nativa y cosas de más nivel como MQTT para transferir datos a la nube.

    Poder hacer todo este tipo de cosas razonablemente desde una plataforma de escaso coste y con programación unificada es ya algo sorprendente pero que se pueda hacer tanto desde alto nivel con C++ y Python como con bloques (Tienen su propio programa derivado del Scratch llamado UIFlow) es algo increíble y que facilitará mucho las cosas a amigos del háztelo tú mismo y a centros de educación usarán el mismo material para primaria y para bachiller desde dos caras del mismo sistema

    Y como ya sabéis que los entusiastas tendemos a ponernos pesados con las cosas que nos gustan ya podéis iros preparando para una tanda de tutoriales basados en el M5Stack porque tenemos para rato con el asunto.

    Yo voy a empezar con los tutos en C++ (La cabra tira al monte) e Iván se pondrá con los de bloques y, como siempre, esperamos que os resulten de lo más interesantes

     

    Versiones del M5Stack

     

    Como en todo en la vida, en el M5Stack también hay clases y modelos:

     

  • 5V DC power supply
  •  USB Type-C
  • ESP32-based
  • 4 MByte flash + 520K RAM
  •  Speaker, 3 Buttons
  • LCD(320*240)
  • 2.4G Antenna
  • TF card slot (16 Gb Max)
  • Battery Socket & 150 mAh
  • Lipo Battery Ampliable
  • Pins & Holes Grove Port·
  • M-Bus Socket & Pins·
  • Platform UIFlowMicroPythonArduino
  • 5V DC power supply
  •  USB Type-C
  • ESP32-based
  • 16 MByte flash + 520K RAM·
  • MPU6886+BMM150
  •  Speaker, 3 Buttons
  • LCD(320*240)
  • 2.4G Antenna
  • TF card slot (16 Gb Max)
  • Battery Socket & 150 mAh
  • Lipo Battery Ampliable
  • Pins & Holes Grove Port·
  • M-Bus Socket & Pins·
  • Platform UIFlowMicroPythonArduino
  •  

  • 5V DC power supply
  •  USB Type-C
  • ESP32-based
  • 16 MByte flash + 520K RAM + 4M PSRAM
  • MPU6886+BMM150
  •  Speaker, 3 Buttons
  • LCD(320*240)
  • 2.4G Antenna
  • TF card slot (16 Gb Max)
  • Battery Socket 600 mAh
  • Lipo Battery Ampliable
  • Pins & Holes Grove Port·
  • M-Bus Socket & Pins·
  • Platform UIFlowMicroPythonArduino
  • BASIC GRAY FIRE
    ESP32 Basic Core IoT Development Kit ESP32 GREY Development Kit 9Axis Sensor M5Stack FIRE IoT Development (PSRAM 2.0)
    MOdelo basico MOdelo Fire

     

    La diferencia básica es que incluya o no sensores inerciales y la cantidad de memoria disponible para programas y datos. La diferencia de precio entre ellos no es grande, alrededor de 20€ y normalmente cualquiera de los primeros serán suficiente para todo lo que no sea desarrollar proyectos serios.

    Instalando el M5Stack

     

    Para instalar el M5Stack necesitamos hacer lo habitual para trabajar con el ESP32, que es instalar el pluggin correspondiente en Arduino y después instalar el driver USB para el chip USB del módulo (Que no es el habitual)

    Para instalar el pluggin del ESP32 tendemos ya un tuto listo aquí , por favor instalad la última versión disponible del IDE:

    Y para instalar el driver USB pincha aquí:   CP210x USB. Una vez descargado descomprime el archivo y entra en la carpeta, verás algo así:

    Carpeta descomprimida

    Ahora simplemente ejecuta el instalador correspondiente a tu versión de Windows y vete dando que si a todo hasta que acabe

    Si has instalado una versión  del IDE Arduino, que sea al menos 1.8.10, ya podemos instalar las librerías básicas del M5Stack desde el propio IDE. Pincha en Administrar Bibliotecas:

    Imagen del ide arduino

    Y en la ventana que emerge escribe M5stack y pulsa intro:

    Arduino IDE

    Instálate la biblioteca marcada en rojo y ya solo nos queda enchufar nuestro flamante M5Stack al puerto USB (Recuerda que el cable es un USB C) y seleccionar el M5 en la lista de tarjetas y el puerto al que lo has conectado, como siempre:

    Seleccionado el procesador en arduino

    Y el puerto al que lo has conectado:

    Ide arduino

     

    El primer programa en  el M5Stack

     

    Ya estamos listos para empezar a programar con C++ nuestro encantador cacharrito. Vamos a empezar saludando, imprimiendo en la pantalla un mensaje tipo “Saludos de Prometec” (El Hello world me aburre ya):

    Lo primero es incluir la librería de M5

    #include <M5Stack.h>

    Y ahora la inicializamos en el setup e imprimimos directamente con M5.Lcd.print:

    void setup()
    {    M5.begin();
         M5.Lcd.print("Saludos de Prometec");
    }
    
    void loop()
    {  // No hace nada
    }

    El resultado:

    CAptura del mensaje impreso

    Vaya ha sido fácil pero voy a necesitar unas lupas para poder leer esto con comodidad. ¿Podría cambiar el tamaño, la posición o el color del texto?  Si alguien ha dicho NO, por favor, que deje de leer y se inscriba en la facultad de derecho o haga contabilidad o algo así. Esto no es lo suyo.

    Para los que tenéis fe y no hayáis dudado, veamos cómo hacer todo eso:

    M5Stack_400_2

    #include <M5Stack.h>
    
    void setup()
    {    M5.begin();
         M5.Lcd.setTextSize(5);
         M5.Lcd.setCursor(0, 50);    // Set cursor near top left corner of screen
         M5.Lcd.setTextColor(TFT_MAGENTA, TFT_BLUE);
         M5.Lcd.print("Saludos de Prometec");
    }
    void loop()
    {}

    Las primeras instrucciones nuevas son:

    M5.Lcd.setTextSize(5);
    M5.Lcd.setCursor(0, 50);    // Set cursor near top left corner of screen
    M5.Lcd.setTextColor(TFT_MAGENTA, TFT_BLUE);

    Con las que la primera modifica el tamaño del Font en pantalla a 5, la segunda posiciona el cursor (La posición a escribir el próximo mensaje) a x=0, y = 50, y la tercera dispone el color magenta como el que usaremos para escribir los mensajes y el Azul como color de fondo.

    ¡Accede al contenido!

    El resultado está a la vista:

    Muestra de texto en pantalla

    No está mal para una primera aproximación, Por supuesto que hay primitiva graficas adicionales, de relleno y borrado de la pantalla pero eso será ya tema de la siguiente sesión, que por hoy ya nos hemos ganado el sueldo.

     

    IMAGEN DE MARCA

     

     

     

     

     


    Deja una respuesta