Construye un robot controlado por móvil con Bluetooth o Wi-Fi
Un coche robot conducido desde tu smartphone vía Bluetooth o Wi-Fi, que frena automáticamente en cuanto se interrumpe la comunicación inalámbrica.
Qué vas a construir
Un coche robot que manejas directamente desde tu teléfono móvil: vía Bluetooth empleando un módulo HC-05, o vía Wi-Fi mediante un microcontrolador ESP32 que aloja su propia página web de control táctil.
Es el proyecto más amigable y accesible del catálogo: sin formulaciones matemáticas complejas ni algoritmos de control críticos, donde las causas de fallo son inmediatamente visibles. Además, enseña una lección de seguridad que todo robot autónomo necesita: cómo reaccionar cuando se pierde el control de la comunicación.
Comparativa de las dos tecnologías de radio
| Parámetro | HC-05 (Bluetooth) | ESP32 (Wi-Fi) |
|---|---|---|
| Hardware adicional | Módulo externo y divisor resistivo en RX | Ninguno: el transceptor está integrado en el SoC |
| Software en el smartphone | App de terminal serie Bluetooth | Cualquier navegador web estándar |
| Alcance en línea de visión | Aprox. 10 m | Más de 30 m en exteriores |
| Acceso a Internet en el móvil | Se mantiene activo | Se pierde al conectarse al punto de acceso local |
| Escenario recomendado | Primera incursión en robótica inalámbrica | Demostraciones públicas y proyectos compartidos |
Ambas alternativas son válidas. El HC-05 representa el camino más rápido para ver el robot en movimiento; el ESP32 ofrece una experiencia de usuario superior, ya que basta con decir “conéctate a esta red Wi-Fi y abre esta dirección” sin requerir la instalación de ningún software en el dispositivo del usuario.
Lista de materiales (BOM)
Existen dos rutas constructivas y solo precisas escoger una de ellas. Opta por Bluetooth si ya dispones de un Arduino Uno; elige Wi-Fi si vas a adquirir los componentes desde cero.
| Componente | Opción Bluetooth | Opción Wi-Fi | Coste aprox. |
|---|---|---|---|
| Microcontrolador | Arduino Uno | ESP32 | 5–8 $ |
| Transceptor de radio | Módulo HC-05 | Integrado en el chip | 4 $ / 0 $ |
| Adaptación de niveles | 1 kΩ + 2 kΩ en pin RX del módulo | Divisor para sensores de 5 V | 0.10 $ |
| Controlador de motores | 1 unidad | 1 unidad | 2–4 $ |
| Motorreductores TT | 2 unidades | 2 unidades | 4 $ |
| Chasis 2WD | 1 unidad | 1 unidad | 6–10 $ |
| Pack de batería | 1 unidad | 1 unidad | 6 $ |
| Aplicación requerida en el móvil | Sí (terminal serie Bluetooth) | No (cualquier navegador) | — |
Coste total estimado: aproximadamente 25–35 $ en cualquiera de las dos configuraciones.
La diferencia decisiva no es económica, sino de experiencia de usuario. El HC-05 establece un flujo de bytes serie continuo, exigiendo un emulador en el smartphone capaz de enviar caracteres. El ESP32 funciona como servidor web HTTP, de forma que cualquier persona con un navegador web moderno puede interactuar con una botonera visual sin configuraciones previas.
Orden de montaje recomendado
1 — Valida la tracción en banco de trabajo. Conecta motores, controlador y portapilas con las ruedas suspendidas en el aire, sin módulos de radio. Sigue el tutorial de control de motores CC con PWM y verifica avance, retroceso y ambos giros con instrucciones fijas en el código. Depurar simultáneamente la radio y la electrónica de potencia complica innecesariamente la resolución de problemas.
2 — Conecta la radio y comprueba el eco. Cablea el HC-05 o levanta el punto de acceso en el ESP32, y confirma la transmisión bidireccional de texto antes de asociarla al movimiento mecánico.
3 — Define un protocolo de control unificado. Emplea una estructura simple de comando y parámetro delimitada por salto de línea (\n). Procesa el comando solo cuando el terminador haya llegado; suponer que recibir un byte inicial equivale al mensaje completo genera errores de lectura frecuentes.
4 — Implementa la parada de seguridad (deadman). Es el mecanismo más frecuentemente omitido y el más importante para la integridad del robot.
Temporizador de seguridad (deadman timeout)
Un robot inalámbrico mantiene el último estado ordenado indefinidamente. Si la consigna previa era “avance a máxima velocidad” y el operador sale del radio de cobertura, el robot continuará avanzando sin supervisión hasta colisionar.
La implementación de seguridad involucra dos condiciones simultáneas:
- Retransmisión periódica desde el emisor. La interfaz móvil envía el comando activo recurrentemente cada 100 ms mientras el usuario sostiene pulsado el control.
- Vigilancia temporal en el receptor. Si el robot no recibe ningún paquete válido durante ~400 ms, detiene los motores de inmediato:
if (millis() - lastCommandAt > 400) stop();
Con este esquema, soltar la pantalla, cerrar la pestaña del navegador, agotar la batería del teléfono o alejarse fuera del rango de alcance desencadenan el mismo comportamiento preventivo sin depender de un paquete de parada que podría no recibirse nunca.
Utiliza siempre millis() para esta lógica de control; un simple delay(200) en el bucle principal bloquea la recepción e impide verificar periódicamente la caducidad del enlace.
Consideraciones fundamentales de hardware
Alimentación limpia e independiente para la radio. Los transceptores inalámbricos demandan picos bruscos de corriente durante la transmisión. Compartir un raíl con motores genera caídas de tensión que reinician el microcontrolador, manifestándose como falsos cuelgues de software. Alimenta los motores directamente desde la batería a través del driver, manteniendo la lógica en un circuito estable.
Protección de entradas de 3.3 V. El pin RX del HC-05 y todos los pines GPIO del ESP32 operan exclusivamente a 3.3 V. Conectar salidas de 5 V de Arduino sin un divisor resistivo provoca un daño térmico lento que deteriora la fiabilidad de la comunicación.
Validez del puente en H L298N en este entorno. La caída de tensión interna inherente a los transistores bipolares del L298N es crítica en robots seguidores de línea competitivos, pero en un vehículo controlado manualmente el conductor compensa la velocidad de manera intuitiva desde el mando, haciendo de este driver una opción económica y accesible.
Parámetros característicos de rendimiento
| Parámetro evaluado | Bluetooth (HC-05) | Wi-Fi (ESP32) |
|---|---|---|
| Latencia de respuesta | 20–60 ms | 30–100 ms en red local |
| Alcance en línea de visión despejada | ~10 m | ~50 m (o la cobertura de la red) |
| Alcance atravesando una pared interior | 3–5 m | 15–25 m |
| Tiempo de enlace inicial tras encendido | ~2 s tras vinculación | ~5 s al conectar a la red Wi-Fi |
| Reconexión tras caída momentánea | Manual en la mayoría de apps | Automática por protocolo |
| Margen recomendado de deadman | 300–500 ms | 300–500 ms |
El ajuste del temporizador de parada requiere equilibrio: si es excesivamente largo (por ejemplo, 1 segundo a 0.3 m/s), el vehículo recorrerá 30 cm descontrolado antes de frenar; si es excesivamente reducido (inferior a 250 ms), la fluctuación habitual de la red inalámbrica provocará microdetenciones no deseadas durante la conducción.
Evolución hacia la conducción autónoma
La arquitectura modular implementada separa con claridad el canal de recepción de órdenes de la actuación sobre los motores. Añadir un sensor de proximidad ultrasónico permite superponer una capa de seguridad donde el robot desestima órdenes que provoquen colisiones frontales, sentando las bases del robot esquivador de obstáculos.
Asimismo, disponer de un control manual fiable agiliza notablemente el desarrollo algorítmico, permitiendo posicionar el vehículo con precisión en cualquier punto del área de pruebas sin necesidad de manipularlo manualmente.
Hoja de ruta del proyecto
La ruta de construcción
Sigue el árbol tecnológico desde las piezas hasta un robot que funciona. Cada nodo se desbloquea cuando completas sus requisitos previos, y tu progreso se guarda en este dispositivo.
0 / 14 completados
Componentes
- ControladorArduino UnoLa tolerante placa de 8 bits con la que la mayoría descubre la robótica.
- ComunicacionesHC-05 Bluetooth ModulePuente serie inalámbrico Bluetooth clásico (SPP) fiable y de configuración inmediata.
- ControladorESP32Doble núcleo, conectividad inalámbrica y alta velocidad por unos pocos euros.
- DriverL298N Motor DriverEl clásico módulo de puente H dual para mover motores de continua y paso a paso.
- ActuadorDC GearmotorEl motorreductor compacto que convierte alta velocidad en el par necesario para mover un robot.
- Chasis2WD Robot ChassisLa plataforma donde se atornillan dos motores, una rueda loca y toda tu electrónica.
- AlimentaciónBattery Power PackLa fuente de energía determinante: por qué la química y la resistencia interna importan más que los voltios.
Tutoriales de esta ruta
- Principiante · 1 horaControla un robot por Bluetooth con un módulo HC-05Empareja un HC-05 con tu teléfono y maneja un robot por serie Bluetooth, sin el clásico error de 5 V.
- Intermedio · 1.5 horasConduce un robot desde el navegador con un ESP32Sirve una pagina de control directamente desde un ESP32 para que cualquier navegador conduzca el robot, sin aplicacion.
- Principiante · 18 min de lecturaControla motores de CC con PWM y un puente HCablea y controla un motor de CC con escobillas con seguridad usando PWM, un puente H y límites de corriente realistas.
- Principiante · 17 min de lecturaMaquinas de estados finitos para el comportamiento de robotsSustituye los condicionales enredados de un robot por estados, eventos, transiciones, tiempos de espera y recuperacion explicitos.
Preguntas frecuentes
¿Debería utilizar Bluetooth o Wi-Fi para un coche robot?
El Bluetooth con un módulo HC-05 es más rápido de configurar y se empareja una sola vez, pero exige una app de terminal serie y su alcance ronda los diez metros. Un ESP32 por Wi-Fi no necesita ninguna aplicación instalada —sirve su propia web de control a cualquier navegador— y ofrece mayor cobertura, aunque el teléfono pierde el acceso a Internet móvil mientras permanezca conectado a la red local del robot. Para un primer proyecto, Bluetooth es la vía más directa; para realizar demostraciones a otras personas, la comodidad del servidor web del ESP32 compensa con creces el esfuerzo.
¿Por qué mi robot Bluetooth sigue avanzando tras soltar el botón en la pantalla?
Porque nunca recibió la orden de parada. Un robot conectado por cable se detiene al soltar el pulsador; uno inalámbrico continúa ejecutando indefinidamente la última instrucción recibida. La solución tiene dos partes: haz que el smartphone retransmita el comando activo cada 100 ms mientras se mantiene pulsado el botón, y programa el robot para detenerse automáticamente si no recibe paquetes durante unos cientos de milisegundos (temporizador deadman). De este modo, soltar el botón y perder cobertura provocan exactamente la misma detención segura.
¿Se puede dañar el HC-05 al conectarlo directamente a un Arduino?
Sí, en un pin específico. La circuitería lógica del módulo funciona a 3.3 V y su pin RX no tolera 5 V, por lo que transmitir directamente desde un pin digital de Arduino a 5 V estresa y degrada la entrada. Lo más engañoso es que el daño suele ser parcial: el módulo sigue emparejándose y enviando telemetría, pero corrompe o ignora los comandos que le transmites. Un simple divisor de tensión formado por dos resistencias en esa línea evita la avería.
¿Necesito una app móvil para controlar el robot desde mi teléfono?
Únicamente en el caso de Bluetooth. El HC-05 precisa un emulador de terminal serie Bluetooth en el móvil para abrir el puerto de comunicación. El ESP32 no requiere ninguna aplicación: genera su propio punto de acceso Wi-Fi y sirve una interfaz HTML5 responsive, permitiendo que cualquiera tome el control simplemente abriendo el navegador. Es la mayor ventaja práctica del ESP32 cuando deseas que terceros conduzcan el robot.
¿Puede un robot teledirigido por móvil conducirse también de forma autónoma?
Sí, y constituye la evolución idónea. La capa de comunicaciones inalámbricas es completamente independiente de la lógica de navegación reactiva, por lo que añadir sensores de proximidad permite que el robot desestime órdenes peligrosas (negándose a chocar contra un obstáculo aunque mantengas pulsado el botón de avance). Desarrollar primero el control manual facilita enormemente calibrar sensores más adelante al poder situar el robot en el punto exacto deseado.