Вы находитесь на странице: 1из 10

1

Sistema autónomo de detección de obstáculos y seguidor de línea negra médiate el uso de LEGO Mindstorms

Luna Jaime

Facultad de Ingeniería y Ciencias Básicas, Programa Ingeniería Industrial, Politécnico Grancolombiano Bogotá DC, Colombia

jaluname@poligran.edu.co

AbstractThe following paper is a synthesis of the work done based on the LEGO Mindstorms platform for the development of an autonomous systems using programming techniques combined with the use of actuator (gearmotors) and data input (sensor) hardware.

ResumenEl presente documento es la síntesis del trabajo realizado por medio de la implementación de la plataforma LEGO Mindstorms para la generación de sistemas autónomos mediante el uso de técnicas de programación combinadas al uso de hardware tanto de actuadores como de entrada de datos (sensores).

Índice de Términos Motores DC, Motorreductores, Sensores, LEGO, Programación, SCADA, Seguidor de línea, Robótica.

I. INTRODUCCIÓN

En la automatización industrial y sus ares subyacentes como la robótica, es imperativo el conocimiento de la iteración entre los actuadores finales (motores, palancas, pinzas), la iteración con el entorno (sensores) y el sistema de control por medio de la programación.

El proyecto del que hace mención este documento se desenvuelve como el desarrollo de un sistema autónomo para el reconocimiento del entorno por medio de la detección de obstáculos, así como de movilidad por medio del seguimiento una ruta del tipo “línea negra” por medio de la detección de la intensidad de luz reflejada en el medio, método por

el cual se hace una emulación de los equipos autónomos que se encuentran en la industria moderna y presentes ampliamente en la práctica profesional.

II. METODOLOGIA

a) OBJETIVO GENERAL

Ensamblar y programar un sistema autónomo seguidor de línea negra capaz de evitar obstáculos mediante el uso de la interfaz LEGO.

b) OBJETIVOS ESPECIFICOS

Programar el Sistema LEGO Mindstorms para cumplir funciones de desplazamiento mediante las especificaciones de:

Avance Detección de obstáculos en el entorno Seguimiento de la línea negra Reconocimiento de la Intensidad de luz reflejada Control de giro (Velocidad Angular) Retorno a la posición inicial.

Programar el sistema para realizar su desplazamiento mediante la implementación de un ciclo condicionado a la detección o no de obstáculos a través del sensor ultrasónico con el que cuenta el sistema de este modo al realizar la detección de

2

obstáculos se cambia el curso mediante un giro de desvió y retorno a su posición de ruta proporcionando al usuario mediante el LCD los estados de en ruta (cara feliz) y con obstáculo (cara de enojo) así como alerta sonora (claxon).

III. MARCO TEÓRICO

Motores Eléctricos

Los motores eléctricos son básicamente maquinas eléctricas que transforman la corriente eléctrica que pasa por un embobinado en movimiento por medio de la fuerza magneto motriz, por lo cual se puede definir que un motor eléctrico es un circuito magnético que transforma el campo magnético y la corriente en movimiento. [1]

el campo magnético y la corriente en movimiento. [1] Ilustración 1 Núcleo Magnético básico en una

Ilustración 1 Núcleo Magnético básico en una maquina eléctrica. [1]

Motor DC

Un motor DC es una maquina eléctrica que acepta corriente continua, generalmente proveniente de una batería, dichos motores se dividen en 2 categorías:

conmutados y sin conmutación, la diferencia entre ambos tipos de motor de corriente continua radica en la capacidad de invertir el giro de la rotación por parte del motor conmutado. [2].

el giro de la rotación por parte del motor conmutado. [2]. Ilustración 2 Motor de 12V

Ilustración 2 Motor de 12V con conmutación [1]

En la gama de motor de corriente continua los más comunes suelen ser los motores de imán permanente, en estos su campo magnético permanece constante dado el imán por el cual está formado el núcleo, por lo cual su velocidad se puede mantener constante. [2]

por lo cual su velocidad se puede mantener constante. [2] Ilustración 3 Composición básica de motor

Ilustración 3 Composición básica de motor DC de imán permanente [2].

Motorreductores

