Hoje eu vou apresentar para
vocês o ESP32 Wrover Kit, que é um módulo diferente desse ESP32 que eu
normalmente uso, o Wroom. O Wrover é uma placa de desenvolvimento que tem
bastante recurso, ou seja, bastante periféricos. Vou mostrar para vocês um
exemplo de um programa com o ESP32 Wrover Kit envolvendo escrita no display, SD
Card, além de imagens.
Introdução
O ESP32-Wrover-Kit possui
muitos recursos além do módulo ESP32. Nesse Kit temos um display LCD de 3.2”
integrado, uma interface de cartão Micro SD de alta velocidade, uma interface
de câmera VGA. Os pinos I/Os foram retirados do módulo ESP32 para facilitar a
extensão.
A placa possui ainda uma ponte
USB multiprotocolo avançada (FTDI FT2232HL), o que permite que os
desenvolvedores usem o JTAG diretamente para depurar o ESP32 através da
interface USB.
Características principais
·
CPU Dual Core de 240 MHz
·
4MB SPI PSRAM (pseudo-ram estática)
·
Depurador USB-JTAG incorporado
·
Display LCD SPI 3.2”
·
Interface do cartão Micro-SD
·
Interface da câmera VGA
·
Expansão do I/Os
Aqui eu exponho os recursos
deste módulo:
Demonstração
ESP32 Wrover
Biblioteca
Faça download da biblioteca
WROVER_KIT_LCD para ter acesso ao display LCD.
O download pode ser realizado
através do link:
Descompacte dentro da pasta
../Documents/Arduino/libraries/
Upload
Para fazer o upload de um
programa para a placa, devemos escolher a placa Adafruit ESP32 Feather.
Programa
Você pode utilizar os exemplos
da biblioteca WROVER_KIT_LCD para testar a placa. Para fins didáticos vamos
fazer um compilado dos três exemplos. Isso envolverá escrita/desenho na tela e
cartão SD.
Bibliotecas e Variáveis
Vamos, então, incluir as
bibliotecas. Duas: esp_wp1.h e esp_wp2.h, que são vetores, deixei os links para
download aqui mesmo e ao fim deste artigo. Instanciamos o objeto responsável
pelo controle do display e executamos uma função de controle de tela.
#include "SPI.h" #include "Adafruit_GFX.h" #include "WROVER_KIT_LCD.h" //lib de controle do display #include <SD_MMC.h> //lib de controle do micro-SD #include "esp_wp1.h" //imagem em HEX #include "esp_wp2.h" //imagem em HEX WROVER_KIT_LCD tft; //objeto responsável pelo controle do display int screen = 0; //controle de tela
Setup
Inicializamos o display e
pintamos toda a tela com a cor desejada.
void setup() { Serial.begin(115200); tft.begin(); //inicializa o display } //pinta toda a tela com a cor desejada void clearScreen(int color) { tft.fillScreen(color); //pinta toda a tela }
Loop
Rotacionamos a tela para
landscape, a qual vai mudar de acordo com a variável de controle. Então, caso
eu opte por switch case 0 será escrito o texto na tela. No caso de switch case
1, printamos arquivos de imagens do SD e imagens HEX dos arquivos (#include).
void loop(void) { tft.setRotation(1); //rotaciona para landscape //muda a tela de acordo com a variável de controle (screen) switch(screen) { case 0: writeText(); //escreve textos de diferentes na tela break; case 1: writeImages(); //printa arquivos de imagens do SD e imagens HEX dos arquivos (#include) break; default: screen = -1; break; //volta pra tela inicial } screen++; }
writeText()
Detalhando esta parte do
código, tratamos a pintura da tela, posicionamento do cursor na origem e
tamanho da fonte.
//escreve textos de diferentes na tela void writeText() { clearScreen(WROVER_BLACK); //pinta toda a tela tft.setCursor(0, 0); //posiciona o cursor na origem tft.setTextColor(WROVER_WHITE); tft.setTextSize(1); //tamanho da fonte - 1 tft.println("Testando ESP32-WROVER-KIT"); tft.println(); tft.setTextColor(WROVER_YELLOW); tft.setTextSize(2); //tamanho da fonte - 2 tft.println("Youtube | Instagram |"); tft.println("Telegram | Facebook |"); tft.println("Forum"); tft.println(); tft.setTextColor(WROVER_RED); tft.setTextSize(3); //tamanho da fonte - 3 tft.println("Acesse:"); tft.println(); tft.setTextColor(WROVER_GREENYELLOW); tft.setTextSize(4); //tamanho da fonte - 4 tft.println("FERNANDOK.COM"); delay(2000); }
writeImages()
Já nesta função, inicializamos
o cartão SD, escrevemos os dois arquivos jpg e as duas imagens em HEX.
//printa arquivos de imagens do SD e imagens HEX dos arquivos (#include) void writeImages() { clearScreen(WROVER_WHITE); //inicializa o cartão SD card Serial.print("Initializing SD card..."); if (!SD_MMC.begin()) { Serial.println("failed!"); return; } Serial.println("OK!"); tft.drawJpgFile(SD_MMC, "/fk_logo.jpg", 50, 50); //escreve um arquivo jpg do SD delay(2000); clearScreen(WROVER_WHITE); tft.drawJpgFile(SD_MMC, "/arduino_ide_logo.jpg", 60, 20); //escreve um arquivo jpg do SD delay(2000); tft.setRotation(0); tft.drawJpg(esp_wp1_jpg, esp_wp1_jpg_len); //escreve uma imagem escrita em HEX delay(2000); tft.drawJpg(esp_wp2_jpg, esp_wp2_jpg_len); //escreve uma imagem escrita em HEX delay(2000); }
Faça o download dos arquivos:
0 Comentários