• No se han encontrado resultados

Empleo de la plataforma Arduino para el desarrollo de actividades prácticas relacionadas con las mediciones

N/A
N/A
Protected

Academic year: 2020

Share "Empleo de la plataforma Arduino para el desarrollo de actividades prácticas relacionadas con las mediciones"

Copied!
87
0
0

Texto completo

(1)Universidad Central “Marta Abreu” de Las Villas Facultad de Ingeniería Eléctrica Departamento de Automática y Sistemas Computacionales. TRABAJO DE DIPLOMA Empleo de la plataforma Arduino para el desarrollo de actividades prácticas relacionadas con las mediciones. Autor: Leosbel López Brizuela. Tutores: Dr. Eduardo Izaguirre Castellanos Ing. Yosley Moya Pérez. Santa Clara 2017 “Año 59 de la Revolución”.

(2) Universidad Central “Marta Abreu” de Las Villas Facultad de Ingeniería Eléctrica Departamento de Automática y Sistemas Computacionales. TRABAJO DE DIPLOMA Empleo de la plataforma Arduino para el desarrollo de actividades prácticas relacionadas con las mediciones. Autor: Leosbel López Brizuela Email: [email protected] Tutores: Dr. Eduardo Izaguirre Castellanos Dpto. de Automática, Facultad de Ing. Eléctrica, UCLV Email: [email protected] Ing. Yosley Moya Pérez Dpto. de Automática, Facultad de Ing. Eléctrica, UCLV Email: [email protected] Santa Clara 2017 “Año 59 de la Revolución”.

(3) i. PENSAMIENTO. “Nuestra recompensa se encuentra en el esfuerzo y no en el resultado. Un esfuerzo total es una victoria completa.” Gandhi, Mahatma.

(4) ii. DEDICATORIA. A mis padres, por su gran sacrificio, sus palabras de aliento y sus consejos en los momentos más oscuros. Por estar siempre ahí para mí.

(5) iii. AGRADECIMIENTOS. Quisiera agradecer muy especialmente a mis padres por ser el pilar en el que siempre me he apoyado. Por dedicarme sus vidas y haber trazado todo el camino hasta donde estoy, porque sin su apoyo no hubiera sido capaz de llegar hasta aquí. A mi familia por brindarme todo el apoyo posible y en especial tía Isel, tía Xiomara, tío Ignacio, tío Marciano y Siorli, por su constante y sincera preocupación por mí. A mis tutores Izaguirre y Yosley por haber invertido gran parte de su tiempo y haber hecho posible la realización de esta tesis. Al profesor Richard por su constante preocupación y ayuda. A todos los profesores que a lo largo de estos cinco años contribuyeron en mi formación. A mis amigos de la universidad en especial aquellos que siempre me brindaron su apoyo y compañía: Addiel, El Luisi, Luis Ernesto, Vicente, El Soca, El Loco, y El Rolo que siempre me brindó su ayuda y amistad en estos cinco años de camino escabroso. A mis amigos de Vertientes: Dago, Oreste, El Cheke, Llanes, Ariel, David, Gilbert, Alfre, Ernesto y Yamil, por formar parte de mi vida y haber influido de una forma u otra en mi formación como persona. Por hacerme a reír cuando más lo necesitaba y por compartir conmigo sus buenos y malos momentos. A Isa por su comprensión y apoyo, y por ayudarme a centrarme en lo verdaderamente importante..

(6) iv. RESUMEN. El empleo de las plataformas de desarrollo basadas en microcontroladores para la enseñanza en el campo de la ingeniería ha experimentado un notable incremento en los últimos años. Estos dispositivos permiten una estrecha vinculación entre los conocimientos teóricos impartidos a los estudiantes y las actividades prácticas necesarias para la consolidación de estos conocimientos. En el presente trabajo se destacan las principales prestaciones que caracterizan a una de las plataformas de desarrollo más populares en la comunidad. científica:. Arduino,. para. su. implementación. en. actividades. prácticas. relacionadas con las mediciones de variables. En este contexto se propone a través de experiencias prácticas su empleo en la medición de variables tales como temperatura y humedad. Las actividades prácticas que se implementan asistidas por el Arduino, brindan una herramienta para el docente que posibilita la visualización de las variables medidas y su almacenamiento para su posterior análisis. Para cada una de las actividades prácticas que se ilustran como ejemplo, se especifican los aspectos más importantes de los sensores y los otros elementos importantes a tener en cuenta para el manejo de la información con la plataforma Arduino..

(7) v. TABLA DE CONTENIDOS. PENSAMIENTO ..................................................................................................................... i DEDICATORIA ..................................................................................................................... ii AGRADECIMIENTOS ......................................................................................................... iii RESUMEN............................................................................................................................. iv INTRODUCCIÓN ..................................................................................................................1 Organización del informe........................................................................................................5 CAPÍTULO 1.. FUNDAMENTOS RELACIONADOS CON LAS PLATAFORMAS DE. DESARROLLO BASADAS EN MICROCONTROLADORES. ..........................................6 1.1.. Harware y Software Libre .............................................................................6 1.1.1. Harware Libre ...................................................................................................6. 1.1.2. Software Libre...................................................................................................7. 1.2.. Plataformas de desarrollo de software y hardware libre ...............................8. 1.3.. Plataformas de desarrollo más comunes. ......................................................8 1.3.1.. PCDuino............................................................................................................9. 1.3.2.. Especificaciones del hardware PCDuino ........................................................10. 1.3.3.. Especificaciones del software PCDuino .........................................................10. 1.3.4.. Raspberry Pi ....................................................................................................11. 1.3.5.. Especificaciones de Hardware de Raspberry Pi..............................................12. 1.3.6.. Especificaciones de Software de Raspberry Pi ...............................................13.

(8) vi 1.3.7.. Odroid .............................................................................................................14. 1.3.8.. Especificaciones de hardware de Odroid-C2 ..................................................15. 1.3.9.. Especificaciones de software de Odroid-C2 ...................................................16. 1.3.10.. Arduino........................................................................................................16. 1.3.11.. Especificaciones de hardware de Arduino Mega 2560 ...............................18. 1.3.12.. Especificaciones de software de Arduino Mega 2560 ................................19. 1.4.. Aplicaciones ................................................................................................20 1.4.1.. Aplicaciones de PCDuino ...............................................................................20. 1.4.2.. Aplicaciones de Odroid...................................................................................21. 1.4.3.. Aplicaciones de Raspberry Pi .........................................................................21. 1.4.4.. Aplicaciones de Arduino.................................................................................22. 1.5.. Consideraciones finales ...............................................................................22. CAPÍTULO 2. 2.1. MATERIALES Y MÉTODOS ................................................................24 Características específicas de Arduino Mega..............................................24. 2.1.1. Memoria ..........................................................................................................24. 2.1.2. Entradas y salidas............................................................................................25. 2.1.3. Comunicación .................................................................................................26. 2.1.4. Conversor A/D ................................................................................................27. 2.2. Programación ..............................................................................................27 2.2.1. IDE ..................................................................................................................28. 2.2.2. Funciones. .......................................................................................................30. 2.2.3. Librerías. .........................................................................................................31. 2.3. Integración con otros sistemas informáticos. ..............................................32. 2.4. Processing....................................................................................................34.

(9) vii 2.5. Características de los sensores utilizados en las prácticas. .........................35 2.5.1. Sensor de temperatura basado en termistor.....................................................35. 2.5.2. Sensor de humedad de suelo YL-38. ..............................................................36. 2.5.3. Sensor de temperatura RTD Pt-100. ...............................................................37. 2.6. Consideraciones finales. ..............................................................................39. CAPÍTULO 3. 3.1. RESULTADOS Y DISCUSIÓN. ............................................................40 Fundamentos para el empleo de la plataforma Arduino. Ejemplos. ...........41. 3.1.1. Ejemplo 1: Medición de humedad. .................................................................41. 3.1.2. Ejemplo 2: Medición de temperatura con sensor basado en termistor. ..........42. 3.1.3. Ejemplo 3: Medición de temperatura con Pt-100. ..........................................44. 3.2. Elaboración de una práctica de laboratorio. ................................................47 3.2.1. Práctica de laboratorio No.1............................................................................47. 3.2.2. Práctica de laboratorio No.2............................................................................50. 3.2.3. Práctica de laboratorio No.3............................................................................52. 3.3. Análisis económico .....................................................................................56. 3.4. Conclusiones del capítulo............................................................................58. CONCLUSIONES Y RECOMENDACIONES ...................................................................59 Conclusiones. 59. Recomendaciones..................................................................................................................60 REFERENCIAS BIBLIOGRÁFICAS ..................................................................................61 ANEXOS ..............................................................................................................................64 Anexo I. Sistemas Operativos soportados por Raspberry Pi .............................................64. Anexo II Diagrama de bloques de la placa Odroid-C2 ......................................................66 Anexo III. Abrir monitor serie del IDE de Arduino. ........................................................66.

(10) viii Anexo IV. Visualización de medición de humedad a través del monitor serie del IDE de. Arduino.. 67. Anexo V Conexión de Arduino con el Ordenador .............................................................67 Anexo VI. Conexión de Sensor YL-38 con Arduino........................................................68. Anexo VII. Conexión de Sensor de temperatura con Arduino. .........................................68. Anexo VIII. Código de programa para realizar medición de humedad con señor YL-38 y. Arduino.. 69. Anexo IX. Código de programa para realizar medición de temperatura con sensor basado. en termistor y Arduino. .........................................................................................................69 Anexo X Realización de la práctica No.1. .........................................................................71 Anexo XI. Código para guardar los datos de resistencia y temperatura que envía Arduino. por el puerto serie utilizando el software Processing. ...........................................................73 Anexo XII. Software Processing ........................................................................................74. Anexo XIII. Ilustración de la selección del “current folder” en MatLab y creación de un. nuevo Script.. 74. Anexo XIV. Código en MatLab para graficar los datos de temperatura y resistencia. ...75. Anexo XV. Gráficas resultantes de la ejecución de la práctica No. 2 ................................76.

(11) INTRODUCCIÓN. 1. INTRODUCCIÓN. El control automático es el mantenimiento de un valor deseado para una cantidad o condición física, se mide su valor actual, se compara con el valor referencia, y se utiliza la diferencia para ser reducida mediante una acción correctiva. En consecuencia, el control automático exige un lazo cerrado de acción y reacción que funcione sin intervención humana. El principio de todo sistema de control automático es la aplicación del concepto de realimentación (medición tomada desde el proceso que entrega información del estado actual de la variable que se desea controlar) cuya característica especial es la de mantener al controlador central informado del estado de las variables para generar acciones correctivas cuando así sea necesario (Fernández-Bordons, 1998). La medición y el control de procesos son fundamentales para generar los mejores resultados posibles en lo que toca a la utilización de recursos, máquinas, performance, rentabilidad, protección medioambiental y seguridad, entre otros, en una unidad productiva. Por otro lado, la instrumentación industrial es el grupo de equipamientos y dispositivos que sirven a los ingenieros o técnicos, justamente, para medir, convertir y registrar variables de un proceso y, luego, trasmitirlas, evaluarlas y controlarlas con tales fines. Los dispositivos de medición y control de procesos industriales suelen emplear los resultados de las mediciones para conocer las características físicas (tensión, presión, fuerza, temperatura, flujo y nivel, velocidad, peso, humedad y punto de rocío) o químicas (pH y conductividad eléctrica) y poder efectuar el control efectivo de estas y otras variables en un determinado proceso industrial..

(12) INTRODUCCIÓN. 2. En este sentido existen productos dedicados a la adquisición de datos y automatización para hacer los procesos de medición y control cada vez más rápidos y eficientes, a costes reducidos (Engineering, 2012). De lo anteriormente expuesto se puede afirmar que la medición de la variable a controlar es esencial para el correcto funcionamiento de un sistema automático. Es por esto, que en la carrera de Ingeniería Automática se imparten materias dedicadas a las mediciones y a los sistemas de medición, áreas en las que se requiere estar en permanente y constante actualización de las nuevas tecnologías. En estas esferas del conocimiento, resulta importante que los estudiantes tengan a su disposición, la instrumentación necesaria para la ejecución de prácticas que afiancen los conocimientos teóricos impartidos,. de manera particular los relacionados con las. mediciones industriales. En este contexto se puede plantear el siguiente Problema Científico: No existen suficientes medios técnicos en los laboratorios de la Carrera de Ing. Automática, para llevar a cabo las actividades docentes de índole práctica relacionadas con el campo de las mediciones reales de variables industriales. El empleo de las plataformas de hardware y software libre en la enseñanza en ingeniería ha sido estudiado en diversos trabajos (Bruce et al., 2015). Además de su bajo coste, su principal ventaja es tener una gran comunidad de usuarios que han desarrollado innumerables aplicaciones. Por lo que hay disponible multitud de tutoriales, herramientas, ejemplos de uso, librerías y hardware de E/S. En el caso particular de la plataforma de desarrollo Arduino, las aplicaciones pueden ser escritas en cualquier lenguaje de programación disponible para su microcontrolador AVR (Jamieson and Herdtner, 2015). Aunque, existe un IDE de código abierto (Arduino, 2017) para el desarrollo de programas, llamados “sketches”, en C/C++ (Catalán Cantero and Blesa Gascón, 2016). Esta característica de Arduino de ser una plataforma de hardware libre y de código abierto la hacen ideal para ser utilizada como material didáctico durante la enseñanza de sistemas embebidos, y sus interfaces de E/S. Además contribuyen a que se pueda utilizar para la recolección de datos de sensores, pudiéndose utilizar ampliamente para el desarrollo de prácticas de laboratorio relacionadas con las mediciones..

(13) INTRODUCCIÓN. 3. En este sentido se puede plantear la siguiente Hipótesis de investigación: Resulta posible implementar prácticas de laboratorio relacionadas con las mediciones reales de variables industriales, basadas en plataformas de desarrollo Arduino de bajo costo En vista de las tendencias de desarrollo que se presentan en varios países Europeos y del primer mundo, a la apertura del crecimiento en el uso de software y hardware libre de licencias (Jimenez Hidalgo and Chiriboga Mera, 2015) y a la deficiencia de prácticas de laboratorio reales relacionados con las mediciones en la Facultad de Ingeniería Eléctrica, se ha decidido en el contexto de esta investigación implementar prácticas de laboratorio relacionadas con las mediciones proponiendo utilizar uno de los sistemas embebidos que lidera en popularidad por su utilidad y bajo costo: Arduino, el cual representa un aporte significativo en el fortalecimiento y uso de nuevas tecnologías por parte de los estudiantes dentro la carrera Ingeniería Automática, en un área del conocimiento tan importante como lo son las mediciones. Adicionalmente resulta de gran prioridad en la formación de los alumnos el manejo de sistemas. y. computadores embebidos que. les permitan consolidar firmemente las. habilidades de programación que están estrechamente relacionadas con los conceptos y nociones de las mediciones que tributen a las asignaturas relacionadas con el perfil de control, instrumentación, etc. Por consiguiente, la presente investigación no solo brinda aportes relacionados con las mediciones reales, sino además elementos de programación y hardware, que también constituyen aspectos importantes en la formación del especialista en Automática. Objetivos Objetivo General:  Efectuar propuesta del empleo de la plataforma de desarrollo Arduino para la implementación de prácticas de laboratorio en el campo de las mediciones..

(14) INTRODUCCIÓN. 4. Objetivos específicos: 1. Efectuar búsqueda bibliográfica en las fuentes especializadas relacionadas con el objeto de investigación. 2. Analizar los diferentes tipos de plataformas de desarrollo haciendo énfasis en Arduino. 3. Evaluar las posibilidades de Arduino en el contexto relacionado con las aplicaciones de medición. 4. Proponer diseños de prácticas de Laboratorio para desarrollar sobre Arduino, las mediciones de variables como Temperatura y Humedad. Tareas de investigación 1. Revisión de las revistas, sitios web, publicaciones, eventos y demás fuentes especializadas relacionadas con las plataformas de desarrollo y sus aplicaciones en mediciones, enfocada al desarrollo de prácticas de laboratorio. 2. Confección y actualización, en el gestor bibliográfico EndNote, de las principales fuentes bibliográficas estudiadas. 3. Caracterización de la arquitectura, prestaciones, funcionalidad, y demás aspectos referentes a las diferentes variantes existentes de las actuales plataformas de desarrollo, enfatizando en Arduino. 4. Análisis de las ventajas y desventajas de estos tipos de tecnologías, a partir de los recursos de hardware y software que disponen. 5. Exploración de los diferentes tipos de aplicaciones que se encuentran vinculados con las mediciones de variables. 6. Evaluación de las características del hardware y el software de la plataforma Arduino para el desarrollo de las prácticas de laboratorio que tributen a las mediciones. 7. Implementación de propuesta para el montaje de prácticas de laboratorio para la medición de las variables temperatura y humedad..

