Sankakkei-Bot, Seguidor de línea, Fase V

 

Introducción:


En fase V de desarrollo del robot seguidor de línea Sankakkei, ahora se especificaran los últimos cambios hechos en el robot, los cuales incluyen modificaciones tanto en aspectos de software como en aspectos de hardware. Todos estos cambios se apoyaran con medios visuales y además se describirán los programas y algoritmos que se han implementado a la fecha, mostrando sus respectivos diagramas de flujo. También se dará a conocer el código final del robot con su diagrama de bloques y se describirán diferentes criterios de prueba de código como la pista de prueba o comprobaciones de código. Así mismo, al final del documento se presentaran las conclusiones de esta entrega.


Cambios finales en el robot Sankakkei:


Primer cambio, sensores:

El cambio más importante en el Sankakkei fue la disposición de los sensores. En la entrega anterior el Sankakkei constaba de un total de seis sensores, dos en la parte delantera, dos en la parte central, y por último, dos en la parte trasera, sin embargo, esta acomodación fue cambiada, ya que con la asesoría del profesor Julio, se determinó que los dos sensores centrales eran innecesarios ya que generaban cierto margen de error y conflicto. Además, los sensores al estar separados en una disposición más o menos cuadrangular, generaban errores de ubicación en el robot, así, se reacomodaron de una manera óptima para su uso.

Segundo cambio, programación:

Las programaciones anteriores del robot Sankakkei incluían bastantes líneas de código utilizando un número alto en condicionales, sin embargo cuando el robot verificaba todas las condicionales era el momento en el que se generaban los errores, por esto se decidió disminuir el número de condicionales y comenzar a programar condicionales tipo exclusa, para así, cuando un condicional se cumpla, se ejecute el código dentro de este y no se activen otros condicionales sin sentido. Esto se hace con el fin de evitar que diferentes valores se sobrescriban en los motores y los modifiquen, generando errores.

Algoritmo anterior:

Este es el código base que se construyo, sin embargo presentaba problemas varios, el robot no podía mantenerse en linea recta, tenia dificultades al voltear, etc, esto por no utilizar condicionales de exclusa y/o por utilizar demasiados condicionales. 

Link al códigohttps://drive.google.com/file/d/16QB0lbS77SRm63GtLePJb_T0EG0UWVEV/view?usp=sharing

Algoritmo nuevo:

El código del siguiente diagrama es el final, corrigiendo los errores del anterior, por cada recuadro tiene explicado la relación de los procesos, utiliza condicionales de exclusa, así, evita que otros condicionales se verifiquen al mismo tiempo generando los errores antes descritos, generalmente estos problemas ocurrían por culpa del orden del anterior código y la inadecuada acomodación de los sensores, sin embargo, estos se corrigen en esta entrega, gracias a la reacomodacion del código y los sensores. 

https://drive.google.com/file/d/1Ktix7sjOThYkV22zqAIw_QBicbkXOs9i/view?usp=sharing



Tercer cambio, implementación en el cableado interno:

En el anterior cableado los cables eran largos y se tenían que recoger, lo que generaba incomodidad visual y/o errores de diseño visual en el robot Sankakkei, dando una perspectiva desordenada, lo que ahora se ha arreglado a través del uso de Jumpers y de optimización de cables. 

Anterior diseño:

Nuevo diseño:


Criterios para la plataforma de prueba:

Con el fin de comprobar el funcionamiento tanto de hardware como de software del robot, se construyó una pista personalizada siguiendo los parámetros dados en la IEE. Como la pista es solo de pruebas, se buscó una manera sencilla y eficaz para emular curvas reales, así, se creó una pista basada en las pistas de Nascar. 


Imagen tomada de: https://www.tripadvisor.co/ShowUserReviews-g54917-d1736248-r257119598-Bristol_Motor_Speedway-Bristol_Tennessee.html

El criterio de selección para este tipo de pista fue que esta presenta curvas marcadas y tramos rectos, lo que es una buena prueba para el robot en cualquiera de las dos situaciones, permitiendo conocer el equilibrio del robot en tramos rectos y la capacidad de este para dar vueltas. Las dimensiones dadas fueron de 30 cm por curva y un grosor de línea de 2.03 cm, teniendo la pista una forma semi ovalada.

Imagen tomada de: https://www.istockphoto.com/es/vector/diseño-de-circuito-de-carretera-ovalado-pista-de-autos-diseño-vectorial-gm1182480676-332061658

Diagrama de bloques, robot Sankakkei:

 Ya que el anterior diagrama de bloques quedo desactualizado con las modificaciones que se han hecho a travez del tiempo al robot, a continuación se muestra el nuevo diagrama de bloques:



 

Tres algoritmos implementados en el robot Sankakkei:
 

Algoritmo uno:

este fue el primer algoritmo utilizado en el robot, sirvio para comprobar el funcionamiento de la plataforma Arduino, y asi acercar a los estudiantes a la programacion en C++, este codigo sirve para encender LEDS.


 Algoritmo dos:

El segundo algoritmo probado fue el primer prototipo en el robot Sankakkei, relacionando la programación anterior de encendido de LEDS con los sensores CNY70, todavia sin utilizar los motores, fue utilizado para que cuando el robot detectara la linea negra, se encendiera un LED desde el lado del sensor en el que se detecto, esto con el fin de probar los sensores.

Link al codigo:https://drive.google.com/file/d/1L9ArdMOT80LSdriFV3i7rqpvT9VoBa_b/view?usp=sharing

Algoritmo tres:

Primer prototipo de programación funcional en el robot Sankakkei, utilizando motores y relacionando el encendido de luces LED con la entrada en los sensores CNY70 para así tener una visión definida de las recepciones del robot, después el código fue mejorado para evitar errores o desfaces. 

https://drive.google.com/file/d/1PVmS5xLh5F41NLbrupdGI0EQWGmPYpkI/view?usp=sharing


Conclusiones:

Esta entrega se reconoce como efectiva, ya que gracias a esta los estudiantes corrigieron diferentes errores que se presentaban al ejecutar el programa y poner en practica el robot, ademas se optimizaron diferentes aspectos que generaban conflicto en el robot Sankakkei. Se obtuvo experiencia acerca de como la acomodación de los sensores puede afectar el funcionamiento del robot Sankakkei, ademas de la programación de condicionales tipo exclusa, que fue utilizada para evitar que el robot verificara condicionales al mismo tiempo y sobrescribiera los motores, generando errores de acomodación, de curvas y entre otros. Por esto, una fase de rectificación y de optimizacion es necesaria, ya que ayuda a mejorar y finalizar el producto final.




Comentarios

Entradas más populares de este blog

Seguidor de Línea

SENKU: El robot que resuelve laberintos (Fase 2)