Voltar

As novas placas XIAO IPS Display da Seeed, rodando no seu navegador dias após o lançamento

Em 8 de setembro, a Seeed Studio anunciou três novos gadgets: um display IPS de 0,96 polegada, um de 1,14 polegada e um de 1,47 polegada, cada um uma placa carrier com um XIAO nRF52840 Plus já soldado nela. Tela, botões, uma IMU de 6 eixos, um microfone e um conector de bateria, em algo que cabe na ponta de um dedo.

Eles já estão no Velxio. Você pode abrir um, apertar Run e ver o próprio firmware de demonstração da Seeed desenhar no vidro — sem encomendar uma placa, e no plano gratuito. A placa no canvas é desenhada do jeito que a Seeed a fotografa, de frente e de costas: o vidro, os botões USR e o microfone em uma face; o XIAO nRF52840 Plus soldado, o soquete de bateria, o interruptor de energia, o slot de cartão ou a porta Grove, e os pads que você pode conectar, na outra.

O XIAO 1.47 polegadas IPS Touch Display: a placa montada mostrando seu dashboard de fábrica à esquerda e a parte de trás do carrier com o XIAO nRF52840 Plus, conector de bateria e slot microSD à direita, segurada na mão

As três placas

Todas as três carregam o mesmo computador — um XIAO nRF52840 Plus — e os mesmos sensores ao redor dele: uma IMU de 6 eixos, um microfone PDM, Bluetooth Low Energy e um conector de bateria JST com detecção de carga. O que muda é o vidro e o que a Seeed colocou ao redor dele.

XIAO 0.96” IPS Display — um painel ST7789, 80 x 160, com dois botões de usuário. A pequena: uma leitura de status, um wearable, qualquer coisa que precise de uma linha de texto e um número.

O XIAO 0.96 polegadas IPS Display, frente e verso, mostrando seu dashboard de fábrica com leituras de bateria, movimento e microfone

XIAO 1.14” IPS Display — um painel ST7789, 135 x 240, três botões de usuário e, diferente das outras duas, um conector Grove I2C. Esse conector é o motivo de esta ser a escolha certa se você quiser pendurar um sensor nela.

O XIAO 1.14 polegadas IPS Display, frente e verso, com três botões de usuário, um conector Grove I2C e o conector de bateria

XIAO 1.47” IPS Touch Display — um painel JD9853A, 172 x 320, com uma camada touch capacitiva e um slot microSD. A flagship, e a que tem mais coisas acontecendo por dentro.

O que o navegador realmente desenha

Três painéis emulados lado a lado: o de 0,96 polegada rodando o Electronic Quicksand da Seeed com grãos acumulados em um canto, o de 1,14 polegada mostrando as barras coloridas do GraphicTest, e o de 1,47 polegada rodando o Touch Circle com nove círculos brancos onde um dedo tocou

Essas três imagens não são mock-ups. Cada uma é o frame buffer de um controlador de display emulado, preenchido pelo próprio firmware compilado da Seeed.

Vale detalhar a cadeia, porque é esse o ponto principal. Seu sketch é compilado por um arduino-cli de verdade com o próprio core nRF52 da Seeed, para o FQBN da própria placa. O firmware resultante é executado instrução por instrução por um novo motor nRF52840 no navegador — o mesmo tipo de motor que já roda as placas ESP32 e RP2040 no Velxio. O firmware inicializa o periférico SPI e começa a enviar bytes; um modelo do ST7789 lê as linhas de chip-select e data/command dos pinos a cada byte e decodifica o que está sendo ordenado a fazer. O que você vê na tela é o conteúdo da memória desse controlador.

Nada é interceptado no nível da biblioteca. Se você substituir a biblioteca gráfica da Seeed pelas suas próprias escritas SPI, o painel ainda desenha.

Comece pelo graphic test

  1. Abra velxio.dev/example/xiao-114-graphictest. Você não precisa de uma conta.
  2. Aperte o botão de play na barra de ferramentas. O sketch compila nos servidores do Velxio — a primeira build de uma nova biblioteca leva alguns minutos, as seguintes são rápidas — e então a placa inicializa.
  3. Veja o painel percorrer dez primitivas de desenho: barras coloridas, linhas, retângulos, círculos, triângulos, texto, um gradiente de pixels. O monitor serial na parte de baixo imprime quanto tempo cada uma levou, exatamente como faz via USB na bancada.
  4. Depois mude alguma coisa. Troque uma cor, adicione um fillCircle, rode de novo.

Incline, toque, coloque um arquivo no cartão

O painel é a parte difícil, mas não é a parte interessante. O que torna essas placas dignas de simulação é todo o resto nelas, e tudo isso está ligado a algo que você pode mover com o mouse.

