mirror of
https://github.com/pimoroni/grow-python
synced 2025-10-25 15:19:23 +00:00
Tweaks, fixes, linting and docs
This commit is contained in:
63
examples/advanced/lcd-demo.py
Normal file
63
examples/advanced/lcd-demo.py
Normal file
@@ -0,0 +1,63 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import ST7735
|
||||
from PIL import Image, ImageDraw, ImageFont
|
||||
from fonts.ttf import RobotoMedium as UserFont
|
||||
import logging
|
||||
|
||||
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)
|
||||
Reference in New Issue
Block a user