Pular para o conteúdo

Plataformas ​

Uma plataforma no Lopaka é a biblioteca de desenho ou o runtime de destino que recebe o código gerado. Selecionar uma plataforma faz três coisas:

  1. Restringe o editor ao modelo de cor e às fontes que a biblioteca de destino entende.
  2. Comanda o gerador de código — cada plataforma produz sua própria sintaxe e declarações.
  3. Determina quais configurações de código estão disponíveis (função wrapper, declarações de variáveis, formato de exportação de imagens etc.).

A plataforma é escolhida quando você cria um projeto e não pode ser alterada depois: Configurações do projeto a exibe como somente leitura. Para mirar outra biblioteca, crie um novo projeto com essa plataforma.

Escolher uma plataforma ​

  • OLED / LCD monocromático (SSD1306, SH1106, SSD1309) — U8g2 ou AdafruitGFX Mono
  • TFT colorido (ILI9341, ST7789, GC9A01) — TFT_eSPI, ArduinoGFX ou AdafruitGFX Color
  • Interface de toque rica em ESP32/STM32 — LVGL
  • Flipper Zero / One — plataforma Flipper
  • Dispositivo de casa inteligente ESPHome — ESPHome
  • Display e-paper — GxEPD2
  • RP2040 / ESP32 com MicroPython — MicroPython
  • Placa CircuitPython — CircuitPython
  • Maquete ou somente exportar imagem — Desenho livre

Comparação de plataformas ​

PlataformaSaídaModelo de corFontesImagens
U8g2C / C++Monocromático (1 bit)BDF (conjunto grande)XBMP
TFT_eSPI / M5 / LovyanC++RGB565GFXXBMP, RGB565
AdafruitGFX ColorC++RGB565GFXXBMP, RGB565
AdafruitGFX MonoC++Monocromático (1 bit)GFXXBMP
ArduinoGFXC++RGB565GFXXBMP, RGB565
LVGLCRGB + alfaMontserrat (TTF)RGB565
Flipper Zero / OneCMonocromático (1 bit)4 fontes fixasXBMP
ESPHomeYAML + lambda C++RGBGoogle Fonts (TTF)XBMP
MicroPythonPythonMonocromático (1 bit)Fixa (Petme 8×8)Buffer bruto
CircuitPythonPythonRGBTerminus (BDF)Buffer bruto
GxEPD2C++Paleta indexadaGFXXBMP
Desenho livre—RGBTodas as fontes—

Ferramentas de desenho ​

As ferramentas que aparecem na barra de ferramentas dependem da plataforma ativa. A LVGL recebe um conjunto baseado em widgets; todas as outras plataformas compartilham um conjunto de desenho de primitivas com pequenas variações.

FerramentaU8g2TFT_eSPIAdaGFXAdaMonoArduGFXLVGLFlipperESPHomeµPyCPyGxEPD2
Linha✅✅✅✅✅—✅✅✅✅✅
Retângulo✅✅✅✅✅—✅✅✅✅✅
Círculo——✅✅——✅✅—✅✅
Elipse✅✅——✅———✅——
Triângulo✅✅✅✅✅——✅✅✅✅
Polígono✅✅✅✅✅—✅✅✅✅—
Arco—✅—————————
Arco LVGL—————✅—————
Texto✅✅✅✅✅✅✅✅✅✅✅
Pintar✅✅✅✅✅✅✅✅✅✅✅
Painel—————✅—————
Botão—————✅—————
Controle deslizante—————✅—————
Interruptor—————✅—————
Caixa de seleção—————✅—————
Área de texto—————✅—————

Rotação de texto ​

U8g2, Flipper Zero / One, CircuitPython e LVGL oferecem suporte à rotação nativa de texto em 0°, 90°, 180° ou 270°. Selecione uma camada de texto e use os botões de rotação no Inspetor.

Plataformas ​

U8g2 ​

Mira a biblioteca de displays monocromáticos U8g2. Gera código C++ (Arduino) ou C (ESP-IDF).

