"""
Alumno: Salazar Diaz Samuel
No. Control: 19211729
Materia: Sistemas Programables
___________________________________
"""
from machine import Pin, I2C
from ssd1306 import SSD1306_I2C
import framebuf, sys
import utime
pix_res_x = 128
pix_res_y = 64
def init_i2c(scl_pin, sda_pin):
# Initialize I2C device
i2c_dev = I2C(1, scl=Pin(scl_pin), sda=Pin(sda_pin), freq=200000)
i2c_addr = [hex(ii) for ii in i2c_dev.scan()]
if not i2c_addr:
print('No I2C Display Found')
sys.exit()
else:
print("I2C Address : {}".format(i2c_addr[0]))
print("I2C Configuration: {}".format(i2c_dev))
return i2c_dev
def display_logo(oled):
# Display the Raspberry Pi logo on the OLED
logo = [0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1b, 0xf0, 0xff, 0xff, 0xff,
0xff, 0xff, 0xfc, 0x0f, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xd0, 0x37, 0xff, 0xff,
0xff, 0xff, 0xd4, 0x0f, 0xe0, 0x37, 0xff, 0xff, 0xff, 0xff, 0x64, 0x07, 0xe0, 0x7f, 0x7f, 0xff,
0xff, 0xff, 0xfe, 0x07, 0xe0, 0x6f, 0xff, 0xff, 0xff, 0xfb, 0xfe, 0x00, 0x00, 0x67, 0x9f, 0xff,
0xff, 0xf1, 0xfe, 0x00, 0x00, 0x37, 0x0f, 0xff, 0xff, 0xe0, 0xe8, 0x00, 0x02, 0x0a, 0x07, 0xff,
0xff, 0xc0, 0x60, 0x08, 0x40, 0x00, 0x03, 0xff, 0xff, 0xc0, 0x00, 0x38, 0x05, 0x00, 0x03, 0xff,
0xff, 0xe0, 0x00, 0x00, 0x00, 0x20, 0x07, 0xff, 0xff, 0xf0, 0x00, 0x07, 0xf0, 0x18, 0x0b, 0xff,
0xff, 0xf8, 0x08, 0x3f, 0xfe, 0x08, 0x1e, 0xff, 0xff, 0xfc, 0x00, 0xf0, 0x0f, 0x80, 0x27, 0xff,
0xff, 0xf8, 0x03, 0xc0, 0x01, 0xc0, 0x1b, 0x7f, 0xff, 0xf0, 0x47, 0x04, 0x80, 0xe1, 0x0f, 0xff,
0xff, 0xf0, 0x4e, 0x04, 0x80, 0x70, 0x0b, 0xdf, 0xf9, 0xe1, 0x1c, 0x04, 0x80, 0x38, 0x04, 0x0f,
0xf0, 0x03, 0x18, 0x0f, 0xf0, 0x1c, 0x40, 0x0f, 0xf0, 0x01, 0x38, 0x17, 0xe8, 0x0c, 0x20, 0x0f,
0xf0, 0x00, 0x70, 0x1f, 0xf8, 0x0e, 0x00, 0x0f, 0xe0, 0x04, 0x70, 0x1f, 0xf8, 0x06, 0x10, 0x07,
0xf0, 0x02, 0x60, 0x1f, 0xf8, 0x07, 0x00, 0x1f, 0xfc, 0x02, 0xe0, 0xdf, 0xfb, 0x07, 0x21, 0xff,
0xfb, 0x02, 0xe0, 0x19, 0xf8, 0x03, 0x21, 0xcf, 0xef, 0x84, 0xe0, 0x19, 0xf8, 0x03, 0x01, 0xff,
0xff, 0x00, 0xe0, 0xdf, 0xfb, 0x03, 0x11, 0xdf, 0xfd, 0x80, 0xe0, 0x1e, 0xd8, 0x03, 0x09, 0xcf,
0xfe, 0x8a, 0xe0, 0x1e, 0xd8, 0x03, 0x01, 0xff, 0xef, 0x00, 0xe0, 0x1f, 0xf8, 0x07, 0x01, 0xdf,
0xfe, 0x00, 0x60, 0x1f, 0xf8, 0x07, 0x00, 0x0f, 0xf0, 0x00, 0x70, 0xdf, 0xfb, 0x06, 0x00, 0x07,
0xe0, 0x00, 0x70, 0x1f, 0xf8, 0x0e, 0x00, 0x0f, 0xf0, 0x00, 0x38, 0x1f, 0xe8, 0x0c, 0x00, 0x0f,
0xf0, 0x00, 0x38, 0x00, 0x00, 0x1c, 0x00, 0x0f, 0xf0, 0x00, 0x1c, 0x04, 0x80, 0x38, 0x06, 0x0f,
0xf8, 0xe0, 0x0e, 0x04, 0x80, 0x70, 0x0d, 0xff, 0xff, 0xf0, 0x07, 0x80, 0x00, 0xf0, 0x0f, 0xff,
0xff, 0x78, 0x03, 0xc0, 0x03, 0xc0, 0x1e, 0xbf, 0xff, 0xf8, 0x01, 0xf8, 0x1f, 0x80, 0x0d, 0xff,
0xff, 0xfc, 0x00, 0x7f, 0xfe, 0x00, 0x0f, 0xff, 0xff, 0xd8, 0x00, 0x0f, 0xf8, 0x00, 0x0f, 0xff,
0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x06, 0xff, 0xff, 0xe0, 0x00, 0x1b, 0x30, 0x00, 0x03, 0xff,
0xff, 0xc0, 0x00, 0x1e, 0x68, 0x00, 0x03, 0xff, 0xff, 0xc0, 0x10, 0x19, 0xe0, 0x0a, 0x03, 0xff,
0xff, 0xe0, 0x78, 0x1f, 0xb8, 0x35, 0x07, 0xff, 0xff, 0xf0, 0xf6, 0x00, 0x00, 0x7e, 0x8f, 0xff,
0xff, 0xf9, 0x6a, 0x00, 0x00, 0x6f, 0xff, 0xff, 0xff, 0xff, 0x56, 0x07, 0xe0, 0x3f, 0x7f, 0xff,
0xff, 0xff, 0xbe, 0x07, 0xf0, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x07, 0xf0, 0x3b, 0xff, 0xff,
0xff, 0xff, 0xfc, 0x0f, 0xb0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0x78, 0x3f, 0xff, 0xff,
0xff, 0xff, 0xff, 0xcf, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff]
fb = framebuf.FrameBuffer(bytearray(logo), 64, 64, framebuf.MONO_HLSB)
oled.fill(0)
oled.blit(fb, 32, 0)
oled.show()
def main():
i2c_dev = init_i2c(scl_pin=27, sda_pin=26)
oled = SSD1306_I2C(pix_res_x, pix_res_y, i2c_dev)
display_logo(oled)
if __name__ == '__main__':
main()