Saltar al contenido

🚗 Misión maker · BasicAIO + IA + Arduino

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.

Objetivo
Controlar un auto robot con comandos de voz interpretados por inteligencia artificial.
Nivel
Inicial/intermedio. Ideal para docentes, clubes maker y aulas de robótica.
Resultado
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.ino o car_mcp_bluetooth.ino cargado 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

Arduino UNO USB a la PC con BasicAIO Driver L298N Controla los 2 motores DC Motor A Izquierdo Motor B Derecho Batería motores D11 D10 D9 D8 D7 D6 GND ENA IN1 IN2 IN3 IN4 ENB GND +12V PWM velocidad A sentido A sentido A sentido B sentido B PWM velocidad B

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
D11ENAVelocidad motor A por PWM.
D10IN1Dirección motor A.
D9IN2Dirección motor A.
D8IN3Dirección motor B.
D7IN4Dirección motor B.
D6ENBVelocidad motor B por PWM.
GNDGNDTierra común entre Arduino, driver y batería.

Conexión de motores y alimentación

  • Motor A: conectalo a OUT1 y OUT2 del L298N. En este tutorial lo usamos como motor izquierdo.
  • Motor B: conectalo a OUT3 y OUT4 del L298N. En este tutorial lo usamos como motor derecho.
  • Batería de motores: positivo al borne +12V o VMS del L298N, negativo a GND.
  • Tierra común: uní el GND del Arduino con el GND del 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.

Diagrama de bloques BasicAIO para auto controlado por voz
Bloque principal del proyecto: mi_orden = Grabar voz 5 segundos y luego IA con Herramientas {mi_orden} con las tools del SmartCarMCP.
move turn stop status

Paso a paso: construir el rover obediente

  1. 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_serial si lo vas a conectar por USB/serial o car_mcp_bluetooth si usás un módulo HC-05/HC-06.

  2. 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.

  3. 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”.

  4. 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.

  5. Seleccioná las tools del auto

    Dentro del bloque de IA, agregá las herramientas SmartCarMCP move, SmartCarMCP turn, SmartCarMCP stop y SmartCarMCP status. Así la IA no solo responde texto: puede decidir qué acción física ejecutar.

  6. 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.

Pantalla completa de BasicAIO ejecutando el auto controlado por voz
Vista de BasicAIO ejecutando el proyecto. La consola muestra una orden hablada y la IA selecciona la tool turn para girar el auto hacia la izquierda.

¿Qué está pasando por dentro?

El flujo puede entenderse como una cadena de cinco etapas:

EtapaQué hace BasicAIOResultado
1. VozGraba audio durante 5 segundos.Audio del usuario.
2. TranscripciónConvierte el audio en texto usando IA.mi_orden.
3. InterpretaciónEnvía {mi_orden} al bloque IA con herramientas.Intención detectada.
4. ToolLa IA elige move, turn, stop o status.Llamada MCP.
5. AcciónEl 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

Modo circuito
Pedile al rover que haga una secuencia: avanzar, girar, avanzar y detenerse.
Modo seguridad
Agregá una regla: si la orden incluye “rápido”, que antes consulte el estado.
Modo desafío
Marcá una pista en el piso y ganá puntos si el auto completa el recorrido solo con voz.

Errores comunes

  • No aparecen las tools: revisá que el firmware MCP del auto esté cargado y que BasicAIO haya detectado el puerto correcto.
  • La IA escucha mal: acercate al micrófono, evitá ruido de fondo y usá frases cortas.
  • El auto gira al revés: invertí los cables de un motor o ajustá el firmware del driver.
  • No se mueve: comprobá batería, GND común, alimentación del L298N y conexión de motores.