Auto controlado por voz
Hoy el piloto no usa joystick. El capitán habla, BasicAIO escucha durante 5 segundos, la IA interpreta la intención y el rover ejecuta la orden usando herramientas MCP.
Controlar un auto robot con comandos de voz interpretados por inteligencia artificial.
Inicial/intermedio. Ideal para docentes, clubes maker y aulas de robótica.
Un rover capaz de avanzar, girar, detenerse o reportar estado según lo que le digas.
La historia
Imaginá una misión rover espacial: el robot está en terreno desconocido y vos sos el centro de control. En vez de escribir instrucciones exactas, decís algo natural como “avanza y después girá a la izquierda”. BasicAIO se encarga del resto.
Lo que vas a aprender
Vas a combinar grabación de voz, variables, IA con herramientas, MCP y robótica con motores DC. Es el puente entre lenguaje natural y acción física.
Materiales
- 1 chasis de auto robot de 2 ruedas o 4WD.
- 1 Arduino UNO, MEGA, NANO o compatible.
- 1 driver de motores, por ejemplo L298N.
- Motores DC y batería para el rover.
- BasicAIO instalado en la computadora.
- Firmware
car_mcp_serial.inoocar_mcp_bluetooth.inocargado en Arduino. - Micrófono habilitado en la PC.
- Créditos IA disponibles para transcripción de audio e interpretación.
Antes de acelerar
Probá el auto con ruedas levantadas o sobre una superficie despejada. La IA puede interpretar órdenes amplias; evitá usarlo cerca de bordes, cables, mascotas o vasos con agua. Misión espacial sí, choque contra la mesa no.
Esquema de conexión Arduino + L298N
Antes de armar los bloques de IA, conviene dejar listo el rover. Este ejemplo usa un driver L298N con dos motores DC. El firmware car_mcp_serial.ino espera los pines que se muestran abajo, por eso es importante respetar esta tabla o modificar los #define del programa de Arduino.
Diagrama general
El dibujo es conceptual: los bornes pueden cambiar de lugar según el módulo L298N que tengas. Guiate por los nombres impresos en tu placa: ENA, IN1, IN2, IN3, IN4, ENB, OUT1, OUT2, OUT3, OUT4, +12V y GND.
Tabla de pines usada por el firmware
| Arduino | L298N | Función |
|---|---|---|
D11 | ENA | Velocidad motor A por PWM. |
D10 | IN1 | Dirección motor A. |
D9 | IN2 | Dirección motor A. |
D8 | IN3 | Dirección motor B. |
D7 | IN4 | Dirección motor B. |
D6 | ENB | Velocidad motor B por PWM. |
GND | GND | Tierra común entre Arduino, driver y batería. |
Conexión de motores y alimentación
- Motor A: conectalo a
OUT1yOUT2del L298N. En este tutorial lo usamos como motor izquierdo. - Motor B: conectalo a
OUT3yOUT4del L298N. En este tutorial lo usamos como motor derecho. - Batería de motores: positivo al borne
+12VoVMSdel L298N, negativo aGND. - Tierra común: uní el
GNDdel Arduino con elGNDdel L298N. Sin esta conexión, las señales de control pueden fallar. - Arduino: para la versión serial, conectalo por USB a la computadora donde corre BasicAIO.
Importante sobre la energía
No alimentes los motores desde el pin 5V del Arduino. Los motores deben tener su propia batería o fuente, porque consumen mucha corriente. Si tu módulo L298N trae jumper de regulador 5V-EN, revisá la serigrafía y la documentación del módulo antes de alimentar el Arduino desde el driver. Para empezar, lo más seguro es: Arduino por USB, motores con batería externa y todos los GND unidos.
Cómo sabe el auto avanzar, retroceder y girar
El firmware usa los pines IN1 a IN4 para cambiar la polaridad de cada motor. Por ejemplo, al avanzar activa IN1 e IN3; al girar a la izquierda invierte un motor y deja el otro hacia adelante. Los pines ENA y ENB reciben PWM para controlar la velocidad, que en el ejemplo está configurada en SPEED = 150.
// Pines definidos en car_mcp_serial.ino
#define ENA 11
#define IN1 10
#define IN2 9
#define IN3 8
#define IN4 7
#define ENB 6
// Calibración inicial del ejemplo
#define SPEED 150
#define TIME_1CM 13
#define TURN_45_TIME 250
#define TURN_90_TIME 500
El flujo completo en bloques
El programa es corto, pero muy poderoso: primero graba tu voz en la variable mi_orden y después pasa esa orden al bloque IA con Herramientas. La IA puede elegir entre las tools del rover.
mi_orden = Grabar voz 5 segundos y luego IA con Herramientas {mi_orden} con las tools del SmartCarMCP.Paso a paso: construir el rover obediente
-
Prepará el hardware
Armá el chasis del auto robot, conectá los motores al driver L298N y el driver al Arduino. Luego cargá el firmware MCP correspondiente al auto:
car_mcp_serialsi lo vas a conectar por USB/serial ocar_mcp_bluetoothsi usás un módulo HC-05/HC-06. -
Conectá el rover a BasicAIO
Iniciá BasicAIO con la placa conectada. El programa buscará dispositivos compatibles y mostrará las herramientas del auto en el panel de bloques. Cuando veas el grupo SmartCarMCP, tu rover ya está listo para recibir órdenes.
-
Agregá el bloque de voz
Desde variables o acciones de voz, colocá el bloque Grabar voz, configurado en 5 segundos, y guardá el texto transcripto en la variable
mi_orden. Durante esos 5 segundos podés decir, por ejemplo: “mover auto a la izquierda”. -
Agregá IA con Herramientas
Debajo del bloque de voz, colocá IA con Herramientas. En el prompt escribí
{mi_orden}para que BasicAIO inserte automáticamente lo que dijiste. -
Seleccioná las tools del auto
Dentro del bloque de IA, agregá las herramientas
SmartCarMCP move,SmartCarMCP turn,SmartCarMCP stopySmartCarMCP status. Así la IA no solo responde texto: puede decidir qué acción física ejecutar. -
Ejecutá y hablale al rover
Presioná Ejecutar. Cuando BasicAIO solicite audio, hablá claro. La consola mostrará la transcripción, el razonamiento operativo de la IA, la tool elegida y el resultado devuelto por el MCP.
Comandos de prueba
No hace falta memorizar frases exactas. Justamente el valor de la IA es que puede interpretar lenguaje natural. Probá con órdenes como estas:
“Avanzá 1 metro.”
“Gira a la izquierda noventa grados.”
“Retrocedé 1 metro y luego gira a la derecha.”
Cómo se ve durante la ejecución
En la consola de BasicAIO vas a ver el proceso completo: solicitud de grabación, transcripción guardada en mi_orden, envío a la IA, elección de la herramienta y respuesta del servidor MCP del auto.
turn para girar el auto hacia la izquierda.¿Qué está pasando por dentro?
El flujo puede entenderse como una cadena de cinco etapas:
| Etapa | Qué hace BasicAIO | Resultado |
|---|---|---|
| 1. Voz | Graba audio durante 5 segundos. | Audio del usuario. |
| 2. Transcripción | Convierte el audio en texto usando IA. | mi_orden. |
| 3. Interpretación | Envía {mi_orden} al bloque IA con herramientas. | Intención detectada. |
| 4. Tool | La IA elige move, turn, stop o status. | Llamada MCP. |
| 5. Acción | El servidor MCP transmite la orden al Arduino. | El auto se mueve. |
El proyecto en JSON
BasicAIO guarda este flujo como una estructura simple. Este es el contenido base del proyecto:
[
{
"type": "voice_to_variable",
"VAR": "mi_orden",
"SECONDS": 5,
"next": {
"type": "ia_with_tools",
"prompt": "{mi_orden}",
"VARNAME": "resultado",
"TOOLS": [
{
"type": "mcp__smartcarmcp__move",
"server": "smartcarmcp",
"tool": "move",
"direction": "",
"args": {
"direction": "",
"distance": ""
},
"distance": ""
},
{
"type": "mcp__smartcarmcp__turn",
"server": "smartcarmcp",
"tool": "turn",
"direction": "",
"args": {
"direction": "",
"angle": ""
},
"angle": ""
},
{
"type": "mcp__smartcarmcp__stop",
"server": "smartcarmcp",
"tool": "stop"
},
{
"type": "mcp__smartcarmcp__status",
"server": "smartcarmcp",
"tool": "status"
}
]
}
}
]
Ideas para mejorar la misión
Pedile al rover que haga una secuencia: avanzar, girar, avanzar y detenerse.
Agregá una regla: si la orden incluye “rápido”, que antes consulte el estado.
Marcá una pista en el piso y ganá puntos si el auto completa el recorrido solo con voz.