# Importar librerias
import time
from machine import Pin, I2C
from ssd1306 import SSD1306_I2C
import framebuf
WIDTH =128
HEIGHT= 64
# Canal
i2c=I2C(0,scl=Pin(5),sda=Pin(4),freq=2000000)
oled = SSD1306_I2C(WIDTH,HEIGHT,i2c)
bmpejemplo2 = bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\0x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\xFF\xFF\xFF\xF8\x00\x00\x00\x03\xFF\xFF\xFF\xF8\x00\x00\x00\x03\x80\x00\x00\x18\x00\x00\x00\x03\x80\x00\x00\x18\x00\x00\x00\x03\x9F\x9B\x80\x18\x00\x00\x00\x03\x9F\xFA\xC0\x1B\x8F\x3C\x00\x03\x9F\xFB\xC0\x1B\x8F\x3C\x00\x03\x9F\xFB\x00\x18\x00\x0C\x00\x03\x9F\xFA\x00\x18\x00\x0C\x00\x03\x80\x00\x00\x18\x00\x00\x00\x03\x80\x00\x0C\x18\x00\x00\x00\x03\x80\x00\x1E\x18\x00\x0C\x00\x03\x80\x00\x3F\x18\x00\x0C\x00\x03\x83\x00\x7F\x98\x00\x0C\x00\x03\x87\x80\xFF\xD9\xF8\x0C\x00\x03\x8F\xC1\xFF\xF9\xFC\x00\x00\x03\x9F\xE3\xFF\xF8\x1F\x00\x00\x03\xBF\xF7\xFF\xF8\x07\x80\x00\x03\xFF\xFF\xFF\xF8\x03\x80\x00\x03\xFF\xFF\xFF\xF8\x01\xC0\x00\x03\xFF\xFF\xFF\xF8\x00\xE0\x00\x03\xFF\xFF\xFF\xF8\x00\xE0\x00\x03\xFF\xFF\xFF\xF8\x02\xE2\x00\x03\xFF\xFF\xFF\xF8\x07\x66\x00\x00\x00\x00\x00\x00\x07\xEF\x00\x00\x00\xC0\x00\x00\x03\xFE\x00\x00\x00\xC0\x00\x00\x00\xF8\x00\x00\x00\xC0\x00\x00\x00\xF8\x00\x00\x00\xC0\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xC0\x00\x07\xFF\xE0\x00\x00\x00\xC0\x00\x07\xFF\xE0\x00\x00\x00\xC0\x00\x06\x00\xF8\x00\x00\x00\xC0\x00\x06\x00\xF8\x00\x00\x00\xC0\x00\x06\x00\xFE\x00\x00\x00\x00\x00\x06\x00\xEE\x00\x00\x00\x00\x00\x06\x00\xFF\x80\x00\x00\xC0\x00\x06\x00\xFF\x80\x00\x00\xC0\x00\x06\x00\x03\x80\x00\x00\xC0\x00\x06\x00\x03\x80\x00\x00\xC0\x00\x06\x00\x03\x80\x00\x00\xC0\x00\x06\x00\x03\x80\x00\x00\x00\x00\x06\x00\x03\x80\x00\x00\x00\x00\x06\x00\x03\x80\x00\x00\xC0\x00\x06\xF7\xBB\x80\x00\x00\xC0\x00\x06\xDD\xA3\x80\x00\x00\xF3\xE7\x86\xFC\xBB\x80\x00\x00\xF3\xE7\x86\xC5\xA3\x80\x00\x00\x00\x00\x06\xC7\xA3\x80\x00\x00\x00\x00\x06\x00\x03\x80\x00\x00\x00\x00\x06\x00\x03\x80\x00\x00\x00\x00\x07\xFF\xFF\x80\x00\x00\x00\x00\x07\xFF\xFF\x80\x00\x00\x00\x00\x00\x00\x00\x00')
#fb1 = framebuf.FrameBuffer(bmpejemplo2, 64, 59, framebuf.MVLSB)
buffer = bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x10\x8a\n0\x10$\xc8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00x\xfe\xff?\xfe\xfd|\xfb\xf8\xfc\xff|\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xc0@\xe0\xe0\xe0\xc0\xc1c\x9f\xff\x0f\xce\xff\xff\xcf\xe3\xf0pp\xa0\xe0\xe0\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xfb\xe7\xdf\x8e\x9e\xfd\x95"$%\x00\xfe\xff\xff\xed\xdd\xce\xce\xff\xe7\xe7\xf7\xfb\xf9\xfep\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00@6\x9bg7\xcfo\x9d\xdb?\xbbws\xf7\xfa\xfa\xf9\xf4\xfd\xf7\xf3\xf1\xfdsy\xbd;\xd9\x9do\xcc6g\x9b6@\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x02\x01\x04\x03\t\x06\x13\x0c&\x19\r\x1b\x1b\r\x19&\x0c\x13\x06\t\x03\x04\x01\x02\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
fb = framebuf.FrameBuffer(buffer, 48, 48, framebuf.MVLSB)
def main():
while True:
print("Graficando un BMP")
oled.fill(0)
oled.blit(fb, 8, 0)
oled.show()
time.sleep(2)
#oled.fill(0)
print("Mensaje")
oled.text("Pi Pico W", 45, 0)
oled.text("SSD1306", 50, 10)
oled.text("Dr.Pereira", 39, 45)
oled.show()
time.sleep(4)
oled.fill(0)
print("Graficar Un Pixel")
oled.pixel(64,32,1)
oled.show()
time.sleep(2)
oled.fill(0)
print("Graficar Un Linea horizontal")
oled.hline(0,32,128,1)
oled.show()
time.sleep(2)
oled.fill(0)
print("Graficar Un Linea Vertical")
oled.vline(0, 0, 64, 1)
oled.show()
time.sleep(2)
oled.fill(0)
print("Graficar Un Linea Vertical")
oled.line(0, 0, 128, 64, 1)
oled.show()
time.sleep(2)
oled.fill(0)
print("Graficar Un Rectangulo")
oled.rect(20, 20, 64, 32, 1)
oled.show()
time.sleep(2)
oled.fill(0)
print("Graficar Un Rectangulo lleno")
oled.fill_rect(20, 20, 64, 32, 1)
oled.show()
time.sleep(2)
oled.fill(0)
if __name__== '__main__':
main()