Sunteți pe pagina 1din 30

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL


PERODO ACADMICO: OCTUBRE/2014 MARZO/2015

UNIVERSIDAD TCNICA DE AMBATO


Facultad de Ingeniera en Sistemas, Electrnica e
Industrial
Carrera de Ingeniera Industrial en Procesos de
Automatizacin

Ttulo:
APLICACIN DE SISTEMAS DIGITALES Y
ARDUINO EN LA CREACIN DE UN ROBOT
SEGUIDOR DE LNEA
Carrera:
INGENIERA INDUSTRIAL EN PROCESOS DE
AUTOMATIZACIN
rea Acadmica:
ELECTRONICA
Lnea de Investigacin:
AUTOMATIZACION
Ciclo Acadmico y Paralelo:
QUINTO INDUSTRIAL
Alumnos participantes:
Fabian Bao
Diego Lpez
Jimmy Sangolquiza
Leonardo Vlez
Diego Domnguez
David Lema
Carlos Galarza
Bladimir Chamorro
Oscar Pilla
lvaro Guamn.

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL


PERODO ACADMICO: OCTUBRE/2014 MARZO/2015

Mdulo y Docente:
Ing. Santiago Collantes.
Electrnica Digital.

I.

INFORME DEL PROYECTO


1.1

Ttulo

APLICACIN DE SISTEMAS DIGITALES Y ARDUINO EN LA CREACIN DE UN


ROBOT SEGUIDOR DE LNEA

Objetivos

Crear un robot seguidor de lnea utilizando las bases


fundamentales de la electrnica digital al igual que la
plataforma de desarrollo arduino.

Detallar el uso, aplicacin y relacin entre diferentes


plataformas de desarrollo electrnico con la electrnica
digital y analgica moderna.

1.2

Resumen

El desarrollo de la electrnica y de la informtica ha generado la


construccin de una gran cantidad de robots y mquinas
automticas, que realizan multitud de tareas
por nosotros,
proporcionndonos una mayor calidad de vida. Estas mquinas se
encargan de realizar trabajos peligrosos, pesados o repetitivos
rpidamente y con mayor precisin de lo que podemos hacer
nosotros. Mientras que las mquinas automticas solo realizan
una funcin, los robots muestran cierto grado de autonoma y
adaptacin a las condiciones del entorno en el que actan.
Nuestro proyecto consiste en la construccin de un robot capaz de
seguir una lnea con ciclo cerrado (pista-circuito), en cualquier tipo
de forma o trayectoria. Los componentes electrnicos empleados
para la construccin de este prototipo son sensores, sistemas de
control, herramientas y elementos que suministran energa.
El primer paso fue conocer el funcionamiento de cada
componente que constituye al robot, as como crear el circuito
elctrico que rige la lgica del robot, con ayuda de la investigacin
y documentacin. Se cre el diseo del robot de acuerdo a las
caractersticas que requiere el circuito elctrico. Es importante
mencionar que el robot utiliza el lenguaje de programacin en C
para Arduino, ya que es el encargado de decidir que motor se
activa o se apaga en base a la orden de los sensores. El diseo de
la pista fue lo ms sencillo solo se busc un contraste entre la

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL


PERODO ACADMICO: OCTUBRE/2014 MARZO/2015

lnea que el robot seguir y el fondo, se utiliz cinta de aislar


negra.
Finalizamos haciendo, mencin de que los alumnos participantes
en este proyecto tienen conocimientos bsicos de robtica y
electrnica, la idea del proyecto surgi con el propsito de adquirir
mayores conocimientos en los mbitos de robtica, ciencia y
tecnologa adems de es un encuentro con diversos aspectos de
la investigacin, la lectura y la tecnologa.
1.3

Palabras clave:

Arduino, Segui-linea, Sensor, Electrnica, Robtica.


1.4

Introduccin

La robtica y la electrnica son reas importantes en la historia del


