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
M5Stack Basic Unità principale M5Stack Core Basic.
M5Stack Fire Unità principale M5Stack Core Fire.
M5StickC Unità principale M5StickC.
M5StickV Unità principale M5StickV.
M5Stack IoT Starter Kit Unità principale Core M5Go + ENV Kit.
M5Stack Industrial Demoboard Kit Unità principale M5Stack su scheda integrata di prototipazione industriale.
ENV Kit 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.
Module Kit 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.
HMI Kit Kit moduli HMI include:
– unità mini pulsante;
– unità doppio pulsante;
– unità mini tastiera;
– unità joystick.
Thermal Imaging Cam Termocamera per imaging a scansione termica.
Thermal Imaging Cam HAT Termocamera hat per imaging a scansione termica.
M5CameraF Fotocamera grandangolare fish eye con giroscopio, sensore di pressione e supporto WiFi streaming.
M5CameraX Fotocamera con giroscopio, sensore di pressione e supporto WiFi streaming.
Laser ToF Modulo con sensore a scansione laser ToF per rilevamento 3D, operazioni di ranging e rilevamento gesti.
Laser ToF HAT Modulo hat con sensore a scansione laser ToF per rilevamento 3D, operazioni di ranging e rilevamento gesti.
Laser Tx Modulo trasmettitore laser a fuoco regolabile.
Laser Rx Ricevitore impulsi laser.
NCIR Unit 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.
NCIR Unit HAT 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.
Sat Positioning Modulo posizionamento satellitare GPS BDS e GLONASS.
Heart Unit Modulo per monitorare le pulsazioni cardiache e i livelli d’ossigenazione del sangue (emoglobina legata all’ossigeno).
Fingerprint Reader Modulo per la lettura d’impronte digitali.
Fingerprint Reader HAT Modulo hat per la lettura d’impronte digitali.
Mini RFID Modulo per la lettura di chip RFID.
I2C Hub 1 to 6 Hub d’espansione I2C che aggiunge 6 porte Grove.
Relay Module Modulo relè 3A DC 30V AC 220V.
Speaker HAT Altoparlante hat da 3W con amplificaore mono di classe D.
M5StickC YUN Modulo hat di montaggio a parete con sensore ambientale per temperatura, pressione e umidità per M5StickC.
M5StickC BugC Modulo hat base microrobot quadrirotore con 2 led RGB per M5StickC.
M5StickC Puppy Modulo hat base microrobot con 4 motori servo SG90 per M5StickC.
M5StickC RoverC Modulo hat microrover omnidirezionale quadrimotore per M5StickC.
Servo HAT Modulo hat che aggiunge un controller servo a 8 canali per M5StickC basato su microcontrollore STM32F030F4.
Module Servo 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: , , , , ,

Sviluppo software su misura

Entra in contato con me!

Translate »
www.000webhost.com