micropython-micro-gui/setup_examples/st7789_pico_display_pack.py

49 wiersze
1.6 KiB
Python

# hardware_setup.py Customise for your hardware config
# Released under the MIT License (MIT). See LICENSE.
# Copyright (c) 2021 Peter Hinch, Ihor Nehrutsa, Austin St. Aubin
# Supports:
# Pico Display Pack 1.14" 240*240(Pixel) based on ST7789V
# https://shop.pimoroni.com/products/pico-display-pack
# https://shop.pimoroni.com/products/pico-enviro-pack
from machine import Pin, SPI
import gc
from drivers.st7789.st7789_4bit import *
SSD = ST7789
gc.collect() # Precaution before instantiating framebuf
# Conservative low baudrate. Can go to 62.5MHz.
spi = SPI(0, 30_000_000, sck=Pin(18), mosi=Pin(19), miso=None)
pdc = Pin(16, Pin.OUT, value=0)
pcs = Pin(17, Pin.OUT, value=1)
pbl = Pin(20, Pin.OUT, value=1)
prst = Pin(21, Pin.OUT, value=1)
# Note: LANDSCAPE = PORTRAIT, is flipped with this display
ssd = SSD(spi, height=240, width=240, dc=pdc, cs=pcs, rst=prst, disp_mode=LANDSCAPE, display=GENERIC)
# - - - - - - - - - - - - - - - - - - - - - - - - - -
# Create and export a Display instance
from gui.core.ugui import Display
# https://cdn.shopify.com/s/files/1/0174/1800/files/pico_enviro_pack_schematic.pdf
# Button Pinout
BUTTON_A = 12
BUTTON_B = 13
BUTTON_X = 14
BUTTON_Y = 15
# Define control buttons
nxt = Pin(BUTTON_X, Pin.IN, Pin.PULL_UP) # Move to next control
sel = Pin(BUTTON_A, Pin.IN, Pin.PULL_UP) # Operate current control
prev = Pin(BUTTON_Y, Pin.IN, Pin.PULL_UP) # Move to previous control
increase = None ### Pin(BUTTON_A, Pin.IN, Pin.PULL_UP) # Increase control's value
decrease = None ### Pin(11, Pin.IN, Pin.PULL_UP) # Decrease control's value
display = Display(ssd, nxt, sel, prev, increase, decrease, False)