from machine import Pin, SoftI2C
import ssd1306
import time
# 1. Configuración de pantalla y motor
# Usamos SoftI2C para evitar conflictos de hardware
i2c = SoftI2C(scl=Pin(22), sda=Pin(21))
oled = ssd1306.SSD1306_I2C(128, 64, i2c)
motor = Pin(13, Pin.OUT)
def mostrar_cara(tipo, mensaje):
oled.fill(0)
if tipo == "feliz":
# Ojos rectangulares estilo 90s
oled.fill_rect(35, 20, 10, 15, 1)
oled.fill_rect(83, 20, 10, 15, 1)
oled.text("^", 62, 45) # Boca simplificada
elif tipo == "triste":
# Ojos como líneas de calma
oled.hline(35, 25, 15, 1)
oled.hline(78, 25, 15, 1)
oled.hline(54, 50, 20, 1)
oled.text(mensaje, 10, 0)
oled.show()
def latido():
# El motor vibra dos veces rápido (latido real)
for _ in range(2):
motor.value(1)
time.sleep(0.1)
motor.value(0)
time.sleep(0.1)
# --- INICIO DEL PROGRAMA ---
print("Lumina Online - Escribe en la terminal")
mostrar_cara("feliz", "Hola, soy Lumina")
while True:
# El programa se detiene aquí hasta que escribas algo y des ENTER
comando = input("Escribe feliz, triste o respira: ").lower().strip()
if comando == "feliz":
mostrar_cara("feliz", "Que alegria!")
latido()
elif comando == "triste":
mostrar_cara("triste", "Todo estara bien")
elif comando == "respira":
mostrar_cara("triste", "Inhala... Exhala")
latido()
else:
print("Comando no reconocido. Intenta: feliz")Loading
ssd1306
ssd1306