Loading repository data…
Loading repository data…
ESDeveloperBR / repository
A biblioteca ES32Lab tem como objetivo facilitar a vida dos programadores que estejam desenvolvendo programas para projetos que utilizam a placa de desenvolvimento e prototipagem ES32Lab. Ela disponibiliza diversas classes em C++ que facilitam a comunicação com os diversos circuitos eletrônicos presentes na placa.
A ES32Lab é uma placa de desenvolvimento e prototipagem para ESP32 criada para reduzir a quantidade de ligações externas, jumpers, protoboards e circuitos auxiliares em projetos didáticos, experimentais e de robótica.
A proposta é simples: a placa já reúne diversos circuitos prontos para uso, conectores organizados, identificação visual das GPIOs e uma biblioteca C++ própria para facilitar a programação no ecossistema Arduino/ESP32.
Site oficial e aquisição:
A ES32Lab pode ser adquirida pelo site oficial da ES Developer:
https://www.esdeveloper.com.br/
Canal com exemplos em vídeo:
No canal da ES Developer há exemplos práticos, demonstrações e conteúdos de apoio para usar a ES32Lab:
YouTube - ES Developer
Assistente IA da ES32Lab:
Também está disponível um assistente de IA próprio para auxiliar usuários da ES32Lab com dúvidas, exemplos e desenvolvimento de projetos:
Assistente IA ES32Lab
A ES32Lab é uma plataforma baseada no ESP32 da Espressif, pensada para acelerar a criação de projetos eletrônicos sem exigir que o usuário monte do zero todos os circuitos auxiliares.
Ela é especialmente útil em:
Entre os principais recursos de hardware disponíveis na placa estão:
A ideia central é permitir que o usuário conecte a placa, instale a biblioteca e comece a programar com menos tempo gasto em montagem física.
A imagem acima mostra a localização dos principais circuitos integrados à ES32Lab. Ela é uma referência importante durante o desenvolvimento, pois ajuda o usuário a identificar rapidamente conectores, sensores, LEDs, alimentação, expansão I2C, ponte H, display, câmera e demais recursos da placa.
A foto acima mostra a ES32Lab sem ESP32, shields ou periféricos conectados. Ela permite observar a placa física com as legendas impressas, jumpers, conectores, bornes, teclado, potenciômetros, buzzer, LEDs e demais circuitos onboard visíveis. Essa visão real da placa complementa o mapa ilustrado e ajuda o usuário a localizar os pontos citados ao longo desta documentação.
Além do mapa visual, a própria placa possui descrições impressas próximas aos pinos e circuitos. Isso permite programar olhando diretamente para a identificação física da ES32Lab.
Exemplo:
P17_G indica a GPIO 17 associada ao LED verde;P16_Y indica a GPIO 16 associada ao LED amarelo;P13_R indica a GPIO 13 associada ao LED vermelho;P12_B indica a GPIO 12 associada ao LED azul.Na biblioteca, essas identificações também existem como constantes, facilitando o uso direto no código.
Antes de alimentar a placa ou conectar motores, leia estes pontos com atenção.
A ES32Lab possui uma ponte H baseada no driver L9110S para controle de motores DC. Esse recurso é útil para projetos de robótica, carrinhos, seguidores de linha e experimentos com atuadores.
Ao usar motores na ponte H:
Importante:
Para usar motores na ponte H, a placa precisa de uma alimentação extra adequada, como fonte externa ou baterias de lítio compatíveis. A alimentação via USB do computador não deve ser usada como fonte principal para motores.
Em resumo: o cabo USB é adequado para programação, comunicação serial e alimentação de circuitos leves. Para motores, use alimentação externa.
A biblioteca ES32Lab foi criada para facilitar o uso dos circuitos da placa por meio de constantes, classes e exemplos prontos.
Com ela, o usuário pode escrever:
#include <ES32Lab.h>
e ter acesso a:
A versão atual da biblioteca pode ser consultada pela macro:
ES32LAB_VERSION
Exemplo:
Serial.println(ES32LAB_VERSION);
A biblioteca ES32Lab está disponível para instalação pela própria Arduino IDE, usando o Gerenciador de Bibliotecas.
Procedimento geral:
ES32Lab.TFT_eSPI_ES32Lab também foi instalada.Usuários do VS Code com PlatformIO também podem instalar a biblioteca pelo PlatformIO Registry ou pela interface PIO Home.
Em projetos PlatformIO, a biblioteca também pode ser adicionada ao platformio.ini:
lib_deps =
ESDeveloperBR/ES32Lab
ESDeveloperBR/TFT_eSPI_ES32Lab
Nota:
A dependênciaTFT_eSPI_ES32Labé obrigatória. Mesmo que o gerenciador de bibliotecas tente resolver dependências automaticamente, recomenda-se conferir se ela está instalada corretamente.
Também é possível instalar manualmente pelo GitHub:
A biblioteca ES32Lab depende obrigatoriamente da biblioteca:
Essa dependência é uma versão derivada da biblioteca original Bodmer/TFT_eSPI, porém ajustada para a ES32Lab. Ela já vem preparada para o display TFT da placa, evitando que o usuário precise configurar manualmente as GPIOs e parâmetros de hardware do display.
Atenção:
Para usar a ES32Lab, instale aTFT_eSPI_ES32Lab. A biblioteca originalTFT_eSPInão substitui a versão ajustada para a placa ES32Lab neste ecossistema.
Depois de instalar a biblioteca, basta incluir:
#include <ES32Lab.h>
Esse cabeçalho centraliza as principais constantes e classes da biblioteca.
Exemplo mínimo:
#include <Arduino.h>
#include <ES32Lab.h>
void setup() {
Serial.begin(115200);
Serial.println(ES32LAB_VERSION);
}
void loop() {
}
Uma das facilidades da ES32Lab é que as GPIOs e funções principais estão descritas na própria placa.
Isso reduz a necessidade de consultar esquemas a todo momento. Em muitos casos, basta olhar a identificação impressa na ES32Lab e usar a constante correspondente no código.
Exemplo:
pinMode(P17_G, OUTPUT);
digitalWrite(P17_G, HIGH);
Também é possível usar o nome funcional:
pinMode(P_LED_GREEN, OUTPUT);
digitalWrite(P_LED_GREEN, HIGH);
As duas formas apontam para a mesma GPIO 17. A primeira acompanha a identificação física da placa; a segunda descreve a função do circuito.
A ES32Lab utiliza jumpers coloridos para interligar circuitos onboard, alimentar módulos internos e permitir que o usuário escolha quais recursos ficam conectados às GPIOs do ESP32 ou ao expansor I2C da placa.
Essa organização torna a placa mais flexível: em um projeto, o usuário pode usar um circuito onboard pronto; em outro, pode remover o jumper correspondente e liberar a GPIO ou o recurso compartilhado para uma ligação externa.
A foto da ES32Lab sem acessórios, apresentada na seção Mapa Visual dos Circuitos, é uma boa referência para localizar os jumpers vermelhos, verdes, azuis, brancos e pretos descritos abaixo.
| Cor do jumper | Função principal | Exemplos na ES32Lab |
|---|---|---|
| Vermelho | Alimentação de circuitos onboard, normalmente ligada à linha de 3V3. | Alimentação do display TFT, RTC e expansor I2C. |
| Verde | Interligação de circuitos onboard às GPIOs nativas do ESP32. | Buzzer em P25, teclado em P33 e sensor de tensão em P34. |
| Azul | Seleção entre circuitos analógicos que compartilham a mesma GPIO. | POT1/P36/LDR e POT2/P39/THER. |
| Branco | Interligação do expansor I2C onboard a circuitos auxiliares. | LEDs auxiliares e ponte H controlados por EX0 a EX7. |
| Preto | Ajustes específicos de circuitos onboard. | Configuração de endereço I2C do expansor, sensor de tensão e acoplamentos auxiliares. |
Dica prática:
Se um circuito onboard não responder, confira se o jumper correspondente está instalado. Se uma GPIO for usada em outro projeto, remova o jumper do circuito onboard que compartilha essa GPIO para evitar conflito elétrico ou comportamento inesperado.
Os jumpers brancos conectam alguns recursos da placa ao expansor I2C onboard, controlado pela classe ES_PCF8574. Isso permite acionar saídas e circuitos auxiliares usando as constantes EX0 a EX7.
Em projetos com ponte H onboard, os jumpers brancos podem conectar o expansor aos sinais dos motores. Nesse caso, os pinos EX4, EX5, EX6 e EX7 ficam ocupados pelo controle dos motores.
Em projetos que usam sensores de linha ou outras entradas digitais no expansor, os pinos EX2 e EX3 costumam ser boas opções iniciais, pois normalmente ficam livres em config