M5Stack est une plateforme de développement modulaire basée sur le SoC ESP32 d’Espressif. Les modules (capteur, actionneur, module de communication) viennent s’empiler sur le Core que l’on peut programmer en MicroPython ou avec une version améliorée de blockly (UIFlow) directement depuis un navigateur internet.
La plateforme M5Stack est très originale. Les boitiers et les nombreux modules disponibles permettront aussi bien de développer rapidement des petits outils professionnels que d’aider les étudiants à apprendre les concepts de programmations utilisé dans l’internet des objets à moindre coût.
Core M5Stack : module de base
Le module Core est le module principale sur lequel viendrons s’empiler les modules spécifiques (capteur, caméra, joystick, gamepad, GPS, LoRaWan…).
Le Core est disponible en trois couleurs. Gris, rouge (fire) et noir (basic).
Quatre kits de démarrage sont aussi commercialisés :
- M5Lite. Kit composé d’un Core Basic et d’un capteur d’ambiance (DHT12 + BMP180). Le capteur est connecté au Core à l’aide d’un câble avec connecteur Grove
- M5GO. Kit composé d’un Core Basic, 6 capteurs avec connecteur grove (ENV, IR, RGB, PIR, ANGLE, HUB). Un adapteur compatible Lego
- M5Go Face. Kit constitué d’un boitier de plus grande dimension sur lequel on pourra y placer un mini clavier ou un gamepad. Kit livré avec un chargeur de batterie.
Capteurs (Unit) à empiler sur un Core M5Stack
Le tableau suivant récapitule les principales spécifications des Units M5
Désignation | Spécifications | Adresse | Librairies conseillées* | Documentation |
ENV Sensor | DHT12. Température -20 ~ 60 ℃ (±0.2℃), humidité 20 ~ 95 %RH (0.1%)
BMP180 300 ~ 1100hPa (±1hPa) |
Grove A SCL (GPIO22) SDA (GPIO21) |
DHT12.h
Wire.h Adafruit_Sensor.h Adafruit_BMP280.h |
Lire |
|
||||
|
||||
ESP32-Cam | idem M5 Camera, carte seule | USB-C, Grove, Interface-Web | Serveur vidéo pré-installé | Lire |
M5 Neo Flash Unit | Panneau lumineux constitué de 192 LED
Détecteur de mouvement PIR |
Grove B
GPIO36 (PIR) GPIO26 (Panneau RGB) |
FastLED | Lire |
HEX Unit, panneau Hexagonal 37 LED | Contrôleur WS6812 | Grove A, B ou C | FastLED.h | Lire |
Neopixel Unit. Ruban de LED de 10 à 200cm | Contrôleur SK6812 | Grove A | FastLED.h | Lire |
Trace Unit | Module suiveur de trace au sol pour robot suiveur de ligne | 0x5a | Wire.h | Lire |
Weight Unit |
Unité de pesage. Attention la cellule de charge n’est pas livrée avec le module HX7111 |
Grove A, B ou C | hx711.h | Lire |
Lecteur d’empreinte digitale |
FPC1020A |
Grove C, uart | finger.h | Lire |
GPS Unit |
Récepteur GPS (AT6558) + amplificateur de signal (MAX2659) |
Grove C, uart2 | Lire | |
TTL RS485 Converter |
Convertisseur TTL RS485. MAX485 + SP485EEN |
Grove C, uart2 | Lire | |
Connecteur d’extension 8 E/S digitales supplémentaires |
PCA9554PW |
Grove A
I2C, adresse 0x27 |
PCA9554.h | Lire |
PROTO Unit |
Platine de prototype au pas de 2.54mm |
Grove B | Lire | |
Connecteur au standard HT3.96 4 poles |
|
Lire | ||
HUB I2C |
Permet de connecter jusqu’à 3 modules à l’aide d’un connecteur Grove |
Lire | ||
Relay Unit |
3A @ 30 V DC ou 220 V AC Connecteur au standard VH3.96 |
Lire | ||
NeoPixel 3x RGB |
Plusieurs modules RGB peuvent être chainées |
Grove B | Adafruit_NeoPixel.h | Lire |
Makey, interface de commande pour jeux |
ATMega328p Buzzer, 16 touches |
Grove A, I2C (0x51) | Wire.h | Lire |
DAC Unit |
Convertisseur 12-bits MCP4725. Jusqu’à 3.3V |
Grove A, I2C (0x60) | Adafruit_MCP4725.h | Lire |
ADC Unit Unit |
Convertisseur Analogique vers Digital 16-bits ADS1100. Connecteur HT3.96 |
Grove A, I2C (0x48) | Wire.h
ADS1100.h |
Lire |
RFID |
Chip MFRC522 compatible avec le NFC 13.56MHz |
Grove A, I2C (0x28) | MFRC522_I2C.h | Lire |
HEART Unit |
Oxymètre et pulsation cardiaque MAX30100 |
Grove A | MAX30100.h | Lire |
TOF (Time Of Flight) Unit |
Mesure de distance par laser VL53L0x. Plus de détails en lisant cet article. |
Grove A, I2C (0x29) | Lire | |
Color Sensor |
Détecteur de couleur TCS34725 (matrice de 3×4 points d’analyse) |
Grove A | Adafruit_TCS34725.h | Lire |
CardKB Unit |
Mini clavier QWERTY |
Grove A, I2C (0x5F) | M5Stack.h | Lire |
Joystick Unit |
X, Y, Z, 1 bouton |
Grove A, I2C (0x54) | M5Stack.h | Lire |
Dual-Button Unit |
Double bouton |
Grove B | M5Stack.h | Lire |
Simple-Button Unit |
Bouton simple |
Grove B | M5Stack.h | Lire |
Thermal Unit |
Imageur thermique MLX90640 (32 x 24 pixels) |
Grove A, I2C (0x33) | MLX90640_API.h
MLX90640_I2C_Driver.h |
Lire |
NCIR Unit |
Capteur de température sans contact MLX90614permettant de mesurer des températures de -70°C to +380°C (±0.5°C). Champ de mesure de 90° |
Grove A, I2C (0x5A) | M5Stack.h
Wire.h |
Lire |
PIR Sensor |
Détection de présence jusqu’à 1,5m avec un angle < 100° |
Grove B (GPIO36) | Lire | |
IR Unit |
Emetteur / récepteur infrarouge pour mimer une télécommande, piloter un Stack avec une télécommande |
Grove B. Emetteur (GPIO26), récepteur (GPIO36) | Lire | |
Light Sensor |
Mesure de luminosité à l’aide d’une photo-résistance. Traitement du signal amélioré avec double comparateur LM393 |
Grove B. Signal analogique (GPIO36), signal numérique (GPIO26) | Lire | |
Angle Sensor |
Potentiomètre 10KΩ. Signal numérisé par le |
Grove B (GPIO36) | Lire | |
EARTH Sensor |
Mesure de l’humidité du sol. Traitement du signal amélioré avec double comparateur LM393 |
Grove B. Signal analogique (GPIO36), signal numérique (GPIO26) | Lire |
(*) Pour développer avec du code Arduino.
ESP32-CAM avec module caméra OV2640
L’ESP32-CAM de M5Stack. C’est la version économique équipé d’un module caméra OmniVision OV2640. En général, ce sont des clones de la version originale de M5Stack. Compte tenu du faible écart de prix, il est préférable d’acheter la nouvelle Timer Camera équipé de composants de nouvelle génération (OV3660 3MP, ESP32-D0WD avec 8Mo de PSRAM intégré) et d’un connecteur pour batterie LiPo.
M5Stack Timer Camera avec module 3MP OV3660
La Timer Camera de M5Stack est un module caméra basé sur un ESP32 (version non précisée, probablement ESP32-D0WD) avec 8Mo de PSRAM intégré. Le module caméra OV3660 offrant une résolution de 2048×1536 pixel est équipé d’une lentille ayant un champ de vision de 66,5°. La carte de développement dispose également d’une horloge RTC (BM8563), un port PH2.0-4P (Grove), une LED blanche (IO2) et un connecteur pour batterie LiPo. La charge de la batterie pourra être mesurée sur la broche (IO33). La programmation pourra se faire avec du code Arduino (librairie ESP32-Arduino), avec du code C++ (ESP-IDK 4.1 minimum) ou en blockly avec la version maison UIFlow.
La version X est livrée dans un boitier de protection compatible LEGO et une batterie de 140mAh.
Hub pour modules Grove
Si vous avez un très grand nombre de modules, vous pouvez utiliser un hub
Câbles Grove en promo
Convertisseur Grove vers GPIO Arduino, Raspberry Pi, ESP32, ESP8266
Si vous n’avez pas de Hub Grove (unité de base pour connecter les modules Grove), vous pouvez utiliser un adaptateur (Grove to Pin Header Converter) pour relier les broches du Raspberry Pi ou Arduino aux modules Grove.
Repérage des broches du bus M-Bus
Le bus interne commun à tous les modules M5Stack est dénommé M-Bus. Voici le repérage des broches