mirror of
https://github.com/pimoroni/grow-python
synced 2025-10-25 15:19:23 +00:00
65 lines
1.3 KiB
Python
65 lines
1.3 KiB
Python
#!/usr/bin/env python3
|
|
|
|
import logging
|
|
|
|
import ST7735
|
|
from fonts.ttf import RobotoMedium as UserFont
|
|
from PIL import Image, ImageDraw, ImageFont
|
|
|
|
logging.basicConfig(
|
|
format="%(asctime)s.%(msecs)03d %(levelname)-8s %(message)s",
|
|
level=logging.INFO,
|
|
datefmt="%Y-%m-%d %H:%M:%S",
|
|
)
|
|
|
|
logging.info(
|
|
"""lcd.py - Hello, World! example on the 0.96" LCD.
|
|
|
|
Press Ctrl+C to exit!
|
|
|
|
"""
|
|
)
|
|
|
|
# Create LCD class instance.
|
|
disp = ST7735.ST7735(
|
|
port=0, cs=1, dc=9, backlight=12, rotation=270, spi_speed_hz=10000000
|
|
)
|
|
|
|
# Initialize display.
|
|
disp.begin()
|
|
|
|
# Width and height to calculate text position.
|
|
WIDTH = disp.width
|
|
HEIGHT = disp.height
|
|
|
|
# New canvas to draw on.
|
|
img = Image.new("RGB", (WIDTH, HEIGHT), color=(0, 0, 0))
|
|
draw = ImageDraw.Draw(img)
|
|
|
|
# Text settings.
|
|
font_size = 25
|
|
font = ImageFont.truetype(UserFont, font_size)
|
|
text_colour = (255, 255, 255)
|
|
back_colour = (0, 170, 170)
|
|
|
|
message = "Hello, World!"
|
|
size_x, size_y = draw.textsize(message, font)
|
|
|
|
# Calculate text position
|
|
x = (WIDTH - size_x) / 2
|
|
y = (HEIGHT / 2) - (size_y / 2)
|
|
|
|
# Draw background rectangle and write text.
|
|
draw.rectangle((0, 0, 160, 80), back_colour)
|
|
draw.text((x, y), message, font=font, fill=text_colour)
|
|
disp.display(img)
|
|
|
|
# Keep running.
|
|
try:
|
|
while True:
|
|
pass
|
|
|
|
# Turn off backlight on control-c
|
|
except KeyboardInterrupt:
|
|
disp.set_backlight(0)
|