m5_hello.py
Le firmware MicroPython officiel M5Stack expose lcd/text/rect en trois appels : compteur de boutons sans compiler quoi que ce soit. Le mode script gagne l'écran 320×240 du boîtier.
Matériel requis
Un M5Stack Core Basic/Gray (ESP32 dans un boîtier avec écran TFT 320×240, 3 boutons A/B/C, haut-parleur, micro SD, batterie 110 mAh). Aucun (firmware MicroPython « M5Stack » flashé sur la carte).
Branchement
Aucun câblage. Flash du firmware via M5Launcher ou esptool, puis copie de main.py par glisser-déposer (mode disque).
Fonctionnement
Le module m5 encapsule l'ILI9341 (couleurs RGB565) et les boutons en lecture bitmap ; rtc.tick donne les millisecondes. La boucle à 50 ms fait l'anti-rebond par garde temporel. Dans l'Arduino IDE (paquet esp32), carte « M5Stack-Core-ESP32 » ; installez la bibliothèque « M5Stack » (ou M5Unified) via le gestionnaire, puis Téléverser.
Pour aller plus loin
Dessinez un graphe temps réel du micro (module uarray + RMS), ou pilotez l'I2C Grove depuis la console REPL.
m5_hello.py
# MicroPython M5Stack (firmware « M5Stack ») : ecran + boutons sans IDE.
# Flasher le binaire M5Stack sur la carte, copier ce fichier en main.py.
from m5 import lcd, led, rtc
import time, m5
lcd.color(0, 0, 0)
lcd.text(20, 20, "M5Stack MicroPython", 0xFFFF, 4) # RGB565, taille 4
compteur = 0
dernier = 0
while True:
boutons = m5.buttons() # (A, B, C) -> bits
if boutons & 0x1 and time.ticks_ms() - dernier > 300:
compteur += 1
dernier = time.ticks_ms()
lcd.rect(20, 90, 280, 50, 0xF800)
lcd.text(30, 100, "Appuis : %d" % compteur, 0x07E0, 4)
if boutons & 0x4: # bouton C : efface
lcd.rect(20, 90, 280, 50, 0)
compteur = 0
lcd.text(20, 180, "uptime %d s" % rtc.tick() // 1000, 0x001F, 2)
time.sleep_ms(50)