Los motorreductores, básicamente son motores de corriente continua con un acoplamiento mecánico que le permite mejorar el torque producido por el motor, sin cambiar las especificaciones de alimentación, así como su velocidad, o sentido de giro [2], los motorreductores son ampliamente usados dada su versatilidad ya que pueden proporcionar movimiento a mecanismos tan complejos como un reloj hasta en potentes proyectos electrónicos.

como un reloj hasta en potentes proyectos electrónicos. Ilustración 4 Acople redactor basico en motor DC.

Ilustración 4 Acople redactor basico en motor DC. [2]

Sensores de presencia

Los sensores de presencia son sistemas de entrada de datos capaces de detectar la presencia de objetos en un radio de distancia determinado sujetos a una

3

tolerancia específicaa través del contacto o no de objeto u obstáculos dentro de dicho radio. El sensor ultrasónico es un sensor de distancias por ultrasonidos capaz de detectar objetos y calcular la distancia a la que se encuentra en un rango de 3 a 300 cm. El sensor funciona por ultrasonidos y contiene toda la electrónica encargada de hacer la medición. Su uso es tan sencillo como enviar el pulso de arranque y medir la anchura del pulso de retorno. [3]

En robótica, estos motores son complementarios a los sistemas de posición y guía, tanto que en procesos y sistemas de automatización industrial se utilizan generalmente como finales de carrera.

industrial se utilizan generalmente como finales de carrera. Ilustración 5 Diagrama básico - Sensor tipo ultrasónico

Ilustración 5 Diagrama básico - Sensor tipo ultrasónico [4]

Ciclos Condicionales

Los ciclos condicionales son sentencias de control que determina una orden especifican dentro de un algoritmo programa-. Estas sentencias de control dependen de una condición previamente pregunta de decisión- especificada para decidir la acción correspondiente a ejecutar. [5]

para decidir la acción correspondiente a ejecutar. [5] Ilustración 6 Sintaxis y semántica para la forma

Ilustración 6 Sintaxis y semántica para la forma del "if" simple de la sentencia if en un ciclo [4]

IV. TEORIA SEGUIDOR DE LINEA

Un sistema seguidor de línea negra, es un sistema autónomo encargado de seguir una ruta delimitada por una línea negra dentro de un fondo blanco, del tipo robots de control sensorizado, donde el sensor emite un haz de luz y luego mide que tanto refracta en la superficie y por la longitud de onda de cada uno se determina el espectro lumínico perteneciente a cada color en este caso, la luz reflejada por blanco y negro para la toma de decisiones.

luz reflejada por blanco y negro para la toma de decisiones. Ilustración 7 Sistema seguidor de

Ilustración 7 Sistema seguidor de línea. Fuente: Elaboración propia.

V. DESCRIPCIÓN DEL SISTEMA LEGO

MINDSTORM LEGO Mindstorms es una herramienta usada para emular modelos de sistemas integrados con partes electromecánicas controladas por computador, acercando a esta herramienta a una funcionalidad similar a la de las aplicaciones reales de los modelos robóticos e industriales [6].

La construcción del sistema se basa en la unión de bloques de plástico, característicos del sistema LEGO convencional, en conjunto con otras familias de piezas como lo son las de tipo plegable y otras que permiten la rotación de ruedas u otros elementos. El modelo se debe centrar en el bloque programable, ya que este bloque provee la energía necesaria para el movimiento del modelo diseñado. Adicional a las piezas convencionales y los ya mencionados motores de movimiento se puede hacer uso de varios tipos de

4

sensores que se incluyen con el kit del sistema, esto dependiendo del uso específico para cada práctica.

Para esta práctica se utilizaron en concreto los siguientes componentes:

Motor grande (2 unidades): El cual permite que las acciones sean precisas, ya que se encuentra formado principalmente por un sensor de rotación.

encuentra formado principalmente por un sensor de rotación. Ilustración 8 Motor grande LEGO Mindstorms empleado en

Ilustración 8 Motor grande LEGO Mindstorms empleado en la práctica [6]

Bloque EV3: Centro de control y central eléctrica del dispositivo, está compuesto de 8 puertos de entrada (4 para sensores y 4 para motores), parlante, conexión para PC, USB y tarjeta SD.

motores), parlante, conexión para PC, USB y tarjeta SD. Ilustración 9 Bloque EV3 LEGO Mindstorms empleado

Ilustración 9 Bloque EV3 LEGO Mindstorms empleado en la práctica [6]

Sensor ultrasónico en modo proximidad: Que utiliza las ondas de luz reflejadas por los objetos y que según el tamaño varía distancias de detección.

y que según el tamaño varía distancias de detección. Ilustración 10 Sensor de proximidad LEGO Mindstorms

Ilustración 10 Sensor de proximidad LEGO Mindstorms empleado en la práctica [6]

Giro sensor: Tiene la capacidad de detectar el movimiento de rotación en un eje simple.

de detectar el movimiento de rotación en un eje simple. Ilustración 11 Giro sensor LEGO Mindstorms

Ilustración 11 Giro sensor LEGO Mindstorms empleado en la práctica [7]

Sensor de color: Distingue 8 colores en el ambiente y así mismo, permite la detección de luz tanto la reflejada como la ambiental.

la detección de luz tanto la reflejada como la ambiental. Ilustración 12 Sensor de color LEGO

Ilustración 12 Sensor de color LEGO Mindstorms empleado en la práctica [6]

5

5 Ilustración 13 Sistema LEGO Mindstorms empleado en la práctica. Fuente: Elaboración propia. V. SOFTWARE EV3

Ilustración 13 Sistema LEGO Mindstorms empleado en la práctica. Fuente: Elaboración propia.

V. SOFTWARE EV3

La razón principal por la cual el sistema LEGO es base de los principios de estudio de robótica y automatización es que además de la precisión de las piezas que conforman la figura, éstas permiten ser programadas mediante un software que a través de ilustraciones ayuda al fácil entendimiento de cada herramienta y así servir en conjunto al estudio de movimientos, robótica y principios de programación.

Este consta principalmente de

Área de programación

Paletas y bloques de acción

Página de Hardware

Editor de contenidos

Barra de herramienta de programación

de contenidos • Barra de herramienta de programación Ilustración 14 Entorno básico LEGO Mindstorms EV3 empleado

Ilustración 14 Entorno básico LEGO Mindstorms EV3 empleado en la práctica [6]

Área de programación

El área de programación está constituida por un área en blanco donde es posible ordenar las acciones que se espera realice el dispositivo LEGO, estas acciones se evidencian en paletas de programación que a su vez contienen bloques, allí podemos seleccionar el tipo de motor, sensores, operaciones de datos, entre otras opciones, estos bloques reciben el nombre de bloques de acción.

estos bloques reciben el nombre de bloques de acción. Ilustración 15 Área de programación empleada en

Ilustración 15 Área de programación empleada en la práctica Fuente: Elaboración propia.

En el desarrollo de esta práctica, se tuvieron en cuenta las paletas que contenían bloques de acción, bloques de sensores y bloques de control de flujo.

Bloques de acción. En esta paleta se contienen aquellas funciones que controlan los motores, así como las imágenes que se evidencian en el visualizador (display) del bloque, así como también los sonidos y las luces.

Podemos evidenciar esta paleta donde se almacenan las funciones (de izquierda a derecha), motor mediano, motor grande, mover en la dirección, mover tanque, pantalla, sonido y luz de estado del bloque.

[6]

6

6 Ilustración 16 Bloques de acción (verde) [6] • Bloques de flujo. Esta paleta permite el

Ilustración 16 Bloques de acción (verde) [6]

Bloques de flujo. Esta paleta permite el acceso a las funciones de control del flujo del programa, allí encontramos decisiones, esperas, entre otros.

Se muestran a continuación, las funciones que componen esta paleta (de izquierda a derecha), inicio, espera, bucle, interruptor e interrumpir bloque. [6]

inicio, espera, bucle, interruptor e interrumpir bloque. [6] Ilustración 17 Bloques de flujo (naranja) [6] •

Ilustración 17 Bloques de flujo (naranja) [6]

Bloques de sensores. En esta paleta están contenidas las funciones que permiten la lectura de datos a través de sensores e interacción con el medio.

