Este documento presenta el informe final del desarrollo de un carro seguidor de línea para la asignatura de Microcontroladores II. El carro utiliza sensores infrarrojos para detectar la línea negra sobre la que sigue, motores para moverse, y un microcontrolador Arduino UNO para controlar los motores basado en la entrada de los sensores. El documento describe el diseño mecánico y eléctrico del carro, incluyendo los componentes y circuitos utilizados, y explica la programación básica del microcontrolador para implementar un control
1. REPORT CART LINE FOLLOWER, MICROCONTROLLERS II (BATIMOVIL ver.1.2) ®.
INFORME CARRO SEGUIDOR DE LÍNEA, MICROCONTROLADORES II (BATIMOVIL ver.1.2) ®.
1
Jeisson Saavedra
Universitaria de investigación y desarrollo UDÍ
Asignatura Microcontroladores II, Escuela de ingeniería electrónica y telecomunicaciones,
1,2
Ingeniería electrónica, Barrancabermeja, Santander, Colombia.
Tel: 6202638-6222863, fax: 6200790
1
Jeisson20saavedra@gmail.com
Abstract: This paper presents the implementation of the final report of the development of
a carriage line follower for the matter Microcontrollers II, of the school of electronic
engineering and telecommunications, departing from its design to its final assembly in
addition to the elements used, explaining step by step what is made present during its
development, this project corresponds to the final draft of the material, which is trying to do
similar to what was taught during the semester making understand the inner workings of a
microcontroller, in addition their practical use as well as the development of reliable
electronic circuits to prevent any inconsistencies that may affect the microcontroller.
Keywords: Line follower, sensors, actuators, resistors, design, microcontrollers, Arduino
UNO, Atmega.
Resumen: Este trabajo presenta la realización del informe final del desarrollo de un carro
seguidor de línea para la materia Microcontroladores II, de la escuela de ingeniería
electrónica y telecomunicaciones, partiendo desde su diseño hasta su montaje final
además de los elementos utilizados, explicando paso a paso lo que se hizo presente
durante su elaboración, este proyecto corresponde al proyecto final de la materia que trata
de hacer semejanza a lo que se impartió durante el semestre logrando comprender el
funcionamiento interno de un microcontrolador y además su práctica utilización así como la
elaboración de circuitos electrónicos confiables para prevenir cualquier inconsistencia que
afecte el microcontrolador.
Palabras claves: Seguidor de línea, sensores, actuadores, resistencias, diseño,
Microcontroladores, Arduino UNO, Atmega.
2. INTRODUCCION
Los robots seguidores de línea (o robots
rastreadores) son robots muy sencillos, que
cumplen una única misión: seguir una línea
marcada en el suelo (normalmente una línea
negra sobre un fondo blanco). Son
considerados los "hola mundo" de la robótica.
Hoy en día la Robótica Móvil se ha
convertido en un tema de gran interés, con
grandes adelantos debido a una gran
cantidad de proyectos que se han
desarrollado en todo el mundo. Como
resultado de esto, se han logrado conseguir
robots móviles con amplia interacción con el
medio, lo cual ha abierto una inmensa gama
de aplicaciones como la toma muestras,
análisis del medio, detección de gases,
fugas, envío de señales de audio y video y
viceversa, etc., todo ello de forma remota
para evitar el riesgo humano.
La robótica es una de las aplicaciones más
apasionantes de la electrónica. Un robot
seguidor de línea se clasifica en el campo de
la robótica móvil un grupo de la rama de
robótica. La tarea fundamental de un robot
móvil es el desplazamiento en un entorno
conocido o desconocido, por tanto es
necesario que posea tres funciones
fundamentales, la locomoción (nivel físico), la
percepción (nivel sensorial) y la decisión
(nivel de control).
Entre las aplicaciones de robots móviles se
encuentra el transporte de carga en la
industria, robots desactivadores de
explosivos, exploración de terrenos no aptos
para el hombre.
Un seguidor de línea es un robot el cual es
capaz de seguir una línea sobre un fondo
contratante, puede ser una línea blanca en
un fondo negro o vice-versa. Todos los
seguidores basan su funcionamiento en los
sensores. Sin embargo, dependiendo de la
complejidad del recorrido, el robot debe ser
más o menos complejo (y, por ende, utilizar
más o menos sensores). Los seguidores más
simples utilizan 2 sensores, ubicados en la
parte inferior de la estructura, uno junto al
otro. Cuando uno de los 2 sensores detecta
el color blanco, significa que el robot está
saliendo de la línea negra por ese lado. En
ese momento, el robot gira hacia el lado
contrario hasta que vuelve a estar sobre la
línea. Esto en el caso de los seguidores de
línea negra, ya que también hay seguidores
de línea blanca. Las 2 maneras más
comunes de armar los rastreadores son:
OPAMPS (Amplificadores Operacionales), o
con simples transistores trabajados en su
zona de saturación. Esto dependiendo de la
complejidad con la que se quiera armar el
circuito. Podemos utilizar un micro
controlador para realizar las funciones de
control o guardar en él la forma del recorrido
por una pista.
DESARROLLO DEL SEGUIDOR DE LINEA
Para el desarrollo del seguidor de línea hay
que antes que nada tener en cuenta
parámetros importantes de fidelidad y
confiabilidad tanto de elementos como de
factores no lineales y externos que puedan
afectar el buen funcionamiento del seguidor
de línea, es por ello que debemos tener en
cuenta algunos parámetros importantes a la
hora de realizarlo como lo es su estructura
básica de construcción, los robots pueden
variar desde los más básicos (van tras una
línea única) hasta los robots que recorren
laberintos. Todos ellos, sin embargo, poseen
(por lo general) ciertas partes básicas
comunes entre todos:
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
y practicidad los más comunes son los
sensores infrarrojos (IR), que normalmente
constan de un LED infrarrojo y un
fototransistor.
Motores: El robot se mueve utilizando
motores. Dependiendo del tamaño, el peso,
la precisión del motor, entre otros factores,
3. éstos pueden ser de varias clases: motores
de corriente continua, motores de paso a
paso o servomotores. 4
Ruedas: Las ruedas del robot son movidas
por los motores. Normalmente se usan
ruedas de materiales anti-deslizantes para
evitar fallas de tracción. Su tamaño es otro
factor a tener en cuenta a la hora de armar el
robot.
Fuente de energía: El robot obtiene la
energía que necesita para su funcionamiento
de baterías o de una fuente de corriente
alterna, siendo esta última menos utilizada
debido a que le resta independencia al robot.
Tarjeta de control: La toma de decisiones y
el control de los motores están generalmente
a cargo de un micro controlador. La tarjeta de
control contiene dicho elemento, junto a otros
componentes electrónicos básicos que
requiere el micro controlador para funcionar
en este caso el uso del Arduino como una
herramienta muy eficaz y confiable ya que
tiene antecedentes muy buenos en cuanto a
este tipo de proyectos.
Estas partes son muy importantes ya que son
las necesarias y su diseño puede variar
depende de su utilización, precisión y eficacia
que se requiera.
Una de las áreas interesantes en la
electrónica y la Mecatrónica, sin duda, es la
robótica móvil, ya que es posible
reunir diversas áreas como sistemas
digitales, sistemas de control y micro
controladores. Aquí se presenta un robot
móvil que sigue una línea Negra en un fondo
Blanco, su mecanismo dinámico lo
constituyen dos motores que cuentan con
cajas de engranes para proporcionar mayor
potencia. En las siguientes secciones se
muestra como está constituido este robot.
DISEÑO DEL HARDWARE
Estructura
El material utilizado en la elaboración del
chasis del robot fue acrílico, la base, se
muestra en la figura 1, en ésta descansan la
caja reductora, el circuito de control, los
sensores y la batería.
Figura 1.diseño básico de la base del carro
Las llantas son ruedas tamiya que
tienen un diámetro de 4,8 cm y de
ancho 3 cm. y las dimensiones del robot
son de 18X12 cm. Los motores cuentan con
una caja de engranes (amplificador
mecánico) que proporcionan mayor torque.
Sistema eléctrico
La parte electrónica está formada por 4
bloques los cuales son:
Sensores
Acondicionamiento de la señal
Etapa de potencia
Control
Figura 2. Etapas del sistema eléctrico y control en
bloques
Estas etapas son diferentes para el control
ON-OFF y para el control difuso ya que el
control ON-OFF es un control más sencillo y
requiere menos elementos que el control
difuso.
4. A continuación se muestran los circuitos
electrónicos, el diseño y la programación
para cada uno de estos controles.
SENSORES:
Los sensores utilizados para la elaboración
son los CNY70 que son los más utilizados
para la detección de line negra.
Figura 3. Vista del sensor CNY70
El CNY70 es un pequeño dispositivo con
forma de cubo y cuatro patitas que aloja en
su interior un diodo emisor de infrarrojos que
trabaja a una longitud de onda de 950 nm. Y
un fototransistor (recetor) estando ambos
dispuestos en paralelo y apuntando ambos
en la misma dirección, la distancia entre
emisor y receptor es de 2.8 mm. y están
separados del frontal del encapsulado por 1 mm.
En la siguiente figura vemos la disposición
interna del CNY70 mirando el encapsulado
desde arriba, así pues tenemos el diodo
emisor de infrarrojos a la izquierda y el
fototransistor a la derecha.
Figura 4. Vista externa y interna del CNY70
Usos en el diseño: Lo utilizamos en el robot
seguidor de línea (“Batimovil” 1,2) para la
detección de la línea negra pintada sobre el
suelo, debido principalmente a su baja
distancia de detección.
ACONDICIONAMIENTO DE LA SEÑAL
En el acondicionamiento de la señal se trata
de digitalizar la señal análoga de los
sensores. La forma más sencilla es usar
comparadores para obtener una salida digital
que determine un "blanco" o un "negro".
La siguiente figura muestra como están
colocados los sensores con su respectiva
adecuación de resistencias.
Figura 5. Conexión del sensor CNY70
Si observamos el circuito apreciamos que y
debido a que los voltajes están referidos a las
tierras, observemos que el comparador tiene
dos entradas: uno positivo y otro negativo.
Cuando el voltaje en el terminal positivo es
mayor que el voltaje en el terminal negativo
la salida del es ALTO. Cuando el voltaje en el
terminal positivo en MENOR que el voltaje en
el terminal negativo la salida del comparador
es BAJO.
De esta manera es muy fácil determinar
cuando la señal nos indica que se
encuentra en la línea negra o en el fondo
blanco viceversa.
Otra parte importante de acondicionamiento
fue la de regulación y la de potencia, en la
primera se uso un LM7805 y para la segunda
un L293 más conocido como (puente H), que
nos garantizaría fidelidad en cuanto al uso de
voltajes al microcontrolador y al puente H y
motores. De forma que no tengamos
perdidas de corriente que hagan
5. desfavorable el buen funcionamiento del
carro seguidor de línea “Batimovil” 1.2.
CONTROL
La etapa de control puede ser diseñada de
diferentes maneras y utilizar diferentes
métodos.
El método más común utilizado en los robots
seguidores de línea es el control ON-OFF el
cual se basa en dos sensores infrarrojos para
realizar el control que es analógico.
Otro tipo de control utilizado es el control
difuso el cual está basado en 4 sensores
para detectar la línea y se incluye un micro
controlador, el cual para este carro
utilizaremos el Arduino UNO, que es una
tarjeta con muchas características que nos
permiten hacer un control optimo y no
requiere adecuaciones externas ya que las
tiene integradas, el micro que trae es un
Atmega 320 el cual hablaremos mas
adelante.
Arduino UNO
Figura 6. Placa de arduino UNO
Especificaciones técnicas:
Microcontroller ATmega328
Operating Voltage 5V
Input Voltage
(recommended)
7-12V
Input Voltage
(limits)
6-20V
Digital I/O Pins
14 (of which 6
provide PWM
output)
Analog Input Pins 6
DC Current per
I/O Pin
40 mA
DC Current for
3.3V Pin
50 mA
Flash Memory
32 KB (ATmega328)
of which 0.5 KB
used by bootloader
SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
Clock Speed 16 MHz
Para mayor información pueden consultar la
página web que se indicara en las
referencias bibliográficas.
En cuanto al control por medio de la
programación del microcontrolador depende
en muchas variaciones del como lo vea el
programador, esto quiere decir que son
cuestiones que pueden variar dependiendo a
la lógica del que programa, una
programación funcional diseñada como base
podría ser la siguiente:
const int sensor1 = 2; //declaracion de
constantes para
const int sensor2 = 3; //asignar el
numero de pines de salidas
const int sensor3 = 4; //y entradas
const int sensor4 = 5;
const int motor1 = 9;
const int motor2= 10;
boolean s1; //declaracion de variables
para la boolean s2; //lectura de las
entradas boolean s3;
boolean s4;
//estructura de configuración de
entradas y salidas
void setup() {
pinMode(motor1, OUTPUT);
pinMode(motor2, OUTPUT);
pinMode(sensor1, INPUT);
pinMode(sensor2, INPUT);
pinMode(sensor3, INPUT);
pinMode(sensor4, INPUT);
}
void loop() { //programa principal
//lectura de sensores
s1= digitalRead(sensor1);
s2= digitalRead(sensor2);
s3= digitalRead(sensor3);
s4= digitalRead(sensor4);
6. //Regla 1
if (s1 == LOW && s2 == HIGH && s3 ==
HIGH && s4 == LOW) {
analogWrite(motor1,255);
analogWrite(motor2,255); 21
}
else {
//Regla 2
if (s1 == HIGH && s2 == HIGH && s3 ==
LOW && s4 == LOW) {
analogWrite(motor1,255);
analogWrite(motor2,117);
}
else {
//Regla 4
if (s1 == HIGH && s2 == LOW && s3 ==
LOW && s4 == LOW) {
analogWrite(motor1,255);
analogWrite(motor2,39);
}
else {
//Regla 3
if (s1 == LOW && s2 == LOW && s3 ==
HIGH && s4 == HIGH) {
analogWrite(motor1,117);
analogWrite(motor2,255);
}
else {
//Regla 5
if (s1 == LOW && s2 == LOW && s3 ==
LOW && s4 == HIGH) {
analogWrite(motor1,39);
analogWrite(motor2,255);
}
}
}
}
}
}
ETAPA DE POTENCIA
La etapa de potencia se basa en el
funcionamiento del L293 que es el puente H
utilizado para tener una potencia total en los
motores, funciona de tal forma que cuando el
microcontrolador en este caso la tarjeta de
Arduino le envía pulsos a sus entradas E1 y
E2 el amplificador interno se activa
permitiendo el paso del voltaje que están en
conectados en I1, I2, I3 y I4 proporcionando
una gran potencia a los motores. Su ventaja
es la utilización de los PWM que se permiten
al usar el L293. Las siguientes figuras
muestran la configuración interna y su
conexión.
Figura 7. Circuito interno del L293
Figura 8. Conexión del L293
CIRCUITO DE POTENCIA
7. OTRAS CARACTERISTICAS DE
ELEMENTOS UTILIZADOS
MOTOR CORRIENTE CONTINUA (DC)
El motor eléctrico es un dispositivo
electromotriz, esto quiere decir que convierte
la energía eléctrica en energía motriz. Todos
los motores disponen de un eje de salida
para acoplar un engranaje, polea o
mecanismo capaz de transmitir el movimiento
creado por el motor. Es por ello su vital
importancia en el diseño de nuestro seguidor
de línea, ya que la movilidad del carro
depende de este.
El funcionamiento de un motor se basa en la
acción de campos magnéticos opuestos que
hacen girar el rotor (eje interno) en dirección
opuesta al estator (imán externo o bobina),
con lo que si sujetamos por medio de
soportes o bridas la carcasa del motor el
rotor con el eje de salida será lo único que
gire. Para cambiar la dirección de giro en un
motor de Corriente Continua tan solo
tenemos que invertir la polaridad de la
alimentación del motor.
En nuestro caso empleamos la caja
reductora TAMIYA para tener mayor torque y
velocidad controlada es muy fácil de armar y
de usar no son más que dos motores DC
empotrados a una caja con una serie de
engranajes que aumentan el torque o fuerza
del giro haciéndola muy útil a la hora de
arrastrar un sistema mecánico móvil. A
continuación se ve en la figura la caja
reductora TAMIYA.
Figura 9. Caja reductora TAMIYA sin armar.
Figura 10. Caja reductora TAMIYA Armada
PILAS RECARGABLES DE LIPO
Proporcionar la energía a cada uno de los
dispositivos utilizados en el diseño del
Robots seguidor de línea negra.
Figura 11. Batería LIPO
Las baterías LiPo o de Polímero de Litio han
venido a solucionar muchos problemas y han
supuesto un gran avance para muchas
disciplinas del radiocontrol, debido a
las ventajas que presentan, y que
principalmente son:
Su alta densidad de energía que
prácticamente dobla a las de NiMh.
Tienen muchos menos
volumen y ofrecen un formato
más práctico, lo que las hace
más manejables.
Alto nivel de descarga
Alto nivel de voltaje por célula,
lo que permite mayores
voltajes en menor espacio.
Resistencia interna pequeña,
lo que hace que se pueda
8. aprovechar casi el 100% de la
energía disponible.
RESULTADO Y CONCLUSIONES
Se diseñó e implementó, un robot
seguidor de línea
El funcionamiento del robot es adecuado a la
meta propuesta, sin embargo si se desea
utilizar para un concurso es necesario
mejorar la velocidad y otros factores que
mejorarían el comportamiento del mismo.
A demás no cuenta con un diseño en cuento
a su estructura de hardware por el cual
requerirá unas mejoras.
Cabe recordar que este es un prototipo final
al cual se puede mejorar y que sirve de base
para futuros trabajos donde se puedan
implementar.
La idea era que solo siguiera la línea por cual
si se pretende que sea velocista se
recomienda reacomodar el circuito de
potencia por uno de mayor voltaje superior a
los 5v de este prototipo para que tenga
mayor velocidad y a demás cambiar las
llantas por una de neopreno para que pueda
correr a mayor velocidad.
En general se cumple con el objetivo de la
elaboración del carro seguidor de línea,
prototipo Batimovil 1.2 que sirve como base
para implementación en el desarrollo de otros
proyectos que tengan como base los AGV
(vehículos de guiado automático).
Notación Final:
Durante las practicas se tuvo un problema
con el sensor, cuando se empezó a probar el
vehículo observábamos y fallas y después de
reiteradas pruebas se decide probar sensor
por sensor y se nota que uno de ellos estaba
sin funcionamiento lo que nos generaba
fallas para el buen funcionamiento, luego de
descubrir cómo no teníamos otro para
reemplazar se decide eliminar del sistema en
cuanto a la programación, pero como era uno
de los del medio, el funcionamiento no iba
ser muy precisó ya que su estructura de
hardware está hecha para el uso de cuatro
sensores. La programación que logro hacerlo
funcionar fue la siguiente.
int Sen1 = 2; //Extremo izquierdo
int Sen2 = 3; //Izquierdo
int Sen3 = 4; //Derecho
int Sen4 = 5; //Extremo Derecho
int Val1 = 0; // Valor de los sensores
int Val2 = 0;
int Val3 = 0;
int Val4 = 0;
//Control de los motores
int motorA1 = 8;
int motorA2 = 9;
int motorB1 = 10;
int motorB2 = 11;
void setup(){
Serial.begin(9600);
pinMode(Sen1,INPUT); //extrema
izquierda
pinMode(Sen2,INPUT); //izquierda
pinMode(Sen3,INPUT);//derecha
pinMode(Sen4,INPUT);//extrema
derecha
pinMode(motorA1,OUTPUT); //Motor
A adelante
pinMode(motorA2,OUTPUT); //Motor
A atras
pinMode(motorB1,OUTPUT); //Motor
B adelante
pinMode(motorB2,OUTPUT); //Motor
B atras
}
void loop(){
//Lectura y registro de los valores de
los sensores
Val1 = digitalRead(Sen1);
Val2 = digitalRead(Sen2);
Val3 = digitalRead(Sen3);
Val4 = digitalRead(Sen4);
//Serial.println(Val4);
///////////////////////////////////