certmundo.
es‑mx

6 min de lectura

¿Cómo se programan los movimientos básicos de un robot?

Los movimientos básicos de un robot se programan escribiendo instrucciones ordenadas que le dicen al controlador cuándo activar motores, cuánto tiempo, y en qué dirección.

El día que un robot no supo pararse

Era martes por la tarde en el Tecnológico de Monterrey, campus Guadalajara. Andrea, estudiante de primer semestre, había pasado tres horas armando su primer robot con ruedas. Lo conectó a su computadora, cargó el código y presionó el botón de inicio. El robot avanzó. La clase aplaudió. Luego el robot siguió avanzando. Chocó contra la pared. Siguió intentando avanzar contra la pared.

Andrea había escrito la instrucción para moverse hacia adelante. Pero había olvidado escribir la instrucción para detenerse.

Eso resume perfectamente el principio más importante de la programación de robots: un robot solo hace exactamente lo que tú escribes. Nada más, nada menos. Y ese detalle cambia todo.

La lógica detrás de cada movimiento

Cuando programas un robot, estás escribiendo una secuencia de órdenes. El controlador, como vimos en la lección anterior, lee esas órdenes una por una y las ejecuta en orden. A esto se le llama programación secuencial.

Imagina que quieres que un robot recoja una caja en una bodega de Mercado Libre en Cuautitlán Izcalli. La secuencia básica sería:

Primero, avanza dos metros. Segundo, gira 90 grados a la derecha. Tercero, avanza medio metro. Cuarto, activa el brazo de agarre. Quinto, detente.

Cada paso depende del anterior. Si cambias el orden, el robot falla. Esta rigidez parece una limitación, pero en realidad es una fortaleza: hace que el robot sea completamente predecible.

El segundo tipo de programación que usarás es la programación condicional. Aquí el robot toma decisiones según lo que detectan sus sensores. "Si el sensor de distancia detecta un obstáculo a menos de 20 centímetros, entonces gira a la izquierda." Si la condición se cumple, ejecuta una acción. Si no se cumple, ejecuta otra.

La combinación de secuencias y condiciones te permite crear comportamientos sorprendentemente complejos con código muy sencillo.

Así se ve el código real en Arduino

Arduino usa un lenguaje basado en C++, pero simplificado para principiantes. Todo programa de Arduino tiene dos bloques principales:

El bloque setup() se ejecuta una sola vez cuando enciendes el robot. Aquí configuras los pines y preparas el sistema.

El bloque loop() se repite infinitamente mientras el robot esté encendido. Aquí vive la lógica de movimiento.

Mira este ejemplo para un robot con dos motores:

void setup() {
  pinMode(motorIzquierdo, OUTPUT);
  pinMode(motorDerecho, OUTPUT);
}

void loop() {
  digitalWrite(motorIzquierdo, HIGH);
  digitalWrite(motorDerecho, HIGH);
  delay(2000);
  digitalWrite(motorIzquierdo, LOW);
  digitalWrite(motorDerecho, LOW);
  delay(1000);
}

Este código hace que el robot avance durante 2 segundos, luego se detenga 1 segundo, y repita ese ciclo para siempre. La instrucción delay(2000) le dice al controlador que espere 2,000 milisegundos, es decir, 2 segundos.

Ahora agreguemos una condición usando un sensor ultrasónico de distancia:

void loop() {
  int distancia = leerSensor();

  if (distancia > 20) {
    avanzar();
  } else {
    girarIzquierda();
  }
}

Aquí el robot lee la distancia al obstáculo más cercano. Si hay más de 20 centímetros de espacio libre, avanza. Si hay menos, gira. Con estas tres líneas de lógica condicional, tienes un robot que esquiva obstáculos de manera autónoma.

Los cuatro movimientos fundamentales

Todo robot móvil con ruedas puede describirse con cuatro movimientos básicos. Entender cómo se programan cada uno te dará una base sólida.

Avanzar significa activar ambos motores hacia adelante al mismo tiempo y a la misma velocidad. Si un motor va más rápido que el otro, el robot se desviará.

Retroceder significa invertir la dirección de ambos motores. En Arduino, esto se logra cambiando los pines de control del driver de motores, que es el componente que amplifica la señal débil del Arduino para mover motores más potentes.

Girar es más interesante. Para girar a la derecha, activas el motor izquierdo hacia adelante y detienes o inviertes el motor derecho. Para girar a la izquierda, haces lo opuesto. Cuanto más diferencia de velocidad haya entre los dos motores, más cerrado será el giro.

Detenerse es lo que Andrea olvidó. Suena trivial, pero es crítico. En código, detienes un motor enviando una señal de cero al driver. Sin esta instrucción, el motor sigue girando hasta que se acaba la batería o algo se rompe.

Plataformas accesibles en México

La buena noticia es que en México puedes aprender robótica sin gastar una fortuna. Un kit básico de Arduino con motores, sensores y chasis de ruedas cuesta entre $350 y $800 en plataformas como Mercado Libre o en tiendas especializadas en ciudades como CDMX, Monterrey y Guadalajara.

Arduino no es la única opción. micro:bit es otra plataforma muy popular en escuelas secundarias mexicanas. Cuesta alrededor de $400 y tiene acelerómetro, brújula y radio integrados. Se programa con bloques visuales o con Python, lo que lo hace ideal para principiantes absolutos.

Lego Mindstorms, aunque más caro (entre $4,500 y $7,000), lo usan muchas preparatorias en torneos de robótica como la WRO México (World Robot Olympiad), que cada año reúne a estudiantes de todo el país.

Para proyectos más avanzados, Raspberry Pi permite programar en Python y conectar cámaras, lo que abre la puerta a visión por computadora. Una Raspberry Pi 4 cuesta alrededor de $1,200 en México.

El ecosistema es rico y accesible. No necesitas una inversión enorme para empezar a programar movimientos reales.

Errores comunes al programar movimientos

El error más frecuente es confundir la lógica del programa con la física del robot. En el código todo parece perfecto, pero en el mundo real los motores no son idénticos. Uno puede girar ligeramente más rápido que el otro, haciendo que el robot se desvíe aunque el código diga "avanza recto". La solución es calibrar: ajustar manualmente la velocidad de cada motor en el código hasta que el robot vaya recto.

El segundo error es no usar delay() con cuidado. Si escribes delay(1000000), tu robot se congelará durante más de 16 minutos sin responder a ningún sensor. Los programadores avanzados usan técnicas de "tiempo no bloqueante" para evitar esto, pero para empezar, simplemente ten cuidado con los valores que escribes.

El tercer error es ignorar la alimentación. Un motor consume mucha más corriente que el Arduino. Si conectas motores directamente al Arduino sin un driver de motores, puedes quemar la placa. Una placa Arduino cuesta entre $150 y $300. Protegerla con el driver correcto es una inversión inteligente.

El cuarto error, y quizás el más frustrante, es no organizar el código. Cuando tienes 10 líneas, todo es claro. Cuando tienes 200 líneas sin comentarios ni funciones, encontrar un error se vuelve una pesadilla. Desde el primer día, escribe comentarios en tu código y agrupa las instrucciones en funciones con nombres claros como avanzar(), girar() o detectarObstaculo().

El robot de Andrea, mejorado

Andrea regresó al laboratorio al día siguiente. Esta vez agregó una línea al final de su código: digitalWrite(motorIzquierdo, LOW) y digitalWrite(motorDerecho, LOW) después del delay. También agregó un sensor de distancia y una condición simple: si detecta una pared a menos de 15 centímetros, se detiene.

El robot avanzó. Llegó cerca de la pared. Se detuvo a exactamente 12 centímetros. La clase aplaudió de nuevo, pero esta vez con más ganas.

La diferencia entre el primer intento y el segundo no fue una nueva tecnología ni un robot más caro. Fue una instrucción más, una condición simple, y entender que en robótica el control total viene de la precisión en el código.

Tú tienes exactamente las mismas herramientas que Andrea. Y ahora sabes cómo usarlas.

Puntos clave

  • La programación secuencial le dice al robot qué hacer paso a paso en orden fijo. Cambiar el orden cambia el resultado.
  • La programación condicional permite al robot tomar decisiones según sus sensores: "si pasa X, entonces haz Y, si no, haz Z".
  • Los cuatro movimientos fundamentales de un robot con ruedas son avanzar, retroceder, girar y detenerse. Olvidar el último es el error más común en principiantes.
  • En México puedes empezar con robótica desde $350 con un kit de Arduino. Plataformas como micro:bit o Lego Mindstorms también son opciones accesibles para escuelas.
  • Los errores más frecuentes son no calibrar los motores, usar delays incorrectos, conectar motores sin driver y escribir código desorganizado sin comentarios.

Comparte esta lección: