instituto superior tecnolÓgico vida nueva carrera
TRANSCRIPT
INSTITUTO SUPERIOR TECNOLÓGICO
VIDA NUEVA
CARRERA:
TECNOLOGÍA EN ELECTROMECÁNICA
DISEÑO Y CONSTRUCCIÓN DE UN ROBOT RESUELVE LABERINTOS
UTILIZANDO EL MÉTODO DE LA MANO DERECHA
MEDIANTE UN CONTROL PID
TRABAJO INTEGRADOR DE GRADO
PRESENTADO POR:
ALBARRASIN CAIZA BYRON DAVID
TUTOR:
ING. TOCA TRUJILO LUIS EDISON
QUITO: 2020
I
CESIÓN DE DERECHOS DE AUTOR
Yo, ALBARRASIN CAIZA BYRON DAVID portador/a de la cédula de ciudadanía
1721689378, facultado/a de la carrera TECNOLOGÍA EN ELECTROMECÁNICA, au-
tor/a de esta obra certifico y proveo al Instituto Superior Tecnológico Vida Nueva, usar
plenamente el contenido del informe con el tema DISEÑO Y CONSTRUCCIÓN DE UN
ROBOT RESUELVE LABERINTOS UTILIZANDO EL MÉTODO DE LA MANO DE-
RECHA MEDIANTE UN CONTROL PID, con el objeto de aportar y promover la lectura
e investigación, autorizando la publicación de mi proyecto de titulación en la colección
digital del repositorio institucional bajo la licencia de Creative Commons: Atribución-No
Comercial-Sin Derivadas.
En la ciudad de Quito, del mes de Noviembre del 2020.
_________________________________
ALBARRASIN CAIZA BYRON DAVID
C.C.0503775017
II
CERTIFICACIÓN
En mi calidad de Tutor del Proyecto: DISEÑO Y CONSTRUCCIÓN DE UN ROBOT RE-
SUELVE LABERINTOS UTILIZANDO EL MÉTODO DE LA MANO DERECHA
MEDIANTE UN CONTROL PID en la ciudad de Quito, presentado por el ciudadano AL-
BARRASIN CAIZA BYRON DAVID, para optar por el título de Tecnólogo en
Electromecánica, certifico, que dicho proyecto ha sido revisado en todas sus partes y con-
sidero que reúne los requisitos y méritos suficientes para ser sometido a la presentación
pública y evaluación por parte del tribunal examinador que se designe
En la ciudad de Quito, del mes de Noviembre del 2020.
----------------------------------
TUTOR:
ING. TOCA TUJILLO LUIS EDISON
III
APROBACIÓN DEL JURADO EXAMINADOR O TRIBUNAL
Los miembros del jurado examinador aprueban el informe de investigación, sobre el tema:
DISEÑO Y CONSTRUCCIÓN DE UN ROBOT RESUELVE LABERINTOS UTILI-
ZANDO EL MÉTODO DE LA MANO DERECHA MEDIANTE UN CONTROL PID en
la ciudad de Quito Del estudiante: Albarrasin Caiza Byron David de la Carrera en Tecno-
logía en Electromecánica
Para constancia firman:
……………………………….. ………………………………..
CI: CI:
……………………………….. ………………………………..
CI: CI:
IV
DECLARACIÓN DE AUTENTICIDAD
Yo, Albarrasin Caiza Byron David con cédula de ciudadanía 0503775017, estudiante del
Instituto Superior Tecnológico Vida Nueva, declaro que he realizado este trabajo de titula-
ción tomando en consideración citas bibliográficas que se nombran en este texto.
El Instituto Tecnológico Superior Vida Nueva puede utilizar este trabajo de titulación como
una ayuda bibliográfica.
_______________________
ALBARRASIN CAIZA BYRON DAVID
V
DEDICATORIA
El presente trabajo lo dedico a Dios quien ha sido principalmente mi guía y fortaleza para
llevar a cabo este proceso y así obtener uno de los anhelos más deseados
Con mucho cariño a mis padres, Alfredo Albarrasin, Silvia caiza que me dieron la vida, por
su amor, trabajo, sacrificio y sobre todo por estar conmigo en los momentos difíciles con
sus palabras de aliento y consejos que hicieron de mí una mejor persona gracias a ustedes
he logrado llegar a cumplir un sueño más porque inculcaron en mí el ejemplo de esfuerzo y
valentía, de no temer las adversidades.
A mis hermanos por su cariño y apoyo incondicional, durante todo este proceso, por estar
conmigo en todo momento gracias.
Finalmente quiero dedicar este trabajo a todas las personas que estuvieron a mi alrededor
apoyándome de una u otra manera, extendiéndome su mano en momentos difíciles y por el
amor brindado cada día además de haberme enseñado valores como la, solidaridad y gene-
rosidad.
VI
AGRADECIMIENTO
El presente trabajo de tesis primero me gustaría agradecerle a Dios por bendecirme para
llegar hasta donde he llegado y poder cumplir con uno de mis objetivos.
A mi familia por apoyarme en cada decisión e incentivarme día a día para cumplir con mis
sueños y por demostrarme que los valores que me inculcaron son muy importantes en cada
proceso de mi vida.
De igual manera agradecer a mi tutor de Tesis de Grado, Ing. Luis Toca por su visión crítica
de muchos aspectos de la vida, por su rectitud en su profesión como docente, por sus con-
sejos, que me ayudaron a formarme como persona y como profesional.
A mi gran amigo Steven Aguirre quien fue un apoyo incondicional durante la carrera.
Son muchas las personas que han formado parte de mi vida a las que me encantaría agrade-
cerles su amistad, consejos, apoyo, ánimo y compañía en los momentos más difíciles de mi
vida. Algunas están aquí conmigo y otras en mis recuerdos y en mi corazón, sin importar en
donde estén quiero darles las gracias por formar parte de mí, por todo lo que me han brin-
dado y por todas sus bendiciones.
VII
ÍNDICE
ÍNDICE .......................................................................................................................................................... vii
Índice de Figuras ............................................................................................................................................. ix
Índice de tablas ..................................................................................................................................................x
RESUMEN ...................................................................................................................................................... xi
ABSTRACT ................................................................................................................................................... xii
INTRODUCCIÓN ......................................................................................................................................... xiii
CAPÍTULO I .....................................................................................................................................................1
MARCO TEÓRICO ..........................................................................................................................................1
¿Qué es la robótica?.......................................................................................................................................1
Robótica de competencia ...............................................................................................................................2
Robot laberinto ..........................................................................................................................................2
Robot seguidor de línea .............................................................................................................................3
Robot sumo................................................................................................................................................3
Características de un robot laberinto en el País .............................................................................................4
Tipos de Robots laberintos ............................................................................................................................4
Micro Mouse .............................................................................................................................................4
Robot Pi3 ...................................................................................................................................................5
Algoritmos para robot laberinto ....................................................................................................................7
Seguidor de paredes ...................................................................................................................................7
Algoritmo de garantía ................................................................................................................................7
Cadena .......................................................................................................................................................8
Vuelta atrás recursiva ................................................................................................................................8
Algoritmo de Trémaux ..............................................................................................................................8
Estudios previos sobre los robots laberintos en las universidades en Quito-Ecuador ...................................8
Componentes electrónicos .............................................................................................................................9
Arduino Nano V3 ......................................................................................................................................9
Driver Tb6612FNG ................................................................................................................................. 10
Micromotor .............................................................................................................................................. 11
Sensor SHARP GP2Y0A02F7X ............................................................................................................. 12
Batería LiPo ............................................................................................................................................. 13
Controlador PID .......................................................................................................................................... 14
Señal de referencia y señal de error ......................................................................................................... 15
Acción de control Proporcional ............................................................................................................... 15
Acción de control Derivativa ................................................................................................................... 17
Acción de control Integral ....................................................................................................................... 19
Sintonización manual de un controlador PID .......................................................................................... 20
CAPÍTULO II.................................................................................................................................................. 22
VIII
METODOLOGÍA DEL PROYECTO INTEGRADOR- LA INVESTIGACIÓN ........................................... 22
Diseño metodológico ................................................................................................................................... 22
Variables y definición operacional .............................................................................................................. 22
Técnicas de recolección de datos ................................................................................................................. 22
CAPÍTULO III ................................................................................................................................................ 24
PROPUESTA .................................................................................................................................................. 24
Diseño electrónico y mecánico .................................................................................................................... 24
Circuito electrónico ................................................................................................................................. 24
Diseño de la PCB .................................................................................................................................... 25
Construcción de la PCB ........................................................................................................................... 26
Programación ............................................................................................................................................... 28
Declaración de pines................................................................................................................................ 28
Declaración de Variables PID ................................................................................................................. 29
Programación Void Setup ........................................................................................................................ 30
Programación de Void Loop.................................................................................................................... 30
Programación de la función de motores .................................................................................................. 31
CAPÍTULO IV ................................................................................................................................................ 33
RESULTADOS ........................................................................................................................................... 33
CONCLUSIONES ....................................................................................................................................... 34
RECOMENDACIONES ............................................................................................................................. 34
ANEXOS ......................................................................................................................................................... 35
Anexo 1: Diseño electrónico ....................................................................................................................... 35
Anexo 2: Diseño de la PCB ......................................................................................................................... 36
Anexo 3: Programa implementado .............................................................................................................. 37
Bibliografía ...................................................................................................................................................... 40
IX
Índice de Figuras
Figura 1. Robot laberinto _______________________________________________________________________________________ 2 Figura 2. Robot seguidor de línea ______________________________________________________________________________ 3 Figura 3. Robot seguidor de línea ______________________________________________________________________________ 3 Figura 4. Robot laberinto _______________________________________________________________________________________ 5 Figura 5. Robot Pi3 _____________________________________________________________________________________________ 7 Figura 6. Arduino Nano ________________________________________________________________________________________ 9 Figura 7. Driver TB6612FNG _________________________________________________________________________________ 10 Figura 8. Micromotor POLOLU ______________________________________________________________________________ 11 Figura 9. Sensor Sharp GP2Y0A02 ___________________________________________________________________________ 13 Figura 10. Bateria LiPo _______________________________________________________________________________________ 14 Figura 11. Controlador PID ___________________________________________________________________________________ 15 Figura 12. Control Proporcional ______________________________________________________________________________ 16 Figura 13. Control Derivativo _________________________________________________________________________________ 18 Figura 14. Control Integral ___________________________________________________________________________________ 20 Figura 15. Circuito de control del robot laberinto ____________________________________________________________ 25 Figura 16. PCB diseñada en ARES ____________________________________________________________________________ 26 Figura 17. PCB en vista en 3D ________________________________________________________________________________ 26 Figura 18. PCB vista posterior de las pistas __________________________________________________________________ 27 Figura 19. PCB vista frontal soldado los elementos __________________________________________________________ 27 Figura 20. PCB terminada ____________________________________________________________________________________ 28 Figura 21. Declaración de pines ______________________________________________________________________________ 29 Figura 22. Declaración de variables del PID _________________________________________________________________ 29 Figura 23. Declaración de variables del PID _________________________________________________________________ 30 Figura 24. Estado igual a uno _________________________________________________________________________________ 31 Figura 25. Estado igual a 0 ___________________________________________________________________________________ 31 Figura 26. Función para el manejo de motores _______________________________________________________________ 32 Figura 27. Circuito completo del robot laberinto _____________________________________________________________ 35 Figura 28. PCB completa del robot laberinto _________________________________________________________________ 36
X
Índice de tablas
Tabla 1: Características del Arduino Nano V3 _______________________________________________________________ 10 Tabla 2: Características del driver TB6612FNG _____________________________________________________________ 11 Tabla 3: Características del Motorreductor 30:1 _____________________________________________________________ 12 Tabla 4: Características del sensor Sharp ____________________________________________________________________ 13 Tabla 5: Características de la batería LiPo ___________________________________________________________________ 14
XI
RESUMEN
En el presente proyecto se presenta el diseño y construcción de un robot laberinto el cual
cumple con las características técnicas y estructurales de los concursos de Robótica tanto
Nacionales como Internacionales que se celebran año a año en todos los países. Para la
implementación de este tipo de robot se realizó como primera parte la investigación de los
tipos de robots y sus aplicaciones en la industria y en competencias de robótica. Bajo esta
investigación se realizó un diseño electrónico en el Software Proteus en el cual se obtuvo
un prototipo con los diferentes sensores y actuadores que le permitan desplazarse dentro de
los laberintos sin islas. Después se realizó una investigación de los diferentes algoritmos
para la solución de un laberinto. Con este análisis se programó el robot para que pueda
desplazarse utilizando el método de la mano derecha para solucionar un laberinto y poder
desplazarse sin chocarse con las paredes.
PALABRAS CLAVE:
Arduino
Control Pid
Variables
Motor
Sensor Sharp
XII
ABSTRACT
This project presents the design and construction of a labyrinth robot which complies with
the technical and structural characteristics of both the National and International Robotics
competitions that are held every year in all countries. For the implementation of this type of
robot, the first part of research was carried out on the types of robots and their applications
in industry and in robotics competitions. Under this investigation, an electronic design was
carried out in the Proteus Software in which a prototype was obtained with the different
sensors and actuators that allow it to move within the labyrinths without islands. Then an
investigation of the different algorithms for the solution of a maze was carried out. With this
analysis, the robot was programmed so that it can move using the right-hand method to solve
a maze and be able to move without colliding with walls.
KEYWORDS
Arduino
Pid control
Variables
Engine
Sharp sensor
XIII
INTRODUCCIÓN
En el presente proyecto se desarrollará un robot laberinto bajo las normativas de los concur-
sos de robótica Nacionales como Internacionales. Se tendrán en cuenta las dimensiones
permitidas en los concursos y a la vez los tipos de sensores y actuadores necesarios para el
funcionamiento del robot mediante el algoritmo de la mano derecha con un controlador PD.
Como primer capítulo se tendrá un análisis completo de la teoría que fundamenta la cons-
trucción de este tipo de robot además de hacer un análisis de los principales elementos
necesarios para la construcción como Arduino, sensores, drivers y motores.
En el segundo capítulo se presenta la metodología usada en la investigación y las diferentes
técnicas que se pueden aplicar en este tipo de proyectos.
En el tercer capítulo se realiza el análisis del diseño electrónico del robot además del diseño
de la PCB para el ensamblaje del robot. Después se describe el procedimiento para el en-
samblaje del robot y la programación del mismo. Aquí se detalla las funciones y el código
utilizado para la utilización del algoritmo de la mano derecha.
En el último capítulo se presentan los resultados, conclusiones y recomendaciones para la
creación de este tipo de robots de competencia.
Al final se presentan los anexos donde se puede encontrar el diagrama implementado y el
código completo del robot laberinto que funciona con el algoritmo de la mano derecha me-
diante el uso de un controlador PD.
1
CAPÍTULO I
MARCO TEÓRICO
¿Qué es la robótica?
Desde hace décadas los robots se han insertado en diferentes ámbitos de nuestra cultura y
sociedad. Los hemos visto en el cine, en épicas películas de robots como Terminator, Yo
Robot y por supuesto Transformers, que junto a Mazinger Z fueron aquellos legendarios
dibujos animados de robots japoneses que nos acompañaron en la infancia. El pasado era
ficción, y en el presente, nos encontramos rodeados de diferentes tipos de robots que nos
ofrecen un futuro apasionante. (Zuñiga, 2017)
La implantación de robots en prácticamente todos los ámbitos de la sociedad está avanzando
vertiginosamente. Un selecto grupo de países lideran la instalación de robots a nivel mun-
dial, y son Estados Unidos, China, Japón, Corea del Sur y Alemania.
Su principal objetivo es abaratar los costes de producción, y aunque hasta hace pocos años,
únicamente los veíamos en el sector industrial automatizando puestos de trabajo, ahora tam-
bién disfrutamos de los robots en hoteles, bares, bancos, consultas médicas, ejerciendo de
policías o en catástrofes naturales.
Antes de profundizar con la información más técnica, desde Revista de Robots queremos
resolver el significado de algunas preguntas que no son tan sencillas para el amplio público,
como por ejemplo: (Zuñiga, 2017)
Definición de qué es la robótica y significado de qué es un robot
Para qué sirve un robot en la actualidad
El origen y el idioma del nombre de robot
2
La Historia de los primeros robots
Tecnología que se emplea para su funcionamiento
Modelos y tipos de robots que existen
Dónde se utiliza la robótica en la actualidad y ejemplos
Robótica de competencia
Actualmente existen diferentes eventos que se están volviendo muy populares en varios
países, las competencias de robots en diversas categorías. Una de las competencias más
populares son las guerras de robots (war robots) para robots de tamaño grande, y para robots
de menor tamaño se pueden encontrar categorías como robots velocistas, robots sumo y
robots resuelve laberintos. A continuación, se mostrará una descripción de los tipos de ro-
bots de competencia más utilizados en el País.
Robot laberinto
En esta categoría, el prototipo es autónomo y debe enfrentarse a la tarea de salir de un labe-
rinto sin islas. El robot se lo ubica en la entrada del laberinto y este debe salir del mismo sin
tocar las paredes y debe ser capaz de salir en el otro extremo en el menor tiempo posible.
En la siguiente figura se muestra una imagen de la construcción de un robot laberinto.
Figura 1. Robot laberinto
Fuente: Pinterest
3
Robot seguidor de línea
La tarea del robot es seguir una línea negra en un fondo blanco de tal forma que no se salga
de la pista en todo su recorrido, el ganador de la competencia es el robot que atraviesa la
pista en el menor tiempo posible. A continuación, se muestra un robot seguidor de línea en
una pista de competencia.
Figura 2. Robot seguidor de línea
Fuente: Pinterest
Robot sumo
Un sumo-bot es un robot móvil utilizado en combates, en donde dos robots tratan de empu-
jarse el uno al otro afuera del círculo de combate, evitando que el también deje el círculo
antes que su oponente, es un deporte similar a la lucha de sumos, de origen japonés de ahí
viniendo el nombre de Sumo-bot. A continuación se muestra un robot sumo en competencia.
(Zumobot, 2019)
Figura 3. Robot seguidor de línea
Fuente: Pinterest
4
Características de un robot laberinto en el País
Algunos de los requerimientos y restricciones de los prototipos son:
El robot no podrá tener dimensiones de largo y anchos mayores a 15 cm y altura de 20 cm,
El robot no puede expandir sus dimensiones hacia ninguna dirección durante la competencia
y no existe restricciones de peso.
La fuente de energía para alimentar los circuitos eléctricos de control y los motores del
robot será interna, considerándose cualquier tipo de baterías de corriente continua.
El robot no puede tener ningún tipo de control externo, es decir, el robot tiene que ser
totalmente autónomo.
Se permite cualquier tipo de sensores para el sistema de navegación del robot, queda prohi-
bido el uso de switches, fines de carrera u otros mecanismos de detección por contacto, por
lo que el robot durante la resolución del laberinto no puede topar las paredes, solamente las
ruedas pueden estar en contacto sobre la pista, el robot no puede dejar marcas o indicios del
camino recorrido.
Queda prohibido el uso de robots enteramente comerciales, sin embargo, se puede utilizar
tarjetas de desarrollo como partes del robot.
Tipos de Robots laberintos
Entre los tipos de robot laberintos existentes en el mercado existe un sin número de prototi-
pos a continuación se detallan dos de los más importantes robots tipo micro Mouse y los
Robots comerciales Pololu.
Micro Mouse
Según Nuñez (2018) el Micromouse es un pequeño robot autónomo construido para resolver
un laberinto. El primer registro del problema “Ratón versus laberinto” puede ser encontrado
en 1950. Este fue presentado por Cloude Shannon, quien construyó la primera máquina para
resolver un laberinto. La competencia de Micromouse comenzó en los 70’s, en donde los
robots fueron puestos a prueba en comparación al desempeño de otros robots. El ratón es
5
construido para resolver autónomamente un laberinto con el objetivo de llegar al centro de
éste, partiendo desde una de las esquinas del laberinto. A través de sus algoritmos de pro-
gramación y configuración, el Micromouse debe ser capaz de almacenar en memoria el
laberinto, su posición dentro de este, grabar su recorrido por el mismo y optimizar la ruta en
el tiempo para resolverlo.
El Micromouse es un robot móvil que integra las necesidades y características mecánicas
de una plataforma móvil (velocidad, giro sincronizado, entre otras), la capacidad sensorial
para el reconocimiento del entorno y la habilidad de interactuar con éste por medio de in-
formación digitalizada y codificada. El robot usa esa característica para cumplir con el
objetivo de solucionar un laberinto. (Nuñes , Cardenas , & Ramirez , 2018)
El Micromouse es un desarrollo típico del área de robótica con requerimientos dinámicos
(velocidad, giros, entre otros), su diseño incluye técnicas de construcción para el hardware
y software e implementar métodos para interpretar e interactuar con su entorno. Pensando
en la posibilidad de facilitar la construcción de plataformas como el Micromouse para pro-
mover la generación de desarrollo de conocimiento en el área de la robótica. (Nuñes ,
Cardenas , & Ramirez , 2018) A continuación, se muestra una imagen de un robot Micro
mouse.
Figura 4. Robot laberinto
Fuente: Nuñez (2018)
Robot Pi3
El robot Pololu 3pi es una plataforma móvil completa y de alto rendimiento que cuenta con
dos motor reductores micro metálicos, cinco sensores de reflectancia, una pantalla LCD de
6
8 × 2 caracteres, un zumbador y tres botones de usuario, todos conectados a un microcon-
trolador ATmega328 AVR programable en C. Capaz de alcanzar velocidades superiores a
3 pies por segundo, 3pi es un gran primer robot para principiantes ambiciosos y un segundo
robot perfecto para aquellos que buscan pasar de robots principiantes no programables o
más lentos. (Pololu, 2017)
El robot 3pi está diseñado para sobresalir en competencias de seguimiento de líneas y reso-
lución de laberintos. Tiene un tamaño pequeño (9,5 cm / 3,7 "de diámetro, 83 g / 2,9 oz sin
pilas) y solo necesita cuatro pilas AAA (no incluidas), mientras que un sistema de alimen-
tación único hace funcionar los motores a 9,25 V constantes independientemente de la carga
de la batería. El voltaje regulado permite que el 3pi alcance velocidades de hasta 100 cm /
segundo mientras realiza giros y giros precisos que no varían con el voltaje de la batería.
(Pololu, 2017)
El robot 3pi es una gran plataforma para que las personas con experiencia en programación
C aprendan robótica, y es un entorno divertido para que los principiantes ambiciosos apren-
dan programación C. En su corazón se encuentra un microcontrolador ATmega328P AVR
de Microchip (anteriormente Atmel) que funciona a 20 MHz y cuenta con 32 KB de memo-
ria de programa flash, 2 KB de RAM y 1 KB de memoria EEPROM persistente. El popular
y gratuito compilador GNU C / C ++ funciona perfectamente con 3pi, Atmel Studio propor-
ciona un entorno de desarrollo cómodo y un extenso conjunto de bibliotecas proporcionadas
por Pololu hace que la interfaz con todo el hardware integrado sea muy fácil. El 3pi también
es compatible con la popular plataforma de desarrollo Arduino. Proporcionamos una serie
de programas de muestra para mostrar cómo utilizar los distintos componentes de 3pi, así
como cómo realizar comportamientos más complejos, como el seguimiento de líneas y la
resolución de laberintos. (Pololu, 2017)
7
Figura 5. Robot Pi3
Fuente: Pololu
Algoritmos para robot laberinto
Un algoritmo para un robot laberinto es un programa o algoritmo que se ejecuta dentro de
su micro controlador el cual permite desplazarse dentro del laberinto sin golpear las paredes
permitiéndole salir en el menor tiempo posible. A continuación, se detallan los principales
algoritmos utilizados para solucionar un laberinto.
Seguidor de paredes
Se trata de un algoritmo para resolver laberintos simples. Consiste en seguir paralelo a una
pared y si se llega a una intersección girar siempre hacia el mismo lado, izquierda o derecha,
pero siempre hacia el mismo. Lógicamente puede no encontrarse el camino más corto. Este
método no funcionará cuando el objetivo del laberinto está en el centro y hay un circuito
cerrado rodeándolo, ya que es muy probable que vuelva al punto de origen sin llegar al
centro. (Jainer, 2020)
Algoritmo de garantía
Es una versión modificada del seguidor de paredes pero que es capaz de saltar entre islas
resolviendo laberintos que el seguidor de paredes no puede resolver. Garantiza la resolución
desde cualquier comienzo desde el perímetro hasta el objetivo en el centro, pero no es capaz
de hacerlo al revés. No necesita marcar o recordar los lugares por los que ha pasado, pero si
contar los giros que hace a derecha o izquierda, de manera que pueda saber que se encuentra
en una isla y pueda saltar a otra zona en la dirección elegida como preferente. (Jainer, 2020)
8
Cadena
Trata al laberinto como muchos pequeños laberintos encadenados y los resuelve en secuen-
cia. En base utiliza el algoritmo de garantía y por lo tanto el seguidor de paredes. Aunque
puede no encontrar el camino más corto sí que trata de acortarlo ya que compara caminos
alternativos y analiza si ya se ha pasado por un punto o no. (Jainer, 2020)
Vuelta atrás recursiva
Se trata de que el robot resuelve laberintos y debe mapear en memoria las zonas por las que
va pasando. Puede explorar en las cuatro direcciones con la condición de que si ya ha pasado
por un camino evita pasar de nuevo. Siempre encuentra la solución aunque no sea la más
corta. (Jainer, 2020)
Algoritmo de Trémaux
Planteado por el ingeniero francés Charles Trémaux para resolver por personas en el interior
de un laberinto. Es muy similar al método de la vuelta atrás recursiva y hay que seguir las
siguientes normas: no seguir el mismo camino dos veces, tomar cualquier camino si se llega
a una intersección nueva, si un camino nuevo lleva a una intersección conocida o a un ca-
llejón sin salida volver al inicio del camino y, por último, si un camino viejo lleva a una
intersección vieja seguir un camino nuevo, y si no lo hay seguir cualquiera. Siempre resuelve
el laberinto y si se deja al robot en el interior de un laberinto siempre encuentra la salida.
(Jainer, 2020)
Estudios previos sobre los robots laberintos en las universidades en Quito-Ecuador
En nuestro medio algunas de las universidades más importantes de nuestro País han desa-
rrollado investigación en el desarrollo de estos tipos de robots para la participación dentro
de los concursos de robótica Nacionales ya que estos permiten mejorar los conocimientos
tecnológicos y poner en práctica todo lo aprendido dentro de la carrera.
Según Torres (2019) A lo largo de los años, se han desarrollado diferentes técnicas y algo-
ritmos para la resolución del laberinto, estos van desde los más simples; como el algoritmo
de la mano izquierda, hasta los más complejos; como el algoritmo Flood Fill. Estas técnicas
9
se han ido desarrollando y aplicando en diferentes áreas de investigación, siendo una de
estas la robótica recreacional. A su vez, en dicha área, estos algoritmos son aprovechadas
para obtener los mejores resultados en cuanto al tiempo y distancia del recorrido.
Componentes electrónicos
Los componentes electrónicos son la parte más importante de cualquier tipo de robot ya que
estos permiten al robot tener un sistema principal el cual tendrá el algoritmo para el funcio-
namiento y desarrollo de sus tareas mediante la adquisición de datos de sus sensores que
permitirán el manejo de los actuadores. Todos estos elementos permitirán al robot realizar
la tarea para la cual fue creado permitiendo tomar sus propias decisiones.
Arduino Nano V3
El Arduino Nano es una pequeña y completa placa basada en el ATmega328 (Arduino Nano
3.0) o el ATmega168 en sus versiones anteriores (Arduino Nano 2.x) que se usa conectán-
dose a una protoboard. Tiene más o menos la misma funcionalidad que el Arduino
Duemilanove, pero con una presentación diferente. No posee conector para alimentación
externa, y funciona con un cable USB Mini-B. (Electronilab, 2020)
Figura 6. Arduino Nano
Fuente: Arduino
10
Tabla 1: Características del Arduino Nano V3
Microcontrolador ATmega328
Arquitectura AVR
Tensión de funcionamiento 5 V
SRAM 2 KB
Velocidad de reloj 16 MHz
Pines analógicos IN 8
EEPROM 1 KB
Corriente CC por pines de E / S 40 mA (pines de E / S)
Voltaje de entrada 7-12 V
Pines de E / S digitales 22 (6 de los cuales son PWM)
Salida PWM 6
Tamaño de PCB 18 x 45 mm
Peso 7 g
Fuente: Elaboración propia
Driver Tb6612FNG
El TB6612FNG es un controlador (driver) de motores que nos permite manejar dos motores
de corriente continua desde Arduino, variando tanto la velocidad como el sentido de giro.
El TB6612FNG puede ser considerado una versión mejorada del L298N. Al igual que esté,
internamente está formado por dos puentes-H, junto con la electrónica necesaria para sim-
plificar su uso, y eliminar posibles cortocircuito por errores de uso. (Llamas, 2016)
Sin embargo, en el caso del TB6612FNG los puentes-H están formados por transistores
MOSFET, en lugar de transistores BJT como en el L298N. Esto permite que el TB6612FNG
tenga mejor eficiencia y menores dimensiones que el L298N. (Llamas, 2016)
El TB6612FNG también permite controlar intensidades de corriente superiores, siendo ca-
paz de suministrar 1.2A por canal de forma continua, y 3.2A de pico. Recordar que el L298N
tiene una intensidad máxima teórica de 2A, pero las pérdidas hace que en la práctica sólo
pueda suministrar 0.8-1A. (Llamas, 2016)
Figura 7. Driver TB6612FNG
Fuente: Breakout
11
Tabla 2: Características del driver TB6612FNG
Controlador de motor Dual tipo Puente H Puede conducir dos motores de CD o un motor paso a paso bipolar Tensión recomendada del motor (VMOT): 4.5 V a 13.5 Voltaje de alimentación (VCC): 2.7 V a 5.5 V Máximo de corriente de salida: 3 A por canal Corriente de salida continua: 1 A por canal Frecuencia máxima de PWM: 100 kHz Circuito de apagado térmico incorporado
Fuente: Elaboración propia
Micromotor
Micro motorreductores de metal con una sección transversal que mide solo 10 × 12 mm
(0,39 ″ × 0,47 ″), estos pequeños motorreductores de CC con escobillas están disponibles
en una amplia gama de relaciones de engranajes, desde 5: 1 hasta 1000: 1, y con cinco
motores diferentes: alto motores de 6 V de potencia (HP), media (MP) y baja (LP) con
escobillas de metales preciosos, y motores de alta potencia de 6 V y 12 V con escobillas de
carbón de mayor duración (HPCB). Con la excepción de las versiones de relación de trans-
misión de 1000: 1, todos los motorreductores de micro-metal tienen las mismas dimensiones
físicas (aunque el tamaño del terminal y la separación en las versiones HPCB difieren lige-
ramente de las otras versiones), por lo que generalmente es fácil cambiar uno. Versión por
otra si cambian los requisitos de diseño. Las versiones de estos motorreductores también
están disponibles con un eje de motor extendido opcional, que permite la adición de codifi-
cadores. (Pololu, 2019)
Figura 8. Micromotor POLOLU
Fuente: Pololu
12
Tabla 3: Características del Motorreductor 30:1
Nombre técnico Motorreductor
Marca Pololu
Tamaño: 24 x 10 x 12 mm
Diámetro del eje: 3 mm
Relación de engranajes: 51.45:1
Velocidad sin carga @ 6V: 100 rpm
Corriente sin carga @ 6V: 100 mA
Corriente con carga max @ 6V: 1600 mA
Torque @ 6V: 15 oz·in
Fuente: Elaboración propia
Sensor SHARP GP2Y0A02F7X
Un sensor SHARP es un sensor óptico capaz de medir la distancia entre él y un objeto, para
esto el sensor con la ayuda de un emisor infrarrojo y un receptor miden la distancia usando
triangulación.
El método de triangulación consiste en medir uno de los ángulos que forma el triángulo
emisor-objeto-receptor, el Receptor es un PSD (Position Sensitive Detector) que detecta el
punto de incidencia el cual depende del
La geometría del sensor y de su óptica es la que limita el rango del sensor. El término
SHARP (Agudo) es porque tiene un rango de visión muy reducido, esto porque la luz que
emite es puntual, lo que permite usar el sensor para escanear o mapear áreas, pero teniendo
en cuenta que objetos pequeños serán difíciles de detectar.
También podemos usar varios sensores SHARP para ampliar el rango de visión estos se
pueden poner en diferente dirección e incluso en la misma dirección siempre y cuando las
líneas de visión no queden muy cercanas.
Una ventaja adicional es que no son sensibles a la luz ambiental o el Sol, enemigo de los
sensores infrarrojos, un SHARP usa una luz infrarroja intermitente con una frecuencia de-
terminada, que en el receptor es filtrada y elimina cualquier otra fuente de luz diferente a la
frecuencia emitida. Ángulo y a su vez de la distancia del objeto. (Naylamp MEchatronics,
2018)
13
Figura 9. Sensor Sharp GP2Y0A02
Fuente: Mechatronics
Tabla 4: Características del sensor Sharp
Nombre técnico Sensor analógico de 4-30 cm
Marca / tipo SHARP GP2Y0A02
Voltaje 4.5-5.5
Amperaje 12mA
Tipo de salida Voltaje analógico
Diferencial de voltaje de salida en el rango de
distancia
2.3 ( Typical)
Periodo de actuación 16.5+/-4ms
Tipo 44.5mm *18.9mm*13.5mm
Peso: 3.5g
Nombre técnico Sensor analógico de 4-30 cm
Fuente: Elaboración propia
Batería LiPo
Las baterías LiPo (abreviatura de Litio y polímero) son baterías recargables compuesta en
ocasiones de múltiples celdas usadas en aplicaciones que requieren corrientes superiores a
1A con bajo peso y tamaño reducido, por ejemplo, sistemas de radio control, como aviones,
helicópteros, drones, cámaras, celulares, linternas, entre otros
La capacidad indica cuánta corriente puede suministrar la batería y se mide en miliamperios
por Hora (mAh). Es una manera de indicar la cantidad de carga medida en miliamperios que
puede suministrar la batería durante 1 hora antes de que se descargue completamente. Por
ejemplo, una batería LiPo de 1000 mAh sería completamente descargada en una hora con
una demanda de 1000 miliamperios. Si esta misma batería tenía una demanda de 500 mili-
amperios tomaría 2 horas para descargarla.
14
La tasa de descarga es la rapidez con que una batería puede ser descargada de forma segura.
Cuanto más rápido los iones fluyen del ánodo al cátodo indicará la velocidad de la descarga.
Una batería con una tasa de descarga de 10C significa que se descarga a un ritmo de 10
veces la capacidad de la batería, hay que tener en cuenta que la duración de la batería de-
pende de a qué ritmo las descargas.
Figura 10. Bateria LiPo
Fuente: Mechatronics
Tabla 5: Características de la batería LiPo
Capacidad 300mAh
Voltaje 7.4V
Peso 17g
Dimensiones 44x12x17mm
Tipo de Batería(s) / Pila(s) Litio-Polímero
Fuente: Elaboración propia
Controlador PID
Un controlador o regulador PID es un dispositivo que permite controlar un sistema en lazo
cerrado para que alcance el estado de salida deseado. El controlador PID está compuesto de
tres elementos que proporcionan una acción Proporcional, Integral y Derivativa. Estas tres
acciones son las que dan nombre al controlador PID.
15
Figura 11. Controlador PID
Fuente: Mechatronics
Señal de referencia y señal de error
La señal r(t) se denomina referencia e indica el estado que se desea conseguir en la salida
del sistema y(t). En un sistema de control de temperatura, la referencia r(t) será la tempera-
tura deseada y la salida y(t) será la temperatura real del sistema controlado.
Como puede verse en el esquema anterior, la entrada al controlador PID es la señal de error
e(t). Esta señal indica al controlador la diferencia que existe entre el estado que se quiere
conseguir o referencia r(t) y el estado real del sistema medido por el sensor, señal h(t).
Si la señal de error es grande, significa que el estado del sistema se encuentra lejos del estado
de referencia deseado. Si por el contrario el error es pequeño, significa que el sistema ha
alcanzado el estado deseado. (Tecno Recursos, 2020)
Acción de control Proporcional
Como su nombre indica, esta acción de control es proporcional a la señal de error (t). Inter-
namente la acción proporcional multiplica la señal de error por una constante Kp.
Esta acción de control intenta minimizar el error del sistema. Cuando el error es grande, la
acción de control es grande y tiende a minimizar este error. Aumentar la acción proporcio-
nal Kp tiene los siguientes efectos: (Tecno Recursos, 2020)
1. Aumenta la velocidad de respuesta del sistema.
2. Disminuye el error del sistema en régimen permanente.
16
3. Aumenta la inestabilidad del sistema.
Los dos primeros efectos son positivos y deseables. El último efecto es negativo y hay que
intentar minimizarlo. Por lo tanto, al aumentar la acción proporcional existe un punto de
equilibrio en el que se consigue suficiente rapidez de respuesta del sistema y reducción del
error, sin que el sistema sea demasiado inestable. Aumentar la acción proporcional más allá
de este punto producirá una inestabilidad indeseable. Reducir la acción proporcional, redu-
cirá la velocidad de respuesta del sistema y aumentará su error permanente. (Tecno
Recursos, 2020)
Figura 12. Control Proporcional
Fuente: Mechatronics
En los gráficos anteriores puede observarse el efecto de aumentar progresivamente la acción
proporcional en un control de posición. (Tecno Recursos, 2020)
Con una acción proporcional pequeña Kp=2, el sistema es lento, tardando 20 segun-
dos en alcanzar la posición deseada y el error de posición es grande, de 50
milímetros. A medida que se aumenta la acción proporcional, el error disminuye y
la velocidad de respuesta aumenta.
17
Con una ganancia proporcional Kp=20 el sistema es más rápido, tardando 12 segun-
dos en establecerse la posición permanente. Asimismo, el error se ha reducido hasta
una décima parte, solo 5 milímetros. También se puede observar un sobreimpulso
en la respuesta, y el comienzo de cierta inestabilidad.
Con ganancias mayores se consigue disminuir todavía más el error permanente, pero
la velocidad de respuesta no aumenta porque el sistema se vuelve tan inestable que
la posición tarda mucho en establecerse en su estado final.
En este ejemplo la acción proporcional se ha escalado de forma que sus valores se encuen-
tren entre 0 y 100.
Llegado a este punto, puede verse que la acción proporcional no puede mejorar más la res-
puesta del sistema. La mejor opción con Kp=20 presenta un sobreimpulso de unos 30
milímetros y un error permanente de 5 milímetros. Si se desea mejorar esta respuesta hay
que incorporar otro tipo de control. Aquí es donde el control derivativo puede ayudar a
mejorar la respuesta del sistema. (Pololu, 2019)
Acción de control Derivativa
Como su nombre indica, esta acción de control es proporcional a la derivada de la señal de
error (t). La derivada del error es otra forma de llamar a la "velocidad" del error. A conti-
nuación, se verá porqué es tan importante calcular esta velocidad. En las gráficas anteriores,
cuando la posición se encuentra por debajo de 150mm, la acción de control proporcional
siempre intenta aumentar la posición. El problema viene al tener en cuenta las inercias.
Cuando el sistema se mueve a una velocidad alta hacia el punto de referencia, el sistema se
pasará de largo debido a su inercia. Esto produce un sobreimpulso y oscilaciones en torno a
la referencia. Para evitar este problema, el controlador debe reconocer la velocidad a la que
el sistema se acerca a la referencia para poder frenar con antelación a medida que se acerque
a la referencia deseada y evitar que la sobrepase. (Tecno Recursos, 2020)
Aumentar la constante de control derivativa Kd tiene los siguientes efectos:
1. Aumenta la estabilidad del sistema controlado.
2. Disminuye un poco la velocidad del sistema.
18
3. El error en régimen permanente permanecerá igual.
Esta acción de control servirá por lo tanto para estabilizar una respuesta que oscile dema-
siado.
Figura 13. Control Derivativo
Fuente: Mechatronics
En los gráficos anteriores puede verse cómo, al aumentar la acción derivativa Kd, se consi-
gue disminuir las oscilaciones hasta el punto de que desaparecen para Kd=50. También
puede apreciarse cómo la respuesta se hace un poco más lenta al aumentar la constante de-
rivativa. Con Kd=0 el sistema tarda 1.8 segundos en subir hasta el valor de referencia. Con
Kd=20 el sistema tarda 2 segundos en subir hasta el valor de referencia. En este ejemplo la
acción derivativa se ha escalado de forma que sus valores se encuentren entre 0 y 100.
(Tecno Recursos, 2020)
Un problema que presenta el control derivativo consiste en que amplifica las señales que
varían rápidamente, por ejemplo, el ruido de alta frecuencia. Debido a este efecto, el ruido
de la señal de error aparece amplificado en el accionamiento de la planta. Para poder reducir
este efecto es necesario reducir el ruido de la señal de error mediante un filtro paso bajos
antes de aplicarla al término derivativo. Con este filtro la acción derivativa se encuentra
19
limitada, por lo que es deseable reducir el ruido de la señal de error por otros medios antes
de recurrir a un filtro paso bajos. (Tecno Recursos, 2020)
Llegado a este punto, el sistema es rápido y estable, pero mantiene todavía un pequeño error
en régimen permanente. Esto significa que la posición real del sistema no es exactamente la
posición deseada. Para poder reducir este error se recurre a la tercera acción del controlador
PID, el control Integral.
Acción de control Integral
Esta acción de control como su nombre indica, calcula la integral de la señal de error e(t).
La integral se puede ver como la suma o acumulación de la señal de error. A medida que
pasa el tiempo pequeños errores se van sumando para hacer que la acción integral sea cada
vez mayor. Con esto se consigue reducir el error del sistema en régimen permanente. La
desventaja de utilizar la acción integral consiste en que esta añade una cierta inercia al sis-
tema y por lo tanto le hace más inestable. (Tecno Recursos, 2020)
Aumentar la acción integral Ki tiene los siguientes efectos:
1. Disminuye el error del sistema en régimen permanente.
2. Aumenta la inestabilidad del sistema.
3. Aumenta un poco la velocidad del sistema.
Esta acción de control servirá para disminuir el error en régimen permanente.
20
Figura 14. Control Integral
Fuente: Mechatronics
En las gráficas anteriores se ha añadido una señal de error ampliada, de color verde, para
apreciar mejor cómo se reduce el error a medida que aumenta la acción integral. Otro efecto
visible es el aumento de la inestabilidad del sistema a medida que aumenta Ki. Por esta
razón el control integral se suele combinar con el control derivativo para evitar las oscila-
ciones del sistema.
Sintonización manual de un controlador PID
Después de ver las diferentes acciones proporcional, integral y derivativa de un control PID,
se pueden aplicar unas reglas sencillas para sintonizar este controlador de forma manual.
(Tecno Recursos, 2020)
1º - Acción Proporcional.
Se aumenta poco a poco la acción proporcional para disminuir el error (diferencia entre el
estado deseado y el estado conseguido) y para aumentar la velocidad de respuesta.
Si se alcanza la respuesta deseada en velocidad y error, el PID ya está sintonizado.
Si el sistema se vuelve inestable antes de conseguir la respuesta deseada, se debe aumentar
la acción derivativa.
21
2º - Acción Derivativa.
Si el sistema es demasiado inestable, se aumentará poco a poco la constante derivativa Kd
para conseguir de nuevo estabilidad en la respuesta.
3º - Acción Integral.
En el caso de que el error del sistema sea mayor que el deseado, se aumentará la constante
integral Ki hasta que el error se minimiza con la rapidez deseada.
Si el sistema se vuelve inestable antes de conseguir la respuesta deseada, se debe aumentar
la acción derivativa.
Con estas sencillas reglas es sencillo afinar poco a poco el controlador PID hasta conseguir
la respuesta deseada.
22
CAPÍTULO II
METODOLOGÍA DEL PROYECTO INTEGRADOR- LA INVESTIGACIÓN
Diseño metodológico
Según lo establecido para la construcción de este trabajo, se utilizará una investigación
experimental basada en recolección de información búsqueda de fuentes teóricas (antece-
dentes) a continuación se procederá a presupuestar y verificar los alcances técnicos y
aportes académicos para futuros trabajos o proyectos.
Se procederá a recolectar información para el diseño de una PCB que permita el soporte de
los motores y sensores, para posteriormente realizar la programación de un control PID
que permita el seguimiento de paredes y mediante un algoritmo de la mano derecha re-
suelva el laberinto y salga del mismo.
Variables y definición operacional
Las variables que se presentarán en este trabajo son de carácter experimental. Una de las
variables más importantes es el tamaño del robot ya que al tener un tamaño reducido evitará
que golpee con las paredes. Otra de las variables es la distancia del robot hacia las paredes
ya que permite el desplazamiento del robot dentro de los callejones.
Técnicas de recolección de datos
En este trabajo se utilizará las técnicas de observación y registros.
23
La primera técnica (observación) está basada en el conocimiento empírico, es decir, en las
experiencias que se han generado durante las visitas a los concursos de robots, análisis de
los concursos de robótica de países extranjeros y conocimiento adquiridos en los laborato-
rios de electrónica.
La segunda técnica (registro) permite generar búsquedas de estudios académicos realizados
dentro de los últimos diez años con relación a robot laberintos, algoritmos PID y el algo-
ritmo de la mano derecha para el desplazamiento.
24
CAPÍTULO III
PROPUESTA
Diseño electrónico y mecánico
Dentro de este apartado se presentará el diseño electrónico y mecánico que se realizó para
la implementación del robot laberinto dentro de los parámetros que piden los concursos
Nacionales e Internacionales de Robótica permitiendo a este prototipo participar en cursos
y demostrar su funcionamiento.
Circuito electrónico
Dentro del circuito electrónico como principal elemento se utilizó el Arduino Nano el cual
tendrá el código para el manejo de motores y a la vez la medición de distancia hacia las
paredes mediante sensores infrarrojos.
Como primera parte se tiene un conector J1 el cual permite la conexión de los sensores
Sharp hacia el robot. Este conector tiene disponibles las entradas analógicas, VCC y GND
para la conexión.
Después se tiene los pines para la conexión del TB6612FNG el cual permite el control de
dirección y velocidad de los dos motores del robot. Esta placa tiene seis conexiones hacia
el Arduino Nano, tres de esta son utilizadas para el manejo de un motor, dentro de estos
pines se tiene dos que sirven para el control de dirección y uno que tiene una salida PWM
el cual permite el control de la velocidad. De forma similar se realiza para el otro motor.
En el diseño también se tiene dos conectores llamados MOTOR DERECHO y MOTOR
IZQUIERDO los cuales se conectan a las entradas de los motores.
25
También se tiene dos pulsadores para el inicio y parada del robot estos son los pines J3 y
J4. Existe un último conector el cual sirve para la conexión del interruptor del robot que va
a permitir el paso de la corriente desde la batería hacia los circuitos electrónicos.
A continuación, se muestra la figura con el diseño electrónico del robot.
Figura 15. Circuito de control del robot laberinto
Fuente: Propia
Diseño de la PCB
Para el diseño de la PCB se utilizó el software ARES el cual permite transferir el circuito
diseñado en ISIS y convertirlo en una PCB. Para esto se configuro el tamaño de pista y una
placa a doble cara. En la siguiente figura se muestra el diseño realizado en ARES
26
Figura 16. PCB diseñada en ARES
Fuente: Propia
Como trabajo final en el diseño se creó la vista en 3D la cual permite identificar la posición
de cada uno de los elementos de la placa y su acabado final. En la siguiente figura se muestra
el diseño final en 3D de la placa del robot laberinto.
<
Figura 17. PCB en vista en 3D
Fuente: Propia
Construcción de la PCB
Dentro de la construcción de la placa se utilizó el método de la plancha. Para este método
se imprime el circuito en un papel termotransferible y al aplicar calor sobre este papel que
se encuentra encima de la PCB se transfiere las pistas. Después de esto mediante ácido fé-
rrico se quema la placa permitiendo que solo queden las pistas de cobre para las conexiones
de los elementos electrónicos. En la siguiente figura se muestra la placa con las pistas.
27
Figura 18. PCB vista posterior de las pistas
Fuente: Propia
Después de tener la PCB se procede a la soldadura de los elementos electrónicos como el
Arduino Nano, Tb6612FNG, pulsadores, interruptor y motores como se muestra en la si-
guiente figura.
Figura 19. PCB vista frontal soldado los elementos
Fuente: Propia
Después de haber concluido con la soldadura de los elementos se realiza un soporte para
sostener el sensor Sharp en la parte lateral el cual permitirá la detección de las paredes. A
continuación, se muestra el robot ensamblado completamente.
28
Figura 20. PCB terminada
Fuente: Propia
Programación
Dentro de la programación se detallar las partes del programa que se realizó para que el
robot se desplace dentro de un laberinto sin chocarse hasta salir del mismo.
Declaración de pines
En la declaración de los pines se debe tener en cuenta los elementos que el robot va a ma-
nejar. Uno de los primeros elementos que se va a usar el TB6612FNG que permite el manejo
de la velocidad y sentido de giro de los motores, Para el motor izquierdo se utiliza los pines
PWMA = 6 el cual envía una señal PWM al driver con rangos entre 0 y 255. Los pines AIN1
y AIN2 permiten el manejo del sentido de giro del motor. De igual forma se configura para
el motor derecho como se muestran en la figura siguiente.
Además, se definen otros dos pines llamados P1 y P2 que permiten el encendido o apagado
del robot ya que con esto permite dar un pulso para que el robot comience a resolver el
laberinto.
29
Figura 21. Declaración de pines
Fuente: Propia
Declaración de Variables PID
En este apartado como primera instancia se debe escoger un tipo de controlador a usar dentro
del robot laberinto para esto se utiliza un controlador PD ya que no es necesario el uso de la
parte integral porque el robot cambia de dirección según el laberinto.
Para el controlador PD se declara la variable set point la cual permite identificar a la distan-
cia que el robot se encontrará de la pared para evitar un choque.
Después se declara las variables kp y kd las cuales permiten la calibración del controlador
para que el robot se desplace de forma paralela a las paredes del laberinto.
Como última variable se declaró v_crucero la cual define la velocidad a la que el robot
tratará de mantener en todo su recorrido. En la siguiente figura se muestran las variables
declaradas.
Figura 22. Declaración de variables del PID
Fuente: Propia
30
Programación Void Setup
Dentro de la programación del void setup se configura cuales pines van a funcionar como
salidas (OUTPUT) y que pines funcionan como entradas (INPUT) en la siguiente imagen
se muestra la configuración de los pines para el robot laberinto.
Figura 23. Declaración de variables del PID
Fuente: Propia
Programación de Void Loop
Dentro de la programación del Void Loop se tiene dos partes las cuales se describen a con-
tinuación.
En la primera parte se tiene un variable auxiliar llamado estado y es igual a 1. Esto significa
que el robot ingresa en modo de resolución del laberinto; En este modo el robot como pri-
mera actividad mide la distancia entre él y la pared y después la transforma en centímetros.
Después se programa un algoritmo PD el cual dependiendo de qué tan alejado o cercano de
la pared se encuentre el robot cambia las velocidades de sus llantas para mantenerse paralelo
de la pared.
31
Figura 24. Estado igual a uno
Fuente: Propia
En la segunda parte cuando la variable estado es igual a cero significa que el robot detenga
sus movimientos aquí se crea una función la cual pone las velocidades de los motores en 0
evitando que el robot pueda desplazarse.
Figura 25. Estado igual a 0
Fuente: Propia
Programación de la función de motores
Para el funcionamiento de los motores se creó una función la cual permitiría manejar de
forma más sencillas las velocidades y direcciones de los dos motores.
Dentro de esta función se debe enviar dos datos el primer el número de motor que puede ser
1 o 2 este número sirve como identificador para conocer que motor va a ser activado.
La segunda variable a enviar es el valor de PWM que está en un rango de -255 a 255.Si el
valor es positivo se configura los pines AIN1 y AIN2 para que giren hacia adelante y se
32
envía el valor de la PWM. Si el valor de la PWM es menor que cero el programa automáti-
camente multiplica por menos uno y transforma a positivo después configura al motor
mediante los pines AIN1 y AIN2 para ir hacia atrás. En la siguiente figura se muestra la
programación antes descrita.
Figura 26. Función para el manejo de motores
Fuente: Propia
33
CAPÍTULO IV
RESULTADOS
Al realizar la implementación del robot se tiene que entender el uso y aplicación de
un control PID para el funcionamiento adecuado del robot dentro de la pista.
Al implementarse diferentes tipos de estructuras se identificó que la mejor forma de
crear este tipo de robot es utilizando una tracción diferencial que permite el cambio
de dirección de forma rápida.
Después de realizar un análisis del robot laberinto el uso de sensores Sharp permi-
tieron la mejor detección de obstáculos dentro de un laberinto de competencia.
34
CONCLUSIONES
● La tracción diferencial es la mejor opción para este tipo de robot ya que al encon-
trarse con un camino cerrado permite que el robot gire dentro de su propio eje
evitando chocarse con las paredes del laberinto.
● La implementación de un controlador PD fue la mejor opción ya que permite la ca-
libración del desplazamiento del robot evitando que este choque y realice
movimientos suaves cuando debe hacer cambios de dirección.
● El uso de un PCB como estructura del robot laberinto permitió la reducción de peso
lo que permite desplazarse de forma perfecta dentro del laberinto. Además de per-
mitir alcanzar mayores velocidades de desplazamiento.
RECOMENDACIONES
● Es recomendable el uso de batería LiPo ya que son pequeñas y puede almacenar gran
cantidad de energía justamente para una aplicación de robótica a pequeña escala.
● Es aconsejable utilizar un driver TB6612FNG ya que este usa MOSFET y evita que
el driver se caliente a la vez este driver es más pequeño que otros que existen en el
mercado.
● Se sugiere que siempre se diseñe la PCB como estructura del motor ya que esto
permite disminuir peso y da mayor agilidad y velocidad al robot dentro del laberinto.
35
ANEXOS
Anexo 1: Diseño electrónico
Figura 27. Circuito completo del robot laberinto
Fuente: Propia
36
Anexo 2: Diseño de la PCB
Figura 28. PCB completa del robot laberinto
Fuente: Propia
37
Anexo 3: Programa implementado
int PWMA = 6;
int AIN2 = 7;
int AIN1 = 8;
int PWMB = 11;
int BIN2 = 10;
int BIN1 = 9;
int p1 = 5;
int p2 = 4;
int sensor = 0;
int error = 0;
int error_a = 0;
int PID = 0;
int vel_d = 0;
int vel_i = 0;
int estado = 0;
int setpoint = 25;
int kp = 0.23;
int kd = 0.34;
int v_crucero = 100;
void setup()
{
pinMode(PWMA, OUTPUT);
pinMode(AIN2, OUTPUT);
pinMode(AIN1, OUTPUT);
pinMode(PWMB, OUTPUT);
pinMode(BIN2, OUTPUT);
pinMode(BIN1, OUTPUT);
pinMode(p1,INPUT);
pinMode(p2,INPUT);
Serial.begin(9600);
}
void loop()
{
if (digitalRead(p1) == HIGH)
{
estado = 1;
}
if (digitalRead(p2) == HIGH)
{
estado = 0;
}
if (estado == 1)
38
{
int D_cm=distancia(20); //lectura de distancia
sensor = D_cm;
Serial.println(sensor);
error = setpoint - sensor;
PID = kp* error + kd *(error - error_a);
error_a = error;
vel_d = v_crucero - PID;
vel_i = v_crucero + PID;
velocidad(1, vel_d);
velocidad(2, vel_i);
}
if (estado == 0)
{
velocidad(1, 0);
velocidad(2, 0);
}
}
void velocidad(int motor, int pwm)
{
if(motor == 1)
{
if(pwm >= 0)
{
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, HIGH);
analogWrite(PWMA, pwm);
}
if(pwm < 0)
{
pwm = pwm * -1;
digitalWrite(AIN1, HIGH);
digitalWrite(AIN2, LOW);
analogWrite(PWMA, pwm);
}
}
if(motor == 2)
{
if(pwm >= 0)
{
digitalWrite(BIN1, LOW);
digitalWrite(BIN2, HIGH);
analogWrite(PWMB, pwm);
}
if(pwm < 0)
{
pwm = pwm * -1;
digitalWrite(BIN1, HIGH);
digitalWrite(BIN2, LOW);
39
analogWrite(PWMB, pwm);
}
}
}
float distancia(int n)
{
long suma=0;
for(int i=0;i<n;i++)
{
suma=suma+analogRead(A0);
}
float adc=suma/n;
float distancia_cm = 17569.7 * pow(adc, -1.2062);
return(distancia_cm);
}
40
Bibliografía
Electronilab. (2 de Enero de 2020). Arduino nano. Obtenido de
https://electronilab.co/tienda/arduino-nano-v3-atmega328-5v-cable-usb/
Jainer, E. (14 de Marzo de 2020). JuegosRobotica. Obtenido de
https://juegosrobotica.es/robot-resuelve-laberintos/
Llamas, L. (18 de Agosto de 2016). Ingeniería, informatica y diseño . Obtenido de
https://www.luisllamas.es/arduino-motor-dc-tb6612fng/
Naylamp MEchatronics. (12 de Septiembre de 2018). Mechatronics. Obtenido de
https://naylampmechatronics.com/blog/55_tutorial-sensor-de-distancia-sharp.html
Nuñes , M., Cardenas , P., & Ramirez , R. (2018). Diseño y construcción de Micromouse de
alto. Bogotà: Universidad Nacional de Colombia.
Pololu. (25 de Febrero de 2017). Pololu. Obtenido de
https://www.pololu.com/product/975#lightbox-picture0J833
Pololu. (16 de Marzo de 2019). Pololu. Obtenido de
https://www.pololu.com/category/22/motors-and-gearboxes
Tecno Recursos. (13 de Marzo de 2020). Control PID. Obtenido de
https://www.picuino.com/es/arduprog/control-pid.html
Torres, A. (2019). La implementación de un robot resuelve laberintos con algoritmos de
toma de decisiones . Quito: UDLA.
Zumobot. (12 de Enero de 2019). Zumobot. Obtenido de
https://sites.google.com/site/zumobot234/
Zuñiga, A. (2017). Diseño y administración de proyectos de robótica educativa. Revista SE,
6-27.