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:
Postar um comentário