terça-feira, julho 16, 2024

Usando um Display ePaper com um CH32V003

Mais um display ePaper (desta vez da WeAct Studio) e mais uma brincadeira com o "microcontrolador de 10 cents" (CH32V003). O desafio aqui é gerar um imagem de 200x200 pontos dispondo apenas de 2k de RAM.


O display foi comprado na AliExpress (https://pt.aliexpress.com/item/1005006291142235.html). É um display ePaper branco e preto com resolução de 200x200 pontos. Usa um controlador SSD1681, informações e exemplos podem ser encontrados no github do WeAct Studio (https://github.com/WeActStudio/WeActStudio.EpaperModule).

As conexões do display são os tradicionais Reset, C/D, CS, SCK (indicado na placa como SCL), MOSI (indicado na placa como SDA) e BUSY.

Para o teste eu usei a placa nano CH32V003 e escrevi o software usando o ch32v003fun

Como o CH32V003 não tem memória suficiente para armazenar a tela gráfica do display, o jeito foi usar uma tela alfanumérica e gerar os pontos na hora de atualizar o display.

Na primeira versão eu usei um fonte 8x8, o que dá 25 linhas de 25 colunas. O código não é muito complicado, mas as letras ficam pequenas.


Para aumentar o tamanho das letras, eu mudei para um fonte 12x16, obtendo 12 linhas de 16 caracteres (sobram alguns pontos no lado direito e em baixo).O código fica um pouco mais complicado porque é necessário fazer um shift  para alinhar os dados do gerador de caracteres com a memória do display,

O meu fonte 12x16 utilizava o conjunto de caracteres do PC IBM, o que permitiu desenhar molduras. Com um pouco de trabalho daria para ter todos os caracteres acentuados e alguns caracteres semigráficos específicos para certas aplicações.

No geral o resultado foi muito bom.  O código pode ser visto em https://github.com/dquadros/demos_curtos.


Nenhum comentário: