scieee AI-readable full text Open interactive document viewer

Aprende fundamentos de control construyendo un siguelíneas

Alvarado Aldea, Ignacio; Borja Conde, José Antonio; Salas Gómez, Francisco; Muñoz de la Peña Sequedo, David

Abstract

En este artículo se presenta un robot siguelíneas basado en Arduino de bajo coste que se ha usado como proyecto en la asignatura Control Automático de segundo curso del Grado de Ingeniería de Telecomunicaciones de la Universidad de Sevilla. La idea es que los alumnos puedan aprender electrónica, programación, tratamiento de señales y control por medio de la construcción y control de este robot móvil tanto en las clases de docencia práctica en el laboratorio de la asignatura, como en sus horas de trabajo fuera del horario lectivo.

Full text

Aprende fundamentos de control construyendo un siguel´ıneas I. Alvarado J.A. Borja F. Salas D. Mu˜noz de la Pe˜na Dpto. Ingenier´ıa de Sistemas y Autom´atica, Universidad de Sevilla Avd. de los Descubrimientos, s/n, Sevilla 41092, ialv[email protected], jab[email protected], [email protected],dm[email protected], Resumen En este art´ıculo se presenta un robot siguel´ıneas basado en Arduino de bajo coste que se ha usado como proyecto en la asignatura Control Autom´atico de segundo curso del Grado de Ingenier´ıa de Telecomunicaciones de la Universidad de Sevilla. La idea es que los alumnos puedan aprender electr´onica, programaci´on, tratamiento de se˜nales y control por medio de la construcci´on y control de este robot m´ovil tanto en las clases de docencia pr´actica en el laboratorio de la asignatura, como en sus horas de trabajo fuera del horario lectivo. Palabras clave: Educaci´on, control, rob´otica m´ovil. 1. Introducci´on La ense˜nanza del control no es, en general, una tarea sencilla. Realizar el control de cualquier sistema real conlleva aplicar conocimientos de distintas disciplinas. Hay que aplicar conocimientos de electr´onica, de tratamiento y acondicionamiento de se˜nales, de programaci´on, de control. El control, a su vez, puede requerir el desarrollo de un modelo , la identificaci´on del mismo , tambi´en puede requerir el aprendizaje del uso de herramientas de simulaci´on , de programaci´on y de control propiamente dicho. Por este motivo, para que el alumno se concentre en el estudio de la din´amica del sistema controlado a menudo se simplifican los sistemas; se le da el sistema casi completo al que solo le falta la parte a estudiar o directamente trabaja en simulaci´on. El problema de este enfoque es que, aunque el alumno aprende a controlar un sistema, cuando tiene que hacer el control de un sistema real, no sabe como atacar el problema. Una pedagog´ıa popular para abordar este problema es el aprendizaje basado en proyectos (ABP), [7] [5]. Esta metodolog´ıa plantea un conjunto de cuestiones como punto de partida. Mediante la realizaci´on de un proyecto se van dan respuestas a dichas cuestiones dando proporcionando al alumno el conjunto de conocimientos requeridos. El aprendizaje basado en proyecto involucra a los estudiantes en la exploraci´on de preguntas importantes y significativas a trav´es de un proceso de investigaci´on y colaboraci´on. Los estudiantes hacen preguntas, predicciones, dise˜nan soluciones y aprenden a recopilar y analizar datos, utilizar tecnolog´ıa, fabricar productos y compartir ideas. Uno de los problemas que enfrenta PBL en el campo de la autom´atica es la necesidad de disponer de un sistema para analizar y controlar. Una opci´on es el uso de laboratorios virtuales, ver [3] y sus referencias. Sin embargo, los experimentos f´ısicos tienen un valor pedag´ogico por s´ı mismos porque el alumno tiene que resolver numerosos problemas que no est´an presentes en los entornos virtuales. Otra posible soluci´on son las pr´acticas de laboratorio, pero como ya comentamos, suelen ser sistemas simplificados donde el alumno solo resuelve el parte del sistema de control. Hoy en d´ıa el precio actual de los componentes electr´onicos brinda a los educadores la oportunidad de ense˜nar control mediante la construcci´on de plataformas de bajo costo. Por ejemplo, en [4] se presenta un robot autoequilibrado de dos ruedas, en [8] se muestra un ejemplo de una bola y una viga y en [6] se construye un levitador magn´etico para ense˜nar a controlar, [2] donde se presenta un robot m´ovil autoequilibrado. El coste de algunos de estos dispositivos es tan bajo, que abre la posibilidad de que cada alumno pueda adquirir su propio equipo para trabajar fuera del horario lectivo y fuera del laboratorio, es decir, que cada alumno pueda tener su laboratorio en su propia casa. Este art´ıculo presenta los primeros resultados de un proyecto desarrollado en la Universidad de Sevilla con el objetivo de dise˜nar un robot siguel´ıneas de bajo coste que puede ser construido y controlado por los estudiantes de Control Autom´atico en sus propias casas de forma independiente, siguiendo un enfoque PBL, aprendiendo electr´onica, programaci´on, modelado (tipo caja negra), control y procesamiento de se˜nales. La figura 1 muestra el robot resultante. Un robot siguel´ıneas es un robot que intenta se- XLII Jornadas de Autom´atica Educaci´on en Autom´atica 248 https://doi.org/10.17979/spudc.9788497498043.248 Figura 1: Fotograf´ıa del proyecto resultante guir una linea que describe un camino. La idea es mantener el ´angulo entre la linea y el eje del robot igual a cero durante el movimiento, aplicando a los motores, que mueven las ruedas, el voltaje para conseguir dicho objetivo. Este dispositivo ofrece una serie de retos tecnol´ogicos muy interesantes, adem´as de poder expresar un objetivo de dise˜no muy directo y claro, ser capaz de dise˜nar el robot m´as r´apido para un circui- to determinado. Esta propiedad es importante, ya que permite que el alumno tenga un resultado claro de su trabajo, e incluso ofrece la oportunidad de realizar una competici´on entre los diferentes alumnos. Este art´ıculo se organizar´a de la siguiente manera; primero, se presenta el prototipo de hardware, a continuaci´on, se presenta un esquema de control dise˜nado por estudiantes de la Universidad de Sevilla junto con unos resultados obtenidos. Y finalmente el art´ıculo muestra algunas conclusiones y posibles mejoras. 2. Hardware El robot ha sido dise˜nado de forma que pueda ser construido por alumnos incluyendo las conexiones entre las diferentes partes del mismo. Con objeto de reducir el precio del robot al m´ınimo se ha comprado un kit compuesto por el chasis, los motores, sus ruedas y el driver de los mismos, un Arduino Uno, un Arduino Uno Sensor Shield, un porta pilas, un interruptor de encendido y una rueda loca que se puede encontrar en internet a un precio muy reducido. A este kit se le ha a˜nadido una placa, dise˜nada en el departamento, con un array de sensores infrarrojos para detectar la posici´on de la l´ınea. El precio total del conjunto se puede conseguir entre 20ey 60edependiendo del fabricante (OSOYO, ELEGOO, CEBEKIT entre otros). A continuaci´on se presentan, por separado, las distintas partes del mismo: 2.1. Chasis Placa de metacrilato de 2mm de espesor multiprop´osito. En la figura 2 Puede verse el chasis. A media altura a la derecha pueden verse tambi´en los soportes de los motores en metacrilato, la rueda loca y el porta-pilas. El kit tambi´en incluye los tornillos, aunque no aparezcan en las figuras. Figura 2: Chasis 2.2. Motores Motores de continua con reductora. En el kit tambi´en proporciona las ruedas para los mismos. En la figura 3, pueden verse los motores y las rudas del kit. Figura 3: Motores y ruedas Las ´unicas soldaduras que este proyecto requiere son los cables que conectan los motores con los drivers, en el lado de los motores. El driver dispone de terminales con tornillos, mediante los cuales se conectan los motores. El resto de las conexiones se pueden hacer mediante cables DuPont con terminales hembra-hembra. 2.3. Driver L298N En la figura 4, puede verse el driver. Los jumpers que en la figura aparecen como Motor A,B activo los vamos a quitar y los conectaremos a dos salidas digitales PWM del Arduino (son las que llevan el s´ımbolo ∼). En la placa del driver vienen denotados con las etiquetas ENA yENB (enable A, enable B, son los pines m´as cercanos al borde XLII Jornadas de Autom´atica Educaci´on en Autom´atica 249 https://doi.org/10.17979/spudc.9788497498043.248 de la placa). Mediante estas dos se˜nales controlaremos el m´odulo de la velocidad de los motores. Figura 4: Pines L298N Los 4 pines etiquetados en la imagen como input controlaran la direcci´on de giro de los motores, el freno el´ectrico de los mismos o que queden libres. En la placa del driver est´an etiquetados como IN1, IN2 para controlar el motor A y IN3 eIN4 para controlar el motor B de la siguiente manera (v´ease el cuadro 1). Adelante Atr´as Freno IN1 (IN3) HIGH LOW LOW IN2 (IN4) LOW HIGH LOW Cuadro 1: Configuraci´on direcci´on de giro de los motores. Si ponemos el jumper regulator podemos alimentar nuestro Arduino a 5V mediante el pin Vlogico En la figura 5 puede verse la conexi´on con el Arduino: (a) Arduino (b) L298N Figura 5: Conexi´on L298N - Arduino 2.4. EL sensor CNY70 El sensor CNY70, esta compuesto por un diodo led y un foto transistor; es un sensor anal´ogico y nos da un valor de voltaje proporcional a la luz rebotada. La utilizaci´on de un sensor de infrarrojos puede ser de gran utilidad en proyectos en los que haya que hacer distinci´on entre superficies de color blanco y negro. El sensor se sit´ua a unos mil´ımetros de la superficie a detectar, mientras tanto el diodo interno emite una se˜nal de infrarrojos que absorber´a la superficie en el caso de que sea negra o bien rebotar´a en el caso en el que la superficie sea blanca. Si la se˜nal de infrarrojos rebota, activar´a la base del fototransistor entrando ´este en conducci´on. Se montar´a primero un ´unico sensor para probar como funciona. Realizamos a continuaci´on el montaje de la figura 6 y conectamos la fecha etiquetada como ARDUINO a cualquier entrada anal´ogica del Arduino, por ejemplo a la A0. Figura 6: Circuito b´asico para usar el CNY70 La idea es encontrar un umbral por el cual la lectura del CNY70 se considerar´a TRUE o 1 cuando encuentre l´ınea y por debajo FALSE o 0 en caso contrario 2.5. Placa con sensores CNY70 Con la idea de ser capaces de medir el ´angulo que forman la l´ınea y el robot siguel´ıneas, se crea el siguiente circuito (v´ease figura 7). Figura 7: Circuito placa para montar 6 sensores CNY70 Los sensores cny70 se colocan de modo y forma que est´en a −25◦,−15◦,−5◦, +5◦, +15◦y a +25◦ respecto al eje de giro del robot. V´ease la parte sombreada en azul de la figura 8. En rojo puede verse el dise˜no de la placa de metracilato. Se con- XLII Jornadas de Autom´atica Educaci´on en Autom´atica 250 https://doi.org/10.17979/spudc.9788497498043.248 sidera el eje de giro el punto medio de la l´ınea que une los centros de las dos ruedas motrices. Figura 8: Localizaci´on de los sensores CNY70 En la figura 9 puede verse el dise˜no de la PCB y la placa, ya montada, puede verse en la figura 10 Figura 9: PCB placa sensores cny70 Figura 10: Placa montada Cada sensor nos proporcionar´a un 1 si detecta l´ınea y 0 en caso contrario. Almacenaremos la informaci´on proporcionada por los sensores ordenados de izquierda a derecha en un vector de enteros vec cny70. Sea ang un entero que contendr´a la medida del ´angulo y nalmacenar´a el numero de sensores que valen 1. El ´angulo se puede medir mediante el siguiente c´odigo: ang=0; n=0; for( i =0; i <6; i++) {ang+=vec cny70 [ i ]∗10∗( i +1) ; n+=vec cny70 [ i ] ; } ang=ang/n ; ang=ang −35; Al final de este c´odigo ang tendr´a un valor que ir´a de −25◦a +25◦en incrementos de 5◦. Quedar´a pendiente programar que pasa si ning´un sensor no detecta l´ınea u otras situaciones an´omalas. El conexionado de esta placa al Arduino es sencillo puesto que la salida de cada uno de los sensores CNY70 va conectado a una entrada anal´ogica del Arduino y los dos pines de alimentaci´on van a 5V y a GND del mismo. 2.6. Arduino Uno sensor Shield El Arduino sensor shield viene con el kit del robot. Nos va a proporcionar la posibilidad de hacer todo el circuito del robot sin necesidad de hacer ninguna soldadura (exceptuando los cables de los motores). En la figura 11 se puede ver la descripci´on de los pines del mismo. Figura 11: Arduino Sensor Shield V5 2.7. Arduino Uno Arduino Uno es un microcontrolador basado en un ATmega328P. Tiene 14 pines digitales (6 de ellos PWM) y 6 entradas anal´ogicas de 10bits. La velocidad del microcontrolador es 16MHz. La placa contiene toda la electr´onica adicional para poder usar los recursos del microcontrolador. En este proyecto usaremos esta placa porque es la que nos proporciona el kit y porque es muy robusta ante errores en el conexionado, lo que la hace muy apropiada para un alumno que no tiene experiencia trabajando con este tipo de dispositivos. Vamos a usar el Arduino para leer los 6 sensores CNY70, decidir si est´an o no detectando l´ınea y construir la medida del ´angulo. Por otro lado controlaremos la velocidad y sentido de giro de los motores por medio de dos se˜nales PWM para el m´odulo y dos pines digitales, por motor, para el sentido. Por ´ultimo controlaremos el ´angulo a XLII Jornadas de Autom´atica Educaci´on en Autom´atica 251 https://doi.org/10.17979/spudc.9788497498043.248 medida que el robot se mueve mediante un PID discretizado que intentar´a mantener el mismo en un valor pr´oximo a cero para que el robot pueda seguir la l´ınea. 2.8. Modulo bluetooth HC-06 Si se quieren sacar datos o monitorizar el ensayo, se puede conectar un m´odulo bluetooth a los conectores dispuestos para ello en el Arduino Sensor Shield. 3. Software El esquema de control es el t´ıpico problema de regulaci´on en el que el objetivo de control es mantener el ´angulo entre el veh´ıculo y la l´ınea igual a cero a pesar de las perturbaciones (que van a venir por los cambios de direcci´on en la l´ınea a seguir). En la figura 12 vemos los bloques a programar: Figura 12: Esquema de control El bloque 1, recibe como entrada ωAyωBque son las se˜nales que van a controlar la velocidad de cada motor. Ser´an dos enteros con signo que ir´an de -255 a 255 (ya que los controladores de las se˜nales PWM del Arduino son de 8 bits). El m´odulo de estas se˜nales controlar´a la se˜nal PWM que se aplican los motores y el signo los pines de direcci´on. Asimismo este lo que se encarga de leer los 6 sensores CNY70 y los almacenar´a en un vector de unos y ceros que proporciona al bloque 2. El bloque 2 construir´a el ´angulo θ(´angulo entre la linea a seguir y el robot) a partir de las medidas del vector como se describe en la secci´on 2.5. Puede a˜nad´ırsele c´odigo adicional para tener en cuenta cuando no se detecta una l´ınea o cuando se llega a un cruce. El bloque 3 recibe la velocidad angular ωdel PID y la velocidad lineal v. Esta segunda magnitud puede ser ajustada como un par´ametro m´as de dise˜no puesto que cuanto m´as r´apido va el siguel´ıneas m´as dif´ıcil es sintonizar el controlador. A partir de estas dos magnitudes decidir´a las consignas para los dos motores por separado sin m´as que hacer ωA=v+ω ωB=v−ω Se puede tener en cuanta tambi´en las posibles saturaciones de las se˜nales de control descritas en el bloque 1. El bloque 4 es el controlador PID que recibiendo el ´angulo entre robot y l´ınea a seguir decidir´a la velocidad angular ωque ha de adquirir el robot para que el ´angulo θsea lo m´as pr´oxima a 0 . 4. Resultados A continuaci´on se presentan los resultados obtenidos por el siguel´ıneas siguiendo el circuito exterior de la figura 13 Figura 13: Circuito Para poder mostrar los resultados se le ha a˜nadido al robot siguel´ıneas un modulo bluetooth con objeto de mandar el ´angulo θy la se˜nal de control ωdurante un ciclo del mismo. En la figura 14 se pueden ver los resultados. La velocidad lineal en este ensayo es la m´axima admisible. Tarda en completar el circuito unos 8 segundos. Figura 14: Ensayo El control utilizado es un PID con un tiempo de muestreo de 25ms. Es un control muy agresivo con un t´ermino derivativo muy grande raz´on por la cual satura mucho. XLII Jornadas de Autom´atica Educaci´on en Autom´atica 252 https://doi.org/10.17979/spudc.9788497498043.248 5. Resultados docentes El a˜no 2020-21 se ha usado este prototipo como experiencia piloto voluntaria para 4 grupos de 3 alumnos de la asignatura Control Autom´atico del grado de Ingenier´ıa en Telecomunicaciones. La experiencia ha sido positiva, consideran un buen complemento a la asignatura de control. Asimismo han hecho una serie de comentarios o criticas constructivas. La m´as relevante es que la realizaci´on del proyecto consume mucho tiempo por lo que habr´a que tenerlo en cuenta en el curr´ıculo de la asignatura. Se han hecho 4 ejercicios previos a la realizaci´on del robot: 1 - Toma de contacto con Arduino. 2 - Pulsadores, puerto serie y funciones. 3 - Sensores y actuadores del siguel´ıneas. 4 - Control de un ventilador de un PC [1]. Con esta pr´actica los alumnos aprenden a programar un PID en tiempo discreto, garantizando el tiempo de muestreo mediante interrupciones temporales. Adem´as tambi´en tienen que programar un filtro de media para poder generar la medida de la velocidad de giro a partir de la se˜nal que proporciona el encoder integrado en el propio ventilador. Los alumnos han hecho hincapi´e en que necesitan m´as formaci´on previa con Arduino y una ´ultima sesi´on para montar el robot y orientar como programar un PID para el seguimiento de la linea. Este a˜no que entra van a hacer este proyecto en grupos de 3, todos los alumnos de la asignatura, y se va a realizar una evaluaci´on competitiva con objeto de incentivar un ajuste fino de los par´ametros del PID Agradecimientos Los autores de este art´ıculo desean darle las gracias a Luis Llamas por todos sus tutoriales sobre Arduino, algunos de los cuales han sido usados para crear este prototipo English summary Line following robot as a control subject project Abstract This article presents a low-cost Arduino-based line-following robot that has been used as a project in the automatic control subject of the Telecommunications Engineering degree. The idea is that students can learn electronics, programming, signal processing and control through the construction and control of this mobile robot. Keywords: Education, control, mobile robotics. Referencias [1] I. Alvarado, J.A. Borja, R. Haes, D. Mu˜noz de la Pe˜na (2021). Control de velocidad de un ventilador de una CPU. Jornadas de Autom´atica, Castell´on, Espa˜na Septiembre 1-3. [2] C. Gonzalez, I. Alvarado, D. Mu˜noz La Pe˜na (2017). Low cost two-wheels self-balancing robot for control education. 20th IFAC Word Congress, Toulouse, France July 9-14. [3] Goodwin, G.C., Medioli, A.M., Sher, W., Vlacic, L.B. and Welsh, J.S., (2011). Emulation-based virtual laboratories: a lowcost alternative to physical experiments in control engineering education. IEEE Transactions on Education, 54(1), pp.48-55. [4] Hau-Shiue, J. and Kai-Yew, L. (2013). Design and control of a two-wheel self-balancing robot using the arduino microcontroller board. 10th IEEE International Conference on Control and Automation (ICCA), 634–639. [5] M. Lehmann , P. Christensen , X. Du & M Thrane (2008) Problem-oriented and projectbased learning (POPBL) as an innovative learning strategy for sustainable development in engineering [6] Lilienkamp, K.A. and Lundberg, K. (2004). Low-cost magnetic levitation project kits for teaching feedback system design. Proceedings of the American Control Conference. [7] Perrenet, J.C., Bouhuijs, P.A.J. and Smits, J.G.M.M., (2000) The suitability of problembased learning for engineering education: theory and practice. Teaching in higher education, 5(3), pp.345-358. [8] Rashied, Z., Hamees, M., Hassan, M.U., Hameed, S., and Khatri, N.A. (2016). Real time implementation of Robust PID controller for stabilization of Ball Balancing Beam. International Journal of Conceptions on Information Technology and Computing. 6–9. c 2021 by the authors. Submitted for possible open access publication under the terms and conditions of the Creative Commons Attribution CC BY-NC-SA 4.0 license (https://creativecommons.org/licenses/by-nc- sa/4.0/deed.es). XLII Jornadas de Autom´atica Educaci´on en Autom´atica 253 https://doi.org/10.17979/spudc.9788497498043.248