# .';:cc;.
# .,',;lol::c.
# ;';lddddlclo
# lcloxxoddodxdool:,.
# cxdddxdodxdkOkkkkkkkd:.
# .ldxkkOOOOkkOO000Okkxkkkkx:.
# .lddxkkOkOOO0OOO0000Okxxxxkkkk:
# 'ooddkkkxxkO0000KK00Okxdoodxkkkko
# .ooodxkkxxxOO000kkkO0KOxolooxkkxxkl
# lolodxkkxxkOx,. .lkdolodkkxxxO.
# doloodxkkkOk .... .,cxO;
# ddoodddxkkkk: ,oxxxkOdc'..o'
# :kdddxxxxd, ,lolccldxxxkkOOOkkkko,
# lOkxkkk; :xkkkkkkkkOOO000OOkkOOk.
# ;00Ok' 'O000OO0000000000OOOO0Od.
# .l0l.;OOO000000OOOOOO000000x,
# .'OKKKK00000000000000kc.
# .:ox0KKKKKKK0kdc,.
# ...
#
# Author: peppe8o
# Date: Apr 14rd, 2023
# Version: 1.0
# blog: https://peppe8o.com
from pico_epaper import EPD_2in13
import framebuf, time
def pbm_draw(x_pos,y_pos,file):
with open(file, 'rb') as f:
f.readline() # The first 2 lines of PBM files are info not related to the image
f.readline() # the 2 readlines remove these lines
size = f.readline().decode('utf-8') # The 3rd row includes a byte with picture sizes that is decoded
(x,y)=size.split("\n")[0].split(" ") # X variable gets the width, y variable gets the height
data = bytearray(f.read())
fbuf = framebuf.FrameBuffer(data, int(x), int(y), framebuf.MONO_HLSB)
epd.blit(fbuf, x_pos, y_pos, white)
# Initialize the Raspberry PI Pico e-paper display
epd = EPD_2in13()
black=0x00
white=0xff
# test drawing a pixel
epd.fill(white)
epd.init(epd.full_update)
epd.pixel(5,20,black)
epd.display(epd.buffer)
time.sleep(2)
# test drawing a vertical line
epd.fill(white)
epd.display(epd.buffer)
epd.vline(10, 90, 60, black)
epd.display(epd.buffer)
time.sleep(2)
# test drawing an horizontal line
epd.fill(white)
epd.display(epd.buffer)
epd.hline(10, 90, 80, black)
epd.display(epd.buffer)
time.sleep(2)
# test drawing a diagonal line
epd.fill(white)
epd.display(epd.buffer)
epd.line(10, 90, 90, 150, black)
epd.display(epd.buffer)
time.sleep(2)
# test drawing an empty rectangle
epd.fill(white)
epd.display(epd.buffer)
epd.rect(10, 180, 50, 40, black)
epd.display(epd.buffer)
time.sleep(2)
# test drawing a filled rectangle
epd.fill(white)
epd.display(epd.buffer)
epd.fill_rect(70, 180, 50, 40, black)
epd.display(epd.buffer)
time.sleep(2)
# test printing text on display
epd.fill(white)
epd.display(epd.buffer)
epd.text("peppe8o.com", 0, 10, black)
epd.display(epd.buffer)
time.sleep(2)
# test changing the text
epd.fill_rect(0, 10, 88, 8, white)
epd.text("Giuseppe", 0, 10, black)
epd.display(epd.buffer)
time.sleep(2)
# test printing the MicroPython logo
epd.fill(white)
epd.fill_rect(0, 1, 32, 32, black)
epd.fill_rect(2, 3, 28, 28, white)
epd.vline(9, 9, 22, black)
epd.vline(16, 3, 22, black)
epd.vline(23, 9, 22, black)
epd.fill_rect(26, 25, 2, 4, black)
epd.text('peppe8o.com', 35, 1, black)
epd.text('e-paper', 35, 13, black)
epd.text('Pico', 35, 25, black)
epd.display(epd.buffer)
time.sleep(2)
# test showing a PBM image file on Raspberry PI Pico Storage
# PLEASE USE YOUR FILE NAME!
epd.fill(white)
epd.display(epd.buffer)
pbm_draw(60,10,'Logo2D_white_2.pbm')
epd.display(epd.buffer)
time.sleep(2)
# test the display scrolling
epd.scroll(0,50) # (x,y) scrolls down 50 pixel
epd.display(epd.buffer)
time.sleep(2)
# test the display clear
epd.Clear(white)
time.sleep(2)
# sleep the monitor
epd.sleep()
Loading
epaper-2in9
epaper-2in9