SlideShare uma empresa Scribd logo
1 de 15
Baixar para ler offline
Agenda
● Introdução
● Contribuição
● Requisitos Mínimos
● Interface do Display
● Elementos e Componentes
● Simulador
● SquareLines
● Referências
Introdução
● Light and Versatile Graphics Library (LVGL)
● Código aberto e Gratuito (MIT License)
● Documentação disponivel na internet (https://docs.lvgl.io/8.0/ )
● Exemplos de aplicação (botões, objetos e outros)
● Escrita em linguagem C
● Blog e Novidades mensais (https://blog.lvgl.io/)
Figura 1 : Exemplo de aplicação final
Fonte : Site oficial da LVGL
Contribuição
Caso deseje contribuir para o projeto, a comunidade oferece diversos canais de comunicação para
divulgar os projetos ou versões atualizadas. Segue abaixo algumas sugestões:
● My Project : site com um compilado de projetos utilizando a LVGL
● GitHub : repositórios da biblioteca para correção de bug ou documentação do projeto
Importante
O guia para realizar um Pull Request (PR) está disponível na documentação, é
importante seguir as etapas para receber a devida validação. Para mais informações acesse :
https://docs.lvgl.io/master/CONTRIBUTING.html.
Integração
Aplicação :
Criação proposta para rodar no embarcado
LVGL :
Própria biblioteca gráfica, por meio da HAL(Hardware
Abstraction Layer) para registro do display e do dispositivo de entrada
dentro do embarcado
Drives:
Além de seus drivers específicos (ili9341), ele contém funções
para direcionar seu monitor, opcionalmente para uma GPU e para ler
o touchpad ou botões.
Figura 2 : Camadas de abstração entre biblioteca, drive e
aplicação.
Fonte : Documentação oficial da LVGL
Requisitos Mínimos
Quais as configurações mínimas de hardware?
● Microcontroladores de 16, 32 ou 64 bits
● Osciladores (interno ou externo ) acima de 16MHz
● Flash/ ROM com tamanho recomendado de 180 kB
● RAM
○ Static RAM acima de 2 kB
○ Stack acima de 8 kB
Quais displays são suportáveis pela a LVGL?
● TFT 16 ou 24 bit de cores
● Monocromáticos (OLED, SSD1306)
● Matriz de LED
● Monitor com saída HDMI
Figura 3 : Placas Suportáveis
Fonte : Site oficial da LVGL
Interface do Display
Ao instalar as diretórios referente aos drivers do display há duas variáveis que necessitam ser
inicializadas:
● lv_disp_draw_buf_t : contém buffer interno do motor gráfico
● lv_disp_drv_t : aponta para as funções de callback que irão interagir com o display e manipular o
comportamento dos elementos
De maneira geral o buffer é simplesmente um array que vai carregar a tela sempre que for chamada.
Outro ponto a destacar é a possibilidade de utilizar até dois buffer, desta forma otimizando a chamada de
telas.
Elementos e Componentes
● Objeto (Objects):
Define-se como a parte elementar para implementar as propriedades básicas dos Widgets que são:
○ Posição (lv_obj_set_pos)
○ Tamanho (lv_obj_set_size)
○ Herança (lv_create_obj)
○ Atributos
○ Flags Especificas
○ Estilos
Widgets:
Keyboard, Slider, Lista, Gráfico (Chart)
Figura 4 : Widgets
Fonte : Site oficial da LVGL
Elementos e Componentes
● Camadas (Layers):
O conceito de camadas pode ser associado como um livro, onde cada página possui um contexto
específico. Por padrão, o objeto mais antigo move-se para para trás e o mais novo move para frente.
○ lv_obj_move_background
○ lv_obj_move_foreground
Figura 5 : Representação de camadas
Fonte : Site oficial da LVGL
Elementos e Componentes
● Event (Evento):
Os eventos são fundamentais para identificar quais elementos foram acionados e comunicar o seu
estado atual. Há diversos eventos que podem ser tratados dado o elemento na aplicação, são:
○ LV_EVENT_CLICKED
○ LV_EVENT_PRESSING
Outro possibilidade é enviar eventos manualmente para a tela deseja e também pegar o tipo de
evento realizado naquela tela
● lv_event_send()
● lv_event_get_data()
Simulador
O ambiente de simulação possibilita acessar toda a API para desenvolver telas robustas,
economizando o tempo desenvolvimento e entrando maior grau de liberdade dentro da equipe sem a
necessidade de desenvolver com um hardware. O simulador pode ser utilizado:
● Code Block
● Visual Studio (Ferramentas de Debug)
● Eclipse
● Visual Code (Ferramentas de Debug)
● PlatformIO
SquareLines
SquareLine Studio é um editor visual para criar interfaces gráficas apenas arrastando e soltando
seus componentes de maneira rápida e fácil para telas em dispositivos embarcados. Não há restrição
de uso, podendo destinar-se a makers, programadores e designers.
Figura 6 : Tela inicial do SquareLines
Fonte : Autor
Referências
Canais no Youtube
● LVGL (Clique Aqui)
● JonathanGonzaga (Clique Aqui)
● Do Bit Ao Byte (Clique aqui)
Artigos e Blogs
● Blog Oficial LVGL
● Documentação Oficial LVGL
● Embarcados
○ LVGL no ESP32 com o RTOS Apache NuttX
○ Espressif anuncia suporte para bibliotecas gráficas no ESP32
www.embarcados.com.br
linkedin.com/embarcados
@portalembarcados
youtube/Embarcados TV
OBRIGADO!

Mais conteúdo relacionado

Semelhante a LVGL: Uma biblioteca gráfica leve e versátil para dispositivos embarcados

Desenvolvendo Soluções com Android
Desenvolvendo Soluções com AndroidDesenvolvendo Soluções com Android
Desenvolvendo Soluções com Androidjgbirk
 
Como construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsComo construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsDenis L Presciliano
 
Como construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsComo construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsDenis L Presciliano
 
Webinar i3geo julho_2013
Webinar i3geo julho_2013Webinar i3geo julho_2013
Webinar i3geo julho_2013Edmar Moretti
 
02 introdução ao open gl
02 introdução ao open gl02 introdução ao open gl
02 introdução ao open glAuberto Macie
 
Zend Framework: Reuso e extensão de componentes para fácil manutenção
Zend Framework: Reuso e extensão de componentes para fácil manutençãoZend Framework: Reuso e extensão de componentes para fácil manutenção
Zend Framework: Reuso e extensão de componentes para fácil manutençãoFlávio Lisboa
 
Conhecendo a Plataforma .NET
Conhecendo a Plataforma .NETConhecendo a Plataforma .NET
Conhecendo a Plataforma .NETPedro Alves Jr.
 
Android Core Aula 7 - Aplicações (Services, Broadcast Receivers, NDK/JNI)
Android Core Aula 7 - Aplicações (Services, Broadcast Receivers, NDK/JNI)Android Core Aula 7 - Aplicações (Services, Broadcast Receivers, NDK/JNI)
Android Core Aula 7 - Aplicações (Services, Broadcast Receivers, NDK/JNI)Felipe Silveira
 
Kyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de softwareKyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de softwareFábio Nogueira de Lucena
 
TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...
TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...
TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...tdc-globalcode
 
01 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.101 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.1César Augusto Pessôa
 
Android DevConference - Automatizando testes sem sofrimento
Android DevConference - Automatizando testes sem sofrimentoAndroid DevConference - Automatizando testes sem sofrimento
Android DevConference - Automatizando testes sem sofrimentoiMasters
 
Introdução a Arquitetura Android
Introdução a Arquitetura AndroidIntrodução a Arquitetura Android
Introdução a Arquitetura AndroidMaycon Viana Bordin
 
Desenvolvendo para Android
Desenvolvendo para AndroidDesenvolvendo para Android
Desenvolvendo para AndroidClaudio Pereira
 
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorGit e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorFelipe Pedroso
 
Apresentacao android por Júlio Cesar Bueno Cotta
Apresentacao android por Júlio Cesar Bueno CottaApresentacao android por Júlio Cesar Bueno Cotta
Apresentacao android por Júlio Cesar Bueno CottaGPrimola
 

Semelhante a LVGL: Uma biblioteca gráfica leve e versátil para dispositivos embarcados (20)

Interfaces ricas JSF
Interfaces ricas JSF Interfaces ricas JSF
Interfaces ricas JSF
 
Framework web 3 - JSF + Spring boot
Framework web 3 - JSF + Spring bootFramework web 3 - JSF + Spring boot
Framework web 3 - JSF + Spring boot
 
Desenvolvendo Soluções com Android
Desenvolvendo Soluções com AndroidDesenvolvendo Soluções com Android
Desenvolvendo Soluções com Android
 
Como construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsComo construir aplicações gráficas e applets
Como construir aplicações gráficas e applets
 
Como construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsComo construir aplicações gráficas e applets
Como construir aplicações gráficas e applets
 
Webinar i3geo julho_2013
Webinar i3geo julho_2013Webinar i3geo julho_2013
Webinar i3geo julho_2013
 
02 introdução ao open gl
02 introdução ao open gl02 introdução ao open gl
02 introdução ao open gl
 
Zend Framework: Reuso e extensão de componentes para fácil manutenção
Zend Framework: Reuso e extensão de componentes para fácil manutençãoZend Framework: Reuso e extensão de componentes para fácil manutenção
Zend Framework: Reuso e extensão de componentes para fácil manutenção
 
Engenharia reversa
Engenharia reversaEngenharia reversa
Engenharia reversa
 
Conhecendo a Plataforma .NET
Conhecendo a Plataforma .NETConhecendo a Plataforma .NET
Conhecendo a Plataforma .NET
 
Android Core Aula 7 - Aplicações (Services, Broadcast Receivers, NDK/JNI)
Android Core Aula 7 - Aplicações (Services, Broadcast Receivers, NDK/JNI)Android Core Aula 7 - Aplicações (Services, Broadcast Receivers, NDK/JNI)
Android Core Aula 7 - Aplicações (Services, Broadcast Receivers, NDK/JNI)
 
Live Source - Brasil
Live Source - BrasilLive Source - Brasil
Live Source - Brasil
 
Kyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de softwareKyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de software
 
TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...
TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...
TDC2018FLN | Trilha Arquitetura - Elixir Umbrella - Aplicacoes desacopladas s...
 
01 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.101 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.1
 
Android DevConference - Automatizando testes sem sofrimento
Android DevConference - Automatizando testes sem sofrimentoAndroid DevConference - Automatizando testes sem sofrimento
Android DevConference - Automatizando testes sem sofrimento
 
Introdução a Arquitetura Android
Introdução a Arquitetura AndroidIntrodução a Arquitetura Android
Introdução a Arquitetura Android
 
Desenvolvendo para Android
Desenvolvendo para AndroidDesenvolvendo para Android
Desenvolvendo para Android
 
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorGit e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
 
Apresentacao android por Júlio Cesar Bueno Cotta
Apresentacao android por Júlio Cesar Bueno CottaApresentacao android por Júlio Cesar Bueno Cotta
Apresentacao android por Júlio Cesar Bueno Cotta
 

Mais de Embarcados

Webinar: Controle de motores BLDC e de indução trifásico
Webinar: Controle de motores BLDC e de indução trifásicoWebinar: Controle de motores BLDC e de indução trifásico
Webinar: Controle de motores BLDC e de indução trifásicoEmbarcados
 
Webinar_ Julho 2023 - Embarcados.pdf
Webinar_ Julho 2023 - Embarcados.pdfWebinar_ Julho 2023 - Embarcados.pdf
Webinar_ Julho 2023 - Embarcados.pdfEmbarcados
 
Webinar: Especificação de Componentes Passivos
Webinar: Especificação de Componentes PassivosWebinar: Especificação de Componentes Passivos
Webinar: Especificação de Componentes PassivosEmbarcados
 
Webinar: Projeto de hardware utilizando Conversores DC/DC
Webinar: Projeto de hardware utilizando Conversores DC/DCWebinar: Projeto de hardware utilizando Conversores DC/DC
Webinar: Projeto de hardware utilizando Conversores DC/DCEmbarcados
 
Webinar: Comunicação TCP/IP segura
Webinar: Comunicação TCP/IP seguraWebinar: Comunicação TCP/IP segura
Webinar: Comunicação TCP/IP seguraEmbarcados
 
Webinar: Desvendando o Yocto Project
Webinar: Desvendando o Yocto ProjectWebinar: Desvendando o Yocto Project
Webinar: Desvendando o Yocto ProjectEmbarcados
 
Webinar: Bancada de eletrônica profissional
Webinar: Bancada de eletrônica profissionalWebinar: Bancada de eletrônica profissional
Webinar: Bancada de eletrônica profissionalEmbarcados
 
Webinar: Como projetar sensores de baixo consumo utilizando microcontroladore...
Webinar: Como projetar sensores de baixo consumo utilizando microcontroladore...Webinar: Como projetar sensores de baixo consumo utilizando microcontroladore...
Webinar: Como projetar sensores de baixo consumo utilizando microcontroladore...Embarcados
 
Webinar: Desvendando o seguidor de linha: sensores, montagem e programação co...
Webinar: Desvendando o seguidor de linha: sensores, montagem e programação co...Webinar: Desvendando o seguidor de linha: sensores, montagem e programação co...
Webinar: Desvendando o seguidor de linha: sensores, montagem e programação co...Embarcados
 
Webinar Gravado: Um Estudo sobre a I2C e o Futuro com a I3C
Webinar Gravado: Um Estudo sobre a I2C e o Futuro com a I3CWebinar Gravado: Um Estudo sobre a I2C e o Futuro com a I3C
Webinar Gravado: Um Estudo sobre a I2C e o Futuro com a I3CEmbarcados
 
Webinar: Microcontroladores Infineon TRAVEO T2G
Webinar: Microcontroladores Infineon TRAVEO T2GWebinar: Microcontroladores Infineon TRAVEO T2G
Webinar: Microcontroladores Infineon TRAVEO T2GEmbarcados
 
Webinar: Introdução à Reconfiguração dinâmica parcial em FPGAs
Webinar: Introdução à Reconfiguração dinâmica parcial em FPGAsWebinar: Introdução à Reconfiguração dinâmica parcial em FPGAs
Webinar: Introdução à Reconfiguração dinâmica parcial em FPGAsEmbarcados
 
Webinar: Microprocessadores 32 bits, suas principais aplicações no mercado br...
Webinar: Microprocessadores 32 bits, suas principais aplicações no mercado br...Webinar: Microprocessadores 32 bits, suas principais aplicações no mercado br...
Webinar: Microprocessadores 32 bits, suas principais aplicações no mercado br...Embarcados
 
Cristais e Ressonadores Murata
Cristais e Ressonadores MurataCristais e Ressonadores Murata
Cristais e Ressonadores MurataEmbarcados
 
Webinar: Silicon Carbide (SiC): A tecnologia do futuro para projetos de potência
Webinar: Silicon Carbide (SiC): A tecnologia do futuro para projetos de potênciaWebinar: Silicon Carbide (SiC): A tecnologia do futuro para projetos de potência
Webinar: Silicon Carbide (SiC): A tecnologia do futuro para projetos de potênciaEmbarcados
 
Webinar: Por que dominar sistema operacional Linux deveria ser a sua prioridade?
Webinar: Por que dominar sistema operacional Linux deveria ser a sua prioridade?Webinar: Por que dominar sistema operacional Linux deveria ser a sua prioridade?
Webinar: Por que dominar sistema operacional Linux deveria ser a sua prioridade?Embarcados
 
Webinar: Estratégias para comprar componentes eletrônicos em tempos de escassez
Webinar: Estratégias para comprar componentes eletrônicos em tempos de escassezWebinar: Estratégias para comprar componentes eletrônicos em tempos de escassez
Webinar: Estratégias para comprar componentes eletrônicos em tempos de escassezEmbarcados
 
Webinar: ChatGPT - A nova ferramenta de IA pode ameaçar ou turbinar a sua car...
Webinar: ChatGPT - A nova ferramenta de IA pode ameaçar ou turbinar a sua car...Webinar: ChatGPT - A nova ferramenta de IA pode ameaçar ou turbinar a sua car...
Webinar: ChatGPT - A nova ferramenta de IA pode ameaçar ou turbinar a sua car...Embarcados
 
Webinar: Power over Ethernet (PoE) e suas aplicações no mercado brasileiro
Webinar: Power over Ethernet (PoE) e suas aplicações no mercado brasileiroWebinar: Power over Ethernet (PoE) e suas aplicações no mercado brasileiro
Webinar: Power over Ethernet (PoE) e suas aplicações no mercado brasileiroEmbarcados
 
Webinar: A revolução da Ethernet a um par de cabo
Webinar: A revolução da Ethernet a um par de caboWebinar: A revolução da Ethernet a um par de cabo
Webinar: A revolução da Ethernet a um par de caboEmbarcados
 

Mais de Embarcados (20)

Webinar: Controle de motores BLDC e de indução trifásico
Webinar: Controle de motores BLDC e de indução trifásicoWebinar: Controle de motores BLDC e de indução trifásico
Webinar: Controle de motores BLDC e de indução trifásico
 
Webinar_ Julho 2023 - Embarcados.pdf
Webinar_ Julho 2023 - Embarcados.pdfWebinar_ Julho 2023 - Embarcados.pdf
Webinar_ Julho 2023 - Embarcados.pdf
 
Webinar: Especificação de Componentes Passivos
Webinar: Especificação de Componentes PassivosWebinar: Especificação de Componentes Passivos
Webinar: Especificação de Componentes Passivos
 
Webinar: Projeto de hardware utilizando Conversores DC/DC
Webinar: Projeto de hardware utilizando Conversores DC/DCWebinar: Projeto de hardware utilizando Conversores DC/DC
Webinar: Projeto de hardware utilizando Conversores DC/DC
 
Webinar: Comunicação TCP/IP segura
Webinar: Comunicação TCP/IP seguraWebinar: Comunicação TCP/IP segura
Webinar: Comunicação TCP/IP segura
 
Webinar: Desvendando o Yocto Project
Webinar: Desvendando o Yocto ProjectWebinar: Desvendando o Yocto Project
Webinar: Desvendando o Yocto Project
 
Webinar: Bancada de eletrônica profissional
Webinar: Bancada de eletrônica profissionalWebinar: Bancada de eletrônica profissional
Webinar: Bancada de eletrônica profissional
 
Webinar: Como projetar sensores de baixo consumo utilizando microcontroladore...
Webinar: Como projetar sensores de baixo consumo utilizando microcontroladore...Webinar: Como projetar sensores de baixo consumo utilizando microcontroladore...
Webinar: Como projetar sensores de baixo consumo utilizando microcontroladore...
 
Webinar: Desvendando o seguidor de linha: sensores, montagem e programação co...
Webinar: Desvendando o seguidor de linha: sensores, montagem e programação co...Webinar: Desvendando o seguidor de linha: sensores, montagem e programação co...
Webinar: Desvendando o seguidor de linha: sensores, montagem e programação co...
 
Webinar Gravado: Um Estudo sobre a I2C e o Futuro com a I3C
Webinar Gravado: Um Estudo sobre a I2C e o Futuro com a I3CWebinar Gravado: Um Estudo sobre a I2C e o Futuro com a I3C
Webinar Gravado: Um Estudo sobre a I2C e o Futuro com a I3C
 
Webinar: Microcontroladores Infineon TRAVEO T2G
Webinar: Microcontroladores Infineon TRAVEO T2GWebinar: Microcontroladores Infineon TRAVEO T2G
Webinar: Microcontroladores Infineon TRAVEO T2G
 
Webinar: Introdução à Reconfiguração dinâmica parcial em FPGAs
Webinar: Introdução à Reconfiguração dinâmica parcial em FPGAsWebinar: Introdução à Reconfiguração dinâmica parcial em FPGAs
Webinar: Introdução à Reconfiguração dinâmica parcial em FPGAs
 
Webinar: Microprocessadores 32 bits, suas principais aplicações no mercado br...
Webinar: Microprocessadores 32 bits, suas principais aplicações no mercado br...Webinar: Microprocessadores 32 bits, suas principais aplicações no mercado br...
Webinar: Microprocessadores 32 bits, suas principais aplicações no mercado br...
 
Cristais e Ressonadores Murata
Cristais e Ressonadores MurataCristais e Ressonadores Murata
Cristais e Ressonadores Murata
 
Webinar: Silicon Carbide (SiC): A tecnologia do futuro para projetos de potência
Webinar: Silicon Carbide (SiC): A tecnologia do futuro para projetos de potênciaWebinar: Silicon Carbide (SiC): A tecnologia do futuro para projetos de potência
Webinar: Silicon Carbide (SiC): A tecnologia do futuro para projetos de potência
 
Webinar: Por que dominar sistema operacional Linux deveria ser a sua prioridade?
Webinar: Por que dominar sistema operacional Linux deveria ser a sua prioridade?Webinar: Por que dominar sistema operacional Linux deveria ser a sua prioridade?
Webinar: Por que dominar sistema operacional Linux deveria ser a sua prioridade?
 
Webinar: Estratégias para comprar componentes eletrônicos em tempos de escassez
Webinar: Estratégias para comprar componentes eletrônicos em tempos de escassezWebinar: Estratégias para comprar componentes eletrônicos em tempos de escassez
Webinar: Estratégias para comprar componentes eletrônicos em tempos de escassez
 
Webinar: ChatGPT - A nova ferramenta de IA pode ameaçar ou turbinar a sua car...
Webinar: ChatGPT - A nova ferramenta de IA pode ameaçar ou turbinar a sua car...Webinar: ChatGPT - A nova ferramenta de IA pode ameaçar ou turbinar a sua car...
Webinar: ChatGPT - A nova ferramenta de IA pode ameaçar ou turbinar a sua car...
 
Webinar: Power over Ethernet (PoE) e suas aplicações no mercado brasileiro
Webinar: Power over Ethernet (PoE) e suas aplicações no mercado brasileiroWebinar: Power over Ethernet (PoE) e suas aplicações no mercado brasileiro
Webinar: Power over Ethernet (PoE) e suas aplicações no mercado brasileiro
 
Webinar: A revolução da Ethernet a um par de cabo
Webinar: A revolução da Ethernet a um par de caboWebinar: A revolução da Ethernet a um par de cabo
Webinar: A revolução da Ethernet a um par de cabo
 

Último

apresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aulaapresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aulaWilliamCruz402522
 
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptxVagner Soares da Costa
 
Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMdiminutcasamentos
 
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxFlvioDadinhoNNhamizi
 
NR10 - Treinamento LOTO - 2023.pp tx
NR10 - Treinamento LOTO - 2023.pp     txNR10 - Treinamento LOTO - 2023.pp     tx
NR10 - Treinamento LOTO - 2023.pp txrafaelacushman21
 
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptxVagner Soares da Costa
 
Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06AndressaTenreiro
 

Último (7)

apresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aulaapresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aula
 
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
 
Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPM
 
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
 
NR10 - Treinamento LOTO - 2023.pp tx
NR10 - Treinamento LOTO - 2023.pp     txNR10 - Treinamento LOTO - 2023.pp     tx
NR10 - Treinamento LOTO - 2023.pp tx
 
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
 
Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06
 

LVGL: Uma biblioteca gráfica leve e versátil para dispositivos embarcados

  • 1.
  • 2.
  • 3. Agenda ● Introdução ● Contribuição ● Requisitos Mínimos ● Interface do Display ● Elementos e Componentes ● Simulador ● SquareLines ● Referências
  • 4. Introdução ● Light and Versatile Graphics Library (LVGL) ● Código aberto e Gratuito (MIT License) ● Documentação disponivel na internet (https://docs.lvgl.io/8.0/ ) ● Exemplos de aplicação (botões, objetos e outros) ● Escrita em linguagem C ● Blog e Novidades mensais (https://blog.lvgl.io/) Figura 1 : Exemplo de aplicação final Fonte : Site oficial da LVGL
  • 5. Contribuição Caso deseje contribuir para o projeto, a comunidade oferece diversos canais de comunicação para divulgar os projetos ou versões atualizadas. Segue abaixo algumas sugestões: ● My Project : site com um compilado de projetos utilizando a LVGL ● GitHub : repositórios da biblioteca para correção de bug ou documentação do projeto Importante O guia para realizar um Pull Request (PR) está disponível na documentação, é importante seguir as etapas para receber a devida validação. Para mais informações acesse : https://docs.lvgl.io/master/CONTRIBUTING.html.
  • 6. Integração Aplicação : Criação proposta para rodar no embarcado LVGL : Própria biblioteca gráfica, por meio da HAL(Hardware Abstraction Layer) para registro do display e do dispositivo de entrada dentro do embarcado Drives: Além de seus drivers específicos (ili9341), ele contém funções para direcionar seu monitor, opcionalmente para uma GPU e para ler o touchpad ou botões. Figura 2 : Camadas de abstração entre biblioteca, drive e aplicação. Fonte : Documentação oficial da LVGL
  • 7. Requisitos Mínimos Quais as configurações mínimas de hardware? ● Microcontroladores de 16, 32 ou 64 bits ● Osciladores (interno ou externo ) acima de 16MHz ● Flash/ ROM com tamanho recomendado de 180 kB ● RAM ○ Static RAM acima de 2 kB ○ Stack acima de 8 kB Quais displays são suportáveis pela a LVGL? ● TFT 16 ou 24 bit de cores ● Monocromáticos (OLED, SSD1306) ● Matriz de LED ● Monitor com saída HDMI Figura 3 : Placas Suportáveis Fonte : Site oficial da LVGL
  • 8. Interface do Display Ao instalar as diretórios referente aos drivers do display há duas variáveis que necessitam ser inicializadas: ● lv_disp_draw_buf_t : contém buffer interno do motor gráfico ● lv_disp_drv_t : aponta para as funções de callback que irão interagir com o display e manipular o comportamento dos elementos De maneira geral o buffer é simplesmente um array que vai carregar a tela sempre que for chamada. Outro ponto a destacar é a possibilidade de utilizar até dois buffer, desta forma otimizando a chamada de telas.
  • 9. Elementos e Componentes ● Objeto (Objects): Define-se como a parte elementar para implementar as propriedades básicas dos Widgets que são: ○ Posição (lv_obj_set_pos) ○ Tamanho (lv_obj_set_size) ○ Herança (lv_create_obj) ○ Atributos ○ Flags Especificas ○ Estilos Widgets: Keyboard, Slider, Lista, Gráfico (Chart) Figura 4 : Widgets Fonte : Site oficial da LVGL
  • 10. Elementos e Componentes ● Camadas (Layers): O conceito de camadas pode ser associado como um livro, onde cada página possui um contexto específico. Por padrão, o objeto mais antigo move-se para para trás e o mais novo move para frente. ○ lv_obj_move_background ○ lv_obj_move_foreground Figura 5 : Representação de camadas Fonte : Site oficial da LVGL
  • 11. Elementos e Componentes ● Event (Evento): Os eventos são fundamentais para identificar quais elementos foram acionados e comunicar o seu estado atual. Há diversos eventos que podem ser tratados dado o elemento na aplicação, são: ○ LV_EVENT_CLICKED ○ LV_EVENT_PRESSING Outro possibilidade é enviar eventos manualmente para a tela deseja e também pegar o tipo de evento realizado naquela tela ● lv_event_send() ● lv_event_get_data()
  • 12. Simulador O ambiente de simulação possibilita acessar toda a API para desenvolver telas robustas, economizando o tempo desenvolvimento e entrando maior grau de liberdade dentro da equipe sem a necessidade de desenvolver com um hardware. O simulador pode ser utilizado: ● Code Block ● Visual Studio (Ferramentas de Debug) ● Eclipse ● Visual Code (Ferramentas de Debug) ● PlatformIO
  • 13. SquareLines SquareLine Studio é um editor visual para criar interfaces gráficas apenas arrastando e soltando seus componentes de maneira rápida e fácil para telas em dispositivos embarcados. Não há restrição de uso, podendo destinar-se a makers, programadores e designers. Figura 6 : Tela inicial do SquareLines Fonte : Autor
  • 14. Referências Canais no Youtube ● LVGL (Clique Aqui) ● JonathanGonzaga (Clique Aqui) ● Do Bit Ao Byte (Clique aqui) Artigos e Blogs ● Blog Oficial LVGL ● Documentação Oficial LVGL ● Embarcados ○ LVGL no ESP32 com o RTOS Apache NuttX ○ Espressif anuncia suporte para bibliotecas gráficas no ESP32