Está en la página 1de 20

LABORATORIO II DE ELECTRÓNICA

ROBOT VELOCISTA
INFORME FINAL

Integrantes
Lina Fernanda Rodríguez Arango
Leonardo Amaury Fernández Rengifo

Universidad del Cauca


Marzo 2019
TABLA DE CONTENIDO

1. Introducción
2. Análisis de problemas y soluciones dadas
3. Manual del usuario
4. Diagrama final Pin a Pin
5. Análisis y resultado del plan de pruebas
6. Extensión y posibilidades de optimización del sistema
7. Recomendaciones y conclusiones
8. Bibliografía
9. Anexos

1. Introducción
El proyecto “robot velocista” consistió en una serie de investigaciones
respecto a funcionalidades de robótica básica, frente al uso de la cantidad de
hardware existentes y muchas posibilidades, se debió seleccionar por una que
nos brindará facilidad y portabilidad, que disminuya el tiempo el proceso de
la creación del velocista, y a la vez de seguridad y estabilidad.

Dado a la gran cantidad de factores externos se debe aceptar el hecho de que


no se tuvo consideración en alguno, sin embargo esto no fue impedimento
para la realización del proyecto de forma adecuada y tal cual fue planeado.

Este informe se basará en la explicación a detalle de cómo fue la elaboración


y el desarrollo de cada propósito en el que se dividió el proyecto, sustentando
errores cometidos y cómo poder establecer una forma adecuada de
solucionarnos frente a cada situación .

2. Análisis de problemas y soluciones dadas

Durante el desarrollo de la práctica se presentaron dos inconvenientes que retrasarían


el avance del proyecto de forma significativa si no se trataban a tiempo, el primer
problema está relacionado con un daño presentado en el driver y el segundo
problema fue debido a un mal funcionamiento en el sensor.

● Driver: Durante una sesión de laboratorio se debían hacer pruebas de motores


con el objetivo de que comprobar su rendimiento y posteriormente ver su
comportamiento en conjunto con el sensor, para la primera parte se obtuvo el
código proporcionado por arduino, se asignaron los pines respectivos y se
subió el código, el robot velocista debía simplemente hacer girar sus motores,
pero esto nunca pasó, fue necesario realizar un montaje con el arduino y el
driver para ubicar la fuente del problema y descartar así que el problema fuera
de los motores, en conjunto con el profesor se comprobó la asignación de
pines, se comprobó que el arduino siguiera funcionando y se determinó que la
causa del problema era que el driver estaba dañado. En horas extras a la sesión
de laboratorio se utilizó el mismo código con un arduino Mega, otros motores
que se sabían de antemano que funcionaban y el mismo driver y se comprobó
que el driver era el problema. La causa fue una mala conexión de este con el
chasis del velocista, ya que este tipo de Driver, al no ser original, no cuentan
con protección para sí mismo frente a una mala polarización o una sobrecarga,
por lo que están sobreexpuestos a ser dañados. La solución dada, debido a que
era un problema en el hardware, fue reemplazar el Driver por uno nuevo,
ajustar este para que se adaptará con el resto del robot y comprobar su
conexión al chasis para evitar que se presentará nuevamente el inconveniente
descrito. En la siguiente imagen se muestra las pruebas realizada en clases:

● Sensor y código: Como se ha explicado anteriormente en informes


posteriores y en la sustentación de proyectos, el sensor se encarga de medir
que tan oscuro y que tan clara se encuentra la superficie sobre la cual va a
estar y además de determinar cuál es el centro de la línea negra y de asignarle
a este un valor de 3500, también denominado valor de SetPoint. Todo esto se
determina durante la etapa de calibración. Cuando el velocista empieza a
recorrer la pista, el sensor toma muestras de la superficie cada 15 milésimas
de segundo, y le envía al arduino la información de lo detectado por cada
sensor así como la posición en que se encuentra sobre la línea, el arduino
utilizando un PID aplica una acción de control correctiva respecto a los
valores recibidos para poder central el velocista, es decir, que si la posición
detectada por el sensor es de 3500, el carro se encuentra en el centrado y no
hay que aplicar control pero si la posición detectada por el sensor está entre
6000 y 7000, el carro se está saliendo de la pista porque se encuentra en una
curva, por lo que aplica una acción de control y lo mantiene en pista. El
problema presentado fue debido a una mala lectura realizada por el sensor, ya
que estaba marcando entre 4500 y 5500 cuando debía marcar 7000 y estaba
marcando 7000 cuando debía marcar 3500, es decir, estaba tomando muy
erróneamente su set point, ocasionando que al colocar el carro sobre la pista,
ese simplemente girará sobre su propio eje. Después de realizar un análisis
minucioso en el código en compañía del profesor Diego Guzmán, se decidió
que lo mejor era reemplazar el sensor ya que el problema estaba en el
hardware únicamente. Se reemplazó el sensor y se realizaron pruebas con este
utilizando el monitor serial de arduino y efectivamente, este nuevo sensor
proporcionaba lecturas correctas tanto en el nivel de luz detectado por cada
sensor como en la posición del carro. Aún no sabemos la causa del daño en el
sensor, pero probablemente fue ocasionado cuando se transportaba todo el
sistema de un lugar a otro o a algún golpe recibido cuando se estaban haciendo
pruebas. El velocista fue transportado con mayor cuidado para evitar este
problema y conservar todos los elementos de manera correcta.
3. Manual del usuario

El robot velocista cuenta con un sistema básico de montaje, como primera


medida la batería debe ser cargada, para esto se cuenta con un cargador con
dos ramificaciones de conexiones en su exterior, una para alimentar al sistema
por completo con dos pines (negro y rojo) y otra para su debida carga, se debe
de escoger la ramificación que cuenta con 3 pines(azul, negro y rojo) y encaja
de forma adecuada sin dejar pines por fuera en el cargador, se debe tener en
cuenta que la batería no se debe dejar descargar por completo y su tiempo de
carga no puede superar los 40 minutos, esto para evitar el desgaste continuo
de sus celdas y así poder dar un uso más prolongado a uno de los elementos
del proyecto.

Como paso seguido debe ser conectada la bateria al chasis, para esto se cuenta
con dos pines que se encuentran al lado del switch con el cual podemos apagar
y prender el sistema.
A modo de advertencia: Debe asegurarse por completo que el pin que se
encuentra al lado del switch sea el cable rojo o en otras palabras el pin
positivo de la batería , de conectarse de forma inadecuada o polarizar
inversamente el circuito puede crear cortos dentro de este y problemas o
inconvenientes tales como quemar el driver, motores, el sensor frontal o
incluso tener repercusiones negativas dentro del arduino nano, se recomienda
tener siempre en cuenta esta advertencia para así evitar daños parciales o
totales dentro del robot velocista.

estas se salgan o se
Las llantas cuentan en sus rines
desacomoden, esto se hace con
con un sistema de seguridad
ayuda de una llave hexagonal
llamado “el prisionero ” el cual
tipo ALLEN .
asegura las llantas a los brazos
de los motores y así evitar que
Por último al encender el robot velocista de debe esperar de a 3 a 5 segundos,
luego oprimir el botón que se encuentra al costado del arduino nano, mover
de forma horizontal la parte frontal del robot donde se encuentran los sensores
para realizar la calibración , recuerde que todos deben tomar la línea negra y
lo blanco del suelo, luego de esto el arduino nano alumbrara 3 veces
indicando que está listo para empezar a andar, por último no deje obstáculos
en la pista, oprima el botón y el robot libremente empezará su recorrido.
4. Diagrama final Pin a Pin

No se realizaron modificaciones en el diagrama circuital debido a que el ya


