m5_hello.py
El firmware MicroPython oficial de M5Stack expone lcd/text/rect en tres llamadas: contador de botones sin compilar nada. El modo script llega a la pantalla 320x240 de la carcasa.
Hardware necesario
Un M5Stack Core Basic/Gray (ESP32 en carcasa con TFT de 320×240, botones A/B/C, altavoz, ranura microSD, batería de 110 mAh). Ninguno (firmware MicroPython « M5Stack » programado en la placa).
Cableado
Sin cableado. Flash del firmware con M5Launcher o esptool y copia de main.py por arrastrar y soltar (modo disco).
Funcionamiento
El módulo m5 envuelve el ILI9341 (colores RGB565) y los botones en lectura bitmap; rtc.tick da milisegundos. El bucle de 50 ms hace antirrebote con guarda temporal. En el Arduino IDE (paquete esp32), placa « M5Stack-Core-ESP32 »; instale la biblioteca « M5Stack » (o M5Unified) desde el gestor y suba.
Para ir más lejos
Dibuje un gráfico en tiempo real del micrófono (módulo uarray + RMS), o maneje el Grove I2C desde la consola 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)