Pular para o conteúdo principal

Trabalhar com PlatformIO

Esta página é a referência de configuração do PlatformIO para produtos Seeed ePaper. Ela se concentra nas partes que são diferentes do fluxo de trabalho com Arduino IDE:

  1. Instalar o PlatformIO no Visual Studio Code.
  2. Entender a estrutura de projeto criada pelo PlatformIO.
  3. Editar o platformio.ini, o principal arquivo de configuração para seleção de placa, seleção de framework, dependências de biblioteca, velocidade do monitor serial, opções de upload e flags de compilação.
  4. Escolher o ambiente PlatformIO correto para cada produto Seeed ePaper.
  5. Adicionar Seeed_GFX e gerar o driver.h correspondente com a Seeed GFX Configuration Tool.

Se você está procurando APIs de desenho para o display, sketches de exemplo ou código de demonstração específico de hardware, comece por Work with Arduino e pelos cookbooks de produto vinculados ao final desta página. O código C/C++ usado no PlatformIO geralmente é o mesmo código do Arduino. A principal diferença é como o projeto é configurado.

Hardware compatível

O PlatformIO pode ser usado com o fluxo de trabalho baseado em código para produtos Seeed ePaper que expõem um caminho de firmware compatível com Arduino. Use esta página para preparar o projeto PlatformIO e, em seguida, selecione o driver.h correto para sua placa e tela.

Linha de produtoMCU / alvo de placa típicoObservações de configuração
reTerminal E1001 / E1002 / E1003 / E1004reTerminal E Series baseado em ESP32-S3Use um ambiente PlatformIO para ESP32-S3 e, em seguida, gere o driver.h para o modelo exato de reTerminal.
Placas driver EE02 / EE03 / EE04 / EE05Família XIAO ESP32-S3Use a mesma estrutura PlatformIO em toda a família EE0x. O valor de BOARD_SCREEN_COMBO muda com a placa e a tela selecionadas.
Kit DIY TRMNL 7.5" (OG)Família XIAO ESP32-S3Use o ambiente ESP32-S3 ao escrever firmware personalizado no estilo Arduino em vez de usar o firmware em nuvem TRMNL.
Painel ePaper XIAO 7.5"XIAO ESP32-C3Use o ambiente PlatformIO XIAO ESP32-C3 e, em seguida, use o cookbook do produto para a configuração específica de tela do driver.h.
EN04 / EN05 e placas ePaper baseadas em nRF52840Família XIAO nRF52840Use o ambiente PlatformIO nRF52840 para desenvolvimento de firmware. Se ainda não houver um cookbook específico para ePaper publicado, use esta página como referência de ambiente e o esquema/cookbook do produto para os pinos.
nota

O projeto PlatformIO é apenas o ambiente de compilação e upload. O display ainda depende do driver.h correto. Se o platformio.ini estiver correto, mas o driver.h estiver direcionado para a placa ou painel errado, o firmware pode compilar e fazer upload enquanto a tela permanece em branco.

Por que usar PlatformIO para desenvolvimento com ePaper?

O PlatformIO é útil quando seu projeto ePaper cresce além de um único sketch:

  • Ele mantém placa, framework, bibliotecas, velocidade de upload, velocidade do monitor serial e flags de compilação em um único arquivo platformio.ini sob controle de versão.
  • Ele pode definir vários ambientes de compilação em um único projeto, para que a mesma base de código possa ter como alvo vários produtos Seeed ePaper.
  • Ele baixa bibliotecas por meio de lib_deps, o que torna o projeto mais fácil de reproduzir em outro computador.
  • Ele fornece tarefas de compilação, upload, limpeza e monitor serial dentro do VS Code.

Para desenho no display e APIs de hardware, continue usando o mesmo código C/C++ no estilo Arduino usado no cookbook do Arduino. O PlatformIO altera principalmente o layout do projeto e o método de configuração.

Etapa 1: Instalar VS Code e PlatformIO

