You are on page 1of 6

Fundacin Universitaria de San Gil. UNISANGIL.

Facultad de Ciencias Naturales e Ingeniera


Ingeniera Electrnica.
Yopal - Casanare

Abstract Make a robot follow a line has many utilities such as de programacin y que mejor forma de hacerlo que
tracing paths with lines for robots move on these roads while introducindonos en el amplio campo de la robtica
performing some task. Line followers can be built with one light concursando y poniendo en prctica los conocimientos y
sensor, or two, or a dozen or however many you happen to have. habilidades adquiridas.
In general, the more light sensors you have the better you can
follow a line. Here we'll limit ourselves to four single light sensor.
Even with a single sensor we should be able to build a robot that
II. DESCRIPCION TECNICA
can track the line very precisely even if the line has curves in it.
The thing you usually loose with a single sensor is the ability to
follow the line while moving fast. Often, the more sensors you A. Objetivos de diseo
have the faster the robot can move while it follows the line.

Resumen - Hacer un robot siga una lnea tiene muchas utilidades - Realizar el diseo de un robot seguidor de lnea buscando
como el seguimiento de las trayectorias con lneas de robots se que sea econmico pero muy preciso.
mueven en estos caminos mientras se realiza alguna tarea. seguidores
de lnea se pueden construir con un sensor de luz, o dos, o una - Implementar la programacin y control del seguidor
docena o sin embargo muchos le sucede que tiene. En, los sensores mediante control proporcional.
ms generales de luz tenga, mejor se puede seguir una lnea. Aqu nos
- Verificar el funcionamiento adecuado del seguidor
limitaremos a cuatro sensor de luz sola. Incluso con un nico sensor
que debemos ser capaces de construir un robot que puede realizar un eliminando al mximo cualquier margen de error.
seguimiento de la lnea de forma muy precisa, incluso si la lnea tiene
curvas en ella. Lo que por lo general suelta con un solo sensor es la
capacidad de seguir la lnea mientras se mueve rpido. A menudo, B. Estructura mecnica del robot
los ms sensores que tienen el ms rpido que el robot puede
moverse mientras se sigue la lnea. La estructura mecnica de nuestro seguidor de lnea est
realizada en vaquela o (PCB) con el circuito impreso para
Key words Error, motors, proportional controller, Sensors turn
reducir el peso de nuestro robot y evitar as la reduccin de
la velocidad y algn tipo de incidente por cables sueltos.
I. INTRODUCCION Esta misma sirve de soporte para los dems componentes
de nuestro robot como lo son: arduino nano, puente H,
Hacer que un robot siga una lnea tiene muchas utilidades
motores, sensores, ruedas entre otros.
como por ejemplo la de trazar caminos con lneas para que los
robots se muevan sobre estos caminos mientras realizan
alguna tarea. A simple vista parece algo sencillo de hacer pero
tiene algunos detalles que complican un poco las cosas. En
este documento se mostrara la forma de hacer que el robot,
equipado con cuatro sensores de luz, siga una lnea. Se partir
de la solucin trivial la cual se ir mejorando hasta obtener un
resultado aceptable, pero no el mejor posible. El resultado
final ser la implementacin de un controlador proporcional
encargado de guiar al robot. El controlador se programar con
ARDUINO NANO. Como mencionamos es un resultado
aceptable pero susceptible de ser mejorado, ya sea mediante
un ajuste ms preciso de los parmetros del controlador
proporcional o mediante el uso de controladores ms
sofisticados. Se decidi realizar este robot seguidor ya que
como estudiantes de ingeniera electrnica queremos aprender
Fundacin Universitaria de San Gil. UNISANGIL.
Facultad de Ciencias Naturales e Ingeniera
Ingeniera Electrnica.
Yopal - Casanare