Para um passo a passo completo de configuração e integração, consulte o guia da U8g2.

Cor: binária — branco (1) ou preto (0). Modo de cor invertida disponível.

Fontes: grande biblioteca de fontes BDF incluída. Os nomes das fontes compilam para u8g2_font_<name>_tr.

Imagens: bitmaps XBMP declarados como arrays image_<Name>_bits (U8X8_PROGMEM no Arduino) ou extraídos para um arquivo de recurso .h para download.

Animações: animações monocromáticas integradas são compatíveis.

Modelos: Arduino (C++) e ESP-IDF (C) — cada um com um alternador progmem.

Inspetor: o seletor de cores fica oculto — a cor é sempre binária (definida pela lógica de preenchimento/inversão, não por um campo de cor). As camadas de triângulo seguem a primitiva da U8g2 e são sempre preenchidas, então nenhum alternador de preenchimento é exibido para elas.

Limitações: sem RGB. Sem tamanhos de fonte personalizados — o tamanho da fonte é determinado pelo arquivo BDF.


TFT_eSPI / M5 / Lovyan ​

Cobre TFT_eSPI, M5Stack GFX e LovyanGFX — todas compartilham a mesma superfície de API.

Para um passo a passo completo de configuração e integração, consulte o guia da TFT_eSPI.

Cor: RGB completo, empacotado como RGB565 (0xRRGG).

Fontes: Adafruit integrada e também fontes GFX. Fontes TrueType personalizadas (.ttf, .otf, .woff) e fontes BDF podem ser enviadas e são convertidas para o formato GFX na importação.

Imagens: arrays de pixels XBMP (1 bit) ou RGB565 (image_<Name>_bits / image_<Name>_pixels), em linha ou como arquivos de recurso .h para download. Os pixels transparentes são preenchidos com o fundo da tela, a menos que a opção Transparência da imagem esteja ativada; nesse caso, uma máscara de um bit os mantém translúcidos (tft.pushMaskedImage).

Arcos: a ferramenta Arco gera arcos no estilo TFT_eSPI com cores de primeiro plano e de fundo, ângulos e largura configuráveis e bordas suaves opcionais.

Modelos: Arduino (C++) ou ESP-IDF (C++). O modelo ESP-IDF dispensa PROGMEM, millis() e setup() / loop() e cronometra as animações com esp_timer_get_time().

Limitações: somente RGB565 — sem alfa parcial: um pixel transparente é totalmente translúcido (com Transparência ativada) ou preenchido. A posição Y das fontes GFX é ajustada automaticamente; verifique o alinhamento ao usar várias fontes.


AdafruitGFX Color ​

Mira a Biblioteca Adafruit GFX em displays coloridos.

Cor: RGB565.

Fontes: Adafruit integrada e também fontes GFX. Fontes TrueType personalizadas (.ttf, .otf, .woff) e fontes BDF podem ser enviadas e são convertidas para o formato GFX na importação.

Imagens: arrays de pixels XBMP ou RGB565 (image_<Name>_bits / image_<Name>_pixels), em linha ou como arquivos de recurso .h para download. Os pixels transparentes são preenchidos com o fundo da tela, a menos que a opção Transparência da imagem esteja ativada; nesse caso, uma máscara de um bit os mantém translúcidos (drawRGBBitmap com uma máscara).

Animações: animações monocromáticas integradas são compatíveis.

Modelos: Arduino (C++) ou ESP-IDF (C++). O modelo ESP-IDF dispensa PROGMEM, millis() e setup() / loop() e cronometra as animações com esp_timer_get_time().

Limitações: declarações de fontes duplicadas não são deduplicadas — verifique a saída se você usar a mesma fonte em muitas camadas.


AdafruitGFX Mono ​

O mesmo que o AdafruitGFX Color, mas para displays OLED/LCD monocromáticos (SSD1306, SH1106 etc.).

Cor: binária — 1 (branco) ou 0 (preto). A paleta é fixa em #000000 / #ffffff.

Fontes: a mesma biblioteca de fontes GFX do AdafruitGFX Color

Limpeza da tela: chama clearDisplay() em vez de fillScreen().

Animações: animações monocromáticas integradas são compatíveis.

Modelos: Arduino (C++) ou ESP-IDF (C++). O modelo ESP-IDF dispensa PROGMEM, millis() e setup() / loop() e cronometra as animações com esp_timer_get_time().

Limitações: sem RGB. Sem escala de cinza.


ArduinoGFX ​

Mira a Arduino_GFX.

Cor: RGB565, codificação com o byte alto primeiro (difere da ordem de byte baixo da Adafruit).

Fontes: Adafruit integrada e também fontes GFX com fator de escala personalizado. Fontes TrueType personalizadas (.ttf, .otf, .woff) e fontes BDF podem ser enviadas e são convertidas para o formato GFX na importação.

Imagens: arrays de pixels XBMP ou RGB565 (image_<Name>_bits / image_<Name>_pixels), em linha ou como arquivos de recurso .h para download. Os pixels transparentes são preenchidos com o fundo da tela, a menos que a opção Transparência da imagem esteja ativada; nesse caso, uma máscara de um bit os mantém translúcidos (draw16bitRGBBitmapWithMask).

Modelos: Arduino (C++) ou ESP-IDF (C++). O modelo ESP-IDF dispensa PROGMEM, millis() e setup() / loop() e cronometra as animações com esp_timer_get_time().

Limitações: as mesmas restrições RGB565 da TFT_eSPI. A incompatibilidade de ordem de bytes com a Adafruit produzirá cores erradas se você copiar bitmaps entre as duas plataformas.


LVGL ​

Mira a LVGL — uma biblioteca de GUI embarcada rica em recursos.

Cor: RGB completo. As imagens RGB mantêm seus pixels transparentes por meio de um plano alfa (RGB565A8) quando a opção Transparência da imagem está ativada. As cores são codificadas como lv_color_hex(0xRRGGBB).

Fontes: Montserrat TTF em tamanhos arbitrários.

Widgets: oferece suporte a painéis, botões, controles deslizantes, interruptores, caixas de seleção, áreas de texto e widgets Arco LVGL, além de formas primitivas. Os padrões dos widgets (raio, borda, cor de fundo) correspondem aos padrões da LVGL v9.

Renderizador: usa renderização suave (com antisserrilhamento) da tela de desenho no editor para aproximar a saída da LVGL.

Imagens: descritores de imagem RGB565 (lv_image_dsc_t) compatíveis com a v9, para download como um arquivo de recurso <Name>.c.

Limitações:

  • Somente a Montserrat está disponível no seletor de fontes
  • Widgets personalizados não são compatíveis — cada camada corresponde a uma única chamada lv_obj_create
  • O código gerado mira a API C da LVGL (v9)

Flipper Zero / One ​

Mira a API de tela de desenho da GUI do Flipper Zero e do Flipper One (canvas_draw_*).

Cor: monocromática. A cor de desenho padrão é preto sobre fundo laranja no editor.

Fontes: somente quatro fontes fixas — FontPrimary (Helvetica 8 negrito), FontSecondary (Haxrcorp 4089), FontKeyboard (ProFont 11), FontBigNumbers (ProFont 22). Sem tamanhos de fonte personalizados.

Predefinições de display: Zero Horizontal (128×64), Zero Vertical (64×128), One Horizontal (256×144), One Vertical (144×256).

Imagens: bitmaps XBMP (image_<Name>_bits), em linha ou como um arquivo de recurso .h independente para download com arrays uint8_t.

Animações: animações monocromáticas integradas e importadas são compatíveis. A saída gerada inclui auxiliares de reprodução e cabeçalhos C para download com os quadros XBM.

Limitações:

  • Monocromático
  • Sem fontes personalizadas

ESPHome ​

Mira a lambda do componente de display do ESPHome.

Para um passo a passo completo, do design à gravação, consulte o guia do ESPHome.

Saída: YAML com lambdas C++ incorporadas. O editor Ace usa destaque de sintaxe YAML.

