Reporte Seguidor de Linea
Reporte Seguidor de Linea
Reporte Seguidor de Linea
REGIÓN CARBONÍFERA
NIVEL SUPERIOR
MATERIA:
Máquinas Eléctricas
ALUMNO:
Jaime Limones Martínez
DOCENTE:
José Francisco Mona Guajardo
GRADO Y ESPECIALIDAD:
5 “M”
MATRICULA:
17005039
NOMBRE DE TRABAJO:
Seguidor de Línea
CARRERA:
Técnico Superior Universitario en Mecatrónica Área
Instalaciones Eléctricas Eficientes
Los robots seguidores son interesantes, ya que son un punto de entrada a la robótica, y
además permiten a la persona que los realiza tener la libertad de poderlo diseñar utilizando
una variada gama de tecnología. Este reporte pretende adentrarnos un poco en los pasos son
necesarios para la construcción de un robot seguidor de línea.
En el mundo de la robótica, cuando hablamos de un robot seguidor de línea se piensa en un
dispositivo que, utilizando unos fotodiodos, va siguiendo una línea negra sobre un fondo
blanco. La reacción de estos fotodiodos es muy rápida y, por tanto, si se dispone de un buen
dispositivo de control, el robot se mueve rápidamente por el mapa siguiendo ágilmente la
línea. Este reporte pretende adentrarnos un poco en los pasos son necesarios para la
construcción de un robot seguidor de línea desde su concepción hasta el proceso de armado
del mismo.
MARCO TEORICO
ROBOTICA.
La robótica es la ciencia y la tecnología de los robots. Se ocupa del diseño, manufactura y
aplicaciones de los robots. La robótica combina diversas disciplinas como son: la mecánica,
la electrónica, la informática, la inteligencia artificial y la ingeniería de control. Otras áreas
importantes en robótica son el álgebra, los autómatas programables y las máquinas de
estados.
PROGRAMACIÓN ARDUINO
ELECTRONICA.
Los robots seguidores de línea (o robots rastreadores) cumplen una única misión: seguir
una línea marcada en el suelo (normalmente una línea negra sobre un fondo blanco o línea
blanca en fondo negro).
Sensores. Un seguidor detecta la línea a seguir por medio de sensores. Hay muchos tipos de
sensores que se pueden usar para este fin; sin embargo, por razones de costos los más
comunes son los sensores infrarrojos (IR), que normalmente constan de un LED infrarrojo
y un fototransistor.
Sensor QTR-8A. El sensor de reflectancia de QTR-8A está pensado como sensor de línea.
El módulo es un portador de ocho pares emisores y recibidores (fototransistor) de IR
uniformemente espaciados, Cada fototransistor está conectado a una resistencia pull-up
para formar un divisor de voltaje que produce una salida de voltaje análogo entre 0 V y
VIN
Motor Pololu 10:1 . Son los encargados del trabajo mecánico del robot, estos motores son
de bajo consumo y encienden con un voltaje de 5 Volts.
Placa Arduino UNO. Arduino Uno es una placa electrónica basada en el microcontrolador
ATmega328. Cuenta con 14 entradas/salidas digitales, de las cuales 6 se pueden utilizar
como salidas PWM (Modulación por ancho de pulsos) y otras 6 son entradas analógicas.
Objetivo General
Enfocarse hacia la parte de investigación de tal manera que sirva como punto de partida para
analizar opciones que ayuden a lograr el mejor resultado. Lograr tener una visión de los
factores que afecten el desempeño. La aplicación y la práctica de los conocimientos
adquiridos a través de toda la carrera que han sido recopilados y que hoy son materia principal
para el logro de nuestros objetivos. Poder desarrollar un robot seguidor de línea rápido y
eficiente que cumpla el circuito establecido en el menor tiempo posible.
Desarrollo
MATERIAL CANTIDAD
ARDUINO UNO 1
SENSOR QTR-8A 1
DRIVER TB6612FNG 1
MOTOREDUCTOR POLOLU 10:1 2
BASE 1
LLANTASPOLOLU 3MM SEGUIDO 2
LLANTA LOCA POLOLU 1/2 1
BRACKET SUJETADOR POLOLU 2
1-. Diseño de la base. El primer paso que se realizo fue el diseño de una base sobre la cual
se montarían los componentes necesarios, el diseño se realizó en un programa de CAD 3D
el cual sirve para crear modelados de piezas en 3D, el software elegido para tal fin fue
Solidworks en su versión 2016.
2-. Impresión de la base. Una vez obtenido el diseño con las medidas correspondientes se
procedió cargar el diseño en una impresora 3D para su posterior impresión en material
plástico
3-. Organizar componentes. Después de haber terminado la impresión de la base se
procedió a organizar los componentes en sus respectivos lugares buscando la mejor
posición para ellos.
4-. Conexión de Componentes. Como siguiente paso se realizó la conexión de todos los
componentes de acuerdo con los diagramas correspondientes.
5-. Cargar el código del seguidor. Como penúltimo paso se cargó el código correspondiente
al arduino, el código es el encargado de hacer funcionar al robot seguidor pues es el
encargado de mandar las señales a los sensores, así como también interpreta las señales
provenientes de los mismos.
Código
#include <QTRSensors.h> // En esta parte del código agregamos la librería para los sensores
//Mapeo de pines
#define STBY 9
#define AIN1 3
#define AIN2 4
#define PWMB 5
#define PWMA 6
#define BIN1 8
#define BIN2 7
#define NUM_SENSORS 6
#define NUM_SAMPLES_PER_SENSOR 4
#define EMITTER_PIN 11
#define LED 13 //
float KP = 0.01;
float KD = 1.0;
float Ki = 0.006;
int error1=0;
int error2=0;
int error3=0;
int error4=0;
int error5=0;
int error6=0;
if ( value >= 0 )
digitalWrite(BIN1,HIGH);
digitalWrite(BIN2,LOW);
else
digitalWrite(BIN1,LOW);
digitalWrite(BIN2,HIGH);
value *= -1;
analogWrite(PWMB,value);
}
// Función accionamiento motor derecho
if ( value >= 0 )
digitalWrite(AIN1,HIGH);
digitalWrite(AIN2,LOW);
else
digitalWrite(AIN1,LOW);
digitalWrite(AIN2,HIGH);
value *= -1;
analogWrite(PWMA,value);
//Accionamiento de motores
digitalWrite(STBY,HIGH);
Motoriz(left);
Motorde(righ);
}
//función de freno
digitalWrite(STBY,HIGH);
if ( left )
digitalWrite(BIN1,HIGH);
digitalWrite(BIN2,HIGH);
if ( righ )
digitalWrite(AIN1,HIGH);
digitalWrite(AIN2,HIGH);
void setup()
pinMode(LED ,OUTPUT);
pinMode(BIN2 ,OUTPUT);
pinMode(STBY ,OUTPUT);
pinMode(BIN1 ,OUTPUT);
pinMode(PWMB ,OUTPUT);
pinMode(AIN1 ,OUTPUT);
pinMode(AIN2 ,OUTPUT);
pinMode(PWMA ,OUTPUT);
qtra.calibrate();
delay(3000);
int last_prop; // Última valor del proporcional (utilizado para calcular la derivada del error)
int Target = 2500; // Setpoint (Como utilizamos 6 sensores, la línea debe estar entre 0 y 5000, por
lo que el ideal es que esté en 2500)
void loop()
Motorde(0);
freno(true,false,255);
Motoriz(0);
freno(false,true,255);
integral = error1+error2+error3+error4+error5+error6;
last_prop = proporcional;
error6=error5;
error5=error4;
error4=error3;
error3=error2;
error2=error1;
error1=proporcional;
( diferencial < 0 ) ?
Costos
ANALISIS DE RESULTADOS
Una vez concluido el prototipo se puso a prueba en dos circuitos con línea blanca para
verificar el funcionamiento del seguidor, el primer circuito constaba de con pocas curvas
aun así en la primera prueba se notó que el seguidor no recorría de manera eficiente el
circuito por lo tanto se llevó a revisión teniendo en cuenta diferentes hipótesis:
El seguidor no recibe la señal de los sensores por lo tanto el microcontrolador
no responde adecuadamente
La alimentación de voltaje no llega de manera adecuada a una parte del
circuito
Una vez terminada la inspección se pudo encontrar el problema, éste consistía en que los
sensores no estaban bien conectados en el microcontrolador por lo tanto no recibía la señal
de éstos.
Después se procedió a realizar una segunda prueba en el circuito numero dos el cual
consistía de mas curvas que el primero. En este nuevo circuito se pudo notar que ahora
surgía otro problema y este era que nuestro seguidor perdía la línea en algunas partes del
circuito, se hizo evidente que el diseño del seguidor tiene varios errores que se pueden
mejorar, para que de esta manera pueda recorrer el circuito con mayor velocidad.
CONCLUSIONES
https://www.arduino.cc/reference/en/language/structure/further-syntax/define/
https://store.robodacta.mx/
http://brettbeauregard.com/blog/wp-content/uploads/2012/07/Gu%C3%ADa-de-uso-PID-
para-Arduino.pdf
http://robots-argentina.com.ar/didactica/sensores-reflectivos-qtr-para-siguelineas/
http://aprendiendofacilelectronica.blogspot.com/2014/12/robot-velocista-de-
competencia_3.html