El Oráculo de LED
Construí una pequeña máquina que “lee” cómo te fue en el día, le pide a la IA que detecte la emoción y responde desde el mundo físico encendiendo un LED: rojo, amarillo o verde.
La misión
Hasta ahora, muchas computadoras parecían vivir encerradas en la pantalla. En este proyecto vamos a abrir una puerta: la IA interpretará una frase escrita por una persona y Arduino la convertirá en una señal luminosa real.
El resultado será un oráculo emocional: escribís algo como “hoy me fue increíble” o “me peleé con mi amigo”, BasicAIO consulta a la IA y el Arduino enciende el LED que corresponda.
tristeza / enojo
sorpresa / duda
alegría
Materiales
- 1 placa Arduino UNO, Nano, Mega o compatible.
- 1 protoboard.
- 3 LEDs: rojo, amarillo y verde.
- 3 resistencias de 220 Ω o 330 Ω.
- Cables Dupont.
- BasicAIO instalado.
- Sketch
arduino_mcp.inocargado en la placa. - Créditos de IA disponibles para ejecutar el bloque de IA.
1. Armá el circuito del Oráculo
Conectá cada LED a un pin digital del Arduino usando una resistencia en serie. En este ejemplo usaremos los pines 11, 12 y 13.
| Color | Nombre en BasicAIO | Pin Arduino | Tipo |
|---|---|---|---|
| Verde | led_verde | 11 | digital |
| Amarillo | led_amarillo | 12 | digital |
| Rojo | led_rojo | 13 | digital |
2. Configurá los pines en BasicAIO
Abrí BasicAIO, conectá el Arduino por USB y entrá a Configurar Pines. Si tu placa fue detectada como ArduinoMCP, asigná los nombres exactamente como aparecen en la tabla anterior.
led_verde en pin 11, led_amarillo en pin 12 y led_rojo en pin 13.arduino_mcp.ino. Ese firmware permite que BasicAIO descubra herramientas como digital_write y las convierta en bloques utilizables.
3. Construí el flujo en bloques
El programa tiene cuatro partes: pedir un texto, consultar a la IA, guardar la emoción detectada y ejecutar una acción física.
Pedir texto
Usá el bloque Pedir texto con el mensaje: ¿Cómo te fue hoy?. Guardá la respuesta en la variable mi_variable.
Crear el cerebro IA
Agregá un bloque de IA con el rol Experto en detectar emociones humanas. El prompt debe pedir una salida muy estricta: solo una palabra.
Analiza esta frase: "{mi_variable}" y responde solo con una palabra: ROJO (tristeza/enojo), VERDE (alegría) o AMARILLO (sorpresa/duda)
Guardá la respuesta en la variable Emocion.
Agregar decisiones
Usá bloques si / sino para comparar el resultado de la IA:
si Emocion == "ROJO" → encender led_rojo
sino si Emocion == "AMARILLO" → encender led_amarillo
sino si Emocion == "VERDE" → encender led_verde
Encender, esperar y apagar
En cada caso, usá digital_write con valor 1, esperá 5 segundos y luego usá digital_write con valor 0.
Emocion → condiciones → LED correspondiente.4. Probá el Oráculo
Presioná Ejecutar. Cuando BasicAIO te pregunte cómo te fue, escribí una frase natural. Por ejemplo:
Hoy armé mi primer robot y funcionó.
Me olvidé la tarea y me retaron.
No sé si aprobé, estoy esperando la nota.
La IA debería responder internamente con VERDE, ROJO o AMARILLO. Luego BasicAIO enviará la orden al Arduino y el LED elegido se encenderá durante 5 segundos.
Si algo no funciona
| Problema | Qué revisar |
|---|---|
| No aparecen bloques ArduinoMCP | Reiniciá BasicAIO con el Arduino conectado y verificá que el sketch arduino_mcp.ino esté cargado. |
| La IA responde algo largo | Revisá el prompt: debe decir “responde solo con una palabra”. |
| El LED incorrecto se enciende | Verificá la configuración de pines y que los cables coincidan con 11, 12 y 13. |
| El LED no prende | Probá invertir la orientación del LED y verificá que la resistencia esté en serie con GND. |
| La condición siempre da falso | Compará con mayúsculas exactas: "ROJO", "AMARILLO", "VERDE". |
Qué aprendiste con este proyecto
Este oráculo parece un juego, pero reúne ideas muy potentes: una variable guarda lo que escribe el usuario, un prompt transforma una frase libre en una categoría, un bloque condicional decide qué camino seguir y Arduino ejecuta una acción física mediante MCP.
Ese patrón —entrada → IA → decisión → acción— es la base de muchos sistemas inteligentes: asistentes, robots, domótica, sensores educativos y agentes que interactúan con el mundo real.
Desafío extra: convertí el Oráculo en personaje
Probá cambiar el rol de la IA por uno más divertido:
Eres un oráculo antiguo que detecta emociones humanas.
Responde solo con ROJO, VERDE o AMARILLO. No expliques nada.
También podés sumar una acción de pantalla para mostrar una frase final, o reemplazar los tres LEDs por un LED RGB.
Ver estructura técnica del flujo exportado
Este bloque JSON representa la lógica del ejemplo: pedir texto, consultar IA y activar los pines digitales correspondientes.
[
{
"type": "input_text_to_variable",
"VAR": "mi_variable",
"MESSAGE": "¿Cómo te fue hoy?",
"next": {
"type": "ia_system_to_variable",
"SYSTEM": "Experto en detectar emociones humanas",
"PROMPT": "Analiza esta frase \"¿Cómo te fue hoy?\": \"{mi_variable}\" y responde solo con una palabra: ROJO (tristeza/enojo), VERDE (alegría) o AMARILLO (sorpresa/duda)",
"VARNAME": "Emocion",
"next": {
"type": "if_else",
"COND": "Emocion == \"ROJO\"",
"DO": [
{
"type": "mcp__arduinomcp__digital_write",
"server": "arduinomcp",
"tool": "digital_write",
"pin": "13",
"pin_name": "led_rojo",
"pin_type": "digital",
"value": "1",
"args": {
"pin": "13",
"pin_name": "led_rojo",
"pin_type": "digital",
"value": "1"
}
},
{
"type": "esperar",
"TIME": 5,
"UNIT": "seconds"
},
{
"type": "mcp__arduinomcp__digital_write",
"server": "arduinomcp",
"tool": "digital_write",
"pin": "13",
"pin_name": "led_rojo",
"pin_type": "digital",
"value": "0",
"args": {
"pin": "13",
"pin_name": "led_rojo",
"pin_type": "digital",
"value": "0"
}
}
],
"ELSE": [
{
"type": "if_else",
"COND": "Emocion == \"AMARILLO\"",
"DO": [
{
"type": "mcp__arduinomcp__digital_write",
"server": "arduinomcp",
"tool": "digital_write",
"pin": "12",
"pin_name": "led_amarillo",
"pin_type": "digital",
"value": "1",
"args": {
"pin": "12",
"pin_name": "led_amarillo",
"pin_type": "digital",
"value": "1"
}
},
{
"type": "esperar",
"TIME": 5,
"UNIT": "seconds"
},
{
"type": "mcp__arduinomcp__digital_write",
"server": "arduinomcp",
"tool": "digital_write",
"pin": "12",
"pin_name": "led_amarillo",
"pin_type": "digital",
"value": "0",
"args": {
"pin": "12",
"pin_name": "led_amarillo",
"pin_type": "digital",
"value": "0"
}
}
],
"ELSE": [
{
"type": "if_else",
"COND": "Emocion == \"VERDE\"",
"DO": [
{
"type": "mcp__arduinomcp__digital_write",
"server": "arduinomcp",
"tool": "digital_write",
"pin": "11",
"pin_name": "led_verde",
"pin_type": "digital",
"value": "1",
"args": {
"pin": "11",
"pin_name": "led_verde",
"pin_type": "digital",
"value": "1"
}
},
{
"type": "esperar",
"TIME": 5,
"UNIT": "seconds"
},
{
"type": "mcp__arduinomcp__digital_write",
"server": "arduinomcp",
"tool": "digital_write",
"pin": "11",
"pin_name": "led_verde",
"pin_type": "digital",
"value": "0",
"args": {
"pin": "11",
"pin_name": "led_verde",
"pin_type": "digital",
"value": "0"
}
}
]
}
]
}
]
}
}
}
]
Tu PC acaba de hablar con el mundo físico
Seguí explorando BasicAIO y convertí ideas simples en sistemas con IA, bloques, sensores y Arduino.
Ir a basicaio.com