Skip to content

Updated examples to include more drawing #9

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Aug 2, 2019
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 40 additions & 6 deletions examples/ili9341_shield_simpletest.py
Original file line number Diff line number Diff line change
@@ -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()
Expand All @@ -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!
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i think we should use label, cause this is kinda intense

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok. I tried to make it as basic as possible, but I agree that it adds a bit to it.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yah i think it got too basic :D

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
46 changes: 40 additions & 6 deletions examples/ili9341_simpletest.py
Original file line number Diff line number Diff line change
@@ -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()
Expand All @@ -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