kopia lustrzana https://github.com/russhughes/st7789py_mpy
85 wiersze
1.9 KiB
Python
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()
|