Robot seguidor de línea paso a paso con un Arduino, el driver L293D y los sensores TCRT5000

Hoy les quiero hablar sobre cómo construir un robot seguidor de línea. Este proyecto es una introducción perfecta al mundo de la robótica, y es una manera emocionante de aprender sobre la programación y la electrónica. En este artículo, te guiaré a través de un tutorial paso a paso sobre cómo construir y programar un robot que puede seguir una línea en el suelo.

Materiales necesarios:

  • Placa controladora de robots (Arduino para este ejemplo)
  • Motores y ruedas
  • Driver de Motores (para este ejemplo usaremos el driver de motor L293D)
  • Sensores infrarrojos de línea (En este ejemplo usamos el TCRT5000)
  • Batería y conectores
  • Chasis (puede ser de madera, acrílico, etc.)

Paso 1: Montar el chasis y los motores

Primero, debemos construir el chasis del robot y montar los motores en él. La mayoría de los chasis de robot vienen con agujeros pre-perforados para los motores, lo que hace que esta tarea sea bastante sencilla. También necesitarás fijar las ruedas en los ejes de los motores.

Paso 2: Conectar los sensores infrarrojos

Los sensores infrarrojos TCRT5000 son los que permiten que el robot detecte la línea y la siga. Normalmente, se utilizan tres o cuatro sensores para cubrir un área lo suficientemente amplia para que el robot pueda seguir la línea. Conecta los sensores a la placa controladora de robots Arduino utilizando cables con las instrucciones del paso 4.

Paso 3: Conectar los motores y la placa controladora de robots Arduino

Una vez que hayas montado el chasis, los motores y los sensores, es hora de conectar todo a la placa controladora de robots. Los motores se conectan a la placa utilizando puentes H o drivers de motores, en nuestro caso usamos del driver L293D. En el paso 4 vamos a indicar la conexión entre los sensores TCRT5000 y la placa Arduino.

Paso 4: Programar el robot

Para programar el robot, necesitarás tener conocimientos básicos de programación. El lenguaje de programación más comúnmente utilizado para controlar robots es el lenguaje de programación Arduino. En este caso, utilizaremos la biblioteca QTRSensors para leer los valores de los sensores infrarrojos y controlar los motores del robot en consecuencia.

Necesitas descargar la biblioteca QTRSensors de Arduino. Puedes hacerlo desde el gestor de bibliotecas en el IDE de Arduino.

Luego, conecta los sensores infrarrojos TCRT5000 a los pines digitales 2-5 de la placa de Arduino. Los motores se conectan a los pines 6, 7, 8 y 9 utilizando el driver de motor L293D. Necesitaras un diagrama tanto del TCRT5000 y el L293D como guía para hacer las conexiones.

A continuación el código Arduino para el robot seguidor de línea:

#include <QTRSensors.h>

#define KP 0.2 // Constante proporcional del PID
#define KD 5.0 // Constante derivada del PID

QTRSensors qtr((unsigned char[]) {2, 3, 4, 5}, 4); // Configura los sensores infrarrojos de línea
unsigned int sensorValues[4]; // Array para almacenar los valores de los sensores
int lastError = 0; // Último error para el cálculo del término derivativo
int motorSpeed = 100; // Velocidad del motor

void setup()
{
  qtr.setEmitterPin(10); 
  // Configura el pin emisor de los sensores
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT); 
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  // Apaga los motores
  digitalWrite(6, LOW); 
  digitalWrite(7, LOW);  
  digitalWrite(8, LOW);
  digitalWrite(9, LOW);
  // Espera un segundo para que los sensores se estabilicen
  delay(1000); 
}

void loop()
{
  qtr.read(sensorValues); // Lee los valores de los sensores

  int error = (int)sensorValues[0] - (int)sensorValues[3]; // Cálculo del error
  int derivative = error - lastError; // Cálculo del término derivativo

  int motorSpeedA = motorSpeed + (KP * error) + (KD * derivative); // Cálculo de la velocidad del motor A
  int motorSpeedB = motorSpeed - (KP * error) - (KD * derivative); // Cálculo de la velocidad del motor B

  motorSpeedA = constrain(motorSpeedA, 0, 255); // Limita la velocidad del motor entre 0 y 255
  motorSpeedB = constrain(motorSpeedB, 0, 255);

  analogWrite(7, motorSpeedA); // Controla la velocidad de los motores
  analogWrite(9, motorSpeedB);

  lastError = error; // Almacena el error actual para el cálculo del término derivativo
}

Este código utiliza el algoritmo PID (control proporcional integral derivativo) para controlar la velocidad de los motores y hacer que el robot siga la línea de manera suave y precisa.

Recuerda que siempre puedes experimentar con diferentes valores para los constantes del PID y ajustar el código para obtener un mejor rendimiento.

Paso 5: Probar el robot

Una vez que hayas programado el robot, es hora de ponerlo a prueba. Coloca una línea negra en un fondo blanco y enciende el robot. Si todo está conectado y programado correctamente, el robot debería seguir la línea de forma autónoma.

Construir un robot seguidor de línea es una excelente manera de aprender sobre la electrónica, la programación y la robótica en general. Si te ha gustado este tutorial, te recomiendo seguir explorando el mundo de la robótica y aprender sobre otros tipos de robots que puedes construir. ¡Espero que te haya gustado este artículo y que hayas disfrutado construyendo tu propio robot seguidor de línea!

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s