micropython-st7789py-lcd-dr.../examples/tiny_hello.py

85 wiersze
1.9 KiB
Python

"""
tiny_hello.py
=============
.. figure:: ../_static/tiny_hello.jpg
:align: center
Test text_font_converter on small displays.
Writes "Hello!" in a tiny font in random colors at random locations on the Display.
.. note:: This example requires the following modules:
.. hlist::
:columns: 3
- `st7789py`
- `tft_config`
- `vga1_8x8`
"""
import random
import time
import st7789py as st7789
import tft_config
import vga1_8x8 as font
tft = tft_config.config(tft_config.WIDE)
def center(text, fg=st7789.WHITE, bg=st7789.BLACK):
"""
Centers the given text on the display.
"""
length = len(text)
tft.text(
font,
text,
tft.width // 2 - length // 2 * font.WIDTH,
tft.height // 2 - font.HEIGHT,
fg,
bg,
)
def main():
"""
The big show!
"""
for color in [st7789.RED, st7789.GREEN, st7789.BLUE]:
tft.fill(color)
tft.rect(0, 0, tft.width, tft.height, st7789.WHITE)
center("Hello!", st7789.WHITE, color)
time.sleep(1)
while True:
for rotation in range(4):
tft.rotation(rotation)
tft.fill(0)
col_max = tft.width - font.WIDTH * 6
row_max = tft.height - font.HEIGHT
for _ in range(128):
tft.text(
font,
"Hello!",
random.randint(0, col_max),
random.randint(0, row_max),
st7789.color565(
random.getrandbits(8),
random.getrandbits(8),
random.getrandbits(8),
),
st7789.color565(
random.getrandbits(8),
random.getrandbits(8),
random.getrandbits(8),
),
)
main()