ESCUELA DE ROBÓTICA: NAVEGACIÓN AUTÓNOMA Y EVASIÓN DE OBSTÁCULOS

JUE, 15 / OCT / 2026

Un robot que esquiva paredes antes de tocarlas necesita un sensor que mida distancias, un circuito que mueva los motores y un programa que decida qué hacer.

El texto arma un robot de tracción diferencial con Arduino Uno y lo programa en dos versiones: una que repite siempre la misma maniobra y otra que ajusta la velocidad según la cercanía del obstáculo.

Autor: Claudio Peña

Medir con ultrasonido y mover con un puente H

El HC-SR04 mide distancias de entre 2 y 400 centímetros con la técnica de tiempo de vuelo. Emite una ráfaga ultrasónica a 40 kHz y mide cuánto tarda en volver el eco. Como el pulso registra la ida y la vuelta, la distancia surge de multiplicar ese tiempo por la velocidad del sonido y dividir por dos.

El sensor tiene una debilidad. Una superficie inclinada puede desviar la onda lejos del receptor, y en ese caso no vuelve eco y el obstáculo pasa inadvertido. La velocidad del sonido también cambia con la temperatura, aunque para esquivar paredes alcanza con el valor de 20 °C.

Los motores no pueden conectarse directo a la placa, porque cada pin entrega apenas unos miliamperios. Por eso se usa un módulo L298N, con dos puentes H (circuitos que aplican la tensión al motor en uno u otro sentido), que regula la velocidad por PWM (modulación por ancho de pulsos).

Los motores tienen una fuente propia, dos baterías 18650 en serie, para que sus picos de corriente no reinicien la placa. El autor insiste en un detalle que suele olvidarse: la masa común entre la batería, el puente y el Arduino. Sin ella, los motores responden de forma errática.

La línea Echo entrega un tiempo, no una distancia. Una superficie inclinada puede desviar la onda lejos del receptor: en ese caso no vuelve ningún eco y el sensor no registra el obstáculo.

Una maniobra fija en cuatro fases

El primer programa resuelve un problema típico de los robots económicos: el chasis que gira en cuanto detecta una pared y, por la inercia, queda trabado contra ella. La solución es una máquina de estados (un modelo que pasa de una situación definida a otra según una condición o un tiempo).

Cuando la distancia baja de 25 centímetros, el robot frena y retrocede para ganar espacio. Después pivota unos 90 grados hacia la derecha y hace una última pausa antes de volver a medir. Para detenerse usa el frenado dinámico, que corta el giro mucho más rápido que dejar el motor libre.

La propuesta tiene límites que el propio texto reconoce. Durante los casi 950 milisegundos que dura la maniobra, el programa no consulta el sensor. Además, como la falta de eco se interpreta como camino libre, un cable de Echo suelto hace que el robot no se detenga ante nada.

Mientras dura la maniobra, unos 950 milisegundos, el programa está ocupado en las pausas y no consulta el sensor. Si un obstáculo aparece en ese intervalo, el robot recién lo detecta en el ciclo siguiente.

Velocidad proporcional y salida de callejones

El segundo programa usa el mismo montaje, pero corrige dos fallas del primero: el frenado brusco, que hace cabecear al chasis, y el giro siempre hacia el mismo lado, que puede dejar al robot atrapado en un callejón con forma de U.

El espacio frontal se divide en zonas. Lejos de la pared, el robot avanza a velocidad máxima. Entre 20 y 45 centímetros, la función map() reduce la velocidad en proporción a la distancia, de modo que el robot llega desacelerado. Más cerca, se ejecuta la maniobra de escape.

Esa maniobra incorpora una memoria antiatrapamiento. El robot alterna el sentido del giro y, si encadena tres maniobras sin volver a la zona segura, interpreta que entró en un callejón y da media vuelta.

Cada decisión se toma sobre el promedio de tres lecturas. Así se filtran las mediciones falsas, aunque a cambio el robot reacciona con menos frecuencia.

El cierre suma una guía de calibración que revisa la altura del sensor y el material de los obstáculos, y advierte que el tiempo de giro cambia con la superficie. Como paso siguiente, propone montar el sensor sobre un servo y avanzar hacia la localización y mapeo simultáneos (SLAM).

La variable contadorBloqueos vuelve a cero cada vez que el robot alcanza la zona segura; si llega a tres antes, el robot gira durante 840 milisegundos, el doble del giro de 90 grados, para dar media vuelta.

Encuentra la versión completa de la publicación en la que se basa este resumen, con todos los detalles técnicos en RedUSERS PREMIUM

También te puede interesar:

ESCUELA DE ROBÓTICA: ROBÓTICA MÓVIL CON ARDUINO

Dos proyectos de robots seguidores de línea sobre una placa Arduino Uno muestran hasta qué punto el software define el comportamiento de un vehículo autónomo.

Con el mismo hardware base, cambiar la lógica de control convierte lecturas ópticas simples en una navegación que pasa del zigzag a las curvas limpias.

 


Lee todo lo que quieras, donde vayas, contenidos exclusivos por una mínima cuota mensual. Solo en RedUSERS PREMIUM: SUSCRIBETE!


Comentarios
¡Comparte esta noticia!

Leave a Reply