From c2379093dc8bd6d9aba8b119a53c10c7ee43f94b Mon Sep 17 00:00:00 2001 From: Melissa LeBlanc-Williams Date: Thu, 1 Aug 2019 17:48:18 -0700 Subject: [PATCH 1/4] Updated examples to include more drawing --- examples/ili9341_shield_simpletest.py | 46 +++++++++++++++++++++++---- examples/ili9341_simpletest.py | 46 +++++++++++++++++++++++---- 2 files changed, 80 insertions(+), 12 deletions(-) diff --git a/examples/ili9341_shield_simpletest.py b/examples/ili9341_shield_simpletest.py index d787a32..64268ea 100644 --- a/examples/ili9341_shield_simpletest.py +++ b/examples/ili9341_shield_simpletest.py @@ -1,11 +1,13 @@ """ -This test will initialize the display using displayio -and draw a solid red background. Pinouts are for the 2.8" -TFT Shield -""" +This test will initialize the display using displayio and draw a solid green +background, a smaller purple rectangle, and some yellow text. All drawing is done +using native displayio modules. +Pinouts are for the 2.8" TFT Shield +""" import board import displayio +import terminalio import adafruit_ili9341 spi = board.SPI() @@ -14,21 +16,53 @@ displayio.release_displays() display_bus = displayio.FourWire(spi, command=tft_dc, chip_select=tft_cs) - display = adafruit_ili9341.ILI9341(display_bus, width=320, height=240) # Make the display context splash = displayio.Group(max_size=10) display.show(splash) +# Draw a green background color_bitmap = displayio.Bitmap(320, 240, 1) color_palette = displayio.Palette(1) -color_palette[0] = 0xFF0000 +color_palette[0] = 0x00FF00 # Bright Green bg_sprite = displayio.TileGrid(color_bitmap, pixel_shader=color_palette, x=0, y=0) + splash.append(bg_sprite) +# Draw a smaller inner rectangle +inner_bitmap = displayio.Bitmap(280, 200, 1) +inner_palette = displayio.Palette(1) +inner_palette[0] = 0x65328F # Blinka Purple +inner_sprite = displayio.TileGrid(inner_bitmap, + pixel_shader=inner_palette, + x=20, y=20) +splash.append(inner_sprite) + +# Draw some text the manual way! +font_palette = displayio.Palette(2) +font_palette.make_transparent(0) +font_palette[1] = 0xFFFF00 # Yellow + +text_group = displayio.Group(max_size=20, scale=3, x=57, y=120) +text = "Hello World!" +x = 0 + +for character in text: + glyph = terminalio.FONT.get_glyph(ord(character)) + position_x = x + glyph.dx + position_y = 0 - round((glyph.height - glyph.dy) / 2) # Center text vertically + face = displayio.TileGrid(glyph.bitmap, pixel_shader=font_palette, + default_tile=glyph.tile_index, + tile_width=glyph.width, tile_height=glyph.height, + x=position_x, y=position_y) + text_group.append(face) + x += glyph.shift_x + +splash.append(text_group) + while True: pass diff --git a/examples/ili9341_simpletest.py b/examples/ili9341_simpletest.py index 64ec38e..b0830dc 100644 --- a/examples/ili9341_simpletest.py +++ b/examples/ili9341_simpletest.py @@ -1,11 +1,13 @@ """ -This test will initialize the display using displayio -and draw a solid red background. The default pinouts are -for the 2.4" TFT FeatherWing with a Feather M4 or M0. -""" +This test will initialize the display using displayio and draw a solid green +background, a smaller purple rectangle, and some yellow text. All drawing is done +using native displayio modules. +Pinouts are for the 2.4" TFT FeatherWing with a Feather M4 or M0. +""" import board import displayio +import terminalio import adafruit_ili9341 spi = board.SPI() @@ -14,21 +16,53 @@ displayio.release_displays() display_bus = displayio.FourWire(spi, command=tft_dc, chip_select=tft_cs) - display = adafruit_ili9341.ILI9341(display_bus, width=320, height=240) # Make the display context splash = displayio.Group(max_size=10) display.show(splash) +# Draw a green background color_bitmap = displayio.Bitmap(320, 240, 1) color_palette = displayio.Palette(1) -color_palette[0] = 0xFF0000 +color_palette[0] = 0x00FF00 # Bright Green bg_sprite = displayio.TileGrid(color_bitmap, pixel_shader=color_palette, x=0, y=0) + splash.append(bg_sprite) +# Draw a smaller inner rectangle +inner_bitmap = displayio.Bitmap(280, 200, 1) +inner_palette = displayio.Palette(1) +inner_palette[0] = 0x65328F # Blinka Purple +inner_sprite = displayio.TileGrid(inner_bitmap, + pixel_shader=inner_palette, + x=20, y=20) +splash.append(inner_sprite) + +# Draw some text the manual way! +font_palette = displayio.Palette(2) +font_palette.make_transparent(0) +font_palette[1] = 0xFFFF00 # Yellow + +text_group = displayio.Group(max_size=20, scale=3, x=57, y=120) +text = "Hello World!" +x = 0 + +for character in text: + glyph = terminalio.FONT.get_glyph(ord(character)) + position_x = x + glyph.dx + position_y = 0 - round((glyph.height - glyph.dy) / 2) # Center text vertically + face = displayio.TileGrid(glyph.bitmap, pixel_shader=font_palette, + default_tile=glyph.tile_index, + tile_width=glyph.width, tile_height=glyph.height, + x=position_x, y=position_y) + text_group.append(face) + x += glyph.shift_x + +splash.append(text_group) + while True: pass From 659aaf06865eec623bdf1570343859007db82019 Mon Sep 17 00:00:00 2001 From: Melissa LeBlanc-Williams Date: Thu, 1 Aug 2019 17:51:10 -0700 Subject: [PATCH 2/4] linted --- examples/ili9341_displayio_demo.py | 68 ++++++++++++++++++++++++++++++ examples/ili9341_simpletest.py | 4 +- 2 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 examples/ili9341_displayio_demo.py diff --git a/examples/ili9341_displayio_demo.py b/examples/ili9341_displayio_demo.py new file mode 100644 index 0000000..ea845c4 --- /dev/null +++ b/examples/ili9341_displayio_demo.py @@ -0,0 +1,68 @@ +""" +This test will initialize the display using displayio and draw a solid green +background, a smaller purple rectangle, and some yellow text. All drawing is done +using native displayio modules. + +Pinouts are for the 2.8" TFT Shield +""" +import board +import displayio +import terminalio +import adafruit_ili9341 + +spi = board.SPI() +tft_cs = board.D10 +tft_dc = board.D9 + +displayio.release_displays() +display_bus = displayio.FourWire(spi, command=tft_dc, chip_select=tft_cs) +display = adafruit_ili9341.ILI9341(display_bus, width=320, height=240) + +# Make the display context +splash = displayio.Group(max_size=10) +display.show(splash) + +# Draw a green background +color_bitmap = displayio.Bitmap(320, 240, 1) +color_palette = displayio.Palette(1) +color_palette[0] = 0x00FF00 # Bright Green + +bg_sprite = displayio.TileGrid(color_bitmap, + pixel_shader=color_palette, + x=0, y=0) + +splash.append(bg_sprite) + +# Draw a smaller inner rectangle +inner_bitmap = displayio.Bitmap(280, 200, 1) +inner_palette = displayio.Palette(1) +inner_palette[0] = 0x65328F # Blinka Purple +inner_sprite = displayio.TileGrid(inner_bitmap, + pixel_shader=inner_palette, + x=20, y=20) +splash.append(inner_sprite) + +# Draw some text the manual way! +font_palette = displayio.Palette(2) +font_palette.make_transparent(0) +font_palette[1] = 0xFFFF00 # Yellow + +text_group = displayio.Group(max_size=20, scale=3, x=57, y=120) +text = "Hello World!" +x = 0 + +for character in text: + glyph = terminalio.FONT.get_glyph(ord(character)) + position_x = x + glyph.dx + position_y = 0 - round((glyph.height - glyph.dy) / 2) # Center text vertically + face = displayio.TileGrid(glyph.bitmap, pixel_shader=font_palette, + default_tile=glyph.tile_index, + tile_width=glyph.width, tile_height=glyph.height, + x=position_x, y=position_y) + text_group.append(face) + x += glyph.shift_x + +splash.append(text_group) + +while True: + pass diff --git a/examples/ili9341_simpletest.py b/examples/ili9341_simpletest.py index b0830dc..42938bd 100644 --- a/examples/ili9341_simpletest.py +++ b/examples/ili9341_simpletest.py @@ -38,8 +38,8 @@ inner_palette = displayio.Palette(1) inner_palette[0] = 0x65328F # Blinka Purple inner_sprite = displayio.TileGrid(inner_bitmap, - pixel_shader=inner_palette, - x=20, y=20) + pixel_shader=inner_palette, + x=20, y=20) splash.append(inner_sprite) # Draw some text the manual way! From 7d86e1af424e4d2576478b5468c67599340230d5 Mon Sep 17 00:00:00 2001 From: Melissa LeBlanc-Williams Date: Thu, 1 Aug 2019 17:51:57 -0700 Subject: [PATCH 3/4] Fixed correct file this time --- examples/ili9341_displayio_demo.py | 68 --------------------------- examples/ili9341_shield_simpletest.py | 4 +- 2 files changed, 2 insertions(+), 70 deletions(-) delete mode 100644 examples/ili9341_displayio_demo.py diff --git a/examples/ili9341_displayio_demo.py b/examples/ili9341_displayio_demo.py deleted file mode 100644 index ea845c4..0000000 --- a/examples/ili9341_displayio_demo.py +++ /dev/null @@ -1,68 +0,0 @@ -""" -This test will initialize the display using displayio and draw a solid green -background, a smaller purple rectangle, and some yellow text. All drawing is done -using native displayio modules. - -Pinouts are for the 2.8" TFT Shield -""" -import board -import displayio -import terminalio -import adafruit_ili9341 - -spi = board.SPI() -tft_cs = board.D10 -tft_dc = board.D9 - -displayio.release_displays() -display_bus = displayio.FourWire(spi, command=tft_dc, chip_select=tft_cs) -display = adafruit_ili9341.ILI9341(display_bus, width=320, height=240) - -# Make the display context -splash = displayio.Group(max_size=10) -display.show(splash) - -# Draw a green background -color_bitmap = displayio.Bitmap(320, 240, 1) -color_palette = displayio.Palette(1) -color_palette[0] = 0x00FF00 # Bright Green - -bg_sprite = displayio.TileGrid(color_bitmap, - pixel_shader=color_palette, - x=0, y=0) - -splash.append(bg_sprite) - -# Draw a smaller inner rectangle -inner_bitmap = displayio.Bitmap(280, 200, 1) -inner_palette = displayio.Palette(1) -inner_palette[0] = 0x65328F # Blinka Purple -inner_sprite = displayio.TileGrid(inner_bitmap, - pixel_shader=inner_palette, - x=20, y=20) -splash.append(inner_sprite) - -# Draw some text the manual way! -font_palette = displayio.Palette(2) -font_palette.make_transparent(0) -font_palette[1] = 0xFFFF00 # Yellow - -text_group = displayio.Group(max_size=20, scale=3, x=57, y=120) -text = "Hello World!" -x = 0 - -for character in text: - glyph = terminalio.FONT.get_glyph(ord(character)) - position_x = x + glyph.dx - position_y = 0 - round((glyph.height - glyph.dy) / 2) # Center text vertically - face = displayio.TileGrid(glyph.bitmap, pixel_shader=font_palette, - default_tile=glyph.tile_index, - tile_width=glyph.width, tile_height=glyph.height, - x=position_x, y=position_y) - text_group.append(face) - x += glyph.shift_x - -splash.append(text_group) - -while True: - pass diff --git a/examples/ili9341_shield_simpletest.py b/examples/ili9341_shield_simpletest.py index 64268ea..ea845c4 100644 --- a/examples/ili9341_shield_simpletest.py +++ b/examples/ili9341_shield_simpletest.py @@ -38,8 +38,8 @@ inner_palette = displayio.Palette(1) inner_palette[0] = 0x65328F # Blinka Purple inner_sprite = displayio.TileGrid(inner_bitmap, - pixel_shader=inner_palette, - x=20, y=20) + pixel_shader=inner_palette, + x=20, y=20) splash.append(inner_sprite) # Draw some text the manual way! From dff278a8db3bd783ac6590e28865486fa5f9ca8b Mon Sep 17 00:00:00 2001 From: Melissa LeBlanc-Williams Date: Thu, 1 Aug 2019 18:11:56 -0700 Subject: [PATCH 4/4] Updated examples to use a label --- examples/ili9341_shield_simpletest.py | 27 ++++++--------------------- examples/ili9341_simpletest.py | 24 +++++------------------- 2 files changed, 11 insertions(+), 40 deletions(-) diff --git a/examples/ili9341_shield_simpletest.py b/examples/ili9341_shield_simpletest.py index ea845c4..4872f21 100644 --- a/examples/ili9341_shield_simpletest.py +++ b/examples/ili9341_shield_simpletest.py @@ -1,13 +1,13 @@ """ This test will initialize the display using displayio and draw a solid green -background, a smaller purple rectangle, and some yellow text. All drawing is done -using native displayio modules. +background, a smaller purple rectangle, and some yellow text. Pinouts are for the 2.8" TFT Shield """ import board import displayio import terminalio +from adafruit_display_text import label import adafruit_ili9341 spi = board.SPI() @@ -42,26 +42,11 @@ x=20, y=20) splash.append(inner_sprite) -# Draw some text the manual way! -font_palette = displayio.Palette(2) -font_palette.make_transparent(0) -font_palette[1] = 0xFFFF00 # Yellow - -text_group = displayio.Group(max_size=20, scale=3, x=57, y=120) +# Draw a label +text_group = displayio.Group(max_size=10, scale=3, x=57, y=120) text = "Hello World!" -x = 0 - -for character in text: - glyph = terminalio.FONT.get_glyph(ord(character)) - position_x = x + glyph.dx - position_y = 0 - round((glyph.height - glyph.dy) / 2) # Center text vertically - face = displayio.TileGrid(glyph.bitmap, pixel_shader=font_palette, - default_tile=glyph.tile_index, - tile_width=glyph.width, tile_height=glyph.height, - x=position_x, y=position_y) - text_group.append(face) - x += glyph.shift_x - +text_area = label.Label(terminalio.FONT, text=text, color=0xFFFF00) +text_group.append(text_area) # Subgroup gor text scaling splash.append(text_group) while True: diff --git a/examples/ili9341_simpletest.py b/examples/ili9341_simpletest.py index 42938bd..89c4086 100644 --- a/examples/ili9341_simpletest.py +++ b/examples/ili9341_simpletest.py @@ -8,6 +8,7 @@ import board import displayio import terminalio +from adafruit_display_text import label import adafruit_ili9341 spi = board.SPI() @@ -42,26 +43,11 @@ x=20, y=20) splash.append(inner_sprite) -# Draw some text the manual way! -font_palette = displayio.Palette(2) -font_palette.make_transparent(0) -font_palette[1] = 0xFFFF00 # Yellow - -text_group = displayio.Group(max_size=20, scale=3, x=57, y=120) +# Draw a label +text_group = displayio.Group(max_size=10, scale=3, x=57, y=120) text = "Hello World!" -x = 0 - -for character in text: - glyph = terminalio.FONT.get_glyph(ord(character)) - position_x = x + glyph.dx - position_y = 0 - round((glyph.height - glyph.dy) / 2) # Center text vertically - face = displayio.TileGrid(glyph.bitmap, pixel_shader=font_palette, - default_tile=glyph.tile_index, - tile_width=glyph.width, tile_height=glyph.height, - x=position_x, y=position_y) - text_group.append(face) - x += glyph.shift_x - +text_area = label.Label(terminalio.FONT, text=text, color=0xFFFF00) +text_group.append(text_area) # Subgroup gor text scaling splash.append(text_group) while True: