scieee AI-readable full text Open interactive document viewer

Repositorio Institucional de Documentos

Abstract

El objetivo del presente proyecto es el diseño, montaje y puesta a punto de un prototipo de una placa de adquisición de datos compatible con las tarjetas de Arduino. Esta placa de adquisición de datos dispone de un reloj en tiempo real, un conversor analógico/ digital de 18 bits y con una frecuencia de muestreo de hasta 120 muestras por segundo y un módulo con una tarjeta micro SD capaz de guardar los valores tomados por el conversor. En este proyecto se han elaborado programas para la adquisición de datos de forma autónoma con la capacidad de exportar estos datos a una tabla y realizar gráficas. A su vez, es compatible con programas de adquisición de datos como LabView. Este instrumento destaca por tener la capacidad de realizar las mismas funciones que otras placas de adquisición de datos pero a un coste menor. Lacasa Aguas, Carlos; Asiaín Ansorena, David; Lucía Gil, Óscar

Full text

Escudo registrador de datos analógicos S-LOGGER para Arduino. Memoria AUTOR: CARLOS LACASA AGUAS DIRECTORES: DAVID ASIAÍN ANSORENA DR. ÓSCAR LUCÍA GIL CONVOCATORIA: MARZO 2013 TITULACIÓN: INGENIERÍA TÉCNICA INDUSTRIAL ESPECIALIDAD INGENIERÍA ELECTRÓNICA Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 2 Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 3 AGRADECIMIENTOS. Quiero expresar mi gratitud a todas las personas que han hecho posible la realización de este proyecto. En primer lugar, a mis padres, mi hermana y a mi tía Begoña, por la educación que me han ofrecido y por su confianza y apoyo incondicional. A mis directores de proyecto, David Asiaín, que me ha ayudado y siempre ha estado disponible para cualquiera de las dudas que he tenido, y al Dr. Óscar Lucía, por su interés, ayuda y consejos. Gracias a los dos por vuestra ayuda. Finalmente, me gustaría agradecer a Alba, por su cariño y ayuda, y a mis amigos Alejandro, Lucía, Pinós, Pilar y Ros, por estar ahí durante todos estos años. Muchas gracias a todos. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 4 Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 5 ÍNDICE. RESUMEN. .................................................................................. 7 1. Introducción. ....................................................................... 9 1.1 Historia de Arduino. .......................................................................... 9 1.2 Motivación. ...................................................................................... 12 1.3 Objetivo. .......................................................................................... 13 1.4 Alcance. ........................................................................................... 14 2. Diseño del periférico. ........................................................ 15 2.1 Introducción. ................................................................................... 17 2.2 Diagrama de bloques del periférico propuesto. .............................. 19 2.3 Esquema general del circuito. ......................................................... 21 2.4 Bloque tarjeta SD. ............................................................................ 22 2.4.1 Descripción. ............................................................................ 22 2.4.2 Selección de componentes. ................................................... 24 2.5 Bloque reloj en tiempo real (RTC). .................................................. 29 2.5.1 Descripción. ............................................................................ 29 2.5.2 Selección de componentes. ................................................... 30 2.6 Bloque de Alimentación y Aislamiento. ........................................... 34 2.6.1 Descripción. ............................................................................ 34 2.6.2 Selección de componentes. ................................................... 35 2.7 Bloque Conversor A/D. .................................................................... 39 2.7.1 Descripción. ............................................................................ 39 2.7.2 Selección de componentes. ................................................... 40 2.7.3 Sistema de Filtro y Protección. ............................................... 44 Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 6 3. Diseño de la PCB. ............................................................... 53 3.1 Introducción. ................................................................................... 53 3.2 Implementación de la S-LOGGER. .................................................... 55 3.2.1 Colocación de los componentes. ............................................ 57 3.2.2 Diseño final en 3D. ................................................................. 62 3.3 Presupuesto. .................................................................................... 63 3.4 Impacto medioambiental. ............................................................... 65 4. Montaje y Verificación. ...................................................... 67 4.1 Montaje. .......................................................................................... 67 4.2 Programación. ................................................................................. 70 4.2.1 Funcionalidad básica. ............................................................. 70 4.2.2 Ejemplo de Software. ............................................................. 75 5. Conclusiones. ..................................................................... 81 5.1 Líneas de investigaciones futuras. ................................................... 83 6. Bibliografía. ....................................................................... 85 ANEXO 1: Programación. .......................................................... 87 ANEXO 2: Planos. ................................................................... 103 1. Esquema Eléctrico. ........................................................... 104 2. Placa de circuito impreso cara top. .................................. 105 3. Placa de circuito impreso cara bottom. ............................ 106 4. Plano de serigrafía. ........................................................... 107 5. Plano de mascarilla cara top. ............................................ 108 6. Plano de mascarilla cara bottom. ..................................... 109 7. Plano de taladrado. .......................................................... 110 ANEXO 3: Hojas de caracteristicas. ......................................... 111 Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 7 RESUMEN. El objetivo del presente proyecto es el diseño, montaje y puesta a punto de un prototipo de una placa de adquisición de datos compatible con las tarjetas de Arduino. Esta placa de adquisición de datos dispone de un reloj en tiempo real, un conversor analógico/ digital de 18 bits y con una frecuencia de muestreo de hasta 120 muestras por segundo y un módulo con una tarjeta micro SD capaz de guardar los valores tomados por el conversor. En este proyecto se han elaborado programas para la adquisición de datos de forma autónoma con la capacidad de exportar estos datos a una tabla y realizar gráficas. A su vez, es compatible con programas de adquisición de datos como LabView. Este instrumento destaca por tener la capacidad de realizar las mismas funciones que otras placas de adquisición de datos pero a un coste menor. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 8 Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 9 1. Introducción. 1.1 Historia de Arduino. La plataforma Arduino fue creada en el año 2005 por un equipo de desarrollo compuesto por Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, David Mellis y Nicholas Zambetti, y como describe su sitio web [6] es: “una plataforma de electrónica abierta para la creación de prototipos basada en software y hardware flexibles y fáciles de usar. Se creó para artistas, diseñadores, aficionados y cualquiera interesado en crear entornos u objetos interactivos. “ Su principal motivación fue la de diseñar una herramienta docente moderna y potente y que su precio fuera accesible para los estudiantes: una placa de hardware costaban 70 euros. Esta plataforma fue creada desde un principio como un concepto Open Source debido a que era un proyecto integrado en la universidad de Ivrea, la cual estaba en proceso de clausura. De este modo, llegado el momento de que la universidad cerrase sus puertas, la propiedad intelectual de Arduino seria libre y podría seguir desarrollándose. Maximo Banzi y otros de sus compañeros en la universidad desarrollaron un lenguaje de programación orientado a objetos sencillo llamado Processing. El Processing rápidamente gano popularidad ya que permitía a programadores sin experiencia crear visualizaciones complejas. La idea de Banzi era crear una herramienta similar que tuviera la capacidad de programar un microcontrolador en vez de gráficos en una pantalla. Fue entonces cuando el estudiante Hernando Barragán desarrollo el prototipo de una plataforma de programación llamada Wiring. La plataforma de Wiring desarrolla sus programas en lenguaje C y C++, pero el usuario final únicamente necesita configurar unas pocas funciones y de una forma muy sencilla. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 16 El principal uso de la tarjeta USB-6008 es la utilización como Hardware en el programa Labview también de National. Como se puede observar en el diagrama de bloques de la figura 6, la tarjeta se conecta al ordenador mediante USB y permite leer en el programa los valores de los sensores conectados a la tarjeta y actuar en dispositivos como servomotores, leds o zumbadores. Figura 6: Diagrama de bloques tarjeta USB-6008. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 17 2.1 Introducción. Una vez estudiada la tarjeta de adquisición de datos USB-6008, se ha procedido al diseño de una expansión o escudo compatible con la tarjeta UNO de Arduino. Un escudo, que proviene de la palabra inglesa Shield, es una placa que se superpone encima de la tarjeta de Arduino y se conecta mediante los pines laterales. En la figura 7 tenemos un ejemplo de una placa de Arduino con dos escudos conectados. Figura 7: Placa Arduino UNO con dos escudos conectados. El nombre con el que se va a denominar este escudo es S-LOGGER. El escudo S-LOGGER tiene la función de sustituir a la placa de adquisición de datos de National Instruments USB-6008, por lo que debe tener unas características lo más similar posible pero con la posibilidad de aumentar alguna de sus funcionalidades. Estas mejoras de sus funcionalidades incluyen principalmente: la mayor resolución del conversor A/D, disponibilidad de un soporte de almacenamiento físico y la posibilidad de tomar datos sin la necesidad de un ordenador. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 18 Esta expansión dispone de un conversor de 18 bits y una capacidad de lectura de 3.75 muestras por segundo, esta velocidad de muestreo es muy baja, por lo que el tipo de sensores que se utilicen deberán ser lentos: Sensores de temperatura, galgas extensiometricas. Pero a su vez este conversor ofrece una gran resolución y un bajo ruido en las muestras tomadas. La tarjeta de memoria añade capacidad de almacenamiento, ya que el microcontrolador de Arduino solo dispone de 30 Kb de memoria Flash interna disponible, y es muy difícil trabajar con ella. Por último el reloj el tiempo real permite que el escudo pueda trabajar sin estar conectado a un ordenador y siempre teniendo la referencia horaria correcta. Por otro lado, Arduino no es compatible directamente con LabView, pero mediante unas librerías especificas instaladas en el ordenador, y un código cargado en el microcontrolador, Arduino puede utilizar todas las funcionalidades de LabView como si fuera una tarjeta de National Instruments. Figura 8: Diagrama de bloques Arduino. Como se observa en la figura 8, Arduino incluye 5 entradas /salidas analógicas y 14 digitales, pero mediante el escudo S-LOGGER se amplía la resolución del conversor analógico/digital y se incluyen funciones como la tarjeta SD para recoger los datos de los sensores y un RTC para el funcionamiento autónomo del escudo. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 19 2.2 Diagrama de bloques del periférico propuesto. Figura 9: Diagrama de bloques. En el diagrama de bloques de la figura 9 se pueden ver los distintos bloques de nuestro escudo y sus comunicaciones con la tarjeta de Arduino. Como se detallara en los siguientes capítulos el S-LOGGER se compone, principalmente, de 4 bloques: El RTC se trata de un reloj en tiempo real, que mediante una batería externa entrega la hora como si de un reloj digital se tratase. La tarjeta SD permite almacenar gran cantidad de datos, ya que las placas de Arduino solo disponen de la memoria Flash de su micro controlador, y extraerla para su posterior lectura en un ordenador. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 20 Para realizar un aislamiento en el escudo se precisa de dos componentes que se agrupan en el bloque de aislamiento y referencia. Mediante un aislador, que realiza un puente de comunicación, y un convertidor DC/DC, que genera una nueva referencia, es posible conectar los componentes del último bloque. El cuarto bloque engloba la principal función de este escudo, se compone de un conversor programable de entre 12 y 18 bits, con una frecuencia de muestreo de 3.75 a 240 muestras por segundo. Este conversor no tiene la capacidad de trabajar con sensores rápidos, como acelerómetros, pero es ideal para sensores de temperatura. Estos bloques utilizan dos tipos diferentes de comunicación para enlazarse con la placa de Arduino: El bloque de la tarjeta micro SD se comunica mediante el protocolo SPI. El protocolo SPI es un estándar de comunicación usado para la transferencia de información entre circuitos integrados. Se trata de un bus serie de datos para la transferencia síncrona y bidireccional de información. Para la comunicación SPI son necesarias cuatro líneas: SCLK, MOSI, MISO y CS. El reloj en tiempo real (RTC) y el conversor A/D, con un puente en la comunicación realizado por el aislante, utilizan el protocolo I2C. Este protocolo usa 2 líneas para transmitir la información: una para los datos y en la otra la señal de reloj. También en necesaria una tercera línea, pero esta es sólo la referencia (masa). Cada uno de los dispositivos conectados al bus I2C tiene una dirección única para cada uno. En este caso la dirección del reloj será la 0x68 y la del conversor A/D la 0x6A. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 21 2.3 Esquema general del circuito. Figura 10: Esquema general de la S-LOGGER. La figura 10 muestra esquema general del circuito se puede apreciar que la placa S-LOGGER está separada en dos conjuntos, parte digital y parte analógica. En la parte digital se encuentran los bloques del reloj de tiempo real y el bloque del módulo de la tarjeta SD. En la parte analógica se encuentra el bloque del conversor A/D que incluye sus protecciones en las entradas. Para la unión de la parte digital y analógica hay un 4 bloque, denominado sistema de aislamiento y referencia, que engloba la fuente de alimentación y el aislante. En los siguientes apartados se va a proceder a explicar detalladamente cada uno de los bloques. Para cada uno se va a describir su arquitectura y se justificara el uso de los componentes utilizados y se detallaran todos los cálculos realizados. Está descripción será la documentación que se deberá utilizar en el caso de que se siga la línea de desarrollo de este escudo. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 22 2.4 Bloque tarjeta SD. 2.4.1 Descripción. El escudo incorpora un bloque con una tarjeta SD, con la finalidad de guardar los datos adquiridos sin la necesidad de estar conectada la placa de Arduino a un ordenador. La tarjeta SD necesita de cambio de los niveles de tensión para comunicarse con Arduino. Este cambio se puede realizar mediante elementos pasivos (Figura 11) [8] o mediante un componente digital (figura 12) [9]. Figura 11: Esquema conexionado SD analógico. Figura 12: Esquema conexionado SD digital. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 23 El sistema de la figura 11, al montar únicamente resistencias, tiene un coste menor, sin embargo, su principal inconveniente es que las tolerancias de las resistencias podrían llegar a producir problemas en la comunicación. Las nuevas tarjetas, con grandes capacidades, precisan de ondas con muy poca pendiente, transiciones que se consiguen con cambiadores de nivel como el utilizado en la figura 12, un 4050. Como se ha explicado anteriormente la comunicación de la tarjeta SD con Arduino se hace mediante SPI. Para esta comunicación son necesarias cuatro conexiones y mediante la tabla de la figura 13, proporcionada por Arduino [5], seleccionamos los correspondientes a nuestra tarjeta. Figura 13: Tabla de conexiones de SPI. Como se puede observar en la tabla, los pines utilizados son el 11, 12 y 13. Para el SS o chip select se puede utilizar cualquier pin, ya que se configura en el programa. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 24 2.4.2 Selección de componentes. 2.4.2.1 74HC4050. Descripción. El 4050, como el de figura 14, es un conversor de nivel alto a nivel bajo. Por lo que tiene la función de adaptar la tensión de Arduino (5 V) con la de trabajo de la tarjeta SD (3,3 V) Figura 14: Patillaje y encapsulado del 74HC4050. Este componente se compone de seis memorias no inversoras con una estructura de protección en su entrada. El protocolo SPI solo precisa adaptación en la comunicación en tres de sus conexiones: MOSI, SCK y CS por lo que solo se usaran tres memorias del 4050. La línea MISO se puede conectar directamente desde la tarjeta SD a Arduino. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 25 2.4.2.2 Tarjeta micro SD. Descripción. En el módulo de la tarjeta de almacenamiento hay varias opciones tanto de formato como de tamaño. El formato que se va a usar es SD que tiene diferentes tamaños que son: • SD estándar • Mini SD • Micro SD. La mini SD se descartó por su escasa utilización y comercialización, la SD debido a su gran tamaño y al poco espacio disponible en el escudo. Por lo que la opción elegida ha sido una micro SD como la que se muestra en la figura 15. Figura 15: Patillaje y encapsulado de la tarjeta micro SD. En el momento de seleccionar una tarjeta micro SD hay que tener en cuenta varios factores como pueden ser: Su capacidad y su capacidad de lectura/ escritura. La capacidad elegida vendrá por el tiempo que el escudo va a estar tomando datos, pero al tratarse de datos simples la necesidad de memoria es baja. Por otro lado tenemos la velocidad de lectura/escritura, nuestro escudo al incorporar un conversor lento, y los datos a transmitir son de un tamaño pequeño, no es necesaria una tarjeta muy rápida. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 32 2.5.2.3 Cristal de cuarzo. Descripción. El cristal de cuarzo utilizado para el montaje, figura 23, es uno de frecuencia 32.769kHz, indicado en las hojas de características del Ds1307 [13]. La calidad del cristal de cuarzo es muy importante ya que la exactitud de la hora viene dada por esta. Este cristal tiene a una temperatura de 25ºC una desviación de 20 partes por millón por lo que cumple unas especificaciones mínimas de calidad Figura 23: Cristal de cuarzo. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 33 2.5.2.4 Esquemático. La figura 24 muestra el montaje utilizado para reloj en tiempo real con sus principales componentes. Figura 24: Esquemático reloj en tiempo real. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 34 2.6 Bloque de Alimentación y Aislamiento. 2.6.1 Descripción. En la parte analógica, con el conversor A/D y sus protecciones, hay una separación física, o aislamiento, con la digital mediante dos componentes. Esta separación tiene la funcionalidad de proteger el Hardware de Arduino de una mala utilización en el momento de conectar dispositivos a la entrada del conversor. En caso de conectar una tensión más alta de la que las protecciones del conversor no pudieran soportar, la parte analógica dejaría de funcionar pero sin alterar la placa principal. Los componentes utilizados son un transformador DC/DC de 5V a 3.3V que proporciona la alimentación necesaria, y un aislador, que tiene la función de establecer un puente en la comunicación I2C, utilizada por el conversor, con la placa principal. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 35 2.6.2 Selección de componentes. 2.6.2.1 DC/DC 0503. Descripción. La fuente de alimentación utilizada para alimentar la parte analógica es un convertidor DC/DC de entrada 5 V y salida 3 V como el de la figura 25. Este componente proporciona aislamiento, capaz de soportar picos de tensión de 1 KV durante un segundo, entre las dos partes creando una nueva referencia de tensión y una masa. Figura 25: Patillaje y encapsulado del DC/DC. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 36 Para filtrar la tensión del convertidor DC/DC el fabricante indica, mediante la tabla de la figura 26, disponible en la hoja de características [15], los valores necesarios de una bobina en serie y un condensador que deben ser montados junto con el 0503. Figura 26: Esquema de montaje y tabla de valores. En nuestro caso el componente utilizado es el NTE0503MC por lo que es necesario incluir en el montaje una bobina de 10 µH y un condensador de 4,7 µF. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 37 2.6.2.2 Aislador I2C ADuM1250. Descripción. Para la comunicación entre el conversor A/D, situado en la parte analógica, con la placa de Arduino es necesario un componente que realice un puente entre el aislamiento. El componente utilizado es un aislador específico para I2C. Este componente dispone de dos canales bidireccionales de comunicación y permite velocidades de trasmisión de hasta 1 MHz por lo que es compatible con nuestra velocidad de comunicación, 100 KHz. El ADuM1250 de la figura 27 [14], pese a ser un aislador magnético, presenta una gran inmunidad frente a campos magnéticos externos. Además incluye un circuito interno de protección para evitar que la conexión de un componente no alimentado al bus I2C introduzca datos inválidos. Figura 27: Patillaje y encapsulado del Aislante ADuM1250. Diagrama de bloques. A continuación, en la figura 28, se muestra el diagrama de bloques del aislador. Figura 28: Diagrama de bloques de la tarjeta micro SD. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 38 2.6.2.3 Esquemático. DC/DC. La figura 29 muestra el montaje utilizado para el convertidor DC/DC, con sus principales componentes. Figura 29: Esquemático del DC/DC 0503. Aislamiento. La figura 30 muestra el montaje utilizado para el aislante, con sus principales componentes. Figura 30: Esquemático del aislante ADuM1250. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 39 2.7 Bloque Conversor A/D. 2.7.1 Descripción. El bloque del conversor A/D se puede dividir en dos partes: En primer lugar tenemos el conversor, un MCP3424 de 18 bits que mejora el conversor de la placa Arduino, 10 bits. En segundo lugar, para proteger las entradas del conversor de tensiones elevadas y malos usos, se han incluido una serie de protecciones pasivas compuestas por resistencias, condensadores y diodos. Estas configuraciones son modificables en base a las necesidades de uso del usuario. Y las posibles conexiones serian: • Entrada Unipolar. • Puente de wheatstone. • Sonda de termopar. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 40 2.7.2 Selección de componentes. 2.7.2.1 MCP3424. Descripción. El MCP3424 de la figura 31, [12] es un conversor ΔΣ multicanal de 18 bits con un bajo ruido y una gran precisión. La tensión de referencia de 2,048V, incluida dentro del componente, permite un rango de entrada de +-2,048V en una entrada diferencial. Este conversor dispone de 4 salidas diferenciales con ganancia ajustable a 1, 2, 4 u 8, resolución programable entre 18, 16, 14 o 12 bits y puede realizar conversiones simples o continuas. Durante estas conversiones, el conversor compensa la desviación y los errores de ganancia automáticamente. Este componente es adecuado para labores de adquisición de datos de forma autónoma ya que el modo de conversión simple o “un disparo” dispone de un consumo reducido entre las conversiones. Para la comunicación este componente utiliza el protocolo I2c, y mediante la escritura de las direcciones indicadas en su hoja de características se pueden configurar todas las funcionalidades del conversor. Figura 31: Patillaje y encapsulado del Conversor MCP3424. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 41 En la tabla de la figura 32 se muestra las muestras por segundo que el conversor es capaz de tomar en función de su resolución. 18 Bits 3,75 SPS 16 Bits 15 SPS 14 Bits 60 SPS 12 Bits 240 SPS Figura 32: Tabla de relación entre resolución y muestras. Diagrama de bloques. En el diagrama de bloques de la figura 33 observamos los bloques internos del conversor. En él, se pueden apreciar dos bloques muy importantes: Dispone de una tensión de referencia interna de 2.048 V, de esta forma no es necesario montar, de forma externa, ningún tipo de referencia. Por otro lado, tiene un oscilador por lo tanto tampoco en necesario incluir un cristal de cuarzo, como si ocurría en el reloj en tiempo real. Para la selección de canal incorpora un multiplexor interno y un amplificador de ganancia programable a la entrada del conversor. Figura 33: Diagrama de bloques del conversor MCP3424. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 48 Puente de Weatstone. La entrada para el puente de Weatstone o diferencial tiene como protección un filtro de paso bajo para mejorar la lectura de los datos tomados. El puente de resistencias será montado en un circuito anexo a nuestro escudo, conectando únicamente la salida del puente. En la figura 42 se muestra el esquema de protecciones del puente de Weatstone y en la figura 43 los componentes necesarios para su montaje Figura 42 Circuito de protección de entrada de puente de Weatstone. Componentes Valor C4,C7,C10,C13 10 nF D2,D3,D5,D7 - C5,C8,C11,C14 100 nF C6,C9,C12,C15 100 nF R6,R10,R14,R18 12 KΩ R7,R12,R16,R20 - R8,R13,R17,R21 - R9,R11,R15,R19 12 KΩ D1,D4,D6,D8 - Figura 43 Relación de componentes del circuito de puente de Weatstone. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 49 Para la selección del filtro de paso bajo se han utilizado los mismos cálculos del apartado de entrada unipolar. Para el montaje final de este circuito es necesario el puente de Weatstone. La configuración del puente vendrá dada por las necesidades del usuario final, así como de los diferentes sensores que desee utilizar: Galgas extensiométricas, NTCs, etc. Para estabilizar las muestras tomadas se monta un condensador (C4, C7, C10, C13) en paralelo con las 2 entradas del conversor. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 50 Sonda de termopar. Esta entrada está diseñada para la conexión de sondas de termopar. Esta entrada únicamente tiene dos resistencias de 10 KΩ conectadas a tierra para adaptar la entrada. Y un condensador en paralelo con las entradas para estabilizar las muestras tomadas. Para la calibración de temperatura de la sonda de termopar será necesario un termómetro externo al escudo. A continuación, en la figura 44, se muestra el esquema final de montaje y en la figura 45 los componentes necesarios para el montaje de sonda de termopar. Figura 44: Circuito de protección de entrada de sonda termopar. Componentes Valor C4,C7,C10,C13 10 nF D2,D3,D5,D7 - C5,C8,C11,C14 - C6,C9,C12,C15 - R6,R10,R14,R18 0 Ω R7,R12,R16,R20 10 KΩ R8,R13,R17,R21 10 KΩ R9,R11,R15,R19 0 Ω D1,D4,D6,D8 - Figura 45 Relación de componentes del circuito de entrada de sonda termopar. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 51 Esquemático. La figura 46 muestra el montaje utilizado para el conversor, con sus principales componentes. Figura 46: Esquemático integrado MCP3424 La figura 47 muestra el montaje utilizado para las protecciones, con sus principales componentes. Este circuito es el de una de las protecciones, pero esta replicado para cada uno de los canales. Figura 47: Circuito de protecciones. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 52 Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 53 3. Diseño de la PCB. 3.1 Introducción. El programa de utilizado para el diseño de la PCB es el Altium Designer 10. La figura 48 muestra el interfaz de la pantalla donde se diseña el esquemático. La plataforma de Arduino aconseja usar software libre, como EAGLE, para de esta forma favorecer la difusión de los documentos. El motivo de uso de este software es la potencia y facilidad a la hora de realizar el proyecto, y su compatibilidad de los archivos a la hora de fabricar la PCB en empresas especializadas. Para el estudio del manejo de este software se utilizó la bibliografía [1]. Figura 48: Interfaz Altium Designer. A continuación se muestra el esquemático del escudo S-LOGGER, figura 49. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 54 Figura 49: Esquemático S-LOGGER. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 55 3.2 Implementación de la S-LOGGER. Para el diseño de la PCB el primer requisito era el tamaño. La placa S- LOGGER debe ser compatible con la tarjeta UNO de Arduino, figura 50, y sus accesorios, por lo que su tamaño debe ser similar y los pines de conexión coincidir. Figura 50: Placa Arduino UNO con medidas. La tarjeta Arduino uno mide 68,58mm x 53,34mm La versión R3 dispone de 4 pines adicionales respecto a la versión R1, en el diseño final se han incluido estos 4 pines adicionales pero no se usan. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 56 Por lo tanto el primer paso del diseño de la tarjeta fue definir las medidas y fijar los pines de conexión en el lugar correcto. De forma adicional, se han incluido 4 orificios para hacer el escudo S-LOGGER compatible con las cajas de Arduino, como la de la figura 51. Figura 51: Placa Arduino UNO y caja compatible. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 57 3.2.1 Colocación de los componentes. Con el esquemático terminado y los encapsulados de los componentes seleccionados se procedió a la colocación de los componentes en la PCB. La estrategia utilizada fue la de separar la PCB en 3 zonas, correspondientes a cada uno de los bloques funcionales. Figura 52: PCB con las 3 zonas diferenciadas. Las 3 zonas que se ven en la figura 52 son: - Azul: Tarjeta SD - Verde: Reloj en tiempo real - Rojo: Conversor A/D con sus protecciones. En cada uno de los bloques se ha colocado primero el componente de mayor tamaño y después las resistencias y condensadores. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 64 Para realizar un presupuesto real del precio de una PCB se ha simulado el pedido de 50 placas. El precio final por placa era de 3,363€. Figura 58: Presupuesto PCB en Eurocircuits. Por lo tanto contabilizando el gasto de material, 36,17€, y el gasto de una placa, 3,363€. El gasto total de fabricación de una tarjeta S-LOGGER es de 39,53€. Hay que tener en cuenta que el gasto de material está calculado para un pedido simple de componentes. Para montar una cantidad grandes de placas el pedido de componentes sería mucho mayor y el precio por componente aplicado sería menor al aplicarse precios al por mayor. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 65 3.4 Impacto medioambiental. Todos los componentes utilizados en la construcción de este prototipo, cumplen con la directica de la Unión Europea, 2002/95/CE de Restricción de ciertas Sustancias Peligrosas en aparatos eléctricos y electrónicos, (RoHS del inglés Restriction of Hazardous Substances). De acuerdo con el RD 1 / 2008 del 11 de enero y su modificación en la Ley 6 / 2010 de 24 de marzo, este proyecto no conlleva ningún riesgo para la salud de la población al no producir ningún tipo de emisiones. Por este motivo no está sometido a la declaración de impacto medioambiental. No obstante, se ha realizado una evaluación del efecto medioambiental que provoca este dispositivo. Esta evaluación se realiza desde tres puntos de vista: su construcción, la explotación durante su vida útil y su desmantelamiento al final de su vida útil. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 66 Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 67 4. Montaje y Verificación. 4.1 Montaje. En este proyecto se han realizado 2 prototipos. El primero fue en una placa de cobre de prototipos y las pistas se realizaron con una fresadora. Figura 59: Prototipo en placa de cobre. Este primer prototipo de la figura 59 tenía la función de comprobar que el montaje de los diferentes bloques diseñados funcionaba correctamente. En este tipo de prototipos hay que seguir una serie de pasos para soldar correctamente los componentes. El primer paso es soldar las vías, al ser un prototipo no profesional las caras Top y Bottom no tienen conexión entre ellas. Para ellos hay que introducir un pequeño cable y soldarlo a la placa por ambas caras. El segundo paso es ir soldando los mínimos componentes necesarios para que funcione un bloque. Esto se realiza así para que en caso de que no funcione algo los componentes a desoldar sean los menos posibles. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 68 Para comprobar las conexiones antes de conectar la placa, se debe medir la continuidad de las pistas con el polímetro, de esta forma se evitan los posibles cortocircuitos. Cuando un bloque está funcionando correctamente se procede a soldar el siguiente, así hasta que todo el escudo este funcionado totalmente. En este prototipo, como podemos observar en la figura 60, solo se ha realizado el montaje de una de las protecciones del conversor. De esta forma se comprueba que el conversor funciona y se puede montar en el diseño final. Figura 60: Prototipo montado. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 69 Una vez comprobado que el primer prototipo funcionaba de manera correcta, se enviaron los planos a una empresa especializada para la fabricación de la PCB en placa verde, figura 61. Figura 61: Prototipo en placa verde. El proceso de montaje de la placa verde es el mismo que el del prototipo. Las únicas diferencias están en que las vías no hacen falta soldarlas, y los pads no necesitan de flux ya que tienen un acabado profesional que facilita la soldadura. La imagen 62 corresponde al prototipo final montado. Figura 62: Prototipo en placa verde montada. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 70 4.2 Programación. 4.2.1 Funcionalidad básica. Para comprobar que los componentes funcionan se usan programas ejemplo ya realizados. Para usar estos programas es necesario el programa de Arduino y conectar el escudo S-LOGGER y la placa Arduino UNO al ordenador mediante USB como se ve en la figura 63. Figura 63: Placa Arduino y escudo S-LOGGER conectados al ordenador. Para ser utilizada la placa de Arduino en el ordenador es preciso descargarse de la página web de Arduino los drivers correspondientes a la placa UNO. El programa necesario para escribir el código y cargarlo en la placa también se debe descargar de la página de Arduino. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 71 Una vez conectada la placa de Arduino junto al escudo S-LOGGER y abierto el programa, figura 64, hay que seleccionar el puerto de comunicación COM al que están conectados. Figura 64: Selección de puerto de comunicación (COM4). Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 72 4.2.1.1 DS1307. El programa básico del reloj en tiempo real Ds1307 cosiste en sincronizar la hora del componente con la del ordenador y observar cómo se actualiza correctamente. Para comprobar que el reloj se actualiza hay que abrir el puerto serie y en caso de que funcione bien aparecerá la hora actualizándose en base al retardo aplicado. En caso de que no funcione bien, en el monitor serie, aparecerá el texto “RTC is not running”. Si el montaje es correcto, en el puerto serie aparecerá la hora actual y se actualizara cada 3 segundos. Como ejemplo tenemos la imagen 65. Figura 65: Código del RTC y monitor serie. Este programa está ya totalmente configurado, no hay que realizar ningún tipo de variación en el código y en el caso de que no funcionara el problema estaría en el hardware. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 73 4.2.1.2 Tarjeta SD. El código básico de la tarjeta SD toma los valores de los canales analógicos de la tarjeta Arduino UNO, no del escudo S-LOGGER, y los graba en la tarjeta micro SD. Este programa vale para diferentes escudos de Arduino con tarjeta SD y cada uno de ellos tiene una configuración diferente, por lo que lo primero que hay que hacer es configurar los pines del programa para que correspondan con nuestro escudo. Si esta configuración no fuera la correcta o la tarjeta no estuviera conectada, el puerto serial daría este error: "Card failed, or not present" Si el conexionado es correcto y la tarjeta está presente, el programa comenzara a guardar los valores de las tres entradas analógicas en un documento de texto. Insertando la tarjeta en el ordenador y abriendo el archivo se pueden ver los datos guardados de igual forma que en la figura 66. Figura 66: Datos almacenados en la tarjeta SD. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 80 Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 81 5. Conclusiones. En este proyecto, se ha diseñado e implementando un escudo para una placa de desarrollo Arduino. El objetivo principal de este escudo, que ha sido cubierto, es tener la capacidad para realizar funciones similares a otras placas de adquisición de datos, como puede ser la USB-6008 de National Instruments, con un coste contenido. El diseño ha sido implementado y verificado experimentalmente obteniendo unos resultados satisfactorios. Las principales características reseñables son: El escudo diseñado dispone de una serie de entradas y salidas en las que se pueden conectar sensores varios. El sistema de adquisición de datos de National Instruments dispone de 8 entradas analógicas de 12 bits, nuestro diseño solo dispone de 4, pero de mayor resolución, 18 bits. El escudo permite la comunicación con el programa LabView. Mediante la creación de un parche para los drivers de Arduino en LabView, el escudo es totalmente compatible con todas las funciones de dicho software. Además, el sistema de adquisición de datos de National Instruments cuesta alrededor de 150€, el escudo S-LOGGER 40€ y la placa Arduino UNO necesaria para su funcionamiento, 20€. El escudo S-LOGGER además incluye más funcionalidades respecto a la USB- 6008 tales como: -Microprocesador programable, en el cual se pueden guardar y ejecutar programas. -Posibilidad de funcionamiento autónomo gracias a su almacenamiento en una tarjeta micro SD -En caso de rotura de un componente se puede sustituir fácilmente ya que todos los componentes se pueden comprar por separado. A continuación se muestra una tabla con una comparativa entre las dos placas de adquisición de datos. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 82 NOMBRE S-LOGGER USB-6008 PRECIO 40€ + 20€ = 60€ 160 € ENTRADAS ANALOGICAS 4 x 18 Bits 8 x 12 Bits SALIDAS ANALOGICAS 6 X 10 Bits 2 x 12 Bits E/S DIGITALES 14 12 COMPATIBILIDAD CON LABWIEW SI SI PROGRAMABLE SI NO FUNCIONAMIENTO AUTONOMO SI NO GARANTIA NO SI POSIBILIDAD DE SUSTITUIR SI NO COMPONENTES MAXIMA FRECUENCIA 120 SPS 10 KS/s DE MUESTREO Hardware y Sofware libre SI NO Para finalizar, cabe destacar que todos los diseños y componentes utilizados han sido correctamente documentados para su uso posterior. Además, el proyecto se ha realizado siguiendo el plan de trabajo previamente establecido. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 83 5.1 Líneas de investigaciones futuras. Este escudo permite varias líneas de investigación futuras. Una de las principales líneas debe ser la total implementación del conversor del escudo con LabView. Hasta el momento se ha conseguido leer la dirección de I2C del conversor y ver la variación de los valores de la línea de comunicación cuando se varía un potenciómetro. Para una correcta lectura primero habría que configurar el conversor, ganancia y resolución, lo segundo seria seleccionar mediante el multiplexor interno el canal, o canales, que se desean leer y por ultimo mostrar el dato convertido en la pantalla del ordenador. En el caso de funcionamiento mediante código las alternativas son muy variadas: -Mostrar los datos de los valores convertidos en una pantalla conectada a Arduino con comunicación I2c. -Controlar actuadores a partir de los datos de sensores o el reloj en tiempo real (temporizadores o alarmas). Todos los datos de los sensores y de las acciones realizadas por los actuadores podrían ser guardadas en la tarjeta micro SD. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 84 Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 85 6. Bibliografía. A continuación se listan los libros, páginas web, apuntes, así como las hojas de datos de los distintos fabricantes, utilizados en la elaboración de este proyecto tanto referente a la descripción de la memoria, como a la realización del escudo S-LOGGER. Libros: - [1] Torres, Manuel, Diseño e ingeniería electrónica asistida por ordenador con PROTEL DXP. Apuntes: - [2] Bono, Antonio, Microprocesadores EUITIZ, curso 3º Electrónica industrial. - [3] Asiain, David, Microprocesadores EUPLA, curso 3º Electrónica Industrial. - [4] Torres, Miguel Ángel, Oficina Técnica, curso 3º Electrónica Industrial. - [5] Fernández, Vicente, Electrónica analógica, curso 2º Electrónica Industrial. Páginas WEB. - [6] http://www.arduino.cc/es/ Consultada el: 30/9/12. - [7] http://es.rs-online.com/web/ Consultada el: 25/1/13. - [8]http://www.ardublog.com/lector-de-tarjetas-sd-para-arduino/ Consultada el: 13/7/12. - [9] https://www.sparkfun.com/ Consultada el: 13/7/12. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 86 - [10] http://spain.ni.com/ (National Instruments) Consultada el: 10/12/12. - [11] http://www.eurocircuits.com/. Consultada el: 1/2/2013. Hojas de características - [12] MICROCHIP: http://ww1.microchip.com/downloads/en/DeviceDoc/22088c.pdf - [13] MAXIM: http://www.farnell.com/datasheets/46359.pdf - [14] ANALOG DEVICES: http://www.farnell.com/datasheets/1396721.pdf - [15] MURATA POWER SOLUTIONS: http://www.murata-ps.com/data/power/ncl/kdc_nte.pdf Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 87 ANEXO 1: Programación. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 88 DS1307. // Date and time functions using a DS1307 RTC connected via I2C and Wire lib #include <Wire.h> #include "RTClib.h" RTC_DS1307 RTC; void setup () { Serial.begin(57600); Wire.begin(); RTC.begin(); if (! RTC.isrunning()) { Serial.println("RTC is NOT running!"); // following line sets the RTC to the date & time this sketch was compiled RTC.adjust(DateTime(__DATE__, __TIME__)); } } void loop () { DateTime now = RTC.now(); Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 89 Serial.print(now.year(), DEC); Serial.print('/'); Serial.print(now.month(), DEC); Serial.print('/'); Serial.print(now.day(), DEC); Serial.print(' '); Serial.print(now.hour(), DEC); Serial.print(':'); Serial.print(now.minute(), DEC); Serial.print(':'); Serial.print(now.second(), DEC); Serial.println(); Serial.print(" since midnight 1/1/1970 = "); Serial.print(now.unixtime()); Serial.print("s = "); Serial.print(now.unixtime() / 86400L); Serial.println("d"); // calculate a date which is 7 days and 30 seconds into the future DateTime future (now.unixtime() + 7 * 86400L + 30); Serial.print(" now + 7d + 30s: "); Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 96 MCP3424 ADC1(address, gain, resolution); // create MCP3424 instance. //--------- // SETUP //--------- void setup() { Serial.begin(9600); Wire.begin(); } //------- // LOOP //------- void loop() { // get channel data with function double CH1 = ADC1.getChannelmV(0); Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 97 double CH2 = ADC1.getChannelmV(1); Serial.print("Channel 1: ");Serial.print(CH1);Serial.println(" mV"); Serial.print("Channel 2: ");Serial.print(CH2);Serial.println(" mV"); delay(100); } Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 98 Programa propuesto. #include <SD.h> #include <Wire.h> #include <MCP3424.h> #include <RTClib.h> // Configuration variables for MCP3424 #define address 0x6A // address of this MCP3424. For setting address see datasheet byte gain = 0; // gain = x1 byte resolution = 3; // resolution = 18bits, 3SPS MCP3424 ADC1(address, gain, resolution); // create MCP3424 instance. const int chipSelect = 8; RTC_DS1307 RTC; //--------- // SETUP //--------- void setup () Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 99 { Serial.begin(9600); Wire.begin(); RTC.begin(); Serial.print("Initializing SD card..."); // make sure that the default chip select pin is set to // output, even if you don't use it: pinMode(10, OUTPUT); // see if the card is present and can be initialized: if (!SD.begin(chipSelect)) { Serial.println("Card failed, or not present"); // don't do anything more: return; } Serial.println("card initialized."); if (! RTC.isrunning()) { Serial.println("RTC is NOT running!"); // following line sets the RTC to the date & time this sketch was compiled RTC.adjust(DateTime(__DATE__, __TIME__)); } } Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 100 //------- // LOOP //------- void loop() { //print RTC DateTime now = RTC.now(); Serial.print(now.year(), DEC); Serial.print('/'); Serial.print(now.month(), DEC); Serial.print('/'); Serial.print(now.day(), DEC); Serial.print(' '); Serial.print(now.hour(), DEC); Serial.print(':'); Serial.print(now.minute(), DEC); Serial.print(':'); Serial.print(now.second(), DEC); Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 101 Serial.println(); // get channel data with function double CH1 = ADC1.getChannelmV(0)*9.009; double CH2 = ADC1.getChannelmV(1)*9.009; Serial.print("Channel 1: ");Serial.print(CH1);Serial.println(" mV"); Serial.print("Channel 2: ");Serial.print(CH2);Serial.println(" mV"); delay(1000); // open the file. note that only one file can be open at a time, // so you have to close this one before opening another. File dataFile = SD.open("datalog.txt", FILE_WRITE); // if the file is available, write to it: if (dataFile) { dataFile.print(now.year(), DEC),dataFile.print("/"); dataFile.print(now.month(), DEC),dataFile.print("/"); dataFile.print(now.day(), DEC),dataFile.print(","); Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 102 dataFile.print(now.hour(), DEC),dataFile.print(":"); dataFile.print(now.minute(), DEC),dataFile.print(":"); dataFile.print(now.second(), DEC),dataFile.print(","); dataFile.print(CH1),dataFile.print(","),dataFile.println(CH2); dataFile.close(); // print to the serial port too: // Serial.println(CH1); } // if the file isn't open, pop up an error: else { Serial.println("error opening datalog.txt"); } } Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 103 ANEXO 2: Planos: Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 104 1. Esquema Eléctrico. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 105 2. Placa de circuito impreso cara top. Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 112 Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 113 Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 114 Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 115 Proyecto final de carrera Tarjeta de adquisición de datos S-LOGGER Página 116