Etapa 1. Baixe e instale o Visual Studio Code.

Etapa 2. Abra Extensions no VS Code, pesquise por PlatformIO IDE e instale-o.

Etapa 3. Reinicie o VS Code depois que a extensão terminar a instalação.

Etapa 4. Abra o PlatformIO Home a partir do ícone do PlatformIO na barra de atividades do VS Code.

dica

Se você usar o PlatformIO IDE no VS Code, o PlatformIO Core é incluído com a extensão. Você só precisa instalar o PlatformIO Core separadamente se quiser usar o comando pio fora do VS Code.

Etapa 2: Criar um projeto PlatformIO

Etapa 1. Em PlatformIO Home, selecione New Project.

Etapa 2. Digite um nome para o projeto.

Etapa 3. Selecione qualquer placa temporária compatível com Arduino que permita ao PlatformIO criar o projeto. Essa primeira seleção é usada apenas para gerar a pasta do projeto.

Etapa 4. Selecione Arduino como framework.

Etapa 5. Clique em Finish e aguarde até que o PlatformIO crie o projeto.

Etapa 6. Abra o platformio.ini e substitua a configuração gerada pela configuração da Seeed mostrada nas próximas seções.

cuidado

A maioria das placas de desenvolvimento Seeed Studio usadas por esta linha de produtos ePaper é mantida por meio do pacote de plataforma PlatformIO da Seeed, não apenas pela lista padrão de placas do PlatformIO. Se você não conseguir encontrar a placa Seeed exata na janela New Project do PlatformIO, isso é esperado. Crie primeiro um projeto temporário e, em seguida, defina platform = https://github.com/Seeed-Studio/platform-seeedboards.git e o ID de board correto no platformio.ini.

Após a criação, os arquivos e pastas importantes são:

CaminhoFinalidade
platformio.iniArquivo principal de configuração do PlatformIO. Este é o arquivo mais importante neste guia.
src/main.cppArquivo principal de código-fonte do firmware. O código no estilo Arduino fica aqui.
lib/Bibliotecas locais opcionais. Este também é um local conveniente para uma pasta auxiliar local de driver.h.
.pio/Saída de compilação do PlatformIO e dependências baixadas. Não edite esta pasta manualmente.

Etapa 3: Entender o platformio.ini

O platformio.ini é o centro de um projeto PlatformIO. Cada seção [env:name] define um ambiente de compilação. O ambiente informa ao PlatformIO para qual placa compilar, qual framework usar, quais bibliotecas baixar e como fazer upload ou monitorar o firmware.

Para iniciantes, o fluxo de trabalho mais fácil é copiar a configuração completa para o seu dispositivo a partir da Etapa 4, colá-la no platformio.ini e, em seguida, criar o arquivo driver.h correspondente. Você não precisa combinar manualmente uma seção base compartilhada com outra seção de dispositivo.

Os campos mais importantes são:

CampoO que ele controlaExemplo
platformO pacote de plataforma do PlatformIO. Para placas Seeed neste guia, use a URL do pacote de plataforma da Seeed para que o PlatformIO possa baixar as definições de placa.platform = https://github.com/Seeed-Studio/platform-seeedboards.git
boardO ID de placa do PlatformIO. Isso define o MCU, layout de flash, ferramenta de upload e configurações padrão de compilação.board = seeed-xiao-esp32-s3-sense
frameworkO framework de software usado pelo firmware. Para exemplos no estilo Arduino, use arduino.framework = arduino
monitor_speedA taxa de baud do monitor serial. Ela deve corresponder ao Serial.begin(...) no firmware.monitor_speed = 115200
upload_speedA taxa de baud de upload usada quando o PlatformIO grava o firmware via serial USB.upload_speed = 115200
lib_depsBibliotecas que o PlatformIO baixa automaticamente para este ambiente.https://github.com/Seeed-Studio/Seeed_GFX
build_flagsDefinições extras do compilador. Use isto apenas quando o cookbook do seu produto ou biblioteca exigir.-DBOARD_HAS_PSRAM
upload_portPorta serial fixa opcional. Deixe sem definir se você preferir a detecção automática do PlatformIO.upload_port = /dev/ttyACM0
cuidado

Não copie o platformio.ini cegamente entre produtos não relacionados. O mesmo código-fonte C/C++ pode ser portátil, mas board, configurações de PSRAM e driver.h devem corresponder ao hardware real.

Etapa 4: Copiar a configuração para seu dispositivo

Escolha a aba do seu dispositivo, copie todo o bloco platformio.ini e cole-o no arquivo platformio.ini do seu projeto PlatformIO. A configuração é intencionalmente repetida em cada aba para que você não precise mesclar uma seção base compartilhada com uma seção de dispositivo.

dica

A primeira compilação pode demorar mais porque o PlatformIO faz o download do pacote de plataforma da Seeed, da toolchain, do framework Arduino e da biblioteca Seeed_GFX.

Use esta configuração para reTerminal E1001:

[env:reterminal_e1001]
platform = https://github.com/Seeed-Studio/platform-seeedboards.git
board = seeed-xiao-esp32-s3-sense
framework = arduino
upload_speed = 115200
monitor_speed = 115200
board_build.arduino.memory_type = qio_opi
build_flags =
-D BOARD_HAS_PSRAM
-I src
lib_deps = https://github.com/Seeed-Studio/Seeed_GFX

Use o driver.h gerado para reTerminal E1001. Nos exemplos existentes de Seeed_GFX, o E1001 usa:

#define BOARD_SCREEN_COMBO 520

Etapa 5: Adicionar driver.h

O platformio.ini seleciona o MCU e o ambiente de compilação. O driver.h seleciona a combinação de placa de ePaper e tela usada pelo Seeed_GFX.

Etapa 1. Abra a Seeed GFX Configuration Tool.

Etapa 2. Selecione sua placa e tela.

Etapa 3. Copie a configuração gerada.

Etapa 4. Adicione a configuração a um arquivo driver.h que possa ser incluído pelo seu firmware.

Um arquivo gerado típico se parece com isto:

#define BOARD_SCREEN_COMBO 502
#define USE_XIAO_EPAPER_DISPLAY_BOARD_EE04

Valores comuns de BOARD_SCREEN_COMBO usados na documentação existente de ePaper incluem:

HardwareExemplo de configuração geradaFonte de verdade
reTerminal E1001#define BOARD_SCREEN_COMBO 520Seeed GFX Configuration Tool
reTerminal E1002#define BOARD_SCREEN_COMBO 521Seeed GFX Configuration Tool
reTerminal E1003#define BOARD_SCREEN_COMBO 522Seeed GFX Configuration Tool
reTerminal E1004#define BOARD_SCREEN_COMBO 523Seeed GFX Configuration Tool
EE04 + 7.5" ePaper monocromático#define BOARD_SCREEN_COMBO 502
#define USE_XIAO_EPAPER_DISPLAY_BOARD_EE04
Seeed GFX Configuration Tool
Outras combinações de EE0x / telaGerado por placa e telaSeeed GFX Configuration Tool
cuidado

Sempre regenere o driver.h quando você mudar a placa de ePaper, o tamanho do display, o tipo de cor do display ou a placa controladora. Um BOARD_SCREEN_COMBO incompatível é um dos motivos mais comuns para uma tela em branco.

Em última análise, o código e a estrutura de projeto para um produto de tela completo usando PlatformIO devem ser os seguintes:

Etapa 6: Compilar, Enviar e Monitorar

Depois que platformio.ini e driver.h estiverem prontos, use a barra de ferramentas do PlatformIO no VS Code:

AçãoO que faz
BuildCompila o ambiente selecionado e verifica se a placa, o framework, as bibliotecas e o código são compatíveis.
UploadEnvia o firmware para o dispositivo conectado por meio do protocolo de upload selecionado.
MonitorAbre o monitor serial usando o baud rate de monitor_speed.
CleanRemove saídas de compilações anteriores. Use isto após alterar pacotes de placa, configurações de PSRAM ou flags de compilação importantes.