planeta ya que en todos los campos nos permite crear una
cantidad ilimitada de aplicaciones prcticas, los podemos utilizar
en nuestra va cotidiana y los damos por hecho. En el caso de los
seguidores de lnea nos permite aproximarnos a la programacin y
aplicar la teora obtenida en clase.
1.5

Materiales y Metodologa

MATERIALES
NOMBRE
Computador

IMAGEN

Arduino

Componentes
Electrnicos:
Motores DC.
Sensores
8RC.

QRT

DESCRIPCIN
Dispositivo
electrnico a travs
del
cual
se
desarroll el informe
tcnico
Arduino
es
una
plataforma
de
hardware
libre,
basada
en
una
placa
con
un
microcontrolador y
un
entorno
de
desarrollo
Dispositivos
que
forman parte de un
circuito electrnico.

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL


PERODO ACADMICO: OCTUBRE/2014 MARZO/2015

Ruedas.

Materiales
Varios:
Cautn.

Utilizados soldar los


diferentes
componentes
y
armar el proyecto.

Estao.
Pinzas.

METODOLOGA
Para iniciar el diseo de los SEGUIDOR DE LINEA era fundamental
conocer las funciones que ste deba desempear y a partir de
ese punto conocer todos los dispositivos que se requeriran para
llevar a cabo dichas funciones. Una vez se tuvo conocimiento de
los dispositivos que se deberan utilizar tales como el sensor, las
ruedas, los motores, la unidad de control, los pulsadoresetc.
nos sumergimos en un gran abanico de posibilidades en cuanto
a la eleccin de dichos componentes, puesto que debamos
encontrar los ms adecuados, segn sus caractersticas, para
poder desarrollar la funcin a la que iban a ser designados
de la mejor forma posible y adecundolos todos ellos a un
ensamblaje de unas dimensiones considerables para poder,
cuanto menos, reducir el coste del proyecto pero sin restarle las
funciones para las cuales iban a ser diseados.
Me gustara destacar la dificultad del apartado de diseo ya
que se llev, junto con la parte de programacin y desarrollo
de la interface del robot, la mayor parte del tiempo designado
para la realizacin del proyecto.
Tras haber elegido la mayora de los componentes
procedimos al estudio de sus caractersticas mecnicas de
ensamblaje para poder meternos en el diseo del robot que iba
a ser el encargado de contener todos los elementos necesarios
para el buen funcionamiento.
Lo primero que debamos pensar era el material del que se iba a
fabricar puesto que pasara a ser el esqueleto del robot, adems
debamos pensar en la forma ms adecuada del mismo, en base
a poder realizar su funcin principal y que su fabricacin no
fuera excesivamente complicada y por lo tanto costosa

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL


PERODO ACADMICO: OCTUBRE/2014 MARZO/2015

tambin a nivel econmico. Para ello se contemplaron


infinidad de modelos ya existentes de todas las vertientes
robticas de la actualidad, con el fin de poder llegar a inspirarse
en un diseo prctico, cuidado estticamente en la medida de
nuestras posibilidades, funcional y de un coste lo ms asequible
posible. Teniendo en cuenta todos estos requisitos optamos por
la fabricacin de un chasis de cartn prensado, ya que esta
eleccin nos facilitaba muchsimo tanto la elaboracin del mismo
como la posibilidad de poder realizar pequeas modificaciones
una vez fabricado, debido principalmente, a la maleabilidad y
peso reducido que este nos ofreca.
Una vez realizados unos cuantos bocetos nos dispusimos a
establecer de forma aproximada las dimensiones de nuestro
robot en base a las necesidades de movilidad que ste debera
ofrecernos y a los componentes seleccionados para desarrollar
sus funciones.

1.6

MARCO TERICO

1.6.1 Recursos utilizados


Arduino.Arduino es un entorno, libre de licencias, que nos ha permitido
realizar toda la programacin de la placa de control de nuestro
robot.
Este entorno utiliza, como lenguaje de programacin, un lenguaje
similar al C que es un lenguaje bastante conocido a nivel de
programacin que nos ha facilitado, una vez realizado el apartado
de diseo, el poder ponernos a trabajar con este entorno sin la
necesidad de estudiar demasiado tutoriales para desarrollar
nuestro proyecto, puesto que ya tenamos asumidos, a nivel
conceptual, los conocimientos necesarios para programar en dicho
lenguaje.

A pesar de ello si hemos tenido que conocer el funcionamiento a


nivel de programacin de todos los sensores con los que cuentan

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL


PERODO ACADMICO: OCTUBRE/2014 MARZO/2015

nuestros robots, que ha sido un trabajo un tanto complicado pero


que ha dado sus frutos y por lo tanto se ha convertido en un
trabajo satisfactorio y enriquecedor, todo ello a pesar de que en
realidad nosotros hemos realizado el diseo de una programacin
mnima de funcionamiento.

Herramientas utilizadas y estacin de trabajo:


Adems de todos los recursos informticos, tambin hemos
utilizado toda una serie de herramientas para la realizacin del
ensamblaje de nuestro robot.
Las herramientas que ms hemos utilizado de este banco de
trabajo son:

Soldador: para todas las tareas de soldadura de cables, pines


de conexionado y calentamiento de las fundas retractiles,
designadas para aislar y proteger los elementos soldados.

Taladro: para la realizacin de los orificios tanto en el chasis


como en los herrajes de los servos diseados por nosotros.

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL


PERODO ACADMICO: OCTUBRE/2014 MARZO/2015

Destornilladores: Para el ensamblaje de todos los elementos


en el chasis y en las salidas PWM de la placa de control.

Pelacables: para facilitar la tarea de pelar los terminales de


los cables.

Tornillo de banco: Para la sujecin de piezas en su


mecanizado adems de la realizacin de dobleces en los
herrajes de los servos.

Tester: Para la comprobacin del conexionado y verificacin


tanto de la polaridad como de la continuidad de las lneas
soldadas.

Reglas: Para tomar medidas a todos los elementos del robot


y posteriormente reproducirlos.

1.6.2 Descripcin de los componentes del diseo.


CHASIS
El chasis es una parte importante del robot ya que debemos
recordar que es el esqueleto del mismo. Por ello debemos de
tener en cuenta una serie de caractersticas que debe cumplir a
la hora de realizar la eleccin del material con el que ser
confeccionado:

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL


PERODO ACADMICO: OCTUBRE/2014 MARZO/2015

Debe ser lo suficientemente robusto como para contener el


peso de todos los componentes, sin sufrir ningn esfuerzo
excesivo en cuanto a fuerzas aplicadas se refiere.

Debe ser capaz de soportar pequeos impactos producidos


por posibles colisiones en sus desplazamientos, sin sufrir
deformaciones.

Debe ser lo suficientemente maleable para facilitarnos el


proceso de colocacin de los diferentes elementos.

Debe ser lo suficientemente liviano como para poder ser


arrastrado por los componentes motrices del robot (motores,
ruedas) sin que estos sufran un esfuerzo excesivo y por lo
tanto un desgaste energtico mayor.

Debe estar realizado con un material que no requiera


excesiva dificultad para su produccin y por lo tanto no nos
provoque un coste econmico demasiado elevado.

PLACA DE CONTROL
El cerebro del robot. Esta parte es la ms importante de
nuestro robot, puesto que es la encargada de interpretar y
administrar
toda la informacin recibida por los sensores
instalados y adems es capaz a posteriori de ejecutar las

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL


PERODO ACADMICO: OCTUBRE/2014 MARZO/2015

rdenes para las que ha sido programada de una forma rpida y


eficiente.
A la hora de su eleccin nos hemos basado en dos condiciones
que eran fundamentales para el desarrollo del robot, una era el
lenguaje de programacin que utilizara, que preferamos que
fuera un lenguaje maquina estandarizado en el mundo de la
programacin, y que por lo tanto no nos dificultara
excesivamente la creacin y el diseo de los programas en los
que se iba a basar el robot, para la correcta finalizacin de las
funciones designadas.
Por otra parte deba tener el nmero suficiente de entradas y
salidas, tanto analgicas como digitales para poder comandar
todos los sensores y componentes motrices con los que cuenta el
robot.
Una vez analizados detenidamente todos estos detalles y
observando el material que disponamos comenzamos a
estudiar las placas controladoras de Arduino que utilizan un
entorno de programacin que est libre de licencias, y por lo
tanto es accesible y gratuito para todo el mundo, y adems dicho
entorno (ARDUINO) utiliza un lenguaje parecido al C, para la
programacin del mismo, que es un lenguaje conocido en el
mundo de la programacin y que nos ha permitido alcanzar la
totalidad de los propsitos de este proyecto.

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL


PERODO ACADMICO: OCTUBRE/2014 MARZO/2015

MOTORES DC

Tras analizar el peso de todo el conjunto y determinar el voltaje de


entrada de los motores decidimos montar motores con una
reduccin de 30:1. Estos motores de corriente continua permiten
una fuerza de torsin de 0.4 Kg. /cm. DC Micro Metal de corriente
continua con reductora diseado y fabricado por Pololu para uso
en robtica. Nuestros Motores para Robtica son de alta calidad,
de dimensiones reducidas y con una reductora metlica que
reduce las revoluciones y aumenta la fuerza (troqu).

Especificaciones (Para 6V):

Dimensiones: 24 x 10 x 12 mm
Ratio de la reductora: 30:1
Dimetro del eje: 3,9mm (con ranura de
bloqueo)
Voltaje nominal: 6Vcc (puede funcionar
entre 3 a 9Vcc)
Velocidad de giro sin carga: 440rpm
Consumo sin carga: 40mA (Mx.: 360mA)
Peso: 10 gramos
Troqu: 0,4 kg-cm (mx.)

Aunque el motor soporte un amplio rango de voltajes, se


recomienda utilizarlo con 6V ya que con voltajes menores pierdes
bastante fuerza y con voltajes mayores puede afectar a la vida til
del motor.

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL


PERODO ACADMICO: OCTUBRE/2014 MARZO/2015

SENSOR SEGUIDOR DE LNEA.


El sensor seguidor de lneas es un mdulo electrnico de Pololu
que se coloca en la parte delantera e inferior del robot.
Est formado por
8 emisores y detectores de infrarrojos
separados 9,5 mm. entre s
de los cuales nosotros hemos
utilizado nicamente los cuatro pertenecientes a la parte central.
La funcin principal del seguidor de lneas es la de detectar
mediante los emisores y detectores de infrarrojos si debajo del
robot hay algn tipo de lnea. Si es as el robot sigue dicha lnea
intentando no perder su rastro. Si pierde el rastro, el robot debe
de intentar volver lo antes posible a la lnea para hacer el
recorrido.

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL


PERODO ACADMICO: OCTUBRE/2014 MARZO/2015

ALIMENTACIN.

Una pila elctrica o batera elctrica es el formato industrializado


y comercial de la celda galvnica o voltaica.
Es un dispositivo que convierte energa qumica en energa
elctrica por un proceso qumico transitorio, tras lo cual cesa su
actividad y han de renovarse sus elementos constituyentes,
puesto que sus caractersticas resultan alteradas durante el
mismo. Se trata de un generador primario. Esta energa resulta
accesible mediante dos terminales que tiene la pila, llamados
polos, electrodos o bornes. Uno de ellos es el polo negativo o
nodo y el otro es el polo positivo o ctodo.

Driver TB6612FNG
TB6612FNG: Buen driver, con l se logr una buena velocidad. Es
liviano, pequeo y tiene la funcin de freno. Cuando lo
instalamos conseguimos que la duracin de la batera pasara de
4 min a 13 min.

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL


PERODO ACADMICO: OCTUBRE/2014 MARZO/2015

1.7

DESARROLLO DEL PROYECTO

Para realizar el seguidor se tom en cuenta varios modelos que


podan ser ajustables a los en s, en nuestro caso, se buscaba
realizar, pero en mucho de los casos contaban con diferentes
componentes o tena una estructura muy compleja, por los que se
decidi la siguiente:

squema de conexin

Modelo seleccionado

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL


PERODO ACADMICO: OCTUBRE/2014 MARZO/2015

Las conexiones entre mdulos se hicieron con hilos de cobre


esmaltado. Lo que reduce el peso de forma considerable.

Y se tom mucho en cuenta la disposicin de las entradas, tanto


analgicas como digitales para su conexin y para la declaracin
de variables en a programacin en arduino.

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL


PERODO ACADMICO: OCTUBRE/2014 MARZO/2015

Un paso muy importante antes del ensamblaje de los sensores en


el chasis es su verificacin y funcionamiento, es decir que
verificamos que todos los sensores se encuentren censando para
haci obtener un ptimo desarrollo de seguidor, para lo cual fue de
vital importancia la importacin de su librera, la misma que es
distribuida por POLOLU en su pgina :

Librera de los sensores

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL


PERODO ACADMICO: OCTUBRE/2014 MARZO/2015

Cdigo de librera de los QTR para el censado

El control PID es un paso ms avanzado y demoroso en la creacin


del seguidor, en nuestra carrera se recibi un mdulo llamado
sistemas de control, en el cual conocamos un paso ms a
profundo hacerca de este tema.
En relacin a nuestro proyecto, el control PID es provisto a la seal
PWM que es controlada por el arduino por medio de variables:

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL


PERODO ACADMICO: OCTUBRE/2014 MARZO/2015

Las cuales nos indican el grado de oscilacin del seguidor, es decir


la respuesta al error en estado estable que tendr que ser
regulada por medio de las variables Kp y Kd de nuestro cdigo, los
cuales proporcionan la variacin de velocidad en nuestros
motores. (Ki es el error integral del sistema es de muy bajo valor y
casi no se tom en cuenta).

DESCRIPCIN DE LOS PARAMETROS USADOS.-

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL


PERODO ACADMICO: OCTUBRE/2014 MARZO/2015

Proporcional: Es la respuesta al error que se tiene que entregar


de manera inmediata, es decir, si nos encontramos en el centro de
la lnea, los motores, tendrn en respuesta una velocidad de igual
valor, si nos alejamos del centro, uno de los motores reducir su
velocidad y el otro aumentara.
Proporcional= (posicin) -punto_consigna

Integral: La integral es la sumatoria de los errores acumulados,


tiene como propsito el disminuir y eliminar el error en estado
estacionario provocado por el modo proporcional, en otras
palabras, si el robot velocista se encuentra mucho tiempo alejado
del centro (ocurre muchas veces cuando se encuentra en curvas),
la accin integral se ira acumulando e ira disminuyendo el error
hasta llegar al punto de consigna,
Integral=Integral + proporcional_pasado

Derivativo: Es la derivada del error, su funcion es mantener el


error al mnimo, corrigindolo proporcionalmente con la mismo
velocidad que se produce, de esta manera evita que el error se
incremente, en otra palabra, anticipara la accin evitando as las
oscilaciones excesivas.
Derivativo=proporcionalproporcional_pasado

CONSTANTES UTILIZADOS EN LA CODIFICACIN.Factor (Kp) - Es un valor constante utilizado para aumentar o


reducir el impacto de Proporcional. Si el valor es excesivo, el robot
tendera responder inestablemente, oscilando excesivamente. Si el
valor es muy pequeo, el robot responder muy lentamente,
tendiendo a salirse de las curvas
Factor (Ki) - Es un valor constante utilizado para aumentar o
reducir el impacto de la Integral, El valor excesivo de este
provocara oscilaciones excesivas, Un valor demasiado bajo no
causara impacto alguno.
Factor (Kd) - Es un valor constante utilizado para aumentar o
reducir el impacto de la Derivada. Un valor excesivo provocara una
sobre amortiguacin. Provocando inestabilidad.

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL


PERODO ACADMICO: OCTUBRE/2014 MARZO/2015

El PID (control proporcional, integral y derivativo) es un mecanismo


de control por realimentacin que calcula la desviacin o error
entre un valor medido y el valor que se quiere obtener (set point,
target position o punto de consigna), para aplicar una accin
correctora que ajuste el proceso.

En el caso del robot


velocista, el controlador
PID, (que es una rutina
basada
matemticamente),
procesara los datos del
sensor, y lo utiliza para
controlar
la
direccin
(velocidad de cada motor), para de esta forma mantenerlo en
curso.

Error - Llamamos a la diferencia entre la posicin objetivo y la


posicin medida del error. (Que tan lejos del punto de consigna se
encuentra el sensor, en nuestro caso el objetivo es tener los
sensores centrados).

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL


PERODO ACADMICO: OCTUBRE/2014 MARZO/2015

Grafica de tiempos en estabilizar en error

Para el control de los motores es de uso obligatorio el driver


TBN6612FNG, que en si es un puente H doble, cuya funcion
principal en recibir los pulsos PWM digitales del controlador arduino
y adecuarlos hacia los motores, que en nuestro caso son los moto
reductores 30:1, para control su velocidad tanto en lnea recta haci
como su velocidad en curvas.

Diagramas de conexin.

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL


PERODO ACADMICO: OCTUBRE/2014 MARZO/2015

Esto nos permitir manejar con una mayor eficiencia los motores, y
claro esta tambin ahrranos muchas lneas de cdigo. Es
importante destacar que sea cual sea el microcontrolador que
usemos, este tiene que contar con los suficientes pines de PWM.
Empezaremos por crear nuestra funcion para el manejo de un solo
motor, luego extenderemos para la cantidad de motores que
queramos.

Crearemos la funcion en el que se le dar un parmetro que


contendr signo, el signo nos servir para controlar la direccin
(positivo hacia adelante, negativo hacia atrs),

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL


PERODO ACADMICO: OCTUBRE/2014 MARZO/2015

Funcion de control de motores y funcion de frenado en curvas del seguidor

Finalmente el conjunto de monta en la figura ya preestablecida y


modelada, de tal manera que los componentes esten distribuidos

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL


PERODO ACADMICO: OCTUBRE/2014 MARZO/2015

simetricamente con el fin de equilibrar su peso y darle un poco de


estetica al proyecto final.

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL


PERODO ACADMICO: OCTUBRE/2014 MARZO/2015

1.8 ANNALISIS E INTERPRETACIN DE RESULTADO

El conocimiento y el uso de una metodologa es una manera que


permite planear
adecuadamente las actividades especializadas
implicadas en un proyecto de investigacin. El tiempo dedicado al
proyecto puede ser considerablemente reducido a travs de una
buena administracin y organizacin. Los equipos formados para
este proyecto fueron capaces de trabajar de forma conjunta y
manejar informacin especfica.
El robot mvil fue diseado de acuerdo a las especificaciones del
diseo, y el sistema de control puede conducir al robot de forma
autnoma mediante los circuitos diseados para realizar los
comandos especficos.
Para posteriores versiones del proyecto se aspira y se tiene ya en
mente la mejora en diseo, control, programacin, del proyecto
presentado, con el fin de participar en las jornadas de robtica que
se realizaran cada semestre en la facultad de Ingeniera en
Sistemas Electrnica

1.9 CONCLUSIONES.

El controlador ATMEGA328, basado en la plataforma Arduino,


ofrece prestaciones ptimas, tanto en su capacidad para la
conexin de sensores y actuadores, como en la facilidad de su
programacin, utilizando entornos y lenguajes de programacin
de alto nivel; adems de ser la placa controladora ms utilizada
en concursos de robtica en la actualidad.

A pesar de su alto nivel de programacin encontramos distintos


fallos producidos por la no correcta interpretacin del cdigo por
parte de la placa controladora de Arduino, as como otras
imperfecciones en la precisin de los movimientos de nuestros
robots.

Es necesaria una valoracin y estudio exhaustivo en cuanto


a
los
elementos
mecnicos
se refiere, tales
como
coeficientes de rozamiento de los neumticos, distancias entre
ejes, tensiones. Ms all de la funcin estructural de contener los
diversos elementos de los que consta el robot.

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL


PERODO ACADMICO: OCTUBRE/2014 MARZO/2015

Una vez concluido el proyecto han quedado distintos aspectos


por perfeccionar. Estos aspectos son los siguientes:

Mejorar la precisin.
Mejorar la velocidad de los robots.
Mejorar los programas para que se ejecuten en la
mayor brevedad, con la mayor sencillez posible y
realicen ms movimientos.

2. REFERENCIAS BIBLIOGRFICAS

http://www.Arduino.cc (Entorno Arduino)


http://www.freeduino.org/ (Entorno Arduino)
http://www.ladyada.net/learn/lcd/charlcd.html (Componentes y robtica en
general)
http://www.hispavila.com/3ds/atmega/pulsadores.html
(Componentes
y
robtica en general)
http://www.Pololu.com (Componentes y robtica en general)
http://www.adafruit.com/forums/viewtopic.php?f=8&t=14423 (Foro entorno
Arduino)
http://www.arduinobot.pbworks.com/w/page/10175779/Motores-DC
(Componentes Electrnicos)
http://www.wikipedia.org/ (Enciclopedia electrnica)

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL


PERODO ACADMICO: OCTUBRE/2014 MARZO/2015

ANEXOS.Cdigo de arduino.-

#include <QTRSensors.h>
#define NUM_SENSORS 5 //numero de sensores usados
#define TIMEOUT
2500 // tiempo de espera para dar resultado en uS
#define EMITTER_PIN 11 //pin led on
///////////////pines arduino a utilizar/////////////////////
#define led1

13

///////Pines para el control de motoreductores//////////


#define pin_pwm_i
6
#define motor_i
5
#define pin_pwm_d
9
#define motor_d
8
#define STBY

12

//////////////////////////
#define sensores

////// Pines para lectura de los sesores//////////


QTRSensorsRC
qtrrc((unsigned
char[])
A4 },NUM_SENSORS, TIMEOUT, EMITTER_PIN);

{A0,

A1,

/////variables para almacenar valores de sensores y posicion///////


unsigned int sensorValues[NUM_SENSORS];
unsigned int position=0;
//////// variables para el control PID /////////

A2,

A3,

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL


PERODO ACADMICO: OCTUBRE/2014 MARZO/2015

int derivativo=0, proporcional=0, integral=0; //parametros


int salida_pwm=0, proporcional_pasado=0;
//_______AQUI
CAMBIEREMOS
ROBOT_________________

LOS

PARAMETROS

DE

NUESTRO

int velocidad=50; //variable para la velocidad


float Kp=2;
float Kd=0.18;
float Ki=0.01; //constantes
//variables para el control del sensado//
int linea=0;
int flanco_color =0;
// aumenta o disminuye el valor del sensado
int en_linea=500;
//valor al que considerara si el sensor esta en linea
o no
int ruido= 50;
//valor al cual el valor del sensor es considerado como
ruido
//________________________________________________________________________________
void setup()
{
delay(50);
pinMode(motor_i, OUTPUT);//pin de direccion motor izquierdo
pinMode(motor_d, OUTPUT);//pin de direccion motor derecho
pinMode(13, OUTPUT); //led1
digitalWrite(13, HIGH);
for (int i = 0; i < 100; i++)
{

qtrrc.calibrate();

//funcion para calibrar sensores

}
digitalWrite(13, LOW);
Serial.begin(9600);
for (int i = 0; i < NUM_SENSORS; i++)
{
Serial.print(qtrrc.calibratedMinimumOn[i]);
Serial.print(' ');
}
Serial.println();
for (int i = 0; i < NUM_SENSORS; i++)
{
Serial.print(qtrrc.calibratedMaximumOn[i]);
Serial.print(' ');

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL


PERODO ACADMICO: OCTUBRE/2014 MARZO/2015

}
Serial.println();
Serial.println();
delay(1000);
}

void loop()
{
pid(linea, velocidad, Kp, Ki, Kd, flanco_color, en_linea, ruido);
Frenos_contorno(linea,700);
}

/////funciones para el control del Seguidor////


void pid(int linea, int velocidad, float Kp, float Ki, float Kd,int flanco_color,
int en_linea,int ruido)
{
position
=
qtrrc.readLine(sensorValues,
linea,flanco_color, en_linea, ruido );

QTR_EMITTERS_ON,

for (unsigned char i = 0; i < NUM_SENSORS; i++)


{
Serial.print(sensorValues[i]);
Serial.print('\t');
}
//Serial.println(); // uncomment this line if you are using raw values
Serial.println(position); // comment this line out if you are using raw
values
delay(250);
proporcional = (position) - 3500; // set point es 3500, asi obtenemos el
error
integral=integral + proporcional_pasado; //obteniendo integral
derivativo = (proporcional - proporcional_pasado); //obteniedo el
derivativo

if (integral>1000) integral=1000; //limitamos la integral para no causar


problemas
if (integral<-1000) integral=-1000;
salida_pwm =( proporcional * Kp ) + ( derivativo * Kd )+(integral*Ki);

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL


PERODO ACADMICO: OCTUBRE/2014 MARZO/2015

if ( salida_pwm > velocidad ) salida_pwm = velocidad; //limitamos la


salida de pwm
if ( salida_pwm < -velocidad ) salida_pwm = -velocidad;
if (salida_pwm < 0)
{
motores(velocidad+salida_pwm, velocidad);
}
if (salida_pwm >0)
{
motores(velocidad, velocidad-salida_pwm);
}
proporcional_pasado = proporcional;
}
void motores(int motor_izq, int motor_der)
{
digitalWrite(STBY, HIGH);
if ( motor_izq >= 0 ) //motor izquierdo
{
digitalWrite(motor_i,HIGH); // con high avanza
analogWrite(pin_pwm_i,255-motor_izq); //se controla de manera
//inversa para mayor control
}
else
{
digitalWrite(motor_i,LOW); //con low retrocede
motor_izq = motor_izq*(-1); //cambio de signo
analogWrite(pin_pwm_i,motor_izq);
}
if ( motor_der >= 0 ) //motor derecho
{
digitalWrite(motor_d,HIGH);
analogWrite(pin_pwm_d,255-motor_der);
}
else
{
digitalWrite(motor_d,LOW);
motor_der= motor_der*(-1);
analogWrite(pin_pwm_d,motor_der);
}
}
void Frenos_contorno(int tipo,int flanco_comparacion)
{

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA E INDUSTRIAL


PERODO ACADMICO: OCTUBRE/2014 MARZO/2015

digitalWrite(STBY, HIGH);
if(tipo==0)
{
if (position<=500) //si se salio por la parte derecha de la linea
{
motores(-80,90);

while(true)
{
qtrrc.read(sensorValues);
if
(
sensorValues[0]>flanco_comparacion
sensorValues[1]>flanco_comparacion )
{
break;
}
}
}

||

S-ar putea să vă placă și