A IMU. A demo Electronic Quicksand da Seeed solta algumas centenas de grãos de areia e deixa que caiam para o lado que a placa estiver inclinada. Aperte Sensors na barra de ferramentas do canvas, arraste o ponto no pad de Tilt, e a areia escorre para o canto. A LSM6DS3TR-C responde no I2C em seu endereço real e na sensibilidade que seu datasheet especifica, então os números que o sketch converte são os números que o componente daria. O mesmo pad agora controla a IMU no XIAO nRF52840 Sense, MG24 Sense e nRF54L15 Sense sem carrier, que carregam o mesmo componente.

O vidro touch. Na placa de 1,47 polegada, o controlador capacitivo responde ao mesmo relatório de 14 bytes que o driver da Seeed lê, com sua linha de interrupção puxada para baixo enquanto um dedo está pressionado. Desenhe no painel com o mouse e os círculos caem onde você clicou.

O slot microSD. O cartão e o painel compartilham um único barramento SPI na placa real, distinguidos por seus chip selects, e compartilham aqui também. Os arquivos do seu projeto estão no cartão quando o sketch o monta, e você pode colocar os seus próprios através do painel SD Card da placa.

A bateria. Esta é a surpresa mais legal. A demo de bateria da Seeed não confia em uma tensão estática — no USB, o próprio nó do carregador pode parecer uma célula — então ela aprende primeiro uma linha de base somente-USB e só declara uma bateria presente após uma queda sustentada. Mova o slider de bateria no mesmo painel Sensors uma décima de volt para baixo e veja a máquina de estados do sketch se decidir.

O painel de 0,96 polegada emulado, mostrando a demo de bateria da Seeed após o slider cair: um ícone de bateria verde, 52 por cento, 3,80 V

O que rodar o código do fabricante revelou

Quatorze dos quinze exemplos da galeria são arquivos da própria Seeed, alterados de apenas duas formas: a nota de portabilidade no topo vira um cabeçalho curto dizendo de onde o sketch veio, e um #include que o core já fornece é removido. Rodá-los encontrou dois problemas reais no Seeed_GFX2 1.0.0, a biblioteca gráfica que acompanha essas placas.

Ela não compila em um sistema de arquivos case-sensitive. O catálogo de produtos da biblioteca inclui XIAO_ePaper_Boards.h e reTerminal_ePaper_Boards.h, enquanto os arquivos estão escritos como EPaper — e cada um desses dois cabeçalhos então nomeia seu próprio cabeçalho de configuração da mesma forma errada, então o segundo par só aparece depois que você corrige o primeiro. Quatro linhas de #include em três arquivos. No macOS e no Windows isso resolve; no Linux — que é o que uma compile farm roda — todo sketch que toca a biblioteca para com “No such file or directory”. Isso ainda está no branch main do upstream hoje. O Velxio conserta as quatro linhas quando busca a biblioteca, então os exemplos compilam.

A configuração do painel de 1,14 polegada tem a ordem de cores errada. A biblioteca configura essa placa como RGB; o painel é ligado em BGR. A Seeed sabe — suas próprias demos para a placa carregam um override local do sketch com o comentário “the panel is physically wired for BGR color order” — mas a configuração da própria biblioteca não acompanhou, e você pode ver a consequência na própria gravação da Seeed do graphic test na wiki: a primeira barra colorida é desenhada em vermelho e sai azul, e a desenhada em amarelo sai ciano.

Esse segundo caso mudou como o Velxio modela o painel. Um modelo de display que carrega uma flag fixa de “trocar vermelho e azul” não consegue reproduzir isso, porque a troca não é uma propriedade apenas do painel — é o que você obtém quando a fiação do painel e o bit de ordem de cores do controlador discordam. Então o Velxio modela os dois separadamente e deixa que se cancelem. Um sketch que usa o override da Seeed renderiza corretamente; um sketch que aceita a biblioteca ao pé da letra mostra a mesma troca de vermelho e azul que mostraria na sua mesa. A mesma correção se aplica à inversão do display, que foi como os fundos pretos dessa placa pararam de sair brancos.

O que não está modelado

Sendo direto sobre as lacunas, porque um simulador que silenciosamente não faz nada é pior do que um que avisa:

Todos os exemplos na galeria

XIAO 0.96” IPS Display

XIAO 1.14” IPS Display

XIAO 1.47” IPS Touch Display

As placas estão na loja da Seeed — a 0.96 polegadas, a 1.14 polegadas e a 1.47 polegadas Touch — e os sketches de demonstração estão em Seeed-Projects/Display-Gadgets. Experimente-os aqui primeiro; os sketches se movem de qualquer forma sem alterações.

Fotografias das placas cortesia da Seeed Studio.


Compartilhar em:
David Montero

Escrito por

David Montero

Creator of Velxio, the open-source circuit and Arduino simulator.

GitHub velxio.dev

Artigos relacionados


Artigo anterior
222 módulos Seeed Grove agora rodam no navegador
Próximo artigo
Construindo um jogo de corrida 3D estilo OutRun para o ESP32-S3 sem um Z-buffer