(15) INTRODUCCIÓN. 5. 8. Redacción del informe escrito. Organización del informe El presente trabajo está dividido en tres capítulos, una descripción de los cuales se presenta a continuación: Capítulo I: Se dedica a abordar las plataformas de desarrollo basadas en microcontroladores más utilizadas. Se caracterizan atendiendo a sus principales elementos de software y hardware y se demuestra su aplicación en proyectos de electrónica relacionados con las mediciones. Capítulo II: Se abordan los principales elementos de la plataforma de desarrollo Arduino como la programación, el ambiente de desarrollo, las interfaces de E/S y otros. Además se caracterizan cada uno de los sensores de los que se disponen y demás aspectos relacionados con la realización de las actividades prácticas relacionadas con las mediciones. Capítulo III: Se detallan los procedimientos y principales aspectos para la realización de las prácticas de laboratorio que demuestran la factibilidad y las ventajas de Arduino en el campo de las mediciones..

(16) CAPÍTULO 1. FUNDAMENTOS RELACIONADOS CON LAS PLATAFORMAS DE DESARROLLO BASADAS EN MICROCONTROLA DORES. 6. CAPÍTULO 1. FUNDAMENTOS RELACIONADOS CON LAS. PLATAFORMAS. DE. DESARROLLO. BASADAS EN MICROCONTROLADORES.. En este capítulo se hace referencia a las plataformas de desarrollo basadas en microcontroladores más utilizadas en el mundo por sus bajos costos y altas prestaciones. Se caracterizan atendiendo a sus principales elementos de software y hardware y se demuestra su aplicación en proyectos de electrónica relacionados con las mediciones. El capítulo está dividido en epígrafes en los cuales se caracterizan dichas plataformas en cuanto a software y hardware y se hace una breve descripción de las mismas mencionando algunos detalles importantes. 1.1.. Harware y Software Libre. Para poder entender las funcionalidades, facilidades y restricciones en el uso de las plataformas de desarrollo basadas en microcontroladores de fácil acceso, es necesario tener claro los conceptos de hardware y software libre, sus restricciones, ventajas y desventajas y conceptos asociados. 1.1.1 Harware Libre Se llama hardware libre, hardware de código abierto, electrónica libre o máquinas libres a aquellos dispositivos de hardware cuyas especificaciones y diagramas esquemáticos son de acceso público, ya sea bajo algún tipo de pago, o de forma gratuita. La filosofía del software libre es aplicable a la del hardware libre, y por eso forma parte de la cultura libre..

(17) CAPÍTULO 1. FUNDAMENTOS RELACIONADOS CON LAS PLATAFORMAS DE DESARROLLO BASADAS EN MICROCONTROLA DORES. 7. Un ejemplo de hardware libre es la arquitectura UltraSparc cuyas especificaciones estén disponibles bajo una licencia libre (Fernández and Angarita, 2011). Entre los tipos de Hardware Libre, se encuentran el Hardware estático y el reconfigurable. Hardware estático: Conjunto de elementos materiales de los sistemas electrónicos. Tiene una existencia física (se puede “tocar”). Este tipo de hardware es de diseño único. Para que otro usuario la pueda usar, o emplea la que fue creada o se construye otra. La compartición tal cual se conoce en el mundo del software no es posible. Además, la compartición tiene asociada un coste. Si se quiere utilizar el hardware que ya se ha diseñado, primero se tiene que fabricar, para lo cual se tendrá que comprar los componentes necesarios, construir el diseño y verificar que se ha hecho correctamente, y todo esto tiene un coste.(González et al., 2003) Otro problema que trae consigo este tipo de hardware es la disponibilidad de los componentes. Al intentar desarrollar un diseño el usuario se puede encontrar con el problema de la falta de materiales. Hardware reconfigurable: Es el que se describe mediante un lenguaje HDL (Hardware Description Language) y que permite especificar con todo detalle su estructura y funcionalidad. A partir de este código se generan unos ficheros de configuración (bitstreams) para que los dispositivos del tipo FPGA (Field Programmable Gate Array) se reconfiguren, funcionando según lo descrito.(González et al., 2003) Los problemas no surgen por la definición de qué es libre o qué debe cumplir para serlo, sino que aparecen con las herramientas de desarrollo necesarias. Para materializar este tipo de hardware se necesitan herramientas computacionales, las cuales pueden presentar dificultades. La tecnología de los dispositivos FPGA es considerada secreto industrial. No es posible conocer toda la información de la configuración. Por tanto no es posible el diseño de herramientas libres.(González et al., 2003) 1.1.2 Software Libre Es. la denominación del software que respeta la libertad de los usuarios sobre su. producto adquirido, y. por. tanto,. una. vez. obtenido. puede. estudiado, cambiado y redistribuido libremente (Stallman, 2004).. ser. usado, copiado,.

(18) CAPÍTULO 1. FUNDAMENTOS RELACIONADOS CON LAS PLATAFORMAS DE DESARROLLO BASADAS EN MICROCONTROLA DORES. 8. Se suele confundir con el software gratis pero es una acepción diferente, no tiene costo para el usuario, pero puede traer muchas restricciones (Fernández and Angarita, 2011). Por otro lado el denominado software de Código Abierto u Open Source Software, es el software que se distribuye junto con su código fuente, y con una licencia de uso que garantiza que quien lo adquiera, puede estudiarlo, corregirlo, mejorarlo y adaptarlo a cualquier necesidad, adicionalmente, 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 dc software como "software de código fuente abierto" (en inglés, "open source software"), o simplemente software abierto (Chiarani et al., 2004). 1.2.. Plataformas de desarrollo de software y hardware libre. Las plataformas de desarrollo cumplen un importante rol dentro de la industria electrónica, permitiendo reducir los tiempos involucrados en el diseño de una solución, aumentando la confiabilidad y velocidad de fabricación de un prototipo, y en ocasiones, transformándose en la base del producto final mismo. Con estas placas, el desarrollador puede concentrarse en afinar las prestaciones de su diseño, más que en implementar funcionalidades de bajo nivel, pues éstas ya han sido resueltas por los fabricantes de la plataforma (Electroindustria, 2013). Al fabricar un prototipo, el desarrollador debe construir el hardware sobre el cual correrá el software del producto que ha diseñado, por lo que debe tomar componentes de diversos proveedores, integrarlos y hacerlos funcionar como un conjunto. En este tipo de situaciones, implementar una sencilla función de comunicación serial, podría significar demandar tanto o más recursos y tiempo que el proyecto original. Por esa razón, se ha popularizado el uso de plataformas de desarrollo electrónico. (Bareño, 2011) 1.3.. Plataformas de desarrollo más comunes.. Las plataformas de desarrollo de hardware y software libre han ido cobrando fama en la actualidad debido a su bajo costo y altas funcionalidades, lo cual los convierte en los sistemas más viables para la creación de un proyecto de automatización no industrial..

(19) CAPÍTULO 1. FUNDAMENTOS RELACIONADOS CON LAS PLATAFORMAS DE DESARROLLO BASADAS EN MICROCONTROLA DORES. 9. Un ejemplo de estos sistemas lo constituyen los miniordenadores PCDuino, Raspberry Pi, Odroid y las plataformas Arduino. A continuación se abordan las principales características que distinguen a cada una de estas plataformas de desarrollo. 1.3.1. PCDuino El PCDuino (Figura 1.1) es un mini PC de alto rendimiento que soporta sistemas operativos completos como Ubuntu y Android. Para su funcionamiento se requiere la conexión de una fuente de alimentación de 5V, además de un teclado y un ratón. Posee una interfaz HDMI (High-Definition Multimedia Interface), a través de la cual se puede transmitir video. Debido a su diseño es fácil de utilizar, fue creado para desarrollar proyectos computacionalmente exigentes, ya que a la vez es compatible con los shields de Arduino.(Gómez et al., 2015) Ventajas  Alta velocidad de procesamiento.  Soporta sistemas operativos.  Gran número de entradas y salidas para diferentes usos. Desventajas  Mediana dificultad de programación.  Costo medianamente alto.. Figura 1.1. Placa PCDuino..

(20) CAPÍTULO 1. FUNDAMENTOS RELACIONADOS CON LAS PLATAFORMAS DE DESARROLLO BASADAS EN MICROCONTROLA DORES. 10. 1.3.2. Especificaciones del hardware PCDuino En la Tabla 1.1 se muestran las especificaciones de hardware de esta plataforma. Tabla 1.1. Especificaciones de hardware de PCDuino (Galán Parras, 2014) SALIDA DE VIDEO. HDMI. DRAM. 1 GB. SISTEMA OPERATIVO. Linux 3.0 + Ubuntu 12.04 Android ICS 4.0. CPU. 1 GHz ARM Cortex A8. INTERFAZ DE RED. Wifi, Ethernet 10/100Mbps. ALMACENAMIENTO. 2. GB Flash, tarjeta microSD,. ranura hasta 32 Gigabytes ENERGÍA. 5 V, 2000 mA. TAMAÑO TOTAL. 100 milímetros x 52 milímetros. GPU. OpenGL ES2.0, OpenVG 1.1 Malí 400. 1.3.3. Especificaciones del software PCDuino La plataforma es compatible con el popular sistema Arduino como Arduino Shields, proyectos de código abierto, etc. También puede ejecutar Android 4.0 ICS y Ubuntu Linux. La instalación predeterminada de fábrica es Ubuntu en flash NAND. Ubuntu puede arrancar desde un flash NAND o una tarjeta microSD de arranque. Si se quiere reinstalar Ubuntu o actualizar Ubuntu en flash NAND, hay dos opciones: . Instalar Ubuntu con tarjetas microSD..

(21) CAPÍTULO 1. FUNDAMENTOS RELACIONADOS CON LAS PLATAFORMAS DE DESARROLLO BASADAS EN MICROCONTROLA DORES. . 11. Instalar Ubuntu a través del puerto USB usando Livesuit.. Los lenguajes de programación más populares que soporta esta plataforma son C, C++ y Python (Galán Parras, 2014). La plataforma también posee API (Application Programming Interface) para acceder a las siguientes interfaces: . UART (Universal Asynchronous Receiver-Transmitter). . PWM (pulse-width modulation). . GPIO (General Purpose Input/Output). . I2C (Inter-Integrated Circuit). . SPI (Serial Peripheral Interface). 1.3.4. Raspberry Pi Raspberry Pi (Figura 1.2) es el nombre que recibe un modelo de ordenador de placa reducida (SBC, Single Board Computer) lanzado en 2011. El proyecto Raspberry Pi surge en 2006 de la mano de Eben Upton, Rob Mullins, Jack Lang y Alan Mycroft, cuando deciden crear un ordenador de bajo coste orientado a niños para favorecer la enseñanza de conocimientos informáticos entre los alumnos más jóvenes. Así, en 2009 crean la organización caritativa Raspberry Pi Foundation. En agosto 2011, un primer modelo Alpha del Raspberry Pi es lanzado al mercado, mostrando algunas de las características que posteriormente serían las que integrarían el prototipo final. En febrero de 2012 empieza la comercialización del Raspberry Pi en dos modelos, A y B (Sjogelid, 2015).. Figura 1.2. Raspberry Pi modelo B..

(22) CAPÍTULO 1. FUNDAMENTOS RELACIONADOS CON LAS PLATAFORMAS DE DESARROLLO BASADAS EN MICROCONTROLA DORES. 12. Actualmente se han construido el modelo inicial, la Raspberry Pi 2 modelo A, B, B+ y ya se ha comercializado la Raspberry Pi 3. Ventajas . Procesador de una velocidad moderada.. . Memoria de almacenamiento expansible.. . Soporta sistemas operativos.. Desventajas . Memoria RAM baja.. . Moderada velocidad de CPU.. 1.3.5. Especificaciones de Hardware de Raspberry Pi En la Tabla 1.2 se ofrecen las principales especificaciones de hardware de los modelos A y B de la plataforma Raspberry Pi. Tabla 1.2. Especificaciones de hardware de Raspberry Pi. (Upton and Halfacree, 2014) Característica. Modelo A. Modelo B. CPU. ARM (Advanced RISC Machines) 1176JZF-S a 700 MHz (familia ARM11), ARM v6 Caché L2 128 KiB (Kibibyte) Juego de instrucciones RISC (Reduced Intruction Set Computer) de 32 bit. GPU. Broadcom VideoCore IV, OpenGL ES 2.0, MPEG-2 y VC-1, 1080p30 H.264/MPEG-4 AVC. Memoria. 256 MiB (Mebibyte) compartida. 512 MiB compartida con GPU. SDRAM. con GPU. Almacenamiento. Almacenamiento mediante tarjetas SD.

(23) CAPÍTULO 1. FUNDAMENTOS RELACIONADOS CON LAS PLATAFORMAS DE DESARROLLO BASADAS EN MICROCONTROLA DORES. Conexiones. 1xUSB. 2xUSB. HDMI. RJ45. RCA (PAL/NTSC). HDMI. Alimentación MicroUSB. RCA (PAL/NTSC). GPIO. Alimentación MicroUSB. 13. GPIO Consumo. 2,5 W, 500 mA, 5V. 3,5 W, 750 mA, 5 V. energético Dimensiones. 85.60mm × 53.98mm. 1.3.6. Especificaciones de Software de Raspberry Pi El Raspberry Pi usa mayoritariamente sistemas operativos basados en el núcleo Linux Raspbian, una distribución derivada de Debian que está optimizada para el hardware de Raspberry Pi. Se lanzó al mercado en julio de 2012 y es la distribución recomendada por la fundación para usuarios inexpertos. El 26 de septiembre de 2013, se añadió a los repositorios de Raspbian una versión oficial de Oracle Java JDK ARM con soporte para coma flotante por hardware, que ofrece bastante más rendimiento que la versión OpenJDK ARM ya existente hasta ese momento y más compatibilidad con aplicaciones. También se anunció que esta versión de Oracle Java JDK se incluiría dentro de la distribución en futuras versiones de Raspbian (Upton and Halfacree, 2014). Sistemas operativos: Estos son algunos sistemas operativos (Monk, 2016) que funcionan o están en proceso de ser soportados por Raspberry Pi:.

(24) CAPÍTULO 1. FUNDAMENTOS RELACIONADOS CON LAS PLATAFORMAS DE DESARROLLO BASADAS EN MICROCONTROLA DORES. 14. Sistemas operativos completos: . Windows 10. . AROS. . Linux. . RISC OS 5. . Unix. También existen otras distribuciones que están disponibles para la Raspberry Pi. En el Anexo I se encuentran más detallados dichos sistemas operativos. 1.3.7. Odroid Odroid (Open Android) es una plataforma abierta de hardware pensada para desarrolladores Android y Linux, ofrece una variedad de placas de desarrollo de tamaño reducido y gran potencia, entre las que se destacan el Odroid-X3, Odroid-U3, Odroid-XU, Odroid-C1 y Odroid-C2 (Figura 1.3). Estas placas poseen el desempeño cercano a una PC regular y pueden correr el sistema operativo Android y varias otras distribuciones de Linux, como por ejemplo: Ubuntu, Debian, ArchLinux, OpenSUSE, Fedora, etc. El último modelo producido de este miniordenador es el C2. Es uno de los más potentes y económicos ordenadores de placa reducida de 64 bit que existen, además de ser un dispositivo extremadamente versátil. Con un rápido procesador Amlogic quad-core, una avanzada GPU Malí y Ethernet Gigabit, se puede utilizar como un sistema de cine en casa, un ordenador de uso general para navegar por internet, para ejecutar juegos y consultar redes sociales, como herramienta de. trabajo con fines educativos y de oficina,. como prototipo para realizar pequeños ajustes y modificaciones de hardware, como controlador para proyectos de domótica, como estación de trabajo para programar, entre muchas otras aplicaciones (Roy and Bommakanti, 2016). Algunos de los modernos sistemas operativos que se pueden ejecutar en el Odroid-C2 son Ubuntu, Android y Arch linux, con miles de paquetes de software de código abierto totalmente gratis. El Odroid-C2 es un dispositivo ARM, la arquitectura más utilizada en dispositivos móviles y en la informática integrada. El pequeño tamaño de su procesador.

(25) CAPÍTULO 1. FUNDAMENTOS RELACIONADOS CON LAS PLATAFORMAS DE DESARROLLO BASADAS EN MICROCONTROLA DORES. 15. ARM, su reducida complejidad y su bajo consumo de energía hacen que sea perfecto para desarrollar pequeños dispositivos que se pueden llevar encima (Van Kempen et al., 2017).. Figura 1.3. Placa Odroid-C2 1.3.8. Especificaciones de hardware de Odroid-C2 El Odroid-C2 incorpora muchas de las conexiones que presentan los típicos ordenadores, 4 puertos USB, un puerto OTG (On-The-Go) microUSB, un puerto Ethernet que soporta velocidades de transferencia del orden de los Gigabit, un conector HDMI 2.0 para monitores que puedan soportar resolución de hasta 4K, un conector de alimentación de 5V/2A. Además de estas entradas convencionales, el C2 también incluye un puerto GPIO de 40 pines, un puerto de consola serie USB UART (Universal Asynchronous ReceiverTransmitter), un conector para módulos eMMC y una ranura para tarjetas microSD (Olson and Shashidhar, 2016). En el Anexo II se muestra el diagrama de bloques de esta plataforma. Especificaciones: . CPU Quad Core Amlogic ARM Cortex-A53 (ARMv8) 1.5Ghz. . GPU Mali-450. . SDRAM DDR3 de 2GB. . Ethernet Gigabit. . GPIO con 40 pines + 7 pines I2S (Integrated Interchip Sound).

(26) CAPÍTULO 1. FUNDAMENTOS RELACIONADOS CON LAS PLATAFORMAS DE DESARROLLO BASADAS EN MICROCONTROLA DORES. . 16. Slot de tarjeta MicroSD UHS-1 SDR50 y slot de almacenamiento flash eMMC 5.0 HS400. . USB 2.0 Host x 4, USB OTG x 1. 1.3.9. Especificaciones de software de Odroid-C2 El ODROID-C2 puede ejecutar muchos sistemas operativos basados en Linux, de código abierto, gratuitos y con multitud de funciones. Dos de los más populares, Ubuntu y Android, están disponibles para descargarse desde el sitio web de Hardkernel, mientras que muchas otras versiones de Linux pueden ser compiladas desde la fuente, tales como Arch Linux, FreeBSD, Fedora, CentOS, Open-SUSE, Slackware, y Mint (Olson and Shashidhar, 2016). 1.3.10. Arduino Arduino es una plataforma embebida de hardware abierto, creada bajo la licencia Creative Commons (CC), por lo cual permite que tanto su diseño como su distribución sean libres. Es decir, puede utilizarse para desarrollar cualquier tipo de proyecto sin tener que adquirir ningún tipo de licencia, por lo cual hace que su coste sea muy inferior a la de otras placas que existen en el mercado, permitiendo también que otras empresas desarrollen sistemas que aumenten sus funcionalidades denominados shields, módulos de propósitos específicos, que se acoplan al sistema central Arduino. Todo esto respaldado por una gran comunidad mundial de usuarios que permiten establecer a Arduino como un estándar en los desarrollos embebidos de los principales centros de investigación, convirtiéndola en la opción más popular para el desarrollo de diseños sobre computación física (Margolis, 2011). Actualmente hay más de 20 modelos de plataformas Arduino con diferencias en cuanto a características y posibilidades, número de entradas/salidas, microcontrolador, etc., pero compatibles entre sí. Los microcontroladores más habituales en la plataforma son los de la familia AVR de ATMEL, aunque algunas plataformas utilizan otros microcontroladores, por ejemplo Cortex M3 de ARM, de 32 bits (Monk, 2013). Para facilitar su uso y programación se desarrolló simultáneamente y conjuntamente con la plataforma Arduino un IDE (Integrated Development Environment, Entorno de Desarrollo Integrado), en el que se usa un lenguaje de programación parecido a C++, basado en el.

(27) CAPÍTULO 1. FUNDAMENTOS RELACIONADOS CON LAS PLATAFORMAS DE DESARROLLO BASADAS EN MICROCONTROLA DORES. 17. lenguaje Wiring, el entorno de desarrollo está basado en Processing. El IDE permite editar compilar y enviar el programa desarrollado a la plataforma Arduino que se esté utilizando, así como comunicarse vía serie y mostrar los datos en una ventana terminal. La plataforma Arduino se comunica con el IDE mediante un programa cargador (bootloader), precargado en el microcontrolador de la plataforma Arduino. EL IDE es un software libre y se puede descargar gratuitamente desde el sitio web oficial de Arduino (Herrero and Sánchez, 2015). Con Arduino se puede tomar información del entorno a través de sensores conectados a sus entradas analógicas y digitales, puede controlar luces, motores y otros actuadores directamente o partir de las señales de control generadas en sus salidas. Arduino encuentra un uso amplio en la enseñanza: en materias relacionadas con la robótica, el control, la adquisición de datos, los diseños interactivos, etc. La sencillez de uso de esta plataforma permite a personas no expertas en electrónica, utilizar en sus creaciones dispositivos electrónicos y controlarlos, de una manera sencilla o asequible para ellos (Evans et al., 2013). Dentro de la Familia Arduino hay más de 20 modelos, con diferentes características en cuanto a tamaño, prestaciones, etc. Esto permite utilizar la plataforma en una gran variedad de proyectos, más o menos complejos y utilizar el modelo Arduino más adecuado a cada necesidad. Así mismo,. el equipo Arduino sigue desarrollando plataformas, que permitan. abordar otros proyectos o en otros campos, o para dar respuesta a demandas planteadas por los usuarios (Herrero and Sánchez, 2015). Un ejemplo de estas placas lo constituye: . Arduino UNO.. . Arduino Leonardo.. . Arduino Mega 2560.. . Arduino Nano.. Ventajas . Fácil programación.. . Bajo costo..

(28) CAPÍTULO 1. FUNDAMENTOS RELACIONADOS CON LAS PLATAFORMAS DE DESARROLLO BASADAS EN MICROCONTROLA DORES. . 18. Gran número de entradas y salidas para diferentes usos.. Desventajas . No soporta Sistemas Operativos.. . Procesamiento de datos medianamente bajo.. El Arduino Mega (Figura 1.4) es probablemente el microcontrolador más capaz de la familia Arduino. Posee 54 pines digitales que funcionan como entrada/salida; 16 entradas análogas, un cristal oscilador de 16 MHz, una conexión USB, un botón de reset y una entrada para la alimentación de la placa. Utiliza un microcontrolador ATMega8U2 en vez del chip de FTDI (Future Technology Devices International), lo cual permite mayores velocidades de transmisión por su puerto USB y cuenta con la capacidad de ser reconocido por el PC como un teclado, mouse, joystick, etc. Otro elemento a tener en cuenta es la programación, la cual es muy parecida a C/C++, siendo este lenguaje el empleado en el currículo de las asignaturas de la carrera Ingeniería Automática. Es por estas razones que se ha elegido la plataforma de desarrollo Arduino para la realización de estas prácticas.. Figura 1.4. Arduino Mega 2560 1.3.11. Especificaciones de hardware de Arduino Mega 2560 La comunicación entre la computadora y Arduino se produce a través del Puerto Serie. Posee un convertidor USB-serie, por lo que sólo se necesita conectar el dispositivo a la.

(29) CAPÍTULO 1. FUNDAMENTOS RELACIONADOS CON LAS PLATAFORMAS DE DESARROLLO BASADAS EN MICROCONTROLA DORES. 19. computadora utilizando un cable USB tipo A-B. (Arduino, 2015). Las especificaciones de Harware de Arduino Mega se muestran en la Tabla 1.3. Tabla 1.3. Especificaciones de hardware de Arduino Mega Microcontrolador. ATmega2560. Voltaje de Operación. 5V. Voltaje de Entrada (recomendado). 7-12V. Voltaje de Entrada (Límites). 6-20V. Pines E/S Digitales. 54 (de los cuales 14 proveen salida PWM). Pines de Entrada Analógica. 16. Corriente DC para Pines de E/S. 40 mA. Corriente DC para Pines de 3.3V. 50 mA. Memoria Flash. 256 KB de los cuales 8 KB son usados para el bootloader. SRAM. 8 KB. EEPROM. 4 KB. Frecuencia de Reloj. 16 MHz. 1.3.12. Especificaciones de software de Arduino Mega 2560 El software consiste en un entorno de desarrollo que implementa el lenguaje de programación Processing/Wiring y el cargador de arranque que es ejecutado en la placa. Se programa en el ordenador para que la placa controle los componentes electrónicos..

(30) CAPÍTULO 1. FUNDAMENTOS RELACIONADOS CON LAS PLATAFORMAS DE DESARROLLO BASADAS EN MICROCONTROLA DORES. 20. El entorno de desarrollo integrado para Arduino, es una herramienta desarrollada en Java, por lo que puede utilizarse en distintos sistemas operativos, Windows, Mac OS X y Linux. El IDE permite la edición y compilación de programas en el lenguaje de Arduino, y cargarlos en la plataforma para que se ejecuten. El entorno incluye multitud de ficheros de programas de ejemplo de utilización (Margolis, 2011). 1.4.. Aplicaciones. Las características de estas plataformas de ser de hardware y software libre les permiten a los usuarios el desarrollo de una amplia gama de aplicaciones. Otro factor importante es el bajo costo de estas placas. Esta una característica importantísima porque la mayoría de los hardware especializados en diferentes ramas como la electrónica, instrumentación y control, por solo mencionar las más importantes para la Ingeniería Automática, son vendidos por empresas a un costo no muy asequible para la mayoría de los usuarios. A un bajo costo estas plataformas brindan un sin número de posibilidades. Además sus puertos de E/S les permiten ser utilizadas para la recolección y procesamiento de datos provenientes de sensores, lo que las convierten en unos recursos muy viables para proyectos relacionados con las mediciones y otras disímiles aplicaciones. 1.4.1. Aplicaciones de PCDuino Este versátil miniordenador posee gran potencia de cómputo con 1GB de memoria RAM y puertos de E/S que le permiten la comunicación con dispositivos periféricos. En el trabajo del Dr. Alejandro Medina Santiago (Santiago, 2015) se aprovechan estas características para realizar una interfaz gráfica electrónica implementando una etapa de comunicación serial con los datos analógicos para ser procesados digitalmente por una computadora. Otro ejemplo de aplicación de esta plataforma lo constituye el trabajo realizado en la Universidad Coventry (Gómez et al., 2015). En el mismo se utiliza PCDuino para recolectar las mediciones de consumo de potencia en máquinas y transmitirlas vía WIFI a una web externa para mostrar los datos remotamente a cualquier tipo de dispositivo (PC, Teléfono, Tablet). La principal ventaja que brinda dicha placa para este tipo de aplicaciones es la disponibilidad de pines GPIO y canales de entrada analógica para realizar la recolección de los datos..

(31) CAPÍTULO 1. FUNDAMENTOS RELACIONADOS CON LAS PLATAFORMAS DE DESARROLLO BASADAS EN MICROCONTROLA DORES. 21. 1.4.2. Aplicaciones de Odroid Muchas son las aplicaciones que tiene el miniordenador Odroid-C2. dadas sus. características de hardware y software. Entre ellas se destaca la publicación de la revista Odroid Magazine que utiliza esta plataforma para desarrollar un dispositivo IoT (Internet of Things) (Kernel, 2016). En este trabajo se controla la iluminación del hogar utilizando una placa Odroid-C2 y una fotorresistencia. El sistema puede encender y apagar las luces adecuadamente garantizando así un bajo consumo de energía y un correcto funcionamiento. Además, los usuarios pueden ser avisados desde un dispositivo IoT por medio de mensajes SMS enviados a sus teléfonos móviles. También en la publicación de la revista Odroid Magazine “Sistema IoT de notificación y conservación del ambiente de una bodega de vino”(Kernel, 2017) se puede encontrar cómo se utiliza la plataforma Odroid para el monitoreo de variables importantes en el proceso de conservación del vino. En este proyecto se monitoriza las condiciones de fermentación de la bodega utilizando un sensor de temperatura, humedad e iluminación. Además el sistema permite notificar al usuario si no se cumplen las condiciones de fermentación a través de un SMS. 1.4.3. Aplicaciones de Raspberry Pi Este miniordenador, como lo indica este calificativo, es una computadora en miniatura. En términos más técnicos, es una Single Board Computer (SBC) o computadora de una sola placa, que cuenta con diversas entradas para conectar diferentes piezas de hardware. En el proyecto realizado en la Universidad Tecnológica de Pereira (Restrepo Lacerna, 2015) se aprovechan estas bondades para crear un vehículo que puede ser controlado remotamente utilizando internet. La plataforma Raspberry es utilizada para el control del vehículo y aloja el servidor para la web a través de la cual es controlado el vehículo. Su GPIO es aprovechado para conectar los motores que mueven el vehículo y su respectivo control. La conexión a esta plataforma de sensores para el procesamiento de los datos es utilizado en varios trabajos. Ejemplo de lo antes mencionado es el proyecto realizado en el Departamento de Ingeniería en Electrónica y Comunicación de la Escuela de Ingeniería Saveetha (Sasikala and Joseph, 2014). En el mismo se emplea Raspberry Pi para la.

(32) CAPÍTULO 1. FUNDAMENTOS RELACIONADOS CON LAS PLATAFORMAS DE DESARROLLO BASADAS EN MICROCONTROLA DORES. 22. medición de temperatura en tiempo real, o sea como nodo de monitoreo. El sensor de temperatura es conectado al GPIO de la plataforma Raspberry utilizando una breadboard y el miniordenador se encarga de procesar los datos y almacenarlos para después poder ser mostrados. 1.4.4. Aplicaciones de Arduino Debido a su bajo costo, la característica de ser una plataforma de hardware y software libre, la capacidad de operar sin un sistema operativo y otras propiedades, la plataforma Arduino es una de las más utilizadas en proyectos de electrónica (Carbonell Polo and De la Rosa Morrón, 2013). En la mayoría de estos proyectos se utiliza Arduino para recolectar y procesar datos provenientes de sensores como es el caso del trabajo realizado por Matías Presso y Carlos Posse (Presso and Posse, 2011). Se utiliza la plataforma Arduino para recolectar los datos provenientes de los sensores que a su vez registran los cambios físicos de un Goniómetro y se utiliza MatLab para procesar y analizar estos datos. En el mismo, el autor plantea que se elige la plataforma Arduino para la etapa digital debido a que se trata de un hardware libre y su diseño es especial para un ágil desarrollo de prototipos y proyectos de electrónica dedicados a las mediciones. Esta plataforma también se puede encontrar integrada con otras placas como la Raspberry Pi como es el caso del proyecto realizado por David Rolando Suárez Mora en conjunto con otros autores (Mora et al., 2016). En éste se utilizan de forma integrada Raspberry Pi y Arduino para para el manejo de un brazo robótico mediante una aplicación Android. El primero permite la interacción del sistema con su entorno a través de una interfaz gráfica sobre un sistema operativo Android para su uso en un dispositivo móvil, y el segundo realiza la conexión con los servomotores de un brazo robótico. En este caso Arduino es el encargado de enviar y recibir las señales hacia y desde los sensores y motores del brazo robótico. 1.5.. Consideraciones finales. En lo referente a la temática de plataformas de desarrollo basadas en software y hardware libre, la implementación de estos sistemas en proyectos de domótica, electrónica, adquisición de datos, etc., constituye un tema interesante y de gran actualidad. El empleo de.

(33) CAPÍTULO 1. FUNDAMENTOS RELACIONADOS CON LAS PLATAFORMAS DE DESARROLLO BASADAS EN MICROCONTROLA DORES. 23. estas plataformas en la enseñanza de la ingeniería ha sido estudiado en diversos trabajos. Además de su bajo coste, su principal ventaja es tener una gran comunidad de usuarios desarrolladores, por lo que hay disponibles multitud de tutoriales, herramientas, ejemplos de uso, librerías y hardware de E/S. Por todo lo anterior y dado que los resultados de la presente investigación se implementarán en los laboratorios de la Facultad de Ingeniería Eléctrica, Carrera Automática, y de que se dispone de 3 de las plataformas Arduino Mega 2560, sumado a las ventajas mencionadas en este capítulo, nos damos a la tarea de implementar prácticas de laboratorio relacionadas con las mediciones basadas en la tecnología de Arduino..

(34) CAPÍTULO 2. MATERIALES Y METODOS. 24. CAPÍTULO 2. MATERIALES Y MÉTODOS. En este capítulo se abordan los principales elementos de la plataforma de desarrollo Arduino como la programación, el ambiente de desarrollo, las interfaces de E/S, etc. Se hace referencia a las características que se deben tener en cuenta para el trabajo con esta plataforma, en proyectos de ingeniería y como material docente para la concepción de prácticas reales de laboratorio relacionadas con la medición de variables de manera que puedan ayudar a la formación de estudiantes de Ingeniería Automática. El capítulo está dividido en epígrafes en los cuales se exponen las principales especificaciones técnicas del dispositivo controlador y de los sensores utilizados para el desarrollo de las actividades prácticas relacionadas con las mediciones. 2.1. Características específicas de Arduino Mega. Además de las características generales mencionadas en el capítulo anterior, Arduino posee otros elementos que resultan de gran utilidad a la hora de concebir proyectos relacionados con las mediciones de variables a través de sensores conectados a la placa. A continuación se incursiona en algunas de estas características. 2.1.1. Memoria. El controlador ATmega2560 del Arduino Mega posee 256 KB de memoria Flash para almacenamiento de códigos. De estos 256 KB, 8 son utilizados para el cargador de arranque de la placa. Posee 8 KB de memoria SRAM (Static Random Access Memory) y 4 KB de memoria EEPROM (Electrically Erasable Programmable Read-Only Memory) las cuales pueden ser leídas o escritas a través de la librería EEPROM (Arduino, 2015)..

(35) CAPÍTULO 2. MATERIALES Y METODOS. 2.1.2. 25. Entradas y salidas.. Cada uno de los 54 pines digitales en el Arduino Mega 2560 puede utilizarse como entradas o salidas, las cuales operan a 5 volts. Cada pin puede proporcionar o recibir una intensidad máxima de 40 mA y tiene una resistencia interna de 20 - 50 kΩ (Arduino, 2015). Además, algunos pines tienen funciones especializadas como se detalla en la Tabla 2.1. Tabla 2.1 Funciones especiales de los pines del Arduino Mega 2560 Nombre. Pin. Descripción. Serial 0. 0 Rx, 1Tx. Usado para recibir (RX) y transmitir. Serial 1. 19 Rx ,18 Tx. Serial 2. 17 Rx ,16 Tx. Serial 3. 15 Rx ,14 Tx. Serial. (TX) datos a través del puerto serie TTL.. Interrupciones Externas Interrupción 0. 2. Interrupción 1. 3. Interrupción 5. 18. Estos pines se pueden configurar para activar una interrupción en un valor bajo (0V), en flancos de subida o bajada (cambio de valor de bajo (0V) a alto (5V) o viceversa).. Interrupción 4. 19. Interrupción 3. 20. Interrupción 2. 21. PWM Salidas PWM. Del 0 al 13. Proporciona una salida PWM de 8 bits.

(36) CAPÍTULO 2. MATERIALES Y METODOS. 26. de resolución (valores de 0 a 255). SPI MISO. 50. MOSI. 51. SCK. 52. SS. 53. Proporcionan comunicación SPI (Serial Peripheral Interface).. LEDS LED. 13. Existe un LED integrado en la placa conectado al pin digital 13. I2C SDA. 20. SCL. 21. Soporta el protocolo de comunicaciones I2C. 2.1.3. Comunicación. El Arduino Mega 2560 facilita en varios aspectos la comunicación con el ordenador, otro Arduino u otros microcontroladores. El ATmega2560 proporciona cuatro puertos de comunicación vía serie UART TTL (transistor-transistor logic) (5V). Un chip ATmega 16U2 integrado en el módulo, esta comunicación se realiza a través del USB, los cuales proporcionan un puerto serie virtual (COM) en el ordenador. El software de Arduino incluye un monitor de puerto serie que permite enviar y recibir información simple desde y hacia la placa Arduino. Los LEDS RX y TX del módulo o placa parpadean cuando detectan comunicación transmitida través del chip ATmega 16U2 y la conexión USB..

(37) CAPÍTULO 2. MATERIALES Y METODOS. 27. Además el módulo Arduino Mega 2560 permite comunicación serie por cualquier par de pines digitales, así como también soporta la comunicación I2C y SPI. El software de Arduino incluye una librería Wire que ayuda a simplificar el uso del bus I2C (Arduino, 2015). 2.1.4. Conversor A/D. El convertidor Análogo-Digital (ADC por sus siglas en inglés) es un dispositivo que toma una señal análoga (resultado de la medición de variables tales como corriente, voltaje, temperatura, presión, etc.), cuantifica la señal y le asigna un valor que se muestra a su salida en formato digital. Generalmente la cantidad de valores discretos en los que un ADC puede traducir una señal análoga a digital se conoce como su resolución y usualmente es medida en base al número de bits que el ADC tiene a su salida. El número de bits representa la cantidad máxima de valores discretos o de pasos que un ADC puede tener. El controlador ATmega que usa Arduino lleva incluido un conversor analógico-digital (A/D) de 6 canales. Tiene una resolución de 10 bits, retornando enteros desde 0 a 1023. Mientras que el uso principal de estos pines por los usuarios de Arduino es para la lectura de sensores analógicos, estos pines tienen también toda la funcionalidad de los pines de entrada-salida de propósito general (GPIO). Consecuentemente, si un usuario necesita más pines de propósito general de entrada-salida, y no se está usando ningún pin analógico, estos pines pueden usarse como GPIO (Reyes Mena, 2014). 2.2. Programación. La programación del Arduino Mega se realiza en el IDE disponible en la web de Arduino y es totalmente gratis. Aunque existen otros software para programar estas plataformas de desarrollo el antes mencionado es el más popular y fácil de utilizar. El ATmega2560 en el Arduino Mega viene precargado con un gestor de arranque (bootloader) que permite cargar nuevo código sin necesidad de un programador por hardware externo. Se comunica utilizando el protocolo STK500 original..

(38) CAPÍTULO 2. MATERIALES Y METODOS. También. puede. evitarse. el. gestor. de. arranque. y. programar. 28 directamente. el. microcontrolador a través del puerto ICSP (In Circuit Serial Programming) (Arduino, 2015). Estructura de un programa: La estructura básica de programación de Arduino es bastante simple y divide la ejecución en dos partes o funciones: setup y loop. Setup() constituye la preparación del programa y loop() es la ejecución. En la función Setup() se incluye la declaración de variables y se trata de la primera función que se ejecuta en el programa. Esta función se ejecuta una única vez y se emplea para la configuración de los pines e inicializar la comunicación serie. La función loop() incluye el código a ser ejecutado continuamente (Evans, 2007). 2.2.1. IDE. Este ambiente de desarrollo integrado permite la creación del código que se va a correr en la placa. A través del cargador de arranque, también llamado bootloader, el IDE se comunica con la placa y hace que el código escrito sea “entendible” por el microcontrolador. Existen versiones para Windows y para MAC, así como las fuentes para compilarlas en LINUX. En la Figura 2.1 se ilustra el IDE antes mencionado.. Figura 2.1 IDE para Arduino.

(39) CAPÍTULO 2. MATERIALES Y METODOS. 29. Para la conexión USB es necesario instalar los drivers FTDI. Estos drivers vienen incluidos en el paquete de Arduino y existen en las web versiones para distintos sistemas operativos. Para el comienzo del trabajo con el entorno de desarrollo de Arduino es necesaria la configuración de las comunicaciones entre la placa Arduino y la PC. Para ello se debe abrir en el menú “Tools” la opción “Serial Port”. En esta opción se debe seleccionar el puerto serie al que está conectada la placa. En Windows, si se desconoce el puerto al que está conectado la placa se puede descubrir a través del Administrador de dispositivos (Puertos COM & LPT/ USB Serial Port). Para la comprobación de las conexiones se puede abrir uno de los ejemplos que vienen con el software, cuya función es encender el LED de la placa asociado al pin 13 (Monk, 2013). Configuración del entorno Arduino: La conexión de la placa al ordenador se realiza a través de un cable USB que por un extremo es de tipo B, que es el que se conecta al Arduino, y por el otro extremo de tipo A. Después de efectuar la conexión de la placa al ordenador, se especifica el puerto serie al cual está conectado el Arduino mediante el ítem Herramientas del IDE, como se muestra en la Figura 2.2.. Figura 2.2 Selección del Puerto de comunicación en el IDE de Arduino.

(40) CAPÍTULO 2. MATERIALES Y METODOS. 30. Luego que se realiza la selección del puerto al que se conecta la placa y se selecciona la plataforma Arduino con la cual se trabaja. Para ello se abre el ítem Herramientas del IDE y se selecciona la placa correspondiente entre una lista de otras plataformas Arduino que aparecen en dicha lista. Como en este caso se trabaja con el Arduino Mega 2560 se selecciona su correspondiente nombre en la lista que aparece, como lo ilustra la Figura 2.3.. Figura 2.3 Selección de la plataforma Arduino en el IDE 2.2.2. Funciones.. Una función es un bloque de código identificado por un nombre y que es ejecutado cuando la función es llamada. La declaración de una función incluye en primer lugar el tipo de datos que devuelve la función. Después del tipo de datos se especifica el nombre de la función y los parámetros de la misma. Entre las funciones más importantes y utilizadas en proyectos que utilizan Arduino para recoger datos de sensores para realizar una medición se encuentran: digitalRead() y analogRead()..

(41) CAPÍTULO 2. MATERIALES Y METODOS. 31. La función digitalRead() lee el valor de un pin definido como digital dando un resultado HIGH (alto) o LOW (bajo). Esta función se utiliza mucho para recibir información de sensores que indican presencia como por ejemplo un detector de humo. La función analogRead() lee el valor de un determinado pin definido como entrada analógica con una resolución de 10 bits. El rango de valor que se puede leer oscila de 0 a 1023 debido al convertidor A/D que posee el Arduino Mega. Otra función muy utilizada en los programas que reciben datos de sensores es la función delay(). La misma detiene la ejecución del programa la cantidad de tiempo en milisegundos que se indica en la propia instrucción, de tal manera que delay(1000) equivale a un segundo. Resulta necesario la utilización de esta función en este tipo de proyecto, dado que se debe disponer de una breve pausa entre cada una de las lecturas del sensor para que los datos puedan ser debidamente procesados o almacenados (Evans, 2007). 2.2.3. Librerías.. Una librería es un fragmento de software que provee algún tipo de funcionalidad, como por ejemplo la escritura de un texto en una pantalla LCD o el cálculo de una posición desde un sistema de navegación GPS. Existen tres diferentes tipos de librerías de Arduino: . Librerías de núcleo.. . Librerías estándar.. . Librerías contribuidas.. Librería de núcleo: se desarrolla en el IDE de Arduino y es la que convierte a esta plataforma de desarrollo en un útil y muy práctico dispositivo, tanto para los usuarios principiantes como para los más experimentados. La librería de núcleo esconde mucha de la complejidad relacionada con el trabajo con microcontroladores. En muchos proyectos se utiliza la lectura y escritura de datos y la librería de núcleo permite que estas tareas sean de simple ejecución. Las muy utilizadas funciones digitalRead(), digitalWrite() y analogRead() están incluidas en esta librería..

(42) CAPÍTULO 2. MATERIALES Y METODOS. 32. Librerías estándar: están incluidas en la instalación del IDE de Arduino. Estas librerías no están incluidas por defecto en los proyectos como las librerías de núcleo debido a que Arduino tiene limitación de recursos en cuanto a memoria de almacenamiento para el código. Para la utilización de este tipo de librerías es necesario que sean incluidas explícitamente en el sketch. Para ello es necesario la inclusión de un estamento include en la parte superior del sketch (Evans et al., 2013). Librerías contribuidas: son aquellas que desarrollan los usuarios de Arduino pero que no se distribuyen con el IDE. Muchas de estas librerías se encuentran en la página web principal de Arduino (Arduino, 2017). Algunas de estas librerías son extensiones de las librerías estándar que ofrecen más funciones. Otras librerías contribuidas se diseñan para el trabajo con dispositivos específicos como sensores y actuadores. Un ejemplo de una librería contribuida lo constituye Ultrasonic. Con la misma se simplifica el trabajo con el módulo ultrasónico para medir distancia con Arduino. Ultrasonic provee funciones previamente implementadas que ahorran un gran trabajo cuando se utiliza este módulo. Otro ejemplo lo constituye la librería SimpleDHT la cual se utiliza para operar con el sensor de temperatura y humedad DHT11 (GitHub, 2017). Para la utilización de una librería contribuida se necesita cargar la misma en la carpeta de instalación del IDE de Arduino. El IDE ofrece la opción de incluir una librería externa en el ítem Programa, en la parte superior del ambiente de trabajo. Dentro del ítem Programa aparece la opción Incluir Librería la cual despliega un submenú con las librerías que vienen por defecto con el IDE y una opción Añadir Librería .ZIP. Con esta última opción se escoge la ruta de la librería que se desea instalar, lo cual incluye la misma en la carpeta de instalación del IDE. 2.3. Integración con otros sistemas informáticos.. Arduino posee muchas características que permiten su integración con PLC, PC y otros dispositivos informáticos. Su versatilidad y fácil comunicación con el entorno hacen de esta plataforma un poderoso dispositivo para su utilización como controlador, tarjeta para la.

(43) CAPÍTULO 2. MATERIALES Y METODOS. 33. adquisición de datos, entre otras utilidades que son de gran interés en algunos proyectos en los que es necesaria su integración con otros dispositivos. Como dispositivo para la adquisición de datos presenta ventajas sobre algunas tarjetas existentes, debido a que tiene la posibilidad de ser programado. Esta característica permite a los usuarios tener un mismo elemento que reciba los datos y que a su vez permita procesarlos, acotarlos o incluso almacenarlos por un tiempo determinado. Es muy común la utilización de las placas Arduino como dispositivo para la adquisición de datos. En el trabajo realizado en la Universidad de las Fuerzas Armadas de Ecuador (Chalá and Sebastián, 2014) se desarrolla un sistema de identificación de procesos industriales utilizando la plataforma Arduino MEGA para la adquisición de datos y MatLab/Simulink para su respectivo procesamiento. En este caso Arduino es el encargado de la obtención de los datos provenientes de un PLC que emula los datos de una planta industrial. Otro ejemplo de integración de Arduino con PLC lo constituye el proyecto realizado en el Instituto de Robótica y Cibernética en Eslovaquia (Kajan et al., 2014). En este trabajo se conectan cinco sensores ultrasónicos y cinco fotosensores a la placa Arduino y este procesa los datos de los sensores y los combina en un solo paquete de datos. El paquete de datos se envía al PLC a través de una comunicación TCP lo que permite el ahorro de los módulos de E/S del PLC para su posible utilización en otras aplicaciones o para la extensión de su capacidad de conexión con otros sensores. La plataforma Arduino también se utiliza mucho en integración con las PC, generalmente y como ya antes se mencionó, como dispositivo para la adquisición de datos. En combinación con el software MatLab o Labview, por solo mencionar los más populares y utilizados, puede ser una poderosa herramienta, tal como lo muestra el trabajo realizado en la Universidad Politécnica de Valencia (Martínez, 2015). En este proyecto se implementó un sistema de captura y procesamiento de señales provenientes de diferentes sensores en el cual Labview permite la devolución de la señal procesada por un canal a tiempo real. En este caso Arduino se utiliza para la adquisición de los datos que se envían al ordenador para su procesamiento con el software MatLab..

(44) CAPÍTULO 2. MATERIALES Y METODOS. 2.4. 34. Processing.. A pesar de tener disímiles características y ventajas para la adquisición de datos, Arduino por sí solo no es capaz de guardar los datos adquiridos en un archivo. Para realizar el almacenamiento de estos datos es necesario recurrir a otro software. El elemento encargado de almacenar los datos que Arduino envía por el puerto serie es el IDE Processing (Figura 2.4).. Figura 2.4 IDE Processing Processing es un lenguaje de programación de código abierto basado en Java para el desarrollo de gráficas, animaciones, y aplicaciones gráficas de todo tipo. Es un software libre y está disponible en las plataformas Mac OS, Linux, Windows, y los demás sistemas operativos que soporten Java. Este lenguaje de programación dispone de su propio IDE (disponible en http://processing.org) que permite el desarrollo de aplicaciones desde muy sencillas a muy complejas y además posibilita su conexión con Arduino. Este software también permite el manejo de archivos, lo que resulta de utilidad en proyectos en los que se obtienen datos reales de sensores que necesitan ser almacenados..

(45) CAPÍTULO 2. MATERIALES Y METODOS. 2.5. 35. Características de los sensores utilizados en las prácticas.. Cuando se utiliza un sensor conectado a una plataforma Arduino se deben realizar una serie de investigaciones sobre dicho sensor. Es importante conocer el voltaje y la corriente de trabajo del sensor, la función de cada pin, y otras características importantes. También resulta fundamental conocer el principio de funcionamiento del dispositivo para evitar errores en su manipulación. Para la realización de este trabajo se tuvieron en cuenta las características anteriormente mencionadas exponiéndose a continuación algunas de ellas. 2.5.1. Sensor de temperatura basado en termistor.. El elemento primario del sensor de temperatura (Figura 2.5) utilizado es un termistor tipo NTC (Negative Temperature Coefficient). El fundamento de los termistores está en la dependencia de la resistencia de los semiconductores con la temperatura, debido a la variación con ésta, del número de portadores. Al aumentar la temperatura, lo hace también el número de portadores reduciéndose la resistencia, y de ahí que presente coeficiente de temperatura negativo. La variación de resistencia con relación a la temperatura en un termistor es no lineal y se comporta según la ecuación 2.1 (Antón et al., 2004).. (1 1 ) RT = R oe. T Tref. (2.1). RT : Resistencia del termistor a la temperatura T en Kelvin. Ro : Resistencia del termistor a la temperatura Tref en Kelvin. β: Índice de sensibilidad del termistor en Kelvin El termistor utilizado en este sensor posee una Ro de10 KΩ a 25 o C y le corresponde un índice de sensibilidad de 4090 (Antón et al., 2004). El sensor consiste en una resistencia en serie con el termistor y un voltaje de alimentación (Figura 2.6)..

Figure

Figura  1.1. Placa PCDuino.
Tabla  1.1. Especificaciones  de hardware  de PCDuino  (Galán  Parras, 2014)
Figura  1.2. Raspberry  Pi modelo  B.
Tabla  1.2. Especificaciones  de hardware  de Raspberry  Pi. (Upton  and Halfacree,  2014)
+7

Referencias

Documento similar