implementado era adecuado para el sistema y se adecuaba al chasis adquirido
para el velocista. El diagrama se presenta a en la siguiente imagen:

Respecto al código de la aplicación, se realizaron modificaciones al código


anteriormente mostrado en el documento de diseño detallado, los cambios se
presentan a continuación:

El PID es el mecanismo de control que utiliza el velocista para mantenerse en


la pista, este se encarga de procesar los datos del sensor y utilizarlos para
controlar la dirección y así mantenerlo en curso. El PID utiliza 3 parámetros
que son proporcional, integral y derivativo y cada uno de estos tiene asociado

9
un factor: Kp, Ki y Kd, que son las constantes mostradas en el código las
cuales se modifican para optimizar el desempeño del velocista. Su función se
enseña a continuación:

Kp: Es un valor constante utilizado para aumentar o reducir el impacto de


Proporcional. Si el valor es excesivo, el robot tenderá a responder de forma
inestable, oscilando excesivamente. Si el valor es muy pequeño, el robot
responde muy lentamente, tendiendo a salirse de las curvas

Ki: Es un valor constante utilizado para aumentar o reducir el impacto del


Integral, Si Ki es demasiado grande, se presentaran oscilaciones excesivas, un
valor demasiado bajo no causará impacto alguno.

Kd: Es un valor constante utilizado para aumentar o reducir el impacto de la


Derivada. Un valor excesivo provocará una sobre amortiguación provocando
inestabilidad.

Se definieron nuevas variables a utilizar en la parte del control PID:

X: Es el error, el cual se obtiene a través del sensor.

Diferencial: Es la diferencia aplicada a cada uno de los motores.

10
Last_prop: último valor del proporcional, utilizado para calcular la
derivada del error.

Target: Set Point, somo se están utilizando 8 sensores, el setpoint es 3500.

t_ac y t_an: Es el tiempo acumulado y tiempo anterior.

h: Pasaran 10 milisegundos entre cada muestreo del sensor.

U: Esfuerzo de control, U=P+I+D.

Error, Error_ac, Error_an: El error es la diferencia entre la posición


objetivo y la posición medida del error, es decir, que tan lejos del set point se
encuentra el sensor, en nuestro caso el objetivo es tener los sensores
centrados variando la velocidad de los motores para esto.

11
La anterior imagen muestra el algoritmo de control realizado. Se guarda el tiempo
en milésimas de segundos en t_ac. Cuando el tiempo acumulado menos el tiempo
anterior supera el tiempo de muestreo se realiza se realiza una acción de control. Se
guarda la información obtenida desde los sensores en la variable X, más
específicamente, la posición. El error es 3500 - X, esto quiere decir que cuando el
sensor se encuentra directamente sobre la línea negra, es decir, sobre el valor de set
point que es igual a 3500, el error será 0. Pero si el sensor no se encuentra
directamente sobre la línea negra, X tendrá un valor diferente de 3500 y el error será
mayor que 0. El error siempre se encuentra en un rango entre -3500 y 3500, por lo
que se mapea para que tome valores entre -255 y 255. El nuevo error acumulado será
el error obtenido anteriormente conjunto al error acumulado. El esfuerzo de control
está dado por la ecuación mostrada en el código y se utiliza la función constrain para
que tome valores entre -40 y 40. Posteriormente se envía la señal de control hacia
los motores, a la velocidad máxima, la cual es igual a 40, se le resta o suma el
esfuerzo, haciendo que un motor se detenga y el otro giré el doble de rápido y así se
mantenga en curso.

12
La calibración es el paso previo que se debe realizar para obtener lecturas
correctas por parte de los sensores al momento de hacer el recorrido. Se
presiona el pulsador y cuando empiece el led a parpadear de forma repetida es
porque se está haciendo la calibración, cuando termina de parpadear es porque
este proceso ha terminado. La calibración inicia con el ciclo for y se utiliza
una función propia de la librería (Esta parte del código se había explicado en
el informe de diseño detallado).