Fig. 1: Foto del robot seguidor de lnea terminado. E. Electrnica del robot
C. Sistema Sensorial Nuestro objetivo es que el robot siga la lnea negra, Un
En el diseo de este robot seguidor se implementaron 4 dispositivo mvil que puede seguir una lnea demuestra todas
sensores de luz QRD1114, Este sensor utiliza un diodo emisor las caractersticas de un verdadero robot. Utiliza el sensor para
infrarojo en combinacin con un fototransistor infrarojo para recoger informacin sobre el mundo alrededor de l y cambia
detectar las seales infrarojas. Sirve para detectar transiciones su comportamiento dependiendo de esa informacin. En lugar
Negro-Blanco (robots sigue-lneas) o para detectar objetos de seguir la lnea lo que realmente tenemos que hacer es
cercanos (0.5 a 1 cm). La seal emitida por este sensor es de seguir un borde de esta, Seguir un borde significa que
tipo anlogo. seguiremos algn nivel de luz que este entre el color de la
lnea y el color del suelo (superficie donde se dibuja la lnea).
Por ejemplo: Si nuestro piso es blanco y para blanco el sensor
retorna digamos 50 (por poner un nmero) y la lnea es negra
y para negro el sensor retorna digamos 40, entonces nuestro
robot tendra que seguir el 45 que representara un borde de la
lnea, una especie de "gris", entre blanco y negro (50+40)/2.
Teniendo en cuenta lo dicho podramos definir un rango de
valores como el siguiente:

Fig. 2: sensores de luz QRD1114

D. Sistema de traccin
Los motores que fueron usados en este robot son motor
reductores DC de 6V a 250 rpm de GEAR MOTORS, se
escogio este tipo de motor ya que se adapta a nuestras De esta forma si el sensor retorna ms de 45 (estaramos sobre
necesidades pues su tamao es apropiado y su peso es la lnea) giramos hacia la izquierda, y si por el contrario el
reducido, la potencia de los motores esta controlado mediante sensor retorna menos de 45 (nos estaramos alejado de la
un integrado Puente H. lnea) entonces giramos hacia la derecha. Teniendo en cuenta
que conocemos que es lo que queremos que el robot haga
procedemos a idealizar el codigo fuente de programacin
Este se realiz con un ARDUINO NANO, sus
especificaciones son:

Microcontrolador Atmel ATmega168 o ATmega328


Nivel lgico de operacin de voltaje 5V
Voltaje de entrada (recomendado) 7-12V
Voltaje de entrada (limite) 6-20V
Pines I/O digital: 14 (6 proveen salida con PWM)
Pines de entrada anlogos: 8
Corriente DC por pin I/O: 40ma
Fig.3: Motor reductor DC de 6v a 250rpm Memoria rpida: 16KB(ATmega168) o 32KB(ATmega328)
Sram: 1KB(ATmega168) o 2KB(ATmega328)
EEPROM: 512 bytes(ATmega168) o 1KB(ATmega328)
clock speed 16MHZ
dimensiones: 0.73x1.70 in
Fundacin Universitaria de San Gil. UNISANGIL.
Facultad de Ciencias Naturales e Ingeniera
Ingeniera Electrnica.
Yopal - Casanare

longitude 45mm
ancho 18mm
peso: 5g.

Fig. 4: Arduino Nano

F. Sistema de alimentacin
Para el funcionamiento de este robot hemos utilizado 2
bateras recargables tipo lipo de 3.7V a 400mA en serie para Fig. 6: Seguidor de lnea proporcional; Lectura del sensor de
que se aumente el voltaje y mantenga las corriente y as luz.
mismo alimente el arduino nano, adicional a esto en nuestro
circuito tenemos un regulador de voltaje 7805 para que al En un seguidor de lnea proporcional la vuelta vara
puente H le lleguen los 5 voltios que requiere para su suavemente entre dos lmites. Si la lectura del sensor de luz
adecuado funcionamiento evitando algn tipo de dao en el o dice que estamos cerca de la lnea entonces hace un pequeo
en los motores. giro. Si estamos lejos de la lnea hacemos una vuelta grande.
Proporcional es un concepto importante. Proporcional
significa que existe una relacin lineal entre dos variables.
Para ponerlo an ms simple, proporcional significa un
grfico de las variables entre s produce una lnea recta (como
en el grfico de arriba).

Como ustedes saben, la ecuacin de una recta es:

y = mx + b

Donde y es la distancia hacia arriba (o abajo) el eje y, x la


distancia en el eje x, m es la pendiente de la recta y b es el
Fig. 5: Batera
intercepto de Y, el punto donde la lnea cruza el eje y cuando x
G. Programacin del robot
es cero. La pendiente de la recta se define como el cambio en
el valor de y dividido por el cambio en el valor de x con
cualquier par de puntos en la lnea.

Es fcil de hacer. Para los 40 y 50 luz valor gama solo


restamos 45 (que es el promedio de 40 y 50, (40 + 50) / 2) de
todas nuestras lecturas de luz. Llamaremos a ese resultado el
error. Por lo tanto, si el valor ligero es 47 nos reste 45 y sale
un error= 2. El error nos dice que tan lejos estamos del borde
de la lnea,Si el sensor de luz esta exactamente en el borde de
la lnea nuestro error es cero puesto que el valor ligero es 45 y
restamos 45 de todas nuestras lecturas. Si el sensor est
completamente en blanco nuestro error es + 5. En el negro el
error es de -5.
Fundacin Universitaria de San Gil. UNISANGIL.
Facultad de Ciencias Naturales e Ingeniera
Ingeniera Electrnica.
Yopal - Casanare

constante, lo que significa que el sensor de luz de lectura ya


no es proporcional al error.

En la literatura de PID el rango sobre el cual el sensor da una


respuesta proporcional se llama "gama proporcional" El
rango proporcional es otro concepto muy importante en PID.
En nuestro seguidor de linea el rango proporcional para el
sensor de luz es 40 a 50, el error es de 4:55. Nuestros motores
tienen tambin una gama proporcional, desde -100 (plena
potencia hacia atrs) a 100 (mxima potencia hacia adelante).
Slo dir un par de cosas acerca de l la importancia de la
gama proporcional:

El sensor tiene que estar muy cerca del borde de la lnea para
obtener una lectura que no sea "blanco" o "negro". el sensor
de luz slo necesita mantenerse dentro de +-1/2 pulgada del
borde de lnea para mantener una salida proporcional.

Desde P a los niveles de energa real del motor

Una manera de hacer las vueltas es definir un"Target power


nivel", que voy a llamar Tp. TP es el nivel de potencia de
Fig. 7: Seguidor de lnea proporcional; Lectura del error. ambos motores cuando el robot se supone que siga recto, lo
En el grfico anterior he cambiado de puesto el eje mediante que hace cuando el error = 0. Cuando el error no es cero,
la conversin a escala de un error. Puesto que la lnea ahora utilizamos la ecuacin de vuelta = K *(error) para calcular
cruza el eje y en cero ese hombre b es cero y la ecuacin de la cmo cambiar los niveles de potencia para los dos motores.
lnea es un poco ms simple; Un motor conseguir un nivel de potencia de Tp+girar, el
y = mx otro motor conseguir un nivel de potencia de Tp. Nota que
Vuelta = m *error desde nuestro error es 4:55 que significa girar puede ser
positivo o negativo que corresponde a vueltas en direcciones
No pero define lo que significa el eje de giro, as que por
opuestas. Resulta que eso es exactamente lo que queremos ya
ahora slo diremos la gama de vueltas de -1 (dura vuelta a la
que ajustar automticamente el motor correcto como el motor
izquierda) a + 1 (dura vuelta a la derecha) y un cero a su vez
rpido y uno lento motor. Un motor (asumiremos que es el
significa que vamos directamente. La pendiente de la lnea en
motor del robot conectado a Puerto A la izquierda) siempre
el grfico anterior se puede calcular utilizando los dos puntos recibir el Tp+ valor devuelta como su nivel de potencia.
marcados en rojo (dos puntos cualesquiera sobre la lnea Otros motor (lado derecho del robot, Puerto C) siempre
funcionar); pendiente = m = (cambio en y) / (cambio en x) = conseguir Tp-gire como su nivel de potencia. Si el error es
(1-(-1)) / (-5-5) = 10/2 = - 0.2 positivo entonces gire es positivo y Tp+girar es mayor que el
Tp y el motor izquierdo se acelera mientras que desacelera el
La pendiente es una constante de proporcionalidad y es el
motor adecuado. Si el error cambia de signo y se convierte en
factor que se debe multiplicar el error (valor x) a convertir en
negativo (lo hemos cruzado de la lnea borde y son "ver
una vuelta (y valor). Eso es una cosa importante para
negro") y luego Tp+vuelta es ahora menor que Tp y el motor
recordar. La "pendiente" tiene unos nombres que todos
izquierdo se frena y acelera el motor adecuado puesto que
significan lo mismo, al menos en este contexto se llama "K
Vuelta de Tp es mayor que el TP. (Recordar que la negativa
Vuelta = K* (error) de una negativa es positiva).
1) Pseudo cdigo para un controlador P
El valor de vuelta es la salida de nuestro controlador P y se
llama el "trmino de P" ya que este es solo un controlador Primero tenemos que medir los valores que el sensor de luz se
proporcional. Una vez que el sensor de luz esta demasiado vuelve blanco y negro. De esos dos nmeros se puede calcular
lejos del borde de la linea comienza a dar una lectura el offset, es decir, la cantidad a restar una cruda luz de lectura
Fundacin Universitaria de San Gil. UNISANGIL.
Facultad de Ciencias Naturales e Ingeniera
Ingeniera Electrnica.
Yopal - Casanare

para convertirla en un valor de error . El offset es moviendo demasiado rpido. Si Tp es muy pequea entonces
simplemente el promedio de las lecturas del blancos y negros. casi cualquier valor de Kp funcionar ya que el robot se
Por simplicidad, supondr que el desplazamiento ya ha sido mover muy lentamente. El objetivo es conseguir que el robot
medido y almacenado en una variable llamada offset. (Una mvil tan rpido como sea posible mientras que todava
bonita actualizacin sera tener el robot medir los niveles de siendo capaz de seguir la lnea de inters.
blancos y negros y calcular el offset.)
Habamos estimado un valor inicial de Kp de 10. Para Tp
Tambin necesitaremos una ubicacin de almacenamiento podra empezar en incluso inferior al sugerido, quizs 15 (el
para la constante K , que llamaremos Kp (onstant Kpara el robot se mover muy lento). Intentarlo y ver cmo funciona.
controlador de roportional de p). Y una suposicin inicial en Si pierdes la lnea porque el robot parece hacer inactivo
cuanto a lo que debera ser Kp . Hay muchas maneras de entonces incrementar Kp por una pareja e intntelo de nuevo.
conseguir ese primer valor Kp . Pueden adivinar y luego Si pierdes la lnea porque el robot parece hiperactivo en la
afinarla por ensayo y error. O, usted puede intentar calcular un caza y hacia atrs de la lnea entonces disminuir Kp. Si el
valor basado en las caractersticas del sensor y el robot. Vamos robot parece seguir la lnea bastante pues aumentar Tp y ver si
a hacer el ltimo. Usaremos un Tp (poder blanco) de 50, puede seguir la lnea a la velocidad ms rpida. Para cada
cuando el error es que cero ambos motores se ejecutarn al nuevo Tp que tendr que determinar un nuevo Kp, aunque Kp
nivel 50. Los rangos de error de -5 a + 5. A suponemos que generalmente no va a cambiar demasiado.
queremos el poder para ir de 50 a 0 cuando el error pasa de 0 a
-5. Esto significa que el Kp (Recuerde que la pendiente, el Siguiendo una lnea recta suele ser bastante fcil. Siguiendo
cambio en y dividido por el cambio en x) es; una lnea con suaves curvas es un poco ms difcil. Siguiendo
una lnea con curvas muy cerradas es la ms difcil. Si el robot
se mueve lento bastante seguido casi cualquier lnea puede ser,
KP = (0 - 50) / (0 -5) = 10. incluso con un controlador muy bsico. Queremos hacer llegar
la siguiente lnea buena, buena velocidad y la capacidad para
manejar las esquinas suaves. (Lneas con esquinas agudas
Dos parmetros ajustables del"" y una constante en este suelen tener seguidores de lnea ms especializadas).
controlador P. La constante es el valor de desplazamiento (el
promedio de las lecturas del sensor de luz blanca y negra). Es probable que el mejor controlador de P ser diferente para
Usted tendr que escribir un programa corto para medir los cada tipo de lnea (grosor de lnea, agudeza de curvas etc.) y
niveles de luz en su alfombra con su robot. Se necesita un de diferentes robots. En otras palabras, un controlador P (o un
"negro" un valor "blanco". Calcular el promedio y ponerlo en controlador PID para el caso) est ajustado para una clase
el programa de control de P en la variable de desplazamiento particular de lnea y robot y no necesariamente trabajar bien
. Casi todos los seguidores de lnea requieren que usted (o el en otras lneas o robots. El cdigo funcionar para muchos
cdigo escrito por usted y ejecutado por el robot) hacer este robots (y muchas de las tareas), pero los parmetros Kp, Tp y
paso. offset, tienen que ser ajustados para cada robot y cada
aplicacin.
El valor de Kp y el poder del destino Tp son los parmetros
En el proceso de sintonizacin del controlador P usted se estar
ajustables. Un parmetro configurable debe determinarse por
afinando el valor de Kp hacia arriba y hacia abajo. Del rango
ensayo y error. KP controla cmo rpidamente el controlador
de valores que podran ser Kp depende de qu hace
intentar volver a la lnea de borde cuando ha derivado de ella.
exactamente el controlador P. Cul es el rango de entrada y
TP controla rapidez el robot mvil a lo largo de la lnea.
cul es el rango de salida? Nuestro regulador de seguidor P la
Si la lnea es muy recta puede utilizar una gran Tp para lnea la gama de la entrada es de 5 unidades de luz, y el rango
conseguir que el robot funcione a alta velocidad y un pequeo de salida es 100 unidades de energa, por lo que parece
Kp para que las vueltas (correcciones) son suaves. probable que Kp ser cerca de 100/5 = 20.

Si la lnea tiene curvas, especialmente los agudos, habr un


mximo valor de Tp que funcionar. Si Tp es mayor que
mximo no importa lo que es el Kp , el robot va a perder la
lnea cuando se encuentra con una curva porque se est
Fundacin Universitaria de San Gil. UNISANGIL.
Facultad de Ciencias Naturales e Ingeniera
Ingeniera Electrnica.
Yopal - Casanare

III. CONCLUSIONES

Se realiz el diseo de un robot seguidor de lnea econmico


pero muy preciso.
Se implement la programacin y control del seguidor
mediante control proporcional.
Se Verifico el funcionamiento adecuado del seguidor y se
elimin al mximo cualquier margen de error.
Construir un robot seguidor de lnea a simple vista parece un
trabajo sencillo, pero hay que tener en cuenta que debemos
seleccionar excelentes materiales que contribuyan a su buen
funcionamiento, la programacin se debe hacer una y otra vez
hasta que el robot funcione

VII. REFERENCIAS
[1].http://robotmexico.com/index.php?
page=shop.product_details&flypage=shop.flypage&product_id
=36&category_id=9&manufacturer_id=0&option=com_virtue
mart&Itemid=54&vmcchk=1&Itemid=54
[2].http://aprender.tdrobotica.co/seguidor-de-
lineaprofesional/http://aprender.tdrobotica.co/seguidor-de-
lineaprofesional/
[3] https://www.arduino.cc/en/Main/ArduinoBoardNano
[4] http://www.lejosconlego.com/feeds/posts/default
[5]http://www.inpharmix.com/jps/PID_Controller_For_Lego_
Mindstorms_Robots.html

You might also like