A M5Stack fabrica hardware que você segura em uma mão e usa direto da caixa: uma tela, botões, um alto-falante e uma bateria já estão lá quando você abre a embalagem. Esse é exatamente o tipo de placa que um simulador precisa acertar em cada detalhe, ou não serve para nada, porque não há uma matriz de contatos para culpar. Este post é sobre como o hardware da M5Stack chegou ao Velxio, o que roda hoje e o pequeno teste que nos propusemos ao longo do caminho: será que os sketches de exemplo da própria M5Stack rodariam no navegador sem alterar uma linha?
Eles rodam. Vamos começar por aí.
O teste de display da própria M5Stack, sem modificações
A M5Stack envia um exemplo de display com a biblioteca Cardputer: retângulos coloridos aleatórios e texto espalhados pela tela, para sempre, como uma forma rápida de ver o caminho do LCD rodando em velocidade máxima. Nós o colocamos na galeria como está.

Para ver você mesmo:
- Abra velxio.dev/example/cardputer-adv-m5-display. Não é necessário criar conta.
- Na barra de ferramentas no topo, clique no botão de play. O sketch é compilado com o mesmo núcleo arduino-esp32 e a biblioteca M5Cardputer que você usaria na IDE Arduino. Uma compilação fria leva alguns minutos; uma compilação quente é muito mais rápida.
- Quando a placa inicializar, a tela se enche de retângulos na resolução máxima de 240x135 do painel.
- Clique no teclado, ou clique na placa e use seu próprio teclado, e abra um dos exemplos de teclado listados no final do post para ver as teclas chegarem no sketch.
Esse sketch é um dos quinze exemplos oficiais da M5Stack na galeria.
No Cardputer ADV, eles são os exemplos de terminal de texto, botão, buzzer,
display, envio IR NEC, tecla única, teclas múltiplas, entrada de texto, microSD
e o jogo de adivinhação REPL. No Core, são HelloWorld, Button, Display, Speaker
e TFCard. Quando um exemplo usava a biblioteca clássica M5Stack, que não
compila mais no núcleo arduino-esp32 3.x (na IDE Arduino ou em qualquer outro
lugar), ele foi portado para M5Unified, a biblioteca que a M5Stack recomenda
hoje. Todo o resto está intocado.
As duas placas

M5 Cardputer ADV. O computador do tamanho de um cartão: um ESP32-S3, uma tela de 1,14 polegadas 240x135, um teclado de 56 teclas, uma IMU, um microfone e um alto-falante através de um codec ES8311, um emissor IR, um slot microSD e uma bateria. No Velxio, a tela desenha na placa, o teclado inteiro digita (clique nas teclas, ou foque na placa e digite no seu próprio teclado), o alto-falante toca através do seu computador, e o microfone transmite o microfone do seu computador quando você liga o alternador de Mic no cabeçalho do canvas. O botão Sensors ao lado inclina a IMU BMI270 e define o nível da bateria, para que o código que reage a qualquer um deles possa ser exercitado. O emissor IR também responde: um ponto na placa pisca a cada transmissão decodificada. O microSD é um cartão FAT real com um painel de upload. Wi-Fi e MicroPython funcionam; o rádio BLE não é emulado.

M5Stack Core (Basic v2.7). O clássico ESP32 empilhável de 54x54 mm com uma tela de 2 polegadas 320x240 atrás do vidro, três botões frontais, um alto-falante, um slot TF e uma porta Grove. A tela pinta, os três botões clicam (active-low, como na fiação), os tons do alto-falante tocam na altura real do sketch, e o slot TF é um cartão real. O cartão de pinos M-Bus está impresso nas quatro bordas da placa, codificado por cores como no case real, e cada pino nele é conectável, então o Core é um anfitrião tão bom para peças externas quanto qualquer DevKit.
Ambas as placas aceitam Arduino C++ e MicroPython, e ambas vêm com folhas de dados flutuantes no seletor de componentes que listam o pinout e linkam para a loja da M5Stack.
As matrizes Chain

