SISTEMA DE ADQUISICIÓN DE DATOS DE BAJO COSTO, BASADO EN SOFTWARE SOFTWARE Y HARDW HARD WARE LIBRE Y ABIERTO, CON INTERFACE MÓVIL. Jorge Gómez A i, Conrado Nieto B ii. Carlos Valencia iii Semillero ROEDHA LIBRE, LIBRE, Escuela de Ingeniería, Ingeniería, Programa de Ing. Electrónica, Institución Universitaria Salazar y Herrera, Especialización Especialización Tecnológica en Desarrollo de Aplicaciones para Dispositivos Móviles, Móviles, Centro de Servicios y Gestión Empresarial, Regional Antioquia SENA. Grupo GARPE I. Universitaria Pascual Bravo, Medellín, Colombia, Sur América. Resumen Esta ponencia presenta el desarrollo de un sistema de adquisición de datos, basado en software y hardware, libre y abierto, aplicando MyOpenLab, una programa de origen alemán, orientado al modelado y la simulación de sistemas físicos, electrónicos y de control, bajo General Public License (GPL) de código abierto, que cuenta con librerías de: Inteligencia artificial, control, digitales, entre otras, y la posibilidad de definir las propias, tiene características características similares a LabVIEW. El software está escrito en lenguaje Java, Java, lo que permite migrarlo a múltiples plataformas como Windows, Linux, y con algunas adaptaciones a Dispositivos Móviles, además cuenta con una red de colaboradores a nivel mundial, posee características muy interesantes como la comunicación con Ardulema, un clon de Arduino en el que se basó en primera medida esta Investigación. Como Hardware libre es adaptado Arduino una tarjeta de desarrollo que viene equipada con microcontroladores atmega, es una plataforma educativa para la enseñanza de tecnología que incluye conceptos de sistemas complejos, programación, electrónica básica, automatización, y ro bótica, entre otros. Se escoge por comodidad pues tiene mucha documentación y código también libre y abierto, gracias a su gran comunidad de aprendizaje que se puede integrar en este proyecto y algunos posteriores. La necesidad a satisfacer con el proyecto radica en resolver el problema de altos costos en software y hardware de adquisición de datos comerciales, su falta de modularidad y su reducida capacidad de adaptación a las necesidades, así como presupuestos de estudiantes y las pequeñas empresas, proyecto de mejoramiento empresarial realizado para la Corporación Lunamedia. El paso siguiente incluirá la construcción y teleoperación de un Robot Manipulador, hacer uso del estándar Java 3D y operación operación con dispositivos móviles celulares por sistema Bluetooth Bluetooth o a través de internet internet utilizando una VPN (Red Privada Virtual).
Palabras claves: OpenHardware , OpenSoftware, Arduino, MyOpenLab, Adquisición de Datos.
1 INTRODUCCIÓN En la actualidad son cada vez más comunes las tareas que requieren, adquirir y procesar datos, las tarjetas e interfaces de los sistemas de adquisición de datos comerciales tienen precios elevados. Con el presente trabajo se busca dar a conocer las funcionalidades de las herramientas Libres y de Código Abierto: MyOpenLab y Arduino. La necesidad a satisfacer con el proyecto radica en resolver el problema de altos costos en software y hardware de adquisición de datos comerciales comerciales y su falta de modularidad y capacidad de adaptación a las necesidades y presupuestos de los estudiantes y las pequeñas empresas.
Además se hace una relatoría del proceso de investigación y las pruebas realizadas al prototipo funcional que se desarrolló durante una investigación formativa como proyecto final del curso Adquisición de Datos, que se imparte en la Institución Universitaria Salazar y Herrera de la ciudad de Medellín, además hace parte del informe de práctica empresarial en la modalidad de Mejoramiento en la Entidad sin ánimo de lucro Corporación Lunamedia Dedicada el diseño y producción de contenidos culturales, educativos y comunitarios.
2 PLANTEAMIENTO DEL PROYECTO 2.1 Pregunta de Investigación: ¿Cuáles son las herramientas, métodos y soluciones acordes desde los puntos de vista técnico y pedagógico para diseñar e implementar una Interface De Adquisición de Datos a Bajo Costo, Basada En Software y Hardware, Libre y Abierto, aplicable a un curso Adquisición de Datos y extrapolable a la industria y otros cursos? 2.2 Justificación: La gran posibilidad que abre a las personas la educación on-line o e-learning es el lograr que discapacitados, personas de bajos recursos (que les impide la movilidad a hasta los centros de enseñanza), estudiantes con largos periodos de enfermedad que los aleja de la presencialidad y otros miembros que antes no podían estudiar por carecer de tiempo en las jornadas establecidas por las universidades, logren una formación que les permita alcanzar una mejor calidad de vida al prepararlos para una carrera y un trabajo dignos, sin embargo se encuentra con un gran escollo: las materias que mayormente tienen contenidos prácticos o son en su esencia laboratorios. En este proyecto se propone estudiar la tecnología para la implementación e incorporación de nuevas innovaciones tecnológicas TICS (Tecnologías de Información y Comunicación) aplicadas en Ambientes Virtuales de Aprendizaje, un prototipo de “Int erface de Adquisición de Datos de Bajo Costo, Basada en Software y Hardware Libre y Abierto” avanzando en la investigación y desarrollo de “Laboratorios virtuales” y “Laboratorios Remotos” en el área de electrónica, específicamente en el
curso de Adquisición de Datos, para ofrecerse en complemento o como alternativa al software e interface (Hardware) comercial. El desarrollo de este tipo de herramientas ha demostrado su pertinencia al enfrentar al futuro profesional ante situaciones reales donde se interactúa directamente con los equipos y dispositivos físicos o con paquetes de software sofisticado al cual no tienen acceso usualmente los estudiantes en sus hogares.
2.3 Objetivos General: Diseñar e implementar un prototipo de laboratorio virtual como herramienta educativa que pueda ser aplicable al curso de sistemas de adquisición de datos [1] que se imparte en la Institución Universitaria Salazar y Herrera de la ciudad de Medellín como trabajo de mejoramiento empresarial realizado para la Corporación Lunamedia. Específicos: Implementar una interface de hardware abierto en la construcción del módulo de laboratorio que le permita comunicarse con sensores y actuadores. Reducir los costos de materiales en las prácticas de los estudiantes de áreas relacionadas con la adquisición de datos.
Trabajar con el software libre y abierto de adquisición de datos y permitir la comunicación con la placa escogida para realizar las practicas.
3 CONCEPTUALIZACIÓN ¿Qué es Software Libre (Free Software)? Esta denominación del software que respeta la libertad de los usuarios sobre su producto adquirido y, por tanto, una vez obtenido puede ser usado, copiado, estudiado, cambiado y redistribuido libremente. Según la Free Software Foundation [2] …“el software libre se refiere a la libertad de los usuarios para ejecutar, copiar, distribuir, estudiar, modificar el software y distribuirlo modificado”… Se suele confundir con el software gratis pero es una acepción diferente, pues este solo es que no tiene costo para el usuario, pero puede traer muchas restricciones. ¿Qué es Código Abierto (Open Software)? Es el software que se distribuye junto con su código fuente, y con una licencia de uso que garantiza que quien lo adquiere: Puede estudiarlo, corregirlo, mejorarlo y adaptarlo a cualquier necesidad puede utilizarlo para cualquier propósito tiene el derecho de redistribuirlo, siempre que preserve su carácter abierto. El hecho de que el código fuente esté disponible y pueda ser modificado es la razón por la cual es habitual referirse a este tipo de software como "software de código fuente abierto" (en inglés, "open source software"), o simplemente software abierto. ¿Qué es Hardware Abierto (Open Hardware)? Existen hoy en día miles de diseños de libre distribución y el Hardware Abierto (HA) busca no solamente hacer más accesible esa información, sino el promover y dotar de marco jurídico al diseño libre con el fin de proteger y alentar a todos los desarrolladores hardware [2]. ¿Qué es Arduino?: Arduino es un entrenador de microcontroladores de origen italiano muy difundido en el mundo por su fácil uso y su gran equipo de desarrolladores y colaboradores. …“Arduino es una plataforma de prototipos electrónica de código abierto (open-source) basada en hardware y software flexibles y fáciles de usar. Está pensado para artistas, diseñadores, como hobby y para cualquiera interesado en crear objetos o entornos interactivos. Arduino puede sentir el entorno mediante la recepción de entradas desde una variedad de sensores y puede afectar a su alrededor mediante el control de luces, motores y otros artefactos.”… [3]
Figura 1 Arduino UNO Fuente :http://www.arduino.cc
El microcontrolador de la placa se programa usando el Arduino Programming Language (Lenguaje propio basado en Wiring un sistema y una tarjeta anterior diseñada por Diego Barragan un Colmbiano) y el Arduino Development Environment (basado en Processing un lenguaje de captura y visualización de datos dirigido a diseñadores y profesionales del área grafica en su mayoría). …“ Los proyectos de Arduino pueden ser autonomos o se pueden comunicar con software en ejecución en un ordenador (por ejemplo con Flash, Processing, MaxMSP, etc.). Las placas se pueden ensamblar a mano o encargarlas preensambladas; el software se puede descargar gratuitamente. Los diseños de referencia del hardware (archivos CAD) están disponibles bajo licencia open-source, por lo que eres libre de adaptarlas a tus necesidades. Arduino recibió una mención honorífica en la sección Digital Communities del Ars Electronica Prix en 2006.” …[3] …“Una de las características más importantes de esta plataforma de hardware es la posibilidad de construir las tarjetas en casa ya que sus componentes pueden encontrarse en las tiendas de componentes electrónicos y usando una protoboard o un circuito impreso muy fácil de producir puede construirse una tarjeta cuyo costo es muy bajo si lo comparamos con otras plataformas de hardware libre. También existe una gran cantidad de proveedores que distribuyen la tarjeta en todo el mundo, como también un sin número de proyectos basados en la tarjeta base que adicionan características o hacen la tarjeta más asequible esto gracias a la naturaleza de hardware libre con la que se distribuyen los diagramas de la plataforma, es así como existen un sin número de tarjetas basadas en Arduino, como la ArbuinoBT que adiciona un radio bluetooth para la comunicación inalámbrica, la Arduino Mega con un gran número de entradas y salidas para proyectos más grandes, tarjetas basadas en otras familias de micro controladores y la popular Freeduino, una tarjeta que puede ser fácilmente armada en casa que incluye el circuito impreso y todo el montaje es con componentes fáciles de soldar que no utilizan montaje superficial. Adicionalmente existen tarjetas de expansión conocidas como Shields, las cuales pueden conectarse sobre la tarjeta Arduino de forma modular las cuales adicionan una característica específica a la plataforma, de tal modo que se pueden construir artefactos adicionando estas Shields unas sobre otras para lograr el conjunto de características buscadas y convirtiendo a la plataforma Arduino en una plataforma Modular de desarrollo de prototipos de hardware”…[ 3]
¿Por qué Arduino? Existiendo tantos otros microcontroladores y plataformas microcontroladoras disponibles para computación física. Pics de Microchips, free Scale de Motorola, Parallax Basic Stamp, Netmedia's BX-24, Phidgets, MIT's Handyboard, entre otras ofertas de funcionalidad similar.
Todas las tarjetas de desarrollo de microcontroladores en teoría tratan de crear un protocolo simple y lo encierran en un paquete fácil de usar. Arduino también pero brinda unas ventajas especiales para docentes, estudiantes y enamorados de la tecnología sobre los otros sistemas: Gran comunidad de colaboradores: Existen en el mundo miles de colaboradores y apasionados de la plataforma Arduino. Económica: La placa Arduino son relativamente no costosas comparadas con otras plataformas de microcontroladores. La versión menos cara del módulo Arduino puede ser ensamblada a mano, e incluso los módulos de Arduino preensamblados cuestan menos de $ 50.000 pesos colombianos. Multiplataforma: El software de Arduino se ejecuta en sistemas operativos Windows, Macintosh OSX y GNU/Linux e inclusive dispositivos móviles que permitan correr el runtime JRE de Java. La mayoría de los sistemas microcontroladores están limitados a Windows. Entorno simple y claro: El entorno de programación de Arduino es de fácil aprehendizaje, pero su suficientemente flexible para que los usuarios avanzados puedan aprovecharlo también e inclusive extenderlo a sus necesidades, Para profesores, está convenientemente basado en el entorno Processing. Código abierto y software extensible: El software Arduino está publicado como herramienta de código abierto, disponible para extensión por programadores experimentados; puede ser expandido mediante librerías C++, y la gente que quiera entender los detalles técnicos pueden hacer el salto desde Arduino a la programación en lenguaje AVR C en el cual está basado. De forma similar, puedes añadir código AVR-C directamente en tus programas Arduino si quieres. Código abierto y hardware extensible: El Arduino está basado en los microcontroladores ATMEGA (Ver Figura 1) de Atmel. Los planos para los módulos están publicados bajo licencia Creative Commons, por lo que diseñadores experimentados de circuitos pueden hacer su propia versión del módulo, extendiéndolo y mejorándolo. Incluso usuarios relativamente inexpertos pueden construir la versión de la placa del módulo para entender cómo funciona y ahorrar dinero.
Figura 2 MyOpenLab Fuente : http://myopenlab.de
¿Por qué MyOpenLab? MyOpenLab : Es un software de libre distribuido bajo licencia GPL (Ver Figura 2) de código abierto, escrito en Java, multiplataforma y orientado a la realización de aplicaciones de modelado y simulación de sistemas físicos, electrónicos y de control con un amplio campo de aplicaciones. El poder grafico de MyOpenLab y sus potencias de cálculo y proceso de datos le hacen candidato para la experimentación y elaboración de prototipos tanto en el aula, el laboratorio, así como en el hogar y la empresa. En este programa existe la posibilidad de conexión a través de los puertos USB del ordenador con el mundo físico a diversos tipos de hardware entre ellos se encuentra Arduino. [4] 4. PLANTEAMIENTO Y REALIZACIÓN. Se planeó una investigación sobre las placas y software disponibles en el medio para la adquisición de datos teniendo como la directriz principal que fuesen abiertos y libres, para posteriormente adaptarlos a las necesidades del curso. Se tuvieron en cuenta restricciones de presupuesto como 100000 pesos como máximo, se realizó una investigación por internet donde se encontró MyOpenLab como solución de bajo costo y gran versatilidad y en trabajo de campo de las posibles ofertas, se encontró placas como Freeduino (Clon de Arduino con materiales nacionales que enviaban por correo desde la Universidad Autónoma de Manizales), el Pingüino, del cual se tiene muy buenos resultados y que es totalmente construible con materiales nacionales, pero se optó por adquirir en una rebaja en la tienda I+D del centro comercial la cascada de Medellín un Arduino UNO original hecho en Italia, con el que finalmente se realizaron las pruebas y la puesta a punto del sistema cumpliendo la limitación de presupuesto autoimpuesta (se logró bajar a 70000 pesos precio final).
Se programó Arduino con la plataforma libre y totalmente abierta, la documentación se puede encontrar en http://www.arduino.cc por medio de la conexión usb sin necesidad de quemadores ni entrenadores de microcontrolador adicional, para poder comunicarse con MyOpenLab, se transfirió el programa a la placa y se realizaron las pruebas de simulación de un sensor utilizando una de las entradas analógicas de la placa utilizando para ello un potenciómetro de 10k para simular la medida (Ver Figuras 3 y 4).
Figure 4 Esquema simplificado de E/S para conexión entre MyOpenLab y Arduino
Fuente : Elaboración propia basada en boceto de www.myopenlab.de
Se identificó el puerto com al que se socio la tarjeta en este caso arduino UNO y se procedió a simulo un solo sensor al que se le pidió al programa MyOpenLab que lo graficara y lo compara con un nivel establecido para disparar una alarma o un actuador que en este caso fue un led (Ver Figuras 5 y 6).
Figura 5 Pantallazo del Programa realizado en MyOpen Lab para adquirir datos por medio del Arduino Fuente : Elaboración Propia
Figura 3 Arduino en programa de simulación Physical Etoys Fuente : Elaboración Propia
Figura 6 Pantallazo Instrumento Virtual en MyOpenLab para adquirir y procesar datos por medio del Arduino
Fuente : Elaboración Propia
4 RESULTADOS Y SU VALORACIÓN 4.1 Pruebas realizadas Se realizaron pruebas de valoración del sistema en varios computadores incluyendo un netbook Samsung con Windows 7 donde se obtuvieron resultados buenos, aunque se dispararon varios fallos de software, en un computador de escritorio con Windows XP se obtuvieron cero fallos, por lo que se recomienda en máquinas de estas características por ahora, mientras se realiza la actualización de software. 4.2
4.4
Análisis crítico
El sistema logrado es totalmente aplicable en múltiples campos tanto de la electrónica como de la automatización y la robótica. [5] Abre el campo a futuras investigaciones que se vienen gestando en la facultad. [6] [7] Es fácil de implementar y adaptar a las necesidades de los diferentes laboratorios. [6] Conclusiones construidas con los hallazgos.
Lo más relevante es la aplicabilidad y versatilidad del sistema. La tendencia en el mundo se mueve hacia el hardware libre y abierto y a los sistemas de bajo costo, las alternativas comerciales son caras y con muchas restricciones se propuso como escenario futuro (Hace 6 meses cuando culminó la investigación):
Resumen Final
Se desarrolló una interface de adquisición y exportación de datos basados en software y hardware, tanto libre como abierto, con MyOpenLab se realizó toda la programación del sistema con características muy interesantes como la comunicación con Arduino en el que se basó la investigación que puede aplicarse en sistemas complejos, programación, electrónica básica, automatización, y robótica, entre otros con su gran comunidad de aprendizaje que se pueden integrar algunos proyectos posteriores.
4.3
La aplicación en el aula de este sistema (ya se está implementando en el curso de adquisición de datos este semestre).
Poner en marcha del Semillero de Robótica Educativa y Hardware Libre “ROEDHA LIBRE” como parte del del grupo GIUSH de ingeniería de sistemas con el apoyo del área de Mecatrónica [6] de la Escuela de Ingenieria y de grupos de investigación de otras entidades educativas como el GARPE (Grupo de Automatización y Robotica Pedagogíca) de Pascual Bravo Institución Universtaria , actualmente se realizá un módulo de laboratorio de Robótica Móvil, para apoyar proyectos en visión artificial e inteligencia computacional. Se participó como expositores en el V Salon de Inventores y Alta Tecnología Organizada por la Sociedad Antioqueña de Ingenieros y Arquitectos (SAI) en el centro de Convenciones Plaza Mayor de Medellín a finales de 2011. Se hará parte del Encuentro regional de Semilleros de Investigación que organiza la red de colombiana de semilleros de investigación (REDCOLSI). Se plantea continuar con la segunda y tercera fase del proyecto en el que se esta trabajando desde la Especialización Tecnológica en Desarrollo de Aplicaciones para Dispositivos Móviles [8] y desde el Centro de Servicios y Gestión Empresarial Regional Antioquia del SENA, para poder integrar el estandar Java 3D (Ver Figura 7) y la plataforma Android (o Windows Phone) para la teleoperación [9] por medio de Dispositivos Móviles Celulares que integren el sistema de comunicación Bluetooth y una VPN (Segunda Fase del Proyecto), para conectarse a un plataforma de robótica de manipuladores [10] al que se integrará un cortador Láser de Baja Potencia para fines académicos (Tercera Fase del Proyecto). Se recibío apoyo para compra de equipos por parte de la Escuela de ingeniería de la Institución Universitaria Salazar y Herrera. Se generó gran espectativa en la comunidad académica y se han recibído muchas solicitudes para integrar el semillero y se están analizando las hojas de vida en el caso de las personas naturales y el certificado de existencia y representación legal en caso de las juridicas, asi como las propuestas de participación en proyectos
5 REFERENCIAS [1] Park, John y Mackay, Steve. (2003). Data Acquisition for Instrumentation and Control Systems. Oxford: ELSEVIER. [2] Stallman, Richard (2004) Software libre para una sociedad libre. Madrid: Traficantes de Sueños. [3] Enríquez, Rafael (2009) Guía de Usuario de Arduino. Córdoba, España: Universidad de Córdoba. [4] Ruiz, J (2011) Una propuesta de Utilización de Open Hardware y Software Libre GNU para el Diseño y Simulación de Prototipos en el Laboratorio. Madrid: http://www.m yopenlab.de/
[5] Pelz, Georg. (2006) Sistemas Mecatrónicos, modelado y simulación con HDLs. México: LIMUSA WILEY. [6] Sanz, F. (2009) Diseño, Construcción y puesta en Marcha de laboratorio portable de automatización industrial y diseño Mecatrónico. Quid vol. 9. Marzo de 2009 Institución Universitaria Salazar y Herrera. (57-70). [7] Santamaría, J. Y OTROS (2010) Propuesta de Diseño de un brazo robótico con cuatro grados de libertad, basado en análisis y ajuste de un prototipo. Quid vol. 10. Diciembre de 2010 Institución Universitaria Salazar y Herrera. (35-44).
[8] Petzold, Charles. (2010) Windows Phone 7. Redmon, Washington, USA: Microsoft Press. [9] Gómez, J., Ollero, A. y García, A. (2006) Teleoperación y Telerrobótica. Madrid: Prentice Hall PEARSON EDUCACIÓN, Comité Español de Automática (CEA) [10] Ollero, Aníbal. (2007) Robótica Manipuladores y robots móviles. México Barcelona: Boixareu Editors. Alfaomega- marcombo.
Figura 7 S imulación Robot con Java 3D en MyOpenLab Fuente : www.myopenlab.de
http://www.arduino.cc http://www.myopenlab.de
http://www.iush.edu.co
i
Correspondencia:
[email protected]
ii
Correspondencia:
[email protected]
iii
Correspondencia:
[email protected]