add image examples
This commit is contained in:
parent
e28ba31049
commit
0ad6cb9987
|
@ -0,0 +1,107 @@
|
|||
# An offline image gallery that switches between five jpg images
|
||||
# Copy them into your Pico's flash using Thonny.
|
||||
# Sample images are taken by the Webb Space Telescope
|
||||
# Credit: NASA and the Space Telescope Science Institute (STScI).
|
||||
# More images and info @ https://webbtelescope.org/
|
||||
# If you want to use your own images they must be 600 x 448 pixels or smaller
|
||||
# and saved as *non-progressive* jpgs
|
||||
|
||||
from pimoroni import ShiftRegister
|
||||
from picographics import PicoGraphics, DISPLAY_INKY_FRAME
|
||||
from machine import Pin
|
||||
import jpegdec
|
||||
|
||||
# you can change your file names here
|
||||
IMAGE_A = "jwst1.jpg"
|
||||
IMAGE_B = "jwst2.jpg"
|
||||
IMAGE_C = "jwst3.jpg"
|
||||
IMAGE_D = "jwst4.jpg"
|
||||
IMAGE_E = "jwst5.jpg"
|
||||
|
||||
# set up the display
|
||||
display = PicoGraphics(display=DISPLAY_INKY_FRAME)
|
||||
|
||||
# Inky Frame uses a shift register to read the buttons
|
||||
SR_CLOCK = 8
|
||||
SR_LATCH = 9
|
||||
SR_OUT = 10
|
||||
|
||||
sr = ShiftRegister(SR_CLOCK, SR_LATCH, SR_OUT)
|
||||
|
||||
# set up the button LEDs
|
||||
button_a_led = Pin(11, Pin.OUT)
|
||||
button_b_led = Pin(12, Pin.OUT)
|
||||
button_c_led = Pin(13, Pin.OUT)
|
||||
button_d_led = Pin(14, Pin.OUT)
|
||||
button_e_led = Pin(15, Pin.OUT)
|
||||
|
||||
# and the activity LED
|
||||
activity_led = Pin(6, Pin.OUT)
|
||||
|
||||
# set up and enable vsys hold so we don't go to sleep
|
||||
HOLD_VSYS_EN_PIN = 2
|
||||
|
||||
hold_vsys_en_pin = Pin(HOLD_VSYS_EN_PIN, Pin.OUT)
|
||||
hold_vsys_en_pin.value(True)
|
||||
|
||||
# Create a new JPEG decoder for our PicoGraphics
|
||||
j = jpegdec.JPEG(display)
|
||||
|
||||
# setup
|
||||
activity_led.on()
|
||||
# update the image on Inky every time it's powered up
|
||||
# comment these lines out if running on battery power
|
||||
# button_a_led.on()
|
||||
# display_image(IMAGE_A)
|
||||
|
||||
|
||||
def display_image(filename):
|
||||
|
||||
# Open the JPEG file
|
||||
j.open_file(filename)
|
||||
|
||||
# Decode the JPEG
|
||||
j.decode(0, 0, jpegdec.JPEG_SCALE_FULL)
|
||||
|
||||
# Display the result
|
||||
display.update()
|
||||
|
||||
|
||||
while True:
|
||||
button_a_led.off()
|
||||
button_b_led.off()
|
||||
button_c_led.off()
|
||||
button_d_led.off()
|
||||
button_e_led.off()
|
||||
|
||||
# read the shift register
|
||||
# we can tell which button has been pressed by checking if a specific bit is 0 or 1
|
||||
result = sr.read()
|
||||
button_a = sr[7]
|
||||
button_b = sr[6]
|
||||
button_c = sr[5]
|
||||
button_d = sr[4]
|
||||
button_e = sr[3]
|
||||
|
||||
# light up the activity LED when Inky is awake
|
||||
activity_led.on()
|
||||
|
||||
if button_a == 1:
|
||||
button_a_led.on()
|
||||
display_image(IMAGE_A)
|
||||
elif button_b == 1:
|
||||
button_b_led.on()
|
||||
display_image(IMAGE_B)
|
||||
elif button_c == 1:
|
||||
button_c_led.on()
|
||||
display_image(IMAGE_C)
|
||||
elif button_d == 1:
|
||||
button_d_led.on()
|
||||
display_image(IMAGE_D)
|
||||
elif button_e == 1:
|
||||
button_e_led.on()
|
||||
display_image(IMAGE_E)
|
||||
|
||||
# Go to sleep if on battery power
|
||||
activity_led.off()
|
||||
hold_vsys_en_pin.init(Pin.IN)
|
|
@ -0,0 +1,114 @@
|
|||
# An offline image gallery that switches between five jpg images
|
||||
# on your SD card (copy them across by plugging your SD into a computer).
|
||||
# Sample images are taken by the Webb Space Telescope
|
||||
# Credit: NASA and the Space Telescope Science Institute (STScI).
|
||||
# More images and info @ https://webbtelescope.org/
|
||||
# If you want to use your own images they must be 600 x 448 pixels or smaller
|
||||
# and saved as *non-progressive* jpgs
|
||||
|
||||
from pimoroni import ShiftRegister
|
||||
from picographics import PicoGraphics, DISPLAY_INKY_FRAME
|
||||
from machine import Pin, SPI
|
||||
import jpegdec
|
||||
import sdcard
|
||||
import uos
|
||||
|
||||
# you can change your file names here
|
||||
IMAGE_A = "sd/jwst1.jpg"
|
||||
IMAGE_B = "sd/jwst2.jpg"
|
||||
IMAGE_C = "sd/jwst3.jpg"
|
||||
IMAGE_D = "sd/jwst4.jpg"
|
||||
IMAGE_E = "sd/jwst5.jpg"
|
||||
|
||||
# set up the display
|
||||
display = PicoGraphics(display=DISPLAY_INKY_FRAME)
|
||||
|
||||
# Inky Frame uses a shift register to read the buttons
|
||||
SR_CLOCK = 8
|
||||
SR_LATCH = 9
|
||||
SR_OUT = 10
|
||||
|
||||
sr = ShiftRegister(SR_CLOCK, SR_LATCH, SR_OUT)
|
||||
|
||||
# set up the button LEDs
|
||||
button_a_led = Pin(11, Pin.OUT)
|
||||
button_b_led = Pin(12, Pin.OUT)
|
||||
button_c_led = Pin(13, Pin.OUT)
|
||||
button_d_led = Pin(14, Pin.OUT)
|
||||
button_e_led = Pin(15, Pin.OUT)
|
||||
|
||||
# and the activity LED
|
||||
activity_led = Pin(6, Pin.OUT)
|
||||
|
||||
# set up the SD card
|
||||
sd_spi = SPI(0, sck=Pin(18, Pin.OUT), mosi=Pin(19, Pin.OUT), miso=Pin(16, Pin.OUT))
|
||||
sd = sdcard.SDCard(sd_spi, Pin(22))
|
||||
uos.mount(sd, "/sd")
|
||||
|
||||
# set up and enable vsys hold so we don't go to sleep
|
||||
HOLD_VSYS_EN_PIN = 2
|
||||
|
||||
hold_vsys_en_pin = Pin(HOLD_VSYS_EN_PIN, Pin.OUT)
|
||||
hold_vsys_en_pin.value(True)
|
||||
|
||||
# Create a new JPEG decoder for our PicoGraphics
|
||||
j = jpegdec.JPEG(display)
|
||||
|
||||
# setup
|
||||
activity_led.on()
|
||||
# update the image on Inky every time it's powered up
|
||||
# comment these lines out if running on battery power
|
||||
# button_a_led.on()
|
||||
# display_image(IMAGE_A)
|
||||
|
||||
|
||||
def display_image(filename):
|
||||
|
||||
# Open the JPEG file
|
||||
j.open_file(filename)
|
||||
|
||||
# Decode the JPEG
|
||||
j.decode(0, 0, jpegdec.JPEG_SCALE_FULL)
|
||||
|
||||
# Display the result
|
||||
display.update()
|
||||
|
||||
|
||||
while True:
|
||||
button_a_led.off()
|
||||
button_b_led.off()
|
||||
button_c_led.off()
|
||||
button_d_led.off()
|
||||
button_e_led.off()
|
||||
|
||||
# read the shift register
|
||||
# we can tell which button has been pressed by checking if a specific bit is 0 or 1
|
||||
result = sr.read()
|
||||
button_a = sr[7]
|
||||
button_b = sr[6]
|
||||
button_c = sr[5]
|
||||
button_d = sr[4]
|
||||
button_e = sr[3]
|
||||
|
||||
# light up the activity LED when Inky is awake
|
||||
activity_led.on()
|
||||
|
||||
if button_a == 1:
|
||||
button_a_led.on()
|
||||
display_image(IMAGE_A)
|
||||
elif button_b == 1:
|
||||
button_b_led.on()
|
||||
display_image(IMAGE_B)
|
||||
elif button_c == 1:
|
||||
button_c_led.on()
|
||||
display_image(IMAGE_C)
|
||||
elif button_d == 1:
|
||||
button_d_led.on()
|
||||
display_image(IMAGE_D)
|
||||
elif button_e == 1:
|
||||
button_e_led.on()
|
||||
display_image(IMAGE_E)
|
||||
|
||||
# go to sleep if on battery power
|
||||
activity_led.off()
|
||||
hold_vsys_en_pin.init(Pin.IN)
|
Binary file not shown.
After Width: | Height: | Size: 96 KiB |
Binary file not shown.
After Width: | Height: | Size: 57 KiB |
Binary file not shown.
After Width: | Height: | Size: 53 KiB |
Binary file not shown.
After Width: | Height: | Size: 50 KiB |
Binary file not shown.
After Width: | Height: | Size: 116 KiB |
Loading…
Reference in New Issue