Se o projeto tiver vários ambientes, selecione o ambiente de destino nas tarefas do projeto PlatformIO antes de compilar ou enviar.

Opcional: Usar a biblioteca Seeed_GxEPD2

Os exemplos padrão nesta página usam Seeed_GFX. Para projetos baseados no fluxo de trabalho de display GxEPD2, você pode substituir a dependência da biblioteca de display pelo fork GxEPD2 da Seeed.

Use esta opção somente quando o código do projeto for escrito para as APIs Seeed_GxEPD2 / GxEPD2. Se o seu código seguir os exemplos padrão de Seeed_GFX, mantenha Seeed_GFX em lib_deps.

Por exemplo, uma configuração de reTerminal E1001 pode ser alterada da seguinte forma:

[env:reterminal_e1001]
platform = https://github.com/Seeed-Studio/platform-seeedboards.git
board = seeed-xiao-esp32-s3-sense
framework = arduino
upload_speed = 115200
monitor_speed = 115200
board_build.arduino.memory_type = qio_opi
build_flags =
-D BOARD_HAS_PSRAM
-I src
lib_deps = https://github.com/Seeed-Projects/Seeed_GxEPD2

Apenas uma biblioteca de display é mostrada aqui para manter a configuração clara. Se o seu projeto precisar de bibliotecas adicionais, adicione-as em lib_deps como linhas separadas.

Para onde ir em seguida

Esta página foca intencionalmente na configuração de ambiente do PlatformIO. Continue com as páginas específicas do produto para fiação, seleção de tela e comportamento do firmware:

Problemas comuns

P1: Por que o PlatformIO não mostra minha placa Seeed na lista de placas?

Isso é esperado para muitas placas de desenvolvimento da Seeed. As definições de placa usadas neste guia vêm do pacote de plataforma PlatformIO da Seeed, portanto elas podem não aparecer na pesquisa de placas do New Project padrão do PlatformIO antes que o pacote seja instalado.

Use o URL do pacote da Seeed diretamente em platformio.ini:

platform = https://github.com/Seeed-Studio/platform-seeedboards.git

Em seguida, defina board para o ID de placa Seeed usado pelo seu produto, por exemplo:

board = seeed-xiao-esp32-s3-sense

Quando você compilar pela primeira vez, o PlatformIO fará o download do pacote de plataforma e então reconhecerá o ID da placa.

P2: Por que o firmware é enviado com sucesso, mas o display ePaper permanece em branco?

A causa mais comum é um driver.h incorreto ou ausente.

  • Gere novamente o driver.h com a Seeed GFX Configuration Tool.
  • Confirme se a placa e o display selecionados correspondem ao hardware real.
  • Confirme se o BOARD_SCREEN_COMBO gerado está disponível para o arquivo-fonte que inclui Seeed_GFX.
  • Para produtos ESP32-S3 com buffers grandes, confirme se o cookbook do produto exige configurações de PSRAM.

P3: Por que o PlatformIO falha ao enviar para a placa?

Para o reTerminal E1003, uma causa comum é uma taxa de baud de upload muito alta. Defina upload_speed como 115200 no mesmo bloco de ambiente antes de verificar outras causas.

upload_speed = 115200

Se o upload ainda falhar, continue com as seguintes verificações:

  • Use um cabo USB-C que suporte transferência de dados.
  • Desconecte outros dispositivos seriais e tente novamente.
  • Defina upload_port somente se a detecção automática escolher a porta errada.
  • Para placas baseadas em ESP32, mantenha pressionado o botão de boot enquanto conecta o USB se a placa não entrar automaticamente no modo de download.

Recursos

Suporte técnico e discussão sobre produtos

Obrigado por escolher nossos produtos! Estamos aqui para oferecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

Loading Comments...