Dieses Modul erweitert die FrameBuffer -Klasse im Framebuf -Modul von Micropython. Es ermöglicht die Zeichnung von Doppel-, Dreifach-, Vierfach- und größeren Text-Text-zu-Frame-Objekten unter Verwendung der im FrameBUF-Modul bereitgestellten Schriftart.
Ebenfalls enthalten sind Methoden zum Zeichnen von Dreiecken und Kreisen. Diese können nur umrissen oder gefüllt werden.
Das Modul wurde auf einem Raspberry Pi Pico mit einem 128x128 Pixel SH1107 -Display getestet. Es sollte mit allen Micropython -Framebuffer -Objekten funktionieren.
large_text(s, x, y, m [, c=1] [, r=0 [, t=None]])
Schreiben Sie Text, s , in einen FrameBuffer mit den x und y Koordinaten als obere linke Ecke des Textes. Die Farbe des Textes kann durch das optionale Argument c definiert werden, ist jedoch ein Standardwert von 1. Der Parameter m legt das Größe mehrerer für den Text fest. Die normale Größe für Text mit der Methode 'Frambuffer.Text ()' beträgt 8x8 Pixel. Dies wäre ein Vielfaches von 1. Um einen größeren Textausgang mit 16x16 Pixelzeichen zu erhalten, verwenden Sie beispielsweise 2 für den M -Parameter M. Der optionale Parameter R steuert die Drehung des Textes, 0 Grad ist die Standardeinstellung, 90, 180 und 270 Grad sind möglich. Zusätzlich ermöglicht der T -Parameter, dass einzelne Zeichen innerhalb einer Zeichenfolge unabhängig auf 0, 90, 180 oder 270 Grad gedreht werden.
circle(x0, y0, radius, c [, f:bool] )
Zeichnen Sie einen Kreis, der auf x0, y0 mit dem angegebenen radius und der Grenzefarbe, c (Ganzzahl) zentriert ist. Füllen Sie den Kreis optional, indem Sie f=True hinzufügen.
triangle(x0, y0, x1, y1, x2, y2, c [, f:bool] )
Zeichnen Sie ein Dreieck mit Eckpunkten an den Punkten x0,y0 , x1,y1 und x2,y2 und Rand Color, c (Ganzzahl). Füllen Sie den Kreis optional, indem Sie f=True hinzufügen.
Beispiel Verwendung:
# 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)
Weitere Beispiele sind im Beispielcode für diesen SH1107 -Anzeigetreiber enthalten
Verwenden Sie Folgendes, um das Modul zu importieren und die FrameBuffer -Klasse zu erweitern.
import framebuf2 as framebuf
Die FrameBuffer -Klasse bietet dann diese zusätzlichen Methoden neben allen Standardmethoden an.
Funktioniert mit Micropython Version 1.19.1. Wird auch mit anderen Versionen arbeiten.