You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

193 lines
8.1 KiB
Python

"""ILI9341 demo (fonts rotated)."""
from time import sleep
from ili9341 import Display, color565
from machine import Pin, SPI # type: ignore
from xglcd_font import XglcdFont
def test():
"""Test code."""
# Baud rate of 40000000 seems about the max
spi = SPI(1, baudrate=40000000, sck=Pin(14), mosi=Pin(13))
display = Display(spi, dc=Pin(4), cs=Pin(16), rst=Pin(17))
print('Loading fonts...')
print('Loading arcadepix')
arcadepix = XglcdFont('fonts/ArcadePix9x11.c', 9, 11)
print('loading espressodolce')
espressodolce = XglcdFont('fonts/EspressoDolce18x24.c', 18, 24)
print('Loading neato')
neato = XglcdFont('fonts/Neato5x7.c', 5, 7, letter_count=223)
print('Loading robotron')
robotron = XglcdFont('fonts/Robotron13x21.c', 13, 21)
print('Loading unispace')
unispace = XglcdFont('fonts/Unispace12x24.c', 12, 24)
# ArcadePix
font_height = arcadepix.height
display.draw_text(0, 0,
'Portrait', arcadepix,
color565(255, 255, 0),
landscape=False, rotate_180=False)
text_width = arcadepix.measure_text('Landscape')
display.draw_text(0, display.height - 1,
'Landscape', arcadepix,
color565(255, 0, 0),
landscape=True, rotate_180=False)
text_width = arcadepix.measure_text('Port. Rot. 180')
display.draw_text(display.width - text_width - 1,
display.height - font_height,
'Port. Rot. 180', arcadepix,
color565(255, 0, 255),
landscape=False, rotate_180=True)
text_width = arcadepix.measure_text('Land. Rot. 180')
display.draw_text(display.width - font_height - 1, text_width,
'Land. Rot. 180', arcadepix,
color565(0, 0, 255),
landscape=True, rotate_180=True)
sleep(5)
# Espresso Dolce
display.clear()
font_height = espressodolce.height
display.draw_text(0, 0,
'PORT.', espressodolce,
color565(255, 255, 0),
landscape=False, rotate_180=False)
text_width = espressodolce.measure_text('LAND.')
display.draw_text(0, display.height - 1,
'LAND.', espressodolce,
color565(255, 0, 0),
landscape=True, rotate_180=False)
text_width = espressodolce.measure_text('PORT.')
display.draw_text(display.width - text_width - 1,
display.height - font_height,
'PORT.', espressodolce,
color565(255, 0, 255),
landscape=False, rotate_180=True)
text_width = espressodolce.measure_text('ROT. 180')
display.draw_text(display.width - text_width - 1,
display.height - font_height * 2,
'ROT. 180', espressodolce,
color565(255, 0, 255),
landscape=False, rotate_180=True)
text_width = espressodolce.measure_text('LAND.')
display.draw_text(display.width - font_height - 1, text_width,
'LAND.', espressodolce,
color565(0, 0, 255),
landscape=True, rotate_180=True)
text_width = espressodolce.measure_text('ROT. 180')
display.draw_text(display.width - font_height * 2 - 1, text_width,
'ROT. 180', espressodolce,
color565(0, 0, 255),
landscape=True, rotate_180=True)
sleep(5)
# Neato
display.clear()
font_height = neato.height
display.draw_text(0, 0,
'Portrait', neato,
color565(255, 255, 0),
landscape=False, rotate_180=False)
text_width = neato.measure_text('Landscape')
display.draw_text(0, display.height - 1,
'Landscape', neato,
color565(255, 0, 0),
landscape=True, rotate_180=False)
text_width = neato.measure_text('Portrait Rotate 180')
display.draw_text(display.width - text_width - 1,
display.height - font_height,
'Portrait Rotate 180', neato,
color565(255, 0, 255),
landscape=False, rotate_180=True)
text_width = neato.measure_text('Landscape Rotate 180')
display.draw_text(display.width - font_height - 1, text_width,
'Landscape Rotate 180', neato,
color565(0, 0, 255),
landscape=True, rotate_180=True)
sleep(5)
# Robotron
display.clear()
font_height = robotron.height
display.draw_text(0, 0,
'PORT.', robotron,
color565(255, 255, 0),
landscape=False, rotate_180=False)
text_width = robotron.measure_text('LAND.')
display.draw_text(0, display.height - 1,
'LAND.', robotron,
color565(255, 0, 0),
landscape=True, rotate_180=False)
text_width = robotron.measure_text('PORT.')
display.draw_text(display.width - text_width - 1,
display.height - font_height,
'PORT.', robotron,
color565(255, 0, 255),
landscape=False, rotate_180=True)
text_width = robotron.measure_text('ROT. 180')
display.draw_text(display.width - text_width - 1,
display.height - font_height * 2,
'ROT. 180', robotron,
color565(255, 0, 255),
landscape=False, rotate_180=True)
text_width = robotron.measure_text('LAND.')
display.draw_text(display.width - font_height - 1, text_width,
'LAND.', robotron,
color565(0, 0, 255),
landscape=True, rotate_180=True)
text_width = robotron.measure_text('ROT. 180')
display.draw_text(display.width - font_height * 2 - 1, text_width,
'ROT. 180', robotron,
color565(0, 0, 255),
landscape=True, rotate_180=True)
sleep(5)
# Unispace
display.clear()
font_height = unispace.height
display.draw_text(0, 0,
'PORT. ', unispace,
color565(255, 255, 0),
background=color565(255, 0, 0),
landscape=False, rotate_180=False)
text_width = unispace.measure_text('LAND. ')
display.draw_text(0, display.height - 1,
'LAND. ', unispace,
color565(255, 0, 0),
background=color565(255, 255, 0),
landscape=True, rotate_180=False)
text_width = unispace.measure_text('PORT. ')
display.draw_text(display.width - text_width - 1,
display.height - font_height,
'PORT. ', unispace,
color565(255, 0, 255),
background=color565(0, 255, 0),
landscape=False, rotate_180=True)
text_width = unispace.measure_text('ROT. 180')
display.draw_text(display.width - text_width - 1,
display.height - font_height * 2,
'ROT. 180', unispace,
color565(255, 0, 255),
background=color565(0, 255, 0),
landscape=False, rotate_180=True)
text_width = unispace.measure_text('LAND. ')
display.draw_text(display.width - font_height - 1, text_width,
'LAND. ', unispace,
color565(0, 0, 255),
background=color565(255, 255, 0),
landscape=True, rotate_180=True)
text_width = unispace.measure_text('ROT. 180')
display.draw_text(display.width - font_height * 2 - 1, text_width,
'ROT. 180', unispace,
color565(0, 0, 255),
background=color565(255, 255, 0),
landscape=True, rotate_180=True)
sleep(10)
display.cleanup()
test()