# .';: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()