Dois módulos M5Stack Chain também estão no catálogo: a Chain RGB Matrix (64 LEDs WS2812E) e a Chain Mono Matrix (64 LEDs brancos). No Velxio, elas são acionadas como matrizes WS2812 comuns no pino DIN, que é como os cinco exemplos da galeria as usam a partir de um Arduino Uno: um arco-íris, uma varredura branca, dígitos de contagem, uma bola quicando e um efeito de fogo. O protocolo Chain real baseado em UART não é emulado nesta fase; isso está na lista.
Trabalhando com a M5Stack
A M5Stack apoiou este trabalho e forneceu o hardware. Isso importou mais do que o normal aqui, porque muito do que torna essas placas úteis está na própria placa. O Cardputer ADV no Velxio foi desenvolvido contra uma unidade física: o ID do painel que o M5GFX lê para detectar o display, a assinatura GPIO que distingue a revisão ADV da original, a varredura do teclado, o codec no I2C. Quando a placa simulada responde a essas perguntas da mesma forma que a real, as bibliotecas da M5Stack fazem o resto, e é por isso que os exemplos deles rodam sem edições.
Somos gratos à equipe da M5Stack por apoiar um projeto que permite que as pessoas testem seu hardware em uma aba do navegador antes de comprá-lo, e pelas bibliotecas de código aberto (M5Unified, M5GFX, M5Cardputer) que tornaram a integração uma questão de acertar o hardware em vez de reescrever software.
Se você quiser as placas físicas, elas estão em shop.m5stack.com: o Cardputer ADV, o Basic Core v2.7, a Chain RGB Matrix e a Chain Mono Matrix. A documentação da M5Stack está em docs.m5stack.com.
Tudo o que é da M5Stack no Velxio roda no plano gratuito. Abra o seletor de componentes, escolha Boards, e o Cardputer ADV e o Core estarão lá ao lado das outras placas ESP32.
Todos os exemplos M5Stack na galeria
Cada link abre o projeto pronto para rodar.
M5 Cardputer ADV
- M5 Cardputer ADV: eco de LCD + teclado
- M5 Cardputer ADV: terminal de texto (exemplo oficial da M5Stack)
- M5 Cardputer ADV: tour de hardware (display, teclado, microSD, IMU, LED, bateria, microfone)
- M5 Cardputer ADV: Brick Blaster, um jogo com som
- M5 Cardputer ADV: botão (exemplo oficial)
- M5 Cardputer ADV: buzzer (exemplo oficial)
- M5 Cardputer ADV: display (exemplo oficial)
- M5 Cardputer ADV: envio IR NEC (exemplo oficial)
- M5 Cardputer ADV: pressionamento de tecla única (exemplo oficial)
- M5 Cardputer ADV: pressionamento de teclas múltiplas (exemplo oficial)
- M5 Cardputer ADV: entrada de texto (exemplo oficial)
- M5 Cardputer ADV: microSD (exemplo oficial)
- M5 Cardputer ADV: jogo de adivinhação REPL (exemplo oficial)
M5Stack Core
- M5Stack Core: Hello LCD + Botões
- M5Stack Core: LCD (Adafruit_ILI9341)
- M5Stack Core: microSD integrado + LCD
- M5Stack Core: piano de botões (alto-falante)
- M5Stack Core: HelloWorld (exemplo oficial)
- M5Stack Core: Button (exemplo oficial)
- M5Stack Core: Display (exemplo oficial)
- M5Stack Core: Speaker (exemplo oficial)
- M5Stack Core: TFCard (exemplo oficial)
Matrizes Chain (em um Arduino Uno)
- M5Stack Chain RGB Matrix: arco-íris
- M5Stack Chain RGB Matrix: dígitos de contagem
- M5Stack Chain RGB Matrix: bola quicando
- M5Stack Chain RGB Matrix: fogo
- M5Stack Chain Mono Matrix: varredura branca
As páginas das placas na documentação trazem os pinouts completos: M5 Cardputer ADV e M5Stack Core. O post anterior desta série cobriu a Seeed Studio.