13
Finalmente el Led del arduino parpadea tres veces para indicar que está listo
y queda a la espera de que se presione el pulsador para empezar a andar.

5. Análisis y resultado del plan de pruebas

Desde un el principio de la culminación en hardware del proyecto se


establecen pruebas que sigan verificando todas estas condiciones, tales como
evidenciar el voltaje en la de batería, el movimiento correcto de las llantas ,
las lecturas adecuadas del sensor, y la velocidad y estabilidad de las llantas,
esto con fin de encontrar errores que supusieron dificultades no planeadas
dentro de este.
Aun así se presentaron inconvenientes que negaron la continuación regular
en el tiempo establecido del proyecto, dada esta dificultad fue inevitable
encontrar brechas dentro del correcto planteamiento de seguimiento .

En los primeros resultados existieron pruebas de muchas falencias las cuales


hicieron que fuese necesario una reevaluación de estado dentro de los
módulos hardware y software. Al culminar esta sección del avance, los
resultados fueron positivos, y como último se debió integrar una sección de
corregimiento de variables dentro del software. Esto con el fin de evitar las
oscilaciones cortas o muy prolongadas, velocidades adecuadas en línea recta
o en curvas, velocidad de la captación del sensor y por último el
funcionamiento más recomendable en las variables para un funcionamiento
más estable y un mayor rendimiento.

Frente al inconveniente más evidente que fue la remisión de datos acertados


por parte del sensor de línea se tomó la decisión de reemplazar por uno
nuevo para descartar errores software y así confirmar este planteamiento.

14
La imagen anterior.se expone como evidencia de un funcionamiento más
controlado y estable del robot velocista .

15
6. Extensión y posibilidades de optimización del sistema

El sistema aún se puede optimizar mucho más, debido a que como se


evidencia en el vídeo, el robot oscila bastante y en determinadas ocasiones
toma mal ciertas curvas, como se vió en la competencia. Para corregir esto es
necesario continuar realizando ensayos mientras se modifican las constantes
y la velocidad del velocista, ya que los motores permiten que corra incluso
más rápido. Una forma de agilizar este proceso es añadir al velocista un
módulo bluetooth como se muestra en la siguiente imagen, ya que este permite
variar las constantes Ki, Kp y Kd incluso mientras el robot se encuentra en
movimiento e incluso facilita la parte de la sincronización del sensor, ya que
permite que el robot la haga de manera automática. Respecto a las
proyecciones del sistema, se espera que una vez encontradas las constantes de
control adecuadas para una velocidad mayor a la actual, el robot velocista sea
capaz de recorrer la pista de manera óptima, en poco tiempo, sin oscilaciones
y con buen agarre en las curvas.

La manera de optimizar el código sería modificar las constantes Ki, Kp y Kd


según la posición del sensor utilizando un if y un else, es decir, cuando la
posición es igual a 3500, el carro está en una línea recta, por lo que puede
andar más rápido y no se necesita un control muy grande, por lo que en este

16
caso sería asignar unas constantes (disminuir el Kp y aumentar en Kd) de tal
forma que permitan al robot andar a gran velocidad con cero oscilaciones,
pero si la posición es diferente al set point, se necesita hacer un buen control
debido a que el velocista estaría atravesando una curva, por lo que se deben
asignar las constantes (Aumentar el Kp y disminuir el Kd) de tal forma que el
robot sea capaz de tomar las curvas de manera eficiente manteniéndose
siempre sobre la línea.

7. Recomendaciones y conclusiones
Como primera recomendación se acierta que se debe ser realista y aceptar que
hay muchos tropiezos que no se pueden evitar, para así afrontarlo de la mejor
manera y no sucumbir ante algo que no debe ser un factor clave del proyecto.
Otra recomendación es el uso frecuente de medidas de rectificación, esto
garantiza menos percances que alteren el correcto tiempo de avance.
Se concluye del proyecto muchos resultados satisfactorios, que articulan y
verifican la efectividad del método de realización de este sin tener en cuenta
claro el tiempo de elaboración de este y las situaciones del momento, También
como una segunda conclusión encontramos lo necesario que es poder tener
la capacidad de poner en práctica el conocimiento adquirido, para afianzarlo
y verificar la calidad de este, como incentivo del aprendizaje.

17
8. Bibliografía

(1) P. Corporatlon, «Pololu Robotics & Electronics,» 2001- 2019. (En


linea). Available: https://www.pololu.com/product/999. [Último acceso: 22
Febrero 2019).

[2] TOSHIBA, 9 Mayo 2008. [En línea). Available:


https://www.pololu.com/file/0186/TB6612FNG.pdf. (Último acceso: 23
Febrero 2019].

[3] Farnell, «Farnell Datasheets,» [En línea]. Available:


http://www.farnell.com/datasheets/1682238.pdf. (Último acceso: 22 Febrero
2019].

(4) Tinchorton, «PatagoniaTec,» 2015. (En linea). Available:


https://saber.patagoniatec.com/2014/12/arduino-nano-328-arduino-atmega-
clon-compatible-arduino-argentina-ptect [Último acceso: 21 Febrero 2019].

[5] Ramfe, «Lslo Transmitec,» [En linea]. Available:


http://lab.transmitec.com/wp-content/uploads/2014/05/CATALOGO-DE-
SELECCI%C3%93N-RAMFE.pdf. (Último acceso: 22 Febrero 2019).

18
[6] aSew Eurodrive,» 2019. (En línea]. Available: https://www.sew-
eurodrive.es/productos/motorreductores/getriebemotoren.html. [Último
acceso: 22 Febrero 2019).

[7) «Tdhobbies.co,» (En linea). Available: http://tdhobbies.co/bateria-lipo-


500mah-74v/291.html. [Último acceso: 21 Febrero 2019).

[8] «Aprendiendo fácil electrónica,» 2011. [En línea). Available:


http://aprendiendofacilelectronlca.blogspot.com/. [Último acceso: 22
Febrero 2019].

[9) «Aprendiendo fácil electrónica,» 2011. (En lineal. Available:


http://aprendiendofacilelectronica.blogspot.com/2016/03/robot-velocista-
gtr8a-parte-i-materiales.html. [Último acceso: 22 Febrero 2019].

[10) «DriMix 4ics – Mobile Autonomous Bartending,»Florida


Conference on Recent Advances in Robotics» 2012. (En lineal. Available:
https://pdfs.semanticscholar.org/3e87/ac15e37be47e357e5b3145a0f25ec237
0d76.pdf9].

[11) «Murcia H., Valenciano J.D., Tapiero Y. (2018) Development of a Line-Follower


Robot for Robotic Competition Purposes. In: Figueroa-García J., Villegas J., Orozco-
Arroyave J., Maya Duque P. (eds) –Bartending,»Applied Computer Sciences in
Engineering. WEA 2018. Communications in Computer and Information Science, vol
916. Springer, Cham- Mobile Autonomous » 2012. (En lineal. Available:

https://pdfs.semanticscholar.org/3e87/ac15e37be47e357e5b3145a0f25ec237
0d76.pdf9].

10. Anexos
Se anexa como material complementario los siguientes archivos:

19
● prueba.gif: Gif realizado el dia de la sesión de pruebas.

● Foto Velocista.png: Montaje finalizado del robot velocista

● Velocista.ino: Código implementado en arduino

● Prueba definitiva velocista: Vídeo de la prueba realizada el día antes


de la competencia

● LabII.pptx: Diapositivas utilizadas en la sesión de sustentación

Todos estos archivos ubicados en la carpeta Velocista-Lina_Rodriguez-


Leonardo_Fernandez.rar.

20

También podría gustarte