LittlevGL e ESP32 – Portando para um projeto existente

LittlevGL e ESP32
Este post faz parte da série LittlevGL e ESP32

Este artigo é uma continuação da série: LittlevGL e ESP32. No primeiro post aprendemos como importar a biblioteca e rodar uma aplicação que compõe a pasta de exemplos. Agora iremos aprender os passos necessários para portar a biblioteca em um projeto já existente, como um submódulo. 

 

Primeiro passo – Colocando o projeto exemplo para rodar

Vamos utilizar como projeto base, o exemplo “hello world” que está em “~\esp-idf\examples\get-started”. Copie a pasta “hello world” para o seu diretório de projeto.

Pronto, este é o seu projeto hello world. Vamos testa-lo e ver se tudo funciona bem. Abra o ESP-IDF command prompt e navegue até o projeto:

$ cd projects\hello world           

Agora vamos compilar e gravar o projeto:

$ idf.py -p comX flash monitor

Substitua o X pelo número da sua porta COM ou troque COM pelo endereço USB, no caso de usuário linux. Após seu ESP ser gravado, o resultado esperado é a mensagem como na imagem abaixo.

Figura 1: Aplicação hello-world em funcionamento.

 

Segundo passo – Instalando a biblioteca como um submódulo dentro do projeto

Navegue até a pasta raiz do seu projeto. No meu caso, possuo uma pasta “projects” que fica dentro da pasta de instalação do IDF.

$ cd projects\hello world

Crie a pasta “components”

$ mkdir -p components

 

Agora vamos fazer o download da lib para dentro desta pasta:

$ git submodule add git submodule add https://github.com/littlevgl/lv_port_esp32.git components/lv_port_esp32
$ git submodule update --init –recursive

CMake

Agora vamos editar o arquivo CMakeLists, que se encontra na raiz do projeto. Precisamos adicionar o diretório do componente extra incluído.

#CMakeLists.txt
cmake_minimum_required(VERSION 3.5)

include($ENV{IDF_PATH}/tools/cmake/project.cmake)

set(EXTRA_COMPONENT_DIRS components/lv_port_esp32/components/lv_examples components/lv_port_esp32/components/lvgl components/lv_port_esp32/components/lvgl_esp32_drivers/lvgl_tft components/lv_port_esp32/components/lvgl_esp32_drivers/lvgl_touch components/lv_port_esp32/components/lvgl_esp32_drivers)

project(hello-world)

Solução temporária

Na data deste artigo, existe esta solução temporária para quem usa CMake, portanto verifique neste link se na data que você está lendo, esta solução ainda se aplica.

Ao adicionar o LVGL como submódulo, precisaremos atualizar o arquivo CMakeLists.txt que está na pasta raiz do projeto: “components/lv_port_esp32/CMakeLists.tx”.  Vamos retirar ou comentar a linha de include e deixar o arquivo como este abaixo:

cmake_minimum_required(VERSION 3.5)

# include($ENV{IDF_PATH}/tools/cmake/project.cmake)

set(EXTRA_COMPONENT_DIRS components/lv_port_esp32/components/lv_examples components/lv_port_esp32/components/lvgl components/lv_port_esp32/components/lvgl_esp32_drivers/lvgl_tft components/lv_port_esp32/components/lvgl_esp32_drivers/lvgl_touch components/lv_port_esp32/components/lvgl_esp32_drivers)

if (NOT DEFINED PROJECT_NAME)
	project(lvgl-demo)
endif (NOT DEFINED PROJECT_NAME)

No CMakeLists.txt da pasta “main” (ou dos componentes que utilizar o LVGL), você precisa adicionar as diretivas REQUIRES para a função idf_component_register.  O arquivo deve ficar com esta aparência:

set (SOURCES main.c)

idf_component_register(SRCS ${SOURCES}
    INCLUDE_DIRS .
    REQUIRES lvgl_esp32_drivers lvgl lv_examples lvgl_tft lvgl_touch)

target_compile_definitions(${COMPONENT_LIB} PRIVATE LV_CONF_INCLUDE_SIMPLE=1)

Makefile

Se você está usando Make, precisa apenas adicionar o EXTRA_COMPONENT_DIRS no Makefile da pasta raiz do projeto. Veja abaixo o exemplo:

PROJECT_NAME := hello-world

EXTRA_COMPONENT_DIRS := components/lv_port_esp32/components/lv_examples \
    components/lv_port_esp32/components/lvgl \
    components/lv_port_esp32/components/lvgl_esp32_drivers/lvgl_tft \
    components/lv_port_esp32/components/lvgl_esp32_drivers/lvgl_touch \
    components/lv_port_esp32/components/lvgl_esp32_drivers \

include $(IDF_PATH)/make/project.mk

LVGL importado

Depois de fazer estes passos, o seu projeto já deve estar com o ambiente configurado para achar a o LVGL. Agora é só começar incluindo a biblioteca no seu código e sair utilizando. A partir deste ponto, iremos dar início no desenvolvimento de nossas próprias aplicações com display touch usando a LittlevGL e ESP32.

Este post foi útil para você? tem sugestões?

Deixe um comentário. Seu feedback é muito importante para mim.

Acompanhe a série para ficar por dentro da evolução!

LittlevGL e ESP32

ESP32 e display touch com LittlevGL
Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.
Comentários:
Notificações
Notificar
0 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Home » Software » LittlevGL e ESP32 – Portando para um projeto existente

EM DESTAQUE

WEBINARS

VEJA TAMBÉM

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS

Talvez você goste: