Desarrollo De Una Aplicación Móvil Para El Manejo Multitarea Y Optimización De La Plataforma Robótica RP6V2
20
0
0
Texto completo
(2) Palabras clave: Android, aplicación móvil, comunicación inalámbrica, I2C, plataforma robótica RP6V2. Abstract: This article details the optimization process carried out on the RP6V2 robotic platform of the company Nuevos Recursos S.A.S. For this a mobile application was developed in Android Studio, which allows the user to interact with the platform in a simpler way allowing multiple options such as managing it manually, starting a specific program such as: avoiding obstacles or as a light follower and likewise to be able to check the state in which the sensors are located. Also, external modules and sensors were added to the platform as a WIFI module, an ultrasound, an OLED and a temperature and humidity sensor, communicated by I2C through the WIFI module. In addition, a document describing the use of the robotic platform through the application called RP6V2 was made in detail. Key Words: Android, mobile application, wireless communication, I2C, RP6V2 robotic platform. 1 Introducción En la actualidad existe una amplia gama de herramientas en el área de la electrónica, destinadas a la simplificación de tareas, ya sean estas tanto sencillas, como complejas. Una de estas herramientas son las plataformas robóticas. Estas plataformas cuentan con una serie de módulos y sensores para la interacción con su entorno dependiendo de las variables a las que estén destinadas. Muchas de las personas que hoy quieren adquirir una plataforma robótica, tienen los conocimientos necesarios para su uso, sacando el máximo provecho de éstas. Sin embargo, hay personas que no tienen estos conocimientos y quieren igualmente acceder a dichas plataformas, pero solo se estaría limitando su uso a una o dos tareas implementadas en el hardware por defecto..
(3) Preparación de Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido Fecha de envío: Fecha de recepción: Fecha de aceptación:. Este es el caso de la empresa Nuevos Recursos S.A.S.[1], que cuenta con la plataforma robótica RP6V2, de la cual no se conoce su alcance. Además, tiene una documentación muy técnica en cuanto a funcionamiento. Este factor hace que sea necesario para la empresa conocer el alcance de la plataforma robótica, como también hace pertinente que la persona que adquiera la plataforma pueda manipularla ampliamente. 2. Plataforma robótica RP6V2 y su alcance La plataforma RP6V2 (figura 1) es un sistema de robot móvil autónomo, diseñado tanto para principiantes como para experimentados desarrolladores de software y electrónica como una introducción al mundo de la robótica.. Figura 1: Plataforma robótica RP6V2.. Este robot se puede dividir en cinco sistemas principales como lo son: fuente de alimentación, sistema de manejo, sistema de control, sensores integrados y sistema de expansión (figura 2)..
(4) Figura 2: Sistemas de la plataforma robótica RP6V2.. 2.1 Fuente de alimentación El RP6V2 se alimenta por medio de 6 baterías AA recargables. Con el fin de proporcionar largos tiempos de funcionamiento, se emplearon baterías de 2700mAh, las cuales brindan de 3 a 6 horas de funcionamiento, esto dependiendo de la carga de los motores. 2.2 Sistema de manejo El sistema de accionamiento RP6V2 consta de dos motores de corriente continua, cada uno con su respectivo encoder, con sistemas de engranaje acoplados para mayor fuerza en las ruedas de oruga. Los motores son controlados a través de puentes H[2] con MOSFET IRF7309, integrados para una mayor velocidad de respuesta. 2.3 Sistema de control El sistema de control tiene como unidad central un procesador ATMEL ATMEGA32 8-bit (figura 3), el cual tiene 32KB de flash y tiene un reloj interno de 8MHz[3].. Figura 3: Procesador ATMEL ATMEGA32 8-bit..
(5) Preparación de Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido Fecha de envío: Fecha de recepción: Fecha de aceptación:. 2.3.1 Bootloader Hay un espacio de 2KB en la memoria del microcontrolador reservado para el Bootloader. El Bootloader es una interfaz, mostrada en la figura 4, por la cual se pueden cargar programas nuevos al robot a través de comunicación serial. Esta interfaz también, permite verificar la batería de la plataforma, su versión, el estado de la comunicación serial y un registro de errores[3].. Figura 4: Bootloader.. 2.4 Sensores integrados La plataforma tiene integrados una serie de sensores para el control de la misma como lo son: un sensor de voltaje en la batería implementado por medio de dos resistencias en serie y un conversor análogo-digital; dos fotorresistencias A6090 y dos finales de carrera o bumpers localizados en la parte frontal de la plataforma; dos sensores infrarrojos LD271, igualmente ubicados en la parte frontal de la plataforma; dos encoders SFH9202 y sensores de corriente en cada uno de los motores[3]..
(6) 2.5 Sistema de expansión Una de las características más útiles del RP6V2 es el sistema de expansión, mostrado en la figura 5, es que le permite agregar módulos y sensores adicionales a la plataforma fácilmente. Este sistema de expansión funciona con interrupciones, comunicación serial y comunicación I2C[3].. Figura 5: Sistema de expansión de la plataforma, por I2C.. 2.6 Programación de la plataforma robótica La plataforma robótica RP6V2 cuenta con librerías nativas desarrolladas en lenguaje C, las cuales fueron diseñadas para que esta fuera programada de una manera más sencilla. Además de las librerías, el RP6V2 viene con una herramienta llamada WinAVR[4] que cumple tres funciones principales: cargar las librerías nativas a la plataforma, brindar un entorno de desarrollo y generar un archivo de texto codificado con la información del programa que será cargado posteriormente al RP6V2 a través del Bootloader. La plataforma robótica se programa en lenguaje C[5]. 3. Optimización de la plataforma robótica RP6V2. Figura 6: Características RP6V2..
(7) Preparación de Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido Fecha de envío: Fecha de recepción: Fecha de aceptación:. A pesar de que la plataforma cuenta con una serie de sensores, estos están distribuidos en un solo costado, es decir, los finales de carrera, los infrarrojos y las fotorresistencias están ubicados en la parte frontal de la plataforma. Además de esto, esta no cuenta con un sistema de visualización que brinde información relevante que pueda servir al usuario al momento de utilizarla. Por otro lado, tampoco cuenta con un medio que permita a dispositivos móviles una comunicación inalámbrica. De acuerdo con esto, se decide optimizar la plataforma con los siguientes módulos y sensores: un sensor de ultrasonido en la parte trasera, debido a que en el momento en que la plataforma esté retrocediendo esta podría chocar e intentar retroceder aun en un estado de colisión; una OLED con el fin de que la plataforma cuente con un sistema de visualización; un módulo WIFI para que la plataforma pueda comunicarse inalámbricamente; y por último, un sensor de temperatura con el objetivo en realizar una tarea distinta a las tareas que venían en los ejemplos por defecto de la plataforma robótica. 3.1 Ultrasonido Se implementa el HCSR04[6] (figura 7), este cuenta con las siguientes características: Voltaje de alimentación. 5V DC. Corriente de trabajo. 15 mA. Frecuencia de trabajo. 40Khz. Rango de medida. 4 cm – 2 m. Ángulo de trabajo. 15°. Tabla 1: Características HCSR04..
(8) Figura 7: Sensor de ultrasonido, HCSR04.. 3.1.1 Caracterización del sensor HCSR04 Se realiza la caracterización del sensor HCSR04 de 0 cm a 30 cm, ya que el rango de trabajo para la plataforma está entre esos límites. Como se puede observar en la figura 8, en color rojo se muestra la zona muerta del sensor de 5 cm, en color amarillo la zona en la que se pueden presentar errores de detección y, por último, la zona azul representa la zona con mayor exactitud.. Figura 8: Espacio de trabajo HCSR04. 3.2 Temperatura Se implementa el sensor DHT11[7] (figura 9) que cuenta con las siguientes características: Fuente de alimentación. 3V – 5.5V. Tiempo de respuesta. 2 segundos Temperatura. Resolución. 1°C. Repetibilidad. ±1°C. Precisión. ±2°C. Rango de medida. 0°C – 50°C. Tabla 2: Características DHT11..
(9) Preparación de Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido Fecha de envío: Fecha de recepción: Fecha de aceptación:. Figura 9: Sensor de temperatura, DHT11.. 3.2.1 Caracterización sensor DHT11 El sensor DHT11 se caracterizó usando como patrón una termocupla (figura 10) tomando datos cada 1°C en un rango de 0°C a 38°C. Como se puede observar en la tabla 3, entre mayor sea la temperatura, el error disminuye. Así mismo, los errores son pequeños para tenerlos en consideración. Por otro lado, el tiempo de respuesta del sensor suele variar entre 5 y 10 segundos, dependiendo el aumento o disminución de temperatura en grandes cantidades.. Figura 10: Patrón de comparación DHT11. Termocupla (°C) DHT11 (°C) Error 20. 20. 0,000. 21. 22. 0,048. 22. 22. 0,000. 23. 23. 0,000. 24. 24. 0,000.
(10) 25. 24. 0,040. 26. 26. 0,000. 27. 27. 0,000. 28. 28. 0,000. 29. 29. 0,000. 30. 30. 0,000. 31. 31. 0,000. 32. 31. 0,031. 33. 32. 0,030. 34. 33. 0,029. 35. 34. 0,029. 36. 35. 0,028. 37. 36. 0,027. 38. 37. 0,026. Promedio. 0,015. Tabla 3: Caracterización DHT11.. 3.3 Visualización Se implementa una visualización por medio de una OLED. Para ello se escoge OLED de 128x64[8] con soporte de comunicación I2C (figura 11).. Figura 11: OLED de 128x64 de 0.96’’.. 3.4 Módulo WIFI Además, se implementa un módulo NODEMCU ESP-12[9] (figura 12). Este módulo cuenta con una gran variedad de características como lo son comunicación I2C, SPI, WIFI, UART, además de una entrada analógica y 9 pines bidireccionales..
(11) Preparación de Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido Fecha de envío: Fecha de recepción: Fecha de aceptación:. Figura 12: Módulo NODEMCU ESP-12.. 3.5 Conversor de nivel lógico Por último, se implementa un conversor de nivel lógico bidireccional[10] (figura 13) para la comunicación I2C. Esto se implementa debido al problema que hay entre los niveles de voltaje lógicos de la plataforma (el cual es de 5V) y el NODEMCU ESP-12(el cual es 3.3V).. Figura 13: Conversor de nivel lógico.. 4. Aplicación Android Studio Para el desarrollo de la aplicación, se utilizó Android Studio, que es un sistema operativo de código abierto para dispositivos móviles, que se programa principalmente en Java y su núcleo está basado en Linux [11]. La aplicación se desarrolla en el API 21, es decir, en Android 5.0, debido a que esta versión ofrece mayor compatibilidad con la mayoría de las versiones de Android. El objetivo de la aplicación, es permitirle al usuario interactuar con la plataforma robótica desde dispositivos móviles. Para la comunicación se utilizó la librería Volley, que es una.
(12) librería desarrollada por Google para optimizar el envío de peticiones http desde las aplicaciones Android, hacia servidores externos.[12] Al iniciar la aplicación, el usuario se encuentra con la validación de una dirección IP, por medio de la cual, la aplicación se conecta con la plataforma robótica, a través del módulo WIFI. Por otra parte, al validar la IP se muestra un menú, el cual contiene las opciones que le permiten al usuario interacturar con la plataforma, las cuales son: manejar la plataforma robótica de forma manual, visualizar el estado de los sensores, relizar una trayectoria determinada (figuras),. evitar obtaculos, variación de la velocidad según la temperatura,. seguidor de luz y por ultimo, la opción de información, que lleva al usuario a un enlace en el que puede ver la documentación de la plataforma. 4.1 Control manual En ésta opción se muestra una actividad que cuenta con cinco botones. Cuatro de ellos cumplen con la tarea de mover la plataforma robótica hacia la dirección que se indica, y de la misma manera, el quinto botón cumple la función de detenerla. Adicionalmente, cuenta con la visualización que muestra la dirección y el dato, en porcentaje, de los sensores de velocidad de cada motor. 4.2 Estado de los sensores En ésta opción se muestra el estado en el que se encuentran los sensores con los que cuenta la plataforma y los que se adicionaron. Se compone de una lista en la que se muestra cada sensor y al presionar cualquiera de ellos se puede visualizar su estado. 4.3 Figuras En ésta opción se muestran seis botones asignados a seis diferentes figuras geométricas. La finalidad de ésta actividad es que cuando se presiona uno de los botones, la plataforma robótica realice una trayectoria que describa dicha figura geométrica. Adicionalmente cuenta con un botón que detiene la plataforma..
(13) Preparación de Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido Fecha de envío: Fecha de recepción: Fecha de aceptación:. 4.4 Obstáculos Esta opción cuenta con un botón de inicio, el cual tiene por función enviar un comando a la plataforma que, como su nombre lo indica, inicia el programa de evaidir obtaculos. Para ello toma los datos de los sensores que indican proximidad, que son los infrarojos, los bompers y el ultrasonido. En medio de la pantalla se muestra un bombillo el cual cambia en tres estados: Verde, que inidica que ningún sensor detecta obtaculos, amarillo, que indica que los sensores infrarojos y el ultrasonido detectan obstaculos cerca y, por último, el rojo que indica que los bompers estan en estado de colisión. Los estados amarillo y rojo envian comandos a la plataforma que indican que se encuentra un obtaculo para que la plataforma retroceda o realice una acción determinada para que el estado cambie a verde de nuevo. 4.5 Temperatura Esta opción cuenta con un botón para iniciar el programa de temperatura, para ello toma los datos del sensor de temperatura, y dependiendo del dato, entre más alto sea, mayor velocidad tendrá la plataforma. A su vez, se hace un cambio entre imágenes para animar la variación de temperatura y se visualizan los datos del sensor de temperatura, de humedad y de la velocidad de cada motor. 4.6 Seguidor de luz Por ultimo, ésta opción cuenta con el botón que inicia el programa seguidor de luz. Para ello, toma los datos de los sensores de luz, que en éste caso son dos fotoresistencias, en la parte frontal de la plataforma robótica. En la pantalla se muestran dos bombillos, uno para el sensor de la izquierda y uno para el de la derecha que se apagan cuando el dato de la.
(14) luminosidad es menor al 10% y enciende cuando es mayor. Adicionalmente, debajo de cada bombillo se muestra el dato de luminosidad. 5. Circuito y algoritmo implementado 5.1 Circuito implementado De acuerdo con la optimización planteada, se implementa el siguiente circuito:. Figura 14: Circuito implementado.. La plataforma robótica, la OLED y el módulo WIFI están conectados por medio de un bus I2C del cual, el maestro del bus, es el módulo WIFI. Además de esto, el ultrasonido y el DHT11 están conectados por medio de pines digitales al mismo módulo. 5.2 Algoritmo implementado En total se desarrollan tres algoritmos en tres entornos de programación diferentes. Para la plataforma robótica RP6V2 se desarrolla el siguiente algoritmo en la aplicación WinAVR:. Figura 15: Algoritmo RP6V2..
(15) Preparación de Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido Fecha de envío: Fecha de recepción: Fecha de aceptación:. Por otro lado, el módulo NODEMCU ESP-12 se programa en Arduino IDE y cuenta con el siguiente algoritmo:. Figura 16: Algoritmo NODEMCU ESP-12.. Por último, el algoritmo para la aplicación móvil se desarrolla en Android Studio y es el siguiente:. Figura 17: Algoritmo aplicación en Android..
(16) 6. Pruebas y resultados 6.1 Alcance de la plataforma PLATAFORMA ROBOTICA RP6V2 COMUNICACIÓN Se agregó un módulo WI-FI , el cual permite una La plataforma cuenta con comunicación alámbrica (serial,. comunicación inalámbrica a mayor distancia y un. I2C) y además comunicación inalámbrica por infrarrojo.. mayor envió de datos a diferencia de la comunicación por infrarrojo.. SENSORES Se agregó un sensor ultrasónico en la parte trasera, La plataforma cuenta con sensores de proximidad en la parte. lo cual reduce las veces que se choca la plataforma. delantera, pero no en la parte trasera, lo que hacía que la. en la parte trasera. Hay un error en la detección de. plataforma se chocara.. obstáculos por parte del sensor ultrasónico debido a la forma del objeto que está detectando.. La plataforma no cuenta con un sensor que realice una tarea diferente a las ya preestablecidas en los ejemplos con los que. Se agregaron sensores de temperatura y humedad.. viene la plataforma robótica. VISUALIZACIÓN La plataforma cuenta con leds de estado los cuales muestran. Se agregó una oled con el fin de tener información. información ON/OFF, pero no cuenta con información. más detallada de la plataforma. En este caso se. detallada.. puede visualizar la IP del servidor a la que la plataforma se debe conectar. Tabla 4: Alcance y optimización de la plataforma robótica.. 6.2 Entorno controlado para sensores de proximidad Se creó una pista de obstáculos de diferentes tamaños, con el objetivo de poner poner a prueba el funcionamiento de los sensores de proximidad con los que cuenta la plataforma robótica..
(17) Preparación de Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido Fecha de envío: Fecha de recepción: Fecha de aceptación:. 6.2.1 Ultrasonido El sensor ultrasónico implementado tiene problemas para detectar objetos por debajo de los 10 cm de altura ya que este se encuentra a una altura de 14 cm. Adicional a esto, como se puede evidenciar en la caracterización el sensor cuenta con un rango de funcionamiento de aproximadamente de 30° a 40°. Y finalmente, debido a la reflexión de las ondas sonoras, cuando el sensor no está paralelo al obstáculo, como por ejemplo una esquina, este puede presentar error en la medida debido a los ángulos de incidencia y reflexión. 6.2.2 Infrarrojos En el caso de los infrarrojos, cuando el obstáculo no se encuentra directamente en frente del sensor, este no lo detecta. 6.2.3 Finales de carrera o bumpers Los bumpers son el sensor de apoyo para los sensores infrarrojos, ya que estos están ubicados inmediatamente por debajo. Sin embargo, existe la posibilidad de que la plataforma colisione en la parte delantera, esto debido a que los Bumpers no abarcan por completo la parte frontal de la plataforma, ya que esta, en la parte frontal cuenta con 12,5 cm de largo y los Bumpers solo abarcan 9 cm. 6.3 Figuras Se realizaron pruebas dibujando con la plataforma robótica la trayectoria de las seis figuras geométricas propuestas en la aplicación. Para cada figura, se hicieron 50 pruebas y como resultado se obtuvo que el error en cada trayectoria es muy alto. Sin embargo, la plataforma es capaz de realizar la figura, pero con desviaciones notorias. Adicional a esto, entre más complejidad tenga la figura, habrá mayor desviación. En la figura 18, se puede observar: una.
(18) base de color negro, la cual es la figura a realizar, las trayectorias con los distintos colores son las realizadas por la plataforma robótica y, por último, los semicírculos son los giros que esta realiza para lograr hacer la figura.. Figura 18: Pruebas con figuras geométricas. Angulo. 36. 60. 90. 108. 120. Promedio error. 8,20%. 6,90%. 5,90%. 3,33%. 3,45%. Tabla 5: Error promedio de ángulos.. En la tabla 4, se muestra el error generado en cada giro que realiza la plataforma durante la trayectoria, dependiendo el ángulo interno de la figura realizada. Se puede observar que entre mayor era el ángulo interno de la figura, menor era el error o la desviación en la trayectoria, es decir, una figura como la estrella presenta mayor error que una como el rectángulo. 6.4 Temperatura La tarea en la aplicación llamada “Temperatura” funciona correctamente, ya que la velocidad de la plataforma robótica varía de acuerdo al cambio en la temperatura como se había previsto, es decir, a mayor temperatura mayor velocidad. Sin embargo, los tiempos de respuesta del sensor implementado son prolongados, cabe destacar que el tiempo de respuesta al subir la temperatura del sensor es menor que el tiempo de respuesta al bajarla..
(19) Preparación de Artículos revista VISIÓN ELECTRÓNICA: algo más que un estado sólido Fecha de envío: Fecha de recepción: Fecha de aceptación:. 6.5 Seguidor de luz La tarea en la aplicación llamada “Seguidor de luz” funciona según lo esperado. No obstante, es importante mencionar que la fuente de luz debe estar frente a la plataforma ya que, las fotorresistencias con las que esta cuenta, están ubicadas en la parte frontal. Adicional a esto, haciendo pruebas en diferentes entornos se llegó a la conclusión, de que los sensores de luz son más sensibles a la luz blanca que a la luz amarilla. 6.6 Guía de uso Se realizó un documento con información más detallada del uso de la plataforma y de la aplicación (ANEXO 1). Dicho documento, fue revisado por personas del rango de edad de 15 a 50 años, distintas ocupaciones y con dispositivos móviles diferentes. La mayoría de estas personas, lograron utilizar la plataforma robótica sin mayor problema. Con esto se puede concluir, que la guía de usuario es funcional. Por otro lado, se realizó un documento más técnico para la adición de módulos y sensores, y la adición de tareas a la aplicación (ANEXO 2). Los documentos se pueden encontrar en el siguiente enlace: https://drive.google.com/drive/u/3/folders/1LTVsaRclk47-gLMsPTtaqWN9fy-Y6X0i. Figura 19: Enlace documento anexo..
(20) 7 Agradecimientos Agradecemos a la empresa Nuevos Recursos S.A.S, entidad que patrocina el proyecto. 8 Referencias [1]. “Nuevos Recursos S.A.S.” [Online]. Available: http://nuevosrecursos.com/.. [2]. N. Muñoz-Galeano, J. B. Cano-Quintero, and J. M. López-Lezama, “Enseñando el funcionamiento de los inversores puente H: análisis del intercambio de potencia entre bobinas y condensadores,” Form. Univ., vol. 9, no. 1, pp. 117–124, 2016.. [3]. C. R. Vehicle, “RP6v2,” 2013.. [4]. “WinAVR.” [Online]. Available: http://winavr.sourceforge.net/.. [5]. E. Vicente and B. Esteban, Lenguaje C de programación. 2010.. [6]. Indoware, “Ultrasonic Ranging Module HC - SR04,” Datasheet, pp. 1–4, 2013.. [7]. E. Sardini and M. Serpelloni, “Temperature Sensor,” IEEE Trans. Instrum. Meas., vol. 61, no. 9, pp. 2354–2361, 2012.. [8]. M. Data, A. M. Ratings, and E. Characteristics, “Vishay 128 x 64 Graphic OLED ABSOLUTE MAXIMUM RATINGS STANDARD VALUE STANDARD VALUE UNIT OPTIONS OLED-128O064D-BPP3N00000 INTERFACE PIN FUNCTION,” pp. 1–25.. [9]. Anonymous, “Handson Technology User Manual V1.2,” Hanson Technol., pp. 1–22, 2017.. [10] “Bi-Directional MOSFET Voltage Level Converter 3.3V to 5V.” [Online]. Available: http://www.hobbytronics.co.uk/mosfet-voltage-level-converter. [11] D. Robleado Fernández, “Desarrollo De Aplicaciones Para Android,” p. 49, 2014. [12] S. Weber, “Volley.”.
(21)
Figure
+7
Documento similar