from machine import Pin, I2C # Importar las clases Pin e I2C desde la librería machine
import ssd1306 # Importar la librería ssd1306 para controlar la pantalla OLED
from Imagen import * # Importar el bitmap (imagen) llamado 'escudo' desde el módulo 'Imagen'
# Inicializar el bus I2C con el ESP32. Se utiliza el bus I2C 0, asignando los pines GPIO 22 (SCL) y GPIO 21 (SDA)
i2c = I2C(0, scl=Pin(22), sda=Pin(21))
# Definir las dimensiones de la pantalla OLED (128 píxeles de ancho y 64 píxeles de alto)
oled_width = 128
oled_height = 64
# Inicializar la pantalla OLED con las dimensiones definidas y el bus I2C
oled = ssd1306.SSD1306_I2C(oled_width, oled_height, i2c)
# Limpiar la pantalla, rellenando todo con color negro (0)
oled.fill(0)
# Definir una función para dibujar un bitmap (imagen en formato binario) en la pantalla OLED
def draw_bitmap(x, y, bitmap, width, height):
# Recorrer cada fila (j) y cada columna (i) de la imagen (bitmap)
for j in range(height):
for i in range(width):
# Obtener el byte correspondiente de la imagen (cada byte contiene 8 bits/píxeles)
byte = bitmap[j * (width // 8) + (i // 8)]
# Extraer el bit que representa el píxel actual (0 o 1) desde el byte
bit = (byte >> (7 - (i % 8))) & 1
# Dibujar el píxel en la pantalla OLED en las coordenadas (x + i, y + j)
oled.pixel(x + i, y + j, bit)
# Llamar a la función 'draw_bitmap' para dibujar el bitmap 'escudo' en la posición (0, 0) con tamaño 128x64
draw_bitmap(0, 0, escudo, 128, 64)
# Actualizar la pantalla OLED para mostrar la imagen
oled.show()