12 Dicembre 2019 silviomarano

M5Stack i Lego dell’elettronica open per la prototipazione IoT

M5Stack è la compagnia fondata da Jimmy Lai con il prefissato obiettivo di trovare una migliore sinergia tra la fase di prototipazione e il prodotto finale. Sono riusciti nel loro intento? 

L’internet delle cose (IoT) è uno dei trend tecnologici degli ultimi anni e sono tantissime le soluzioni e opportunità di progettazione. Ho avuto modo di provare alcuni dei prodotti della gamma M5Stack per valutarne i vantaggi rispetto alle altre più comuni soluzioni per l’elettronica open source.

I prodotti cardine della gamma M5Stack sono numerosi; a differenza delle popolari schede Arduino, o ad altri prodotti per l’elettronica opensource, queste non sono schede “nude” ma piccoli box (tipicamente basati su ESP32 o altri SoC) con svariate componenti già integrate (tra cui un display), subito pronti all’uso ed espandibili con altri blocchi modulari da incastrare con la stessa semplicità con cui si incastra un mattoncino lego.

Possono essere programmate tramite ArduinoIDE (con il classico dialetto C-like di Arduino) o tramite UIFlow in MicroPython, o un editor a blocchi in grado di rendere le operazioni semplici anche per chi non ha particolare dimestichezza con i linguaggi di programmazione. L’interfaccia dell’editor a blocchi di UIFlow è basata su Google Blockly, un sistema di programmazione a blocchi facilitato dove basta scegliere i blocchi funzione collegandoli tramite operazioni di drag-and-drop. MicroPython è invece un’implementazione del popolare linguaggio Python ottimizzata per l’esecuzione su microcontrollori, particolarmente diffusa in ambito embedded e largamente compatibile con Python 3. È possibile programmare su piattaforma M5Stack da PC oppure totalmente online da qualsiasi dispositivo dotato di browser Internet (smartphone compresi) semplicemente flashando uno dei firmware UIFlow tramite il software M5Burner presente sul sito, accedendo poi all’UIFlow IDE in cloud immettendo l’API KEY del dispositivo e selezionando il modello. Dal cloud editor online è possibile utilizzare sia la programmazione a blocchi che in MicroPython per caricare ed eseguire codice da remoto direttamente sull’unità, ma non è possibile fare altrettanto utilizzando la programmazione Arduino, che al momento è possibile solo connettendo l’unità a un PC nel modo “classico” tramite cavetto USB.

UIFlow Blockly editor


Unità M5Stack

Le unità principali della gamma M5Stack si dividono fondamentalmente in 2 gruppi Core e Stick. I prodotti della serie Core sono dei piccoli box con schede d’espansione impilabili l’una sull’altra; i prodotti della serie Stick (talvolta chiamati finger computer perché grandi quanto un dito) sono invece di dimensioni e fattore forma analogo a quelle di una pendrive USB con blocchi d’espansione (chiamati hat) che si incastrano a cappuccio sull’estremità.

Di seguito una lista delle più popolari unità principali con le rispettive caratteristiche.

M5Stack Core Basic

M5Stack Core Basic

Caratteristiche Generali:

  • Basata su ESP32 (D0WDQ6)
    • Microcontrollore Tensilica LX6 dual-core 240 MHz da 600 DMIPS (milioni d’istruzioni al secondo su benchmark Dhrystone, un indicatore sintetico delle prestazioni d’elaborazione su numeri interi);
    • 520 KB SRAM;
    • WiFi 802.11 b/g/n HT40, funzionalità trans-ricevitore, stack LWIP;
    • Bluetooth v4.2 a doppia modalità (classica e BLE);
    • Sensore ad effetto Hall;
    • Supporto fino a 10 interfacce tattili di tipo capacitivo;
    • Oscillatore a cristallo da 32 kHz;
    • PWM/timer input/output disponibile su ogni pin GPIO;
    • SDIO master/salve 50MHz;
    • Supporto interfaccia scheda SD.
  • 16 MByte flash;
  • Display LCD a colori da 2 pollici 320×240 ILI9341;
  • 3 Pulsanti programmabili, 1 pulsante reset;
  • Speaker 1W-0928
  • Amplificatore mono di Classe-D NS4148;
  • Antenna 3D 2.4GHz Proant 440;
  • Slot MicroSD;
  • Connettori
    • Porta Grove I2C (PH 2.0-4);
    • M-BUS 2×15 pin;
    • USB Type-C (connessione UART, alimentazione, carica batteria);
  • Gestore alimentazione IP5306 + EA3036;
  • Slot Batteria & batteria al litio da 150 mAh;
  • Alimentazione 5v DC;
  • Dimensioni 54 x 54 x 12.5 mm.

M5Stack Fire

M5Stack Fire

La versione top di gamma della serie core, dispone di tutte le caratteristiche di Core Basic ma ha in più:

  • IMU a 6 assi (giroscopio a 3 assi + accelerometro a 3 assi) MPU6886;
  • Magnetometro BMM150
    (queste due unità elettromeccaniche per quanto riguarda la versione base sono invece disponibili solo nella versione Grey in edizione limitata)
  • Sensore 9DOF, un sensore IMU a 9 gradi di libertà costituito da MPU6050+MAG3110;
  • 16 MB di SRAM (al posto di 520KB);
  • Microfono integrato BSBE3729;
  • 2 blocchi Lego Blocks in dotazione, M5GO Bottom e M5GO CHG Base ad aggancio magnetico, che aggiungono ulteriori porte Grove, e una scheda di prototipazione ProtoBoard;
  • LEDbar SK6812 da 10 LED RGB 3535;
  • Batteria al litio più capiente da 600 mAh (contenuta nel blocco modulare M5GO).

M5StickC

M5StickC

Piccola e con un costo oscenamente basso ha le seguenti caratteristiche:

  • Basata su ESP32 (PICO-D4) dalle caratteristiche descritte in precedenza per M5Stack Core Basic;
  • 520K SRAM;
  • 4 MByte Flash;
  • IMU a 6 assi (giroscopio a 3 assi e accelerometro a 3 assi) SH200Q/MPU6886;
  • Display LCD TFT a colori da 0.96 pollici risoluzione 80×160 ST7735S;
  • LED monocromatico (rosso);
  • Microfono SPM1423;
  • Trasmettitore a infrarossi IRG10;
  • 1 tasto programmabile, 1 tasto reset;
  • Antenna 3D 2.4GHz Proant 440;
  • Orologio in tempo reale (RTC) BM8563;
  • Connettori
    • Grove I2C (PH 2.0-4);
    • GPIO 8 pin;
    • USB Type-C (connessione UART, alimentazione, carica batteria);
  • Gestore alimentazione APX192;
  • Batteria al litio da 80 mAh;
  • Alimentazione 5V DC;
  • Supporta kit Wearable e per montaggio a parete;
  • Dimensioni 48 x 24 x 18 mm.

Come prevedibile, essendo davvero minuscola, doveva pur sacrificare qualcosa ma è comunque molto potente e ha un IMU e un trasmettitore a infrarossi che non sono presenti nella versione basic (a meno di espanderla con moduli aggiuntivi), e un utilissimo RTC, che al momento nessun’altra unità della gamma ha integrato. Ne esiste anche una variante più vecchia meno diffusa di colore grigio (la M5Stick senza “C” finale) che ha caratteristiche simili: ha display OLED anziché TFT, ha in più un buzzer integrato (DET402-G-1) ma non ha lo slot d’espansione GPIO, non ha il microfono e non ha nessun LED.


M5StickV

M5StickV

Questa unità, rispetto agli altri modelli, è un po’ un’outsider non essendo basata su ESP32 ma su Kendryte K210 prodotto dalla Canaan Inc. (cosa che la limita nella connettività wireless ma la rende molto più potente nelle operazioni computazionali) ed è la proposta della serie M5Stick orientata riconoscimento e identificazione visiva e altre applicazioni di computer vision AIOT (ossia AI+IoT).
Le sue caratteristiche sono le seguenti:

  • SoC Kendryte K210
    • processore principale dual-core 64-bit RISC-V RV64IMAFDC da 400MHz
    • 2 unità FPU indipendenti
    • 1 KPU processore neurale (NPU) da 0.8Tops (tera-operazioni al secondo);
    • accelerazione dual hardware operazioni FFT (trasformata di Fourier veloce) 512-punti 16bit;
    • FPIOA (Field-Programmable IO Array) che consente di rimappare ogni periferica su qualsiasi pin, usando un set di funzioni specifico;
    • 8MB di RAM (6MB general purpose, 2MB dedicate solo per operazioni della NPU);
    • APU per elaborazione audio accelerata via hardware;
  • 16 MB di memoria flash;
  • IMU a 6 assi (giroscopio a 3 assi e accelerometro a 3 assi) SH200Q/MPU6886;
  • Display LCD TFT a colori da 1.14 pollici risoluzione 135×240 ST7789;
  • fotocamera OmniVision OV7740 con tecnologia OmniPixel 3-HS ad alta fotosensibilità;
  • LED RGB;
  • Amplificatore mono di classe-D MAX98357;
  • Microfono MSM261S4030HOR;
  • Connettori
    • Grove I2C (PH 2.0-4);
    • USB Type-C (connessione UART, alimentazione, carica batteria);
  • Batteria al litio da 200mah;
  • Dimensioni 54 x 54 x 12.5 mm.

Che si tratti del progetto di un sistema di sicurezza intelligente, un citofono smart in grado di riconoscere i volti, un regolatore d’illuminazione a comandi vocali, un sistema in grado di monitorare la qualità dell’aria o trovare fughe di gas, un impianto d’irrigazione smart in grado di capire quando è necessario annaffiare i campi e aprire l’acqua, un analizzatore di rete, un piccolo drone, la velocità e semplicità con cui si può realizzare un progetto su piattaforma M5Stack è assolutamente disarmante e le opportunità limitate solo dalla fantasia del progettista, sia esso un ingegnere, un innovatore, il professore di un corso di studi STEM o semplicemente un hobbista appassionato di alta tecnologia.


Dove acquistare?

A causa del numero spropositato di varianti e accessori, la ricerca del prodotto desiderato risulta un po’ dispersiva, per questo ho creato una tabella di riepilogo con i link diretti per l’acquisto delle unità base e kit d’accessori più interessanti (da uno store affidabile e con prezzi competitivi).

Nome\Link
Descrizione
Unità principale M5Stack Core Basic.
Unità principale M5Stack Core Fire.
Unità principale M5StickC.
Unità principale M5StickV.
Unità principale Core M5Go + ENV Kit.
Unità principale M5Stack su scheda integrata di prototipazione industriale.
Kit di sensori ambientali compatibili con M5Stack e M5Stick include 8 unità d’espansione:
– monitoraggio umidità del suolo;
– unità di monitoraggio temperatura e umidità dell’aria
e pressione atmosferica;
– rilevatore di movimento a infrarossi PIR;
– sensore di luce;
– ricetrasmettitore a infrarossi;
– sensore angolare;
– hub d’espansione;
– LED RGB.
Kit moduli compatibili con M5Stack e M5Stick include 7 unità d’espansione:
– scheda di prototipazione universale;
– modulo relè per operazioni di switching elettro-controllate;
– scheda d’espansione per aggiungere fino a 8 GPIO;
– DAC per la conversione segnale digitale in analogico;
– ADC per la conversione da analogico a digitale;
– convertitore da TTL a RS485;
– convertitore da GROVE a VH3.96.
Kit moduli HMI include:
– unità mini pulsante;
– unità doppio pulsante;
– unità mini tastiera;
– unità joystick.
Modulo Camera con Kendryte K210 per supporto a operazioni di riconoscimento visivo con reti neurali artificiali. Aggiunge il set di funzioni di M5StickV come modulo esterno.
Termocamera per imaging a scansione termica.
Termocamera hat per imaging a scansione termica.
Unità ESP32 utilizzabile standalone con fotocamera grandangolare fish eye e supporto WiFi streaming. Include interfacce per l’integrazione di sensore inerziale a 9 assi (MPU6050), sensore di pressione temperatura e umidità (BME280), e microfono (SPQ2410).
Unità ESP32 utilizzabile standalone con fotocamera e supporto WiFi streaming. Include interfacce per l’integrazione di sensore inerziale a 9 assi (MPU6050), sensore di pressione temperatura e umidità (BME280), e microfono (SPQ2410).
Modulo con sensore a matrice RGB, per l’analisi del colore.
Modulo con sensore a scansione laser ToF per rilevamento 3D, operazioni di ranging e rilevamento gesti.
Modulo hat con sensore a scansione laser ToF per rilevamento 3D, operazioni di ranging e rilevamento gesti.
Modulo trasmettitore laser a fuoco regolabile.
Ricevitore impulsi laser.
Modulo con sensore NCIR per rilevamento termico a distanza con campo visivo fino a 90° e range di temperatura massima misurabile da -70° C a 382,2° C.
Modulo hat con sensore NCIR per rilevamento termico a distanza con campo visivo fino a 90° e range di temperatura massima misurabile da -70° C a 382,2° C.
Modulo posizionamento satellitare GPS BDS e GLONASS.
Modulo per monitorare le pulsazioni cardiache e i livelli d’ossigenazione del sangue (emoglobina legata all’ossigeno).
Modulo per la lettura d’impronte digitali.
Modulo hat per la lettura d’impronte digitali.
Modulo per la lettura di chip RFID.
Hub d’espansione I2C che aggiunge 6 porte Grove.
Modulo relè 3A DC 30V AC 220V.
Altoparlante hat da 3W con amplificaore mono di classe D.
Modulo hat di montaggio a parete con sensore ambientale per temperatura, pressione e umidità per M5StickC.
Modulo hat base microrobot quadrirotore con 2 led RGB per M5StickC.
Modulo hat base microrobot con 4 motori servo SG90 per M5StickC.
Modulo hat microrover omnidirezionale quadrimotore per M5StickC.
Modulo hat che aggiunge un controller servo a 8 canali per M5StickC basato su microcontrollore STM32F030F4.
Modulo core lego impilabile per M5Stack con Servo Controller a 12 canali basato su microcontrollore MEGA328.

NOTE:

  • I moduli standard usano connettore Grove e possono essere usati indipendentemente su unità principale di tipo Core o Stick, i moduli hat sono specificatamente pensati per unità principale di tipo Stick con porta GPIO a 8 pin, i moduli “core impilabili” o “core faces” invece sono specificatamente pensati per unità principale di tipo Core a meno che non abbiano anche porta Grove.
  • Se si connettono multihub su porta Grove per espandere il numero di moduli collegabili contemporaneamente, questa potrebbe non avere energia sufficiente ad alimentarli tutti e potreste dover usare un’alimentazione esterna sulla linea, in particolare nel caso d’unità principali di tipo Stick. Prestate attenzione alle specifiche su porta Grove.
Tagged: , , , , ,

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Sviluppo software su misura

Entra in contato con me!

Translate »