Cor: RGB completo codificado como Color(R, G, B).

Fontes: Google Fonts via gfonts:// e outras fontes TTF. As declarações de fontes vão para a chave YAML de nível superior font:.

Imagens: recursos PNG para download (<Name>.png) referenciados pelo YAML como images/<Name>.png e declarados como imagens BINARY. Coloque os arquivos PNG em uma pasta images/ ao lado do YAML.

Sem cantos arredondados: a API de display do ESPHome não tem uma primitiva de retângulo arredondado.

Limitações: somente XBMP — sem exportação de bitmap RGB. Os blocos font: e image: precisam estar na raiz do YAML, não dentro da string lambda:.


MicroPython ​

Mira o módulo framebuf do MicroPython em RP2040, ESP32 e similares.

Driver: o código gerado espera o driver PerfecXX MicroPython-SSD1306, cujo objeto display expõe seu framebuffer como display.framebuf e adiciona display.polygon. As elipses são desenhadas com display.framebuf.ellipse(...), então a pré-visualização do editor corresponde ao dispositivo pixel a pixel. O ssd1306.py padrão da micropython-lib não tem display.framebuf e falha em elipses, triângulos e polígonos.

Saída: Python. O editor Ace usa destaque de sintaxe Python.

Cor: monocromática — 1 (branco) ou 0 (preto). A paleta é fixa em preto e branco.

Fontes: uma única fonte integrada (Petme 8×8). O seletor de fontes não está disponível.

Imagens: buffers bytearray brutos (1 bit empacotado, por linhas), ou um recurso .pbm para download (image_<Name>_bits.pbm) que Incluir arquivos de imagem carrega na inicialização.

Limitações:

  • Monocromático
  • Somente a fonte integrada Petme 8×8 está disponível
  • Cantos arredondados não são compatíveis
  • Primitivas de desenho limitadas em comparação com outras plataformas.
  • Triângulos são somente contorno.

CircuitPython ​

Mira a pilha displayio e vectorio do CircuitPython.

Saída: Python. O editor Ace usa destaque de sintaxe Python.

Cor: RGB, codificado como hexadecimal de 24 bits (0xRRGGBB).

Fontes: fonte BDF Terminus incluída. O seletor de fontes não é exibido na interface — a escolha da fonte é fixa.

Imagens: recursos displayio.OnDiskBitmap (image_<Name>_bits.bmp) carregados do sistema de arquivos do dispositivo.

Limitações:

  • a fonte é fixa na BDF Terminus
  • Os pixels das imagens ficam nos arquivos .bmp baixados — copie-os para ao lado do seu código

GxEPD2 ​

Mira a biblioteca de displays e-paper GxEPD2. Estende a AdafruitGFX.

Cor: paleta indexada de 9 constantes nomeadas — GxEPD_BLACK, GxEPD_WHITE, GxEPD_DARKGREY, GxEPD_LIGHTGREY, GxEPD_RED, GxEPD_YELLOW, GxEPD_BLUE, GxEPD_GREEN, GxEPD_ORANGE. Cores fora dessa paleta correspondem a GxEPD_BLACK.

Fontes: Adafruit integrada e também fontes GFX (herda da plataforma Adafruit). Fontes TrueType personalizadas (.ttf, .otf, .woff) e fontes BDF podem ser enviadas e são convertidas para o formato GFX na importação.

Imagens: somente XBMP, para download como um arquivo de recurso .h.

Fundo: fundo cinza claro (#f8f8f8) no editor para aproximar o branco do e-paper.

Limitações: a paleta é fixa — sem cores hexadecimais arbitrárias. Os modos de atualização parcial e de atualização não são modelados no editor.


Desenho livre ​

Um modo somente de design, sem exportação de código. Útil para maquetes e para compartilhar designs sem mirar uma biblioteca específica.

Cor: RGB completo.

Fontes: todas as fontes TTF, BDF e GFX estão disponíveis.

Código: sem saída. O painel de código fica vazio.

Limitações: não pode ser usado para geração de código. Sem suporte à importação.