Este módulo estende a classe FrameBuffer no módulo Framebuf da Micropython. Ele permite o desenho de textos duplos, triplos, quádruplos e de tamanho maior em objetos de estrutura de estrutura usando a fonte interna fornecida no módulo Framebuf.
Também estão incluídos métodos para desenhar triângulos e círculos. Estes podem ser contornos apenas ou preenchidos.
O módulo foi testado em um pico de Raspberry Pi com uma tela de 128x128 pixels sh1107. Ele deve funcionar com todos os objetos MicropyThon Framebuffer.
large_text(s, x, y, m [, c=1] [, r=0 [, t=None]])
Escreva o texto, s , em um Buffer de estrutura usando as coordenadas x e y como o canto superior esquerdo do texto. A cor do texto pode ser definida pelo argumento opcional, c , mas, de outra forma, é um valor padrão de 1. O parâmetro m define o tamanho múltiplo para o texto. O tamanho normal do texto com o método 'framebuffer.text ()' é de 8x8 pixels. Este seria um múltiplo de 1. Para obter uma saída de texto maior, com caracteres de 16x16 pixels, por exemplo, use 2 para o parâmetro M. O parâmetro op opcional R controla a rotação do texto, 0 graus é o padrão, 90, 180 e 270 graus são possíveis. Além disso, o parâmetro t permite que caracteres individuais dentro de uma string sejam girados independentemente para 0, 90, 180 ou 270 graus.
circle(x0, y0, radius, c [, f:bool] )
Desenhe um círculo centrado em x0, y0 com o radius especificado e a cor da borda, c (número inteiro). Opcionalmente, preencha o círculo adicionando f=True .
triangle(x0, y0, x1, y1, x2, y2, c [, f:bool] )
Desenhe um triângulo com vértices nos pontos x0,y0 , x1,y1 e x2,y2 e cor de borda, c (número inteiro). Opcionalmente, preencha o círculo adicionando f=True .
Exemplo de uso:
# display is a framebuffer object
display.large_text('double', 0, 0, 2, 1) # double size text
display.large_text('size!', 0, 16, 2, 1)
display.large_text('HUGE', 0, 32, 4, 1) # quadruple size text
# draw a circle centred at point (x=64, y=64) with radius 56 and colour 1.
display.circle(64, 64, 56 , c=1)
display.circle(64, 64, 48 , c=1, f=True) # filled circle
# draw a filled triangle with corners at (x=0, y=0), (x=0, y=127) and (x=127, y=127)
# filled with colour 1.
display.triangle(0, 0, 0, 127, 127, 127, c=1, f=True)
Exemplos adicionais estão incluídos no código de exemplo para este driver de exibição Sh1107
Use o seguinte para importar o módulo e estender a classe FrameBuffer.
import framebuf2 as framebuf
A classe Framebuffer oferecerá esses métodos adicionais além de todos os métodos padrão.
Funciona com a Micropython versão 1.19.1. Também funcionará com outras versões.