En la Ilustración 17, se muestran las funciones (de izquierda a derecha botones del bloque, sensor de color, sensor infrarrojo, rotación del motor, temporizado y sensor táctil. [6]

rotación del motor, temporizado y sensor táctil. [6] Ilustración 18 Bloques de sensores (amarillo) [6] VI.

Ilustración 18 Bloques de sensores (amarillo) [6]

VI. MARCO PRÁCTICO

Para el desarrollo de la práctica pertinente a este escrito se realizaron dos (2) secuencias de práctica, para el análisis de movimientos del dispositivo y diferentes iteraciones en cuanto a la funcionalidad y programación del sistema.

Inicialmente, se comprueba en la página de Hardware la posición de los motores (en este caso,

puerto B y C, izquierdo y derecho respectivamente), el funcionamiento de los sensores en este caso, los sensores de color y sensor ultrasónico, posteriormente se ejecuta la programación de las secuencias. Todas las secuencias ejecutadas en la pista se realizaron en sentido anti horario por parte del sistema autónomo y detección de obstáculos

a) SECUENCIA 1: Seguimiento línea negra con 1 sensor de color.

Mediante la programación empleada en la Ilustración 20 se ha configurado el sistema para el seguimiento de la línea negra mediante el reconocimiento del entorno blanco de la pista, según la rutina de programación al detectar la línea negra regresa al cauce de la ruta original en un giro de 180º.

regresa al cauce de la ruta original en un giro de 180º. Ilustración 19 Pista implementada

Ilustración 19 Pista implementada para la ejecución de la secuencia 1. Fuente: Elaboración propia.

En el caso de esta secuencia, se hace la respectiva programación inicialmente de la detección de la luz reflejada donde se espera localizar la línea negra de la pista.

donde se espera localizar la línea negra de la pista. Ilustración 20 Detección de línea negra

Ilustración 20 Detección de línea negra (Valores menores o iguales a la calibración) Fuente: Elaboración propia

7

Una vez localizada, se activa el sensor ultrasónico con el fin de detectar la existencia de obstáculos próximos al vehículo, en el caso de haberlos, en el display se evidencia una cara de enojo (Angry) y el sonido del claxon, se procede a esquivarlos y continuar el camino.

del claxon, se procede a esquivarlos y continuar el camino. Ilustración 21 Reacción del vehículo cuando

Ilustración 21 Reacción del vehículo cuando se detecta un obstáculo. Fuente: Elaboración propia.

se detecta un obstáculo. Fuente: Elaboración propia . Ilustración 22 Detección de obstáculo a menos de

Ilustración 22 Detección de obstáculo a menos de 13 cm de distancia. Fuente: Elaboración propia.

A su vez, dentro del mismo bucle se puede encontrar de forma paralela la acción del girosensor encargado de detectar los giros correspondientes que realiza el vehículo y enseñarlos en el display, en este caso por la sensibilidad del girosensor, se asume que debe mostrar el giro en pantalla cuando se detecte un cambio mayor a 20°.

giro en pantalla cuando se detecte un cambio mayor a 20°. Ilustración 23 Salida en el

Ilustración 23 Salida en el display cuando se realiza un giro en el vehículo. Fuente: Elaboración propia

realiza un giro en el vehículo. Fuente: Elaboración propia Ilustración 24 Detección de giros del vehículo

Ilustración 24 Detección de giros del vehículo (cambios mayores a 20° en el girosensor). Fuente: Elaboración propia.

Si por el contrario, el sensor ultrasónico no detecta ningún obstáculo en el camino, continua su camino por la línea negra y se repite el ciclo.

continua su camino por la línea negra y se repite el ciclo. Ilustración 25 Seguimiento de

Ilustración 25 Seguimiento de línea negra. Fuente:

Elaboración propia.

En el caso de no detectar la línea negra, el vehículo a través del bloque de acción “mover dirección” realizará un movimiento hacia adelante mientras muestra en pantalla una cara sonriendo (BigSmile), de la misma forma, estará activa la detección del obstáculo.

la misma forma, estará activa la detección del obstáculo. Ilustración 26 Detección de luz diferente a

Ilustración 26 Detección de luz diferente a la negra (valores mayores a la calibración). Fuente: Elaboración propia.

8

En la Ilustración 20, se puede observar la secuencia completa en esta etapa.

20, se puede observar la secuencia completa en esta etapa. Ilustración 27 Secuencia de programación del

Ilustración 27 Secuencia de programación del LEGO Mindstorms, para la detección de línea negra y obstáculos con 1 sensor de color, 1 sensor de ultrasonido y 1 girosensor Fuente: Elaboración propia.

b) SECUENCIA 2: Seguidor de línea con implementación de dos sensores de color.

La implementación de la capacidad de detección de obstáculos había sido ideada únicamente para la secuencia final, pero se decidió implementarle en ambas secuencias dada la diferencia de dificultad que representaba en cada una, por lo cual ha sido explicada su lógica computacional mas adelante dentro de las estrategias de programación.

La idea de esta secuencia es recorrer cualquier pista de línea negra, en la cual se añadan obstáculos, el robot los detecta y evaluará la decisión a tomar, para luego continuar la ruta previa evitando el obstáculo.

Fundamentalmente se realiza la adición del estado de inicialización del sensor ultrasónico dentro de la secuencia principal del seguidor de línea, donde llamará a un estado de decisión frente al obstáculo y asignar la secuencia correspondiente, de no encontrar obstáculo alguno continuara la ejecución de las secuencias del programa principal. Como alternativa se había pensado utilizar el sensor ultrasónico como estado de inicialización principal, pero suponía ser invocado antes de la secuencia de control de los sensores de color y presentaba problemas de enrutamiento en la pista para la toma de decisiones entre sensores. En la ilustración 28 se muestra la

programación utilizada para la implementación de la secuencia 2.

utilizada para la implementación de la secuencia 2. Ilustración 28 Programación completa del sistema LEGO

Ilustración 28 Programación completa del sistema LEGO Mindstorms para el seguimiento de línea y evasión de obstáculos. Fuente: Elaboración propia.

VII. ESTRATEGIA DE PROGRAMACIÓN

Los sistemas autónomos para el seguimiento de línea negra sobre pista de fondo blanco, básicamente como su nombre lo indica son sistemas diseñados para el movimiento autónomo basados en el reconocimiento de la intensidad de luz reflejada en el medio, siendo negro los valores menores al correspondiente calibrado (línea) y blanco los valores mayores al valor calibrado (pista), estos valores responden a las respectivas decisiones.

La

Ilustración.

pista

utilizada

se

ilustra

en

la

siguiente

La Ilustración. pista utilizada se ilustra en la siguiente Ilustración 29 Pista implementada para la ejecución

Ilustración 29 Pista implementada para la ejecución de la secuencia 2. Fuente: Elaboración propia.

Para todas las etapas del proyecto se realizó previa calibración de los sensores de color según lo indicado en la ecuacion 1.

9

b

n

Calibración

:

:

Blanco

Negro

b

n

2

Ecuación 1 Ecuación de calibración de color para el sensor correspondiente en LEGO Mindstorms

a) Estrategia para la Secuencia 1

Se programa el sistema con un único sensor de color posicionado sobre el color blanco, y empleando un condicional no anidado (simple) donde evalúa la posición del cuerpo sobre la línea o en caso contrario se reposiciona para encausar el camino realizando una rectificación en los motores para tal fin.

b) Implementación Secuencia 1

sensor

de

giro

Para la compensación de giro en la secuencia 1 con la implementación de un único sensor de color se utilizó los datos provenientes del sensor de giro (girosensor) con un ángulo de 20º para mantener el cauce del sistema sin perder estabilidad en la adquisición de datos provenientes de la pista dado que un giro en los motores mayores a 20º hace que el sistema pierda su rumbo, en la Ilustración ## se muestra la secuencia de programación empleada para tal fin.

muestra la secuencia de programación empleada para tal fin. Ilustración 30. Secuencia de compensación de giro

Ilustración 30. Secuencia de compensación de giro a través del sensor de giro. Fuente: elaboración Propia.

El sensor de giro debe reiniciar su secuencia después de cada ejecución para que la variable de decisión se mantenga libre, es decir evitar el almacenamiento de datos, dado que es una variable de estado únicamente.

de datos, dado que es una variable de estado únicamente. Ilustración 31. Variable de estado del

Ilustración 31. Variable de estado del sensor de giro. Fuente:

Elaboración Propia

c) Detección de línea negra con 2 sensores

Utiliza 2 sensores paralelos entre sí, considerando la línea negra en medio de ambos, donde mediante el uso de dos condicionales simples anidaos se activa la secuencia de movimiento, donde en caso de ambos sensores estar en superficie blanca se moverán ambos motores en modo tanque, en caso contrario que alguno este posicionado en línea negra se girara en sentido contrario al sensor posicionado verificando la posición y actuando en tanque dentro de un ciclo infinito.

d) Detección de línea negra con 2 sensores y detección de obstáculos

Complementaria a la secuencia b del literal anterior se ha añadido dentro de un tercer condicional simple la condición de detección de obstáculos mediante el sensor de ultrasonido provisto con el sistema LEGO Mindstorms, donde a detectar obstáculo a una distancia de 13cm, y análogo a el caso de la línea negra se realizara un giro de 400º-450° para abortar el camino así como rectificación de los motores para encausar la ruta original y terminar el recorrido, adicional a ello el visor LCD desplegará dos imágenes "Big smile" o "Angry", para el caso de estar sin obstáculo y con obstáculo en la ruta respectivamente.

sin obstáculo y con obstáculo en la ruta respectivamente. Ilustración 32. Display LCD (Big Smile) al
sin obstáculo y con obstáculo en la ruta respectivamente. Ilustración 32. Display LCD (Big Smile) al

Ilustración 32. Display LCD (Big Smile) al no detectar obstáculo y (Angry) en caso contrario. Fuente: Elaboración Propia

10

Detección de obstáculos Como se ha descrito anteriormente el sensor ultrasónico de proximidad emite ondas de sonido de baja frecuencia, para aprovechar esto durante la pista se le ha dado una distancia mínima de detección de 13cm, en el caso de giro en la pista se encontró el problema de giro a cortas distancias, por lo cual se usó compensación de giro en los motores para lograr la precisión en el giro y una etapa de bloqueo en los motores para el giro sea suave. Esta estrategia de programación se muestra en la Ilustración 33.

de programación se muestra en la Ilustración 33. Ilustración 33. Etapa de control sensor ultrasónico y

Ilustración 33. Etapa de control sensor ultrasónico y compensación de giro Fuente: Elaboración Propia

VIII. CONCLUSIONES

La instalación de bucles permite arrojar resultados exactos y precisos conforme a una condición dada en el código del Software, esta herramienta no da lugar a que por error humano se presente conflicto entre el código y la ejecución del mismo. La exploración de todos los comandos disponibles permite al usuario ampliar su capacidad deductiva y analítica debido a que para el buen desarrollo de la práctica es necesario recrear lo planeado en el software de manera que sea entendible y se ejecute satisfactoriamente. Las experiencias tanto teóricas como prácticas del equipo de trabajo sirvieron para entender el funcionamiento en apariencia simple del robot, pero complejo en su descripción, de esta manera se pudo estructurar los comandos para que este describiera lo planeado.

BIBLIOGRAFÍA

[1

S.

j. Chapman, Maquinas electricas, Mexico: McGraw Hill

]

Interamericana, 2012.

 

[2

M.

Scarpino, Motors for Makers - A Guide to Steppers,

]

Servos, and Other Electrical Machines, Indianapolis: Que,

2015.

 

[3

A.

Barrientos,

Funademntos

de

Robotica,

Madrid

:

]

McGraw Hill, 2007.

 

[4

Uvigo,

[En

línea].

Available:

]

http://www.dte.uvigo.es/recursos/capacitivos/funcionamie

nto/diagrama%20de%20bloques.gif

el

21/02/2017

 

[Último acceso: 21 02 2017].

 

[5

J.

S. Dean, Introduccion a la programacion con JAVA,

]

MExico DF: McGraw Hill Interamericana, 2009.

 

[6

The LEGO group, «MindStorms,» 10 2 2017. [En línea].

]

Available:

 

https://www.lego.com/es-

es/mindstorms/history.

[7

F.

Posada Prieto, «Robótica Lego EV3,» Enero 2015. [En

]

línea].

 

Available:

http://canaltic.com/rb/legoev3/index.html.

[8

R. L. Norton, Diseño de Maquinaria, Mexico Df: McGraw

]

Hill Interamericana, 2009.

 

[9

E.

Jung Park, Exploring LEGO Mindstorms EV3 Tools and

]

Techniques for Building and Programming Robot, New York: Wiley, 2014.

[1

G. Gerber, Learning LEGO Mindstorms EV3, New York:

0]

Packt Publishing, 2015.

[1

M. Rollins, Beginning LEGO MINDSTORMS EV3,

1]

Boston: Apress, 2014.