forked from embedded/micropython-ili9341
				
			Add 180 degree text rotation with demo
							parent
							
								
									6a8795ad7d
								
							
						
					
					
						commit
						1a8e9eeeae
					
				@ -0,0 +1,192 @@
 | 
				
			|||||||
 | 
					"""ILI9341 demo (fonts rotated)."""
 | 
				
			||||||
 | 
					from time import sleep
 | 
				
			||||||
 | 
					from ili9341 import Display, color565
 | 
				
			||||||
 | 
					from machine import Pin, SPI
 | 
				
			||||||
 | 
					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('Portrait, Rotate 180')
 | 
				
			||||||
 | 
					    display.draw_text(display.width - text_width - 1,
 | 
				
			||||||
 | 
					                      display.height - font_height,
 | 
				
			||||||
 | 
					                      'Portrait, Rotate 180', arcadepix,
 | 
				
			||||||
 | 
					                      color565(255, 0, 255),
 | 
				
			||||||
 | 
					                      landscape=False, rotate_180=True)
 | 
				
			||||||
 | 
					    text_width = arcadepix.measure_text('Landscape, Rotate 180')
 | 
				
			||||||
 | 
					    display.draw_text(display.width - font_height - 1 , text_width,
 | 
				
			||||||
 | 
					                      'Landscape, Rotate 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,
 | 
				
			||||||
 | 
					                      'PORTRAIT', espressodolce,
 | 
				
			||||||
 | 
					                      color565(255, 255, 0),
 | 
				
			||||||
 | 
					                      landscape=False, rotate_180=False)
 | 
				
			||||||
 | 
					    text_width = espressodolce.measure_text('LANDSCAPE') 
 | 
				
			||||||
 | 
					    display.draw_text(0, display.height - 1,
 | 
				
			||||||
 | 
					                      'LANDSCAPE', espressodolce,
 | 
				
			||||||
 | 
					                      color565(255, 0, 0),
 | 
				
			||||||
 | 
					                      landscape=True, rotate_180=False)
 | 
				
			||||||
 | 
					    text_width = espressodolce.measure_text('PORTRAIT,')
 | 
				
			||||||
 | 
					    display.draw_text(display.width - text_width - 1,
 | 
				
			||||||
 | 
					                      display.height - font_height,
 | 
				
			||||||
 | 
					                      'PORTRAIT,', espressodolce,
 | 
				
			||||||
 | 
					                      color565(255, 0, 255),
 | 
				
			||||||
 | 
					                      landscape=False, rotate_180=True)
 | 
				
			||||||
 | 
					    text_width = espressodolce.measure_text('ROTATE 180')
 | 
				
			||||||
 | 
					    display.draw_text(display.width - text_width - 1,
 | 
				
			||||||
 | 
					                      display.height - font_height * 2,
 | 
				
			||||||
 | 
					                      'ROTATE 180', espressodolce,
 | 
				
			||||||
 | 
					                      color565(255, 0, 255),
 | 
				
			||||||
 | 
					                      landscape=False, rotate_180=True)
 | 
				
			||||||
 | 
					    text_width = espressodolce.measure_text('LANDSCAPE,')
 | 
				
			||||||
 | 
					    display.draw_text(display.width - font_height - 1 , text_width,
 | 
				
			||||||
 | 
					                      'LANDSCAPE,', espressodolce,
 | 
				
			||||||
 | 
					                      color565(0, 0, 255),
 | 
				
			||||||
 | 
					                      landscape=True, rotate_180=True)
 | 
				
			||||||
 | 
					    text_width = espressodolce.measure_text('ROTATE 180')
 | 
				
			||||||
 | 
					    display.draw_text(display.width - font_height * 2 - 1 , text_width,
 | 
				
			||||||
 | 
					                      'ROTATE 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,
 | 
				
			||||||
 | 
					                      'PORTRAIT', robotron,
 | 
				
			||||||
 | 
					                      color565(255, 255, 0),
 | 
				
			||||||
 | 
					                      landscape=False, rotate_180=False)
 | 
				
			||||||
 | 
					    text_width = robotron.measure_text('LANDSCAPE') 
 | 
				
			||||||
 | 
					    display.draw_text(0, display.height - 1,
 | 
				
			||||||
 | 
					                      'LANDSCAPE', robotron,
 | 
				
			||||||
 | 
					                      color565(255, 0, 0),
 | 
				
			||||||
 | 
					                      landscape=True, rotate_180=False)
 | 
				
			||||||
 | 
					    text_width = robotron.measure_text('PORTRAIT,')
 | 
				
			||||||
 | 
					    display.draw_text(display.width - text_width - 1,
 | 
				
			||||||
 | 
					                      display.height - font_height,
 | 
				
			||||||
 | 
					                      'PORTRAIT,', robotron,
 | 
				
			||||||
 | 
					                      color565(255, 0, 255),
 | 
				
			||||||
 | 
					                      landscape=False, rotate_180=True)
 | 
				
			||||||
 | 
					    text_width = robotron.measure_text('ROTATE 180')
 | 
				
			||||||
 | 
					    display.draw_text(display.width - text_width - 1,
 | 
				
			||||||
 | 
					                      display.height - font_height * 2,
 | 
				
			||||||
 | 
					                      'ROTATE 180', robotron,
 | 
				
			||||||
 | 
					                      color565(255, 0, 255),
 | 
				
			||||||
 | 
					                      landscape=False, rotate_180=True)
 | 
				
			||||||
 | 
					    text_width = robotron.measure_text('LANDSCAPE,')
 | 
				
			||||||
 | 
					    display.draw_text(display.width - font_height - 1 , text_width,
 | 
				
			||||||
 | 
					                      'LANDSCAPE,', robotron,
 | 
				
			||||||
 | 
					                      color565(0, 0, 255),
 | 
				
			||||||
 | 
					                      landscape=True, rotate_180=True)
 | 
				
			||||||
 | 
					    text_width = robotron.measure_text('ROTATE 180')
 | 
				
			||||||
 | 
					    display.draw_text(display.width - font_height * 2 - 1 , text_width,
 | 
				
			||||||
 | 
					                      'ROTATE 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,
 | 
				
			||||||
 | 
					                      'PORTRAIT', unispace,
 | 
				
			||||||
 | 
					                      color565(255, 255, 0),
 | 
				
			||||||
 | 
					                      background=color565(255, 0, 0),
 | 
				
			||||||
 | 
					                      landscape=False, rotate_180=False)
 | 
				
			||||||
 | 
					    text_width = unispace.measure_text('LANDSCAPE') 
 | 
				
			||||||
 | 
					    display.draw_text(0, display.height - 1,
 | 
				
			||||||
 | 
					                      'LANDSCAPE', unispace,
 | 
				
			||||||
 | 
					                      color565(255, 0, 0),
 | 
				
			||||||
 | 
					                      background=color565(255, 255, 0),
 | 
				
			||||||
 | 
					                      landscape=True, rotate_180=False)
 | 
				
			||||||
 | 
					    text_width = unispace.measure_text('PORTRAIT,')
 | 
				
			||||||
 | 
					    display.draw_text(display.width - text_width - 1,
 | 
				
			||||||
 | 
					                      display.height - font_height,
 | 
				
			||||||
 | 
					                      'PORTRAIT,', unispace,
 | 
				
			||||||
 | 
					                      color565(255, 0, 255),
 | 
				
			||||||
 | 
					                      background=color565(0, 255, 0),
 | 
				
			||||||
 | 
					                      landscape=False, rotate_180=True)
 | 
				
			||||||
 | 
					    text_width = unispace.measure_text('ROTATE 180')
 | 
				
			||||||
 | 
					    display.draw_text(display.width - text_width - 1,
 | 
				
			||||||
 | 
					                      display.height - font_height * 2,
 | 
				
			||||||
 | 
					                      'ROTATE 180', unispace,
 | 
				
			||||||
 | 
					                      color565(255, 0, 255),
 | 
				
			||||||
 | 
					                      background=color565(0, 255, 0),
 | 
				
			||||||
 | 
					                      landscape=False, rotate_180=True)
 | 
				
			||||||
 | 
					    text_width = unispace.measure_text('LANDSCAPE,')
 | 
				
			||||||
 | 
					    display.draw_text(display.width - font_height - 1 , text_width,
 | 
				
			||||||
 | 
					                      'LANDSCAPE,', unispace,
 | 
				
			||||||
 | 
					                      color565(0, 0, 255),
 | 
				
			||||||
 | 
					                      background=color565(255, 255, 0),
 | 
				
			||||||
 | 
					                      landscape=True, rotate_180=True)
 | 
				
			||||||
 | 
					    text_width = unispace.measure_text('ROTATE 180')
 | 
				
			||||||
 | 
					    display.draw_text(display.width - font_height * 2 - 1 , text_width,
 | 
				
			||||||
 | 
					                      'ROTATE 180', unispace,
 | 
				
			||||||
 | 
					                      color565(0, 0, 255),
 | 
				
			||||||
 | 
					                      background=color565(255, 255, 0),
 | 
				
			||||||
 | 
					                      landscape=True, rotate_180=True)
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    sleep(10)
 | 
				
			||||||
 | 
					    display.cleanup()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test()
 | 
				
			||||||
					Loading…
					
					
				
		Reference in New Issue