scieee AI-readable full text Open interactive document viewer

Puesta a punto de un sistema de bajo coste para medir vibraciones estructurales

Monsalvete Contreras, Paloma

Abstract

En este trabajo se ha desarrollado un sistema de medición de vibraciones estructurales de bajo coste. Para ello se ha utilizado una placa de Arduino UNO, junto con una IMU compuesta por tres acelerómetros y tres giróscopos. Para que la monitorización se realice de forma inalámbrica, se ha añadido un módulo de radiofrecuencia, junto con un Arduino adicional y su correspondiente módulo de radiofrecuencia, que harán las veces de receptor. Para comprobar la validez de dicho sistema completo, se realizaron mediciones a distintas frecuencias y amplitudes en el laboratorio del Departamento de Estructuras de la Universidad de Sevilla. Estas medidas se compararon con las tomadas por un acelerómetro de piezoeléctrico colocado sobre la misma superficie. Respecto al postprocesado de datos, se ha hecho mediante código utilizando MATLAB, tanto en el caso del sistema de bajo coste como en el caso del sistema de piezoeléctrico. Es utilizando dicho software con el que se han conseguido además las gráficas aquí incluidas.

Full text

Proyecto Fin de Carrera Ingeniería de Telecomunicación Formato de Publicación de la Escuela Técnica Superior de Ingeniería Autor: F. Javier Payán Somet Tutor: Juan José Murillo Fuentes Dep. Teoría de la Señal y Comunicaciones Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2013 Trabajo Fin de Grado Grado en Ingeniería Aeroespacial Puesta a punto de un sistema de bajo coste para medir vibraciones estructurales Autor: Paloma Monsalvete Contreras Tutor: Pedro Galvín Barrera Dpto. Mecánica de Medios Continuos y Teoría de Estructuras Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2021 Trabajo Fin de Grado Grado en Ingeniería Aeroespacial Puesta a punto de un sistema de bajo coste para medir vibraciones estructurales Autor: Paloma Monsalvete Contreras Tutor: Pedro Galvín Barrera Catedrático de la Universidad de Sevilla Dpto. Mecánica de Medios Continuos y Teoría de Estructuras Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2021 Trabajo Fin de Grado: Puesta a punto de un sistema de bajo coste para medir vibraciones estructurales Autor: Paloma Monsalvete Contreras Tutor: Pedro Galvín Barrera El tribunal nombrado para juzgar el trabajo arriba indicado, compuesto por los siguientes profesores: Presidente: Vocal/es: Secretario: acuerdan otorgarle la calificación de: El Secretario del Tribunal Fecha: Agradecimientos A mi familia, a todas las personas que han hecho estos años un poco más sencillos. I Resumen En este trabajo se ha desarrollado un sistema de medición de vibraciones estructurales de bajo coste. Para ello se ha utilizado una placa de Arduino UNO, junto con una IMU compuesta por tres acelerómetros y tres giróscopos. Para que la monitorización se realice de forma inalámbrica, se ha añadido un módulo de radiofrecuencia, junto con un Arduino adicional y su correspondiente módulo de radiofrecuencia, que harán las veces de receptor. Para comprobar la validez de dicho sistema completo, se realizaron mediciones a distintas frecuencias y amplitudes en el laboratorio del Departamento de Estructuras de la Universidad de Sevilla. Estas medidas se compararon con las tomadas por un acelerómetro de piezoeléctrico colocado sobre la misma superficie. Respecto al postprocesado de datos, se ha hecho mediante código utilizando MATLAB, tanto en el caso del sistema de bajo coste como en el caso del sistema de piezoeléctrico. Es utilizando dicho software con el que se han conseguido además las gráficas aquí incluidas. III XÍndice 5.4 Resultados obtenidos 29 6 Conclusiones 37 6.1 Posibles desarrollos futuros 37 Apéndice A Códigos de Arduino 39 A.1 Código de calibración 39 A.2 Código transmisor 40 A.3 Código receptor 42 Apéndice B Código de MATLAB 43 Apéndice C Montaje detallado 45 Índice de Figuras 49 Índice de Tablas 51 Índice de Códigos 53 Bibliografía 55 Glosario 57 1 Introducción Es indispensable para el correcto desarrollo de una actividad ingenieril poner la seguridad del proyecto por encima de lo demás. Ya que si esto no fuese así, podrían producirse daños más allá de los materiales. No darle suficiente importancia a esto ha provocado diversas catástrofes a lo largo de los años. Es el caso del Hyatt Regency Hotel, en Kansas (Estados Unidos)[ 1 ], en el que dos pasarelas colgantes colapsaron debido a una sobrecarga de peso en las mismas. Esto se debió a un cambio en el diseño durante la construcción que no fue correctamente analizado y valorado, provocando así el que fue durante años el mayor accidente estructural de los Estados Unidos. Teniendo esto en cuenta, queda clara la importancia de realizar amplios estudios en las estructuras antes de su apertura al público para evitar desastres. Dentro de dichos estudios, es importante el estudio de las vibraciones de una estructura, ya que también pueden ser la causa de diversos desastres. Esto fue lo que ocurrió en el caso del Tacoma Narrows Bridge, situado en Tacoma, Estados Unidos. El puente estuvo apenas cuatro meses en uso, antes de colapsar. Ya durante la construcción del mismo se detectaron problemas de vibraciones cuando soplava viento, aunque este no fuera necesariamente intenso, que motivaron la realización de diversos estudios en túneles de viento. El fallo se debió en líneas generales a las vibraciones estructurales que aparecieron por flameo aeroelástico, aunque realmente fue un conjunto de situaciones desafortunadas siendo el flameo una de las principales [ 2 ]. Por tanto, es importante realizar estudios precisos y rigurosos sobre las vibraciones estructurales que pueden soportar, ya que estas pueden acabar siendo las causantes de un fallo en una estructura. Anteriormente, la falta de sistemas de precio asequible hacía necesario una gran inversión para (a) El puente de Tacoma durante su innauguración [ 3 ]. (b) El puente de Tacoma tras colapsar. 1 2Capítulo 1. Introducción Figura 1.1 Tipos de giróscopos respecto a su precio [5]. realizar estudios ingenieriles, debido al alto precio de los equipos necesarios para ello. Sin embargo, en los últimos años la oferta de sistemas electrónicos de bajo coste ha ido aumentando, por lo que a día de hoy pueden encontrarse una gran variedad de los mismos. En general, estos sistemas llevan aparejada una pérdida de calidad en su desarrollo respecto a los sistemas de mayor coste, aunque esta pérdida no siempre es significativa. Además, la tecnología sigue avanzando actualmente, creando cada vez sistemas más eficaces. Por tanto, puede decirse que los sistemas de bajo coste han recorrido un largo camino en su desarrollo hasta la actualidad. Un ejemplo de esto son los MEMS, sistemas de tamaño muy reducido que tienen en general bajo precio. Además, son sistemas precisos, rápidos y eficientes. Este tipo de sistemas han llegado a ser utilizados en aplicaciones profesionales como es el caso del vehículo espacial Soujourner, cuya misión en el año 1999 de casi tres meses de duración consistió en enviar datos sobre la superficie de Marte y cuyo diseño contaba con los giróscopos MEMS BEI GyroChip ([ 4 ]). Actualmente, el uso de sistemas micro-électro-mecánicos funciona como una parte fundamental de la filosofía More-Electric-Aircraft o Avión Más Eléctrico, que busca reducir el número de sistemas neumáticos y mecánicos de las aeronaves sustituyéndolos por sistemas eléctricos. Ejemplos del interés en los sistemas electrónicos de bajo coste aplicados a diversos campos de estudio se presentan a continuación.En [ 6 ], A. Villarroel, G. Zurita y R. Velarde desarrollaron un sistema para medir las vibraciones de una máquina rotativa utilizando una placa de circuitos integrados basada en microcontroladores junto con un acelerómetro de piezoeléctrico de bajo coste y que enviaba los datos remotamente a un servidor utilizando protocolos TCP, además de guardarlos en una memoria SD. También centrado en el análisis de máquinas está [ 7 ], en el que se utiliza una placa similar a Arduino utilizando los esquemáticos proporcionados de forma libre por la empresa, llamada Freeduino, con acelerómetros MEMS y un módulo de radiofrecuencia de la marca XBee. En [ 8 ] se describe un sistema de bajo coste en el que se utilizan de nuevo componentes MEMS para medir las vibraciones de un vehículo, en lugar de equipos de precio superior para comprobar la funcionalidad del sistema, lo cual tendría multitud de finalidades como el estudio del estado de las carreteras. También existen aplicaciones más centradas en análizar desastres naturales, por ejemplo, en [ 9 ] se 1.1 Objeto y motivación del trabajo 3 desarrolla un sistema de bajo coste que, mediante el uso de un sensor MEMS, sea capaz de detectar corrimientos de tierra de manera prematura, de forma que los daños producidos por estos fenómenos sean reducidos. En este último caso, se utiliza un microcontrolador, un sensor de vibración e impacto y un módulo WiFi para enviar los datos en tiempo real a largas distancias. En el campo del estudio de estructuras, como es el objeto de este trabajo, se encuentran diversos estudios similares. Una de ellas es el estudio de las vibraciones producidas en un puente, como es el caso de [ 10 ] en el que se estudian las vibraciones a las que se encuentra sometido un puente sobre el río Pisuerga en Valladolid, comparando los datos obtenidos por distintos acelerómetros MEMS en comparación con acelerómetros de piezoeléctrico convencionales. También se utilizan esos sistemas para estudiar y monitorizar estructuras y edificios históricos [11]. 1.1 Objeto y motivación del trabajo El objeto de este trabajo es diseñar un sistema de bajo coste, utilizando una placa de circuitos integrados basada en microcontroladores y una IMU basada en sistemas MEMS, que sea capaz de monitorizar y medir con suficiente precisión las vibraciones de una estructura. La placa elegida es el dispositivo Arduino UNO y la Unidad de Medidas Inerciales, el módulo MPU-6050. Ambos son sistemas muy utilizados y que cuentan con un precio muy reducido, respecto a lo que sería el equipo estándar. Además, se incluye en el equipo un módulo transceptor, el NRF24L01, cuya función será enviar los datos en tiempo real a otra placa que tenga conectado otro módulo del mismo tipo, de forma que estos se reciban en un ordenador durante los ensayos. La motivación que ha llevado a desarrollar el trabajo aquí presente es comprobar si es posible que un sistema de bajo coste como el que aquí se describe, cuente con las prestaciones necesarias para realizar dichos ensayos y conseguir los requisitos de precisión. Como se ha comentado anteriormente, los sistemas de bajo coste y los sistemas micro-electro-mecánicos han avanzado considerablemente desde que aparecieron en la industria, por lo que, considerando la diferencia de precio con los sistemas estándar, es natural comprobar la validez de dichos equipos en este campo de estudio. Además, existía un interés personal en profundizar en los sistemas de Arduino, tras haber realizado breves desarrollos a lo largo del grado. 1.2 Organización del trabajo El trabajo está dividido en distintas secciones. En la sección 2 se explican detalladamente los sistemas que se han utilizado en el desarrollo del mismo, tanto la placa de circuitos integrados como los módulos que se han conectado a ella. Además, se incluye una introducción sobre Arduino y sus distintos dispositivos. En la sección 3 se puede encontrar una descripción de los programas que han sido necesarios. Dentro de estos programas encontramos el IDE de Arduino, Putty, que ha sido utilizado como monitor serial para recibir los datos durante los ensayos, y MATLAB, que ha sido el programa elegido para realizar el análisis y procesado de los datos. Posteriormente, en la sección 4 se ha descrito paso a paso el desarrollo del proyecto y la puesta a punto de los equipos. También pueden encontrarse los diagramas de flujo de los códigos utilizados para programar los dispositivos. 4Capítulo 1. Introducción En el capítulo 5 se describen los ensayos realizados y los sistemas utilizados como referencia, en este caso, el acelerómetro de piezoeléctrico y su correspondiente software. En este mismo capítulo, se encuentra una sección (Sección 5.4), en la que se presentan los resultados obtenidos durante los ensayos realizados. Los resultados de cada ensayo se presentan en dos gráficas, una correspondiente al dominio del tiempo, y otra correspondiente al dominio de la frecuencia. Por último, en la sección 6 se desarrollan una serie de conclusiones a las que se ha llegado tras la realización de este trabajo y se presentan algunas líneas posibles de desarrollos futuros. Al final del trabajo se incluyen una serie de anexos. Primero, están descritos los códigos utilizados para programar las dos placas de Arduino utilizadas, escritos en lenguaje C, y los códigos de MATLAB correspondientes al análisis y procesado de los datos tras los ensayos. Finalmente, se incluye un anexo en el que se explica la puesta a punto del equipo de Arduino paso a paso. 2 Hardware utilizado 2.1 Arduino Arduino nace en el año 2005 en el Ivrea Interaction Design Institute, Ivrea (Italia) [ 12 ], gracias a la necesidad de los profesores universitarios de contar con un sistema de bajo coste para el desarrollo de sus proyectos . Hasta este momento, comprar placas de circuitos integrados basadas en microcontroladores conllevaba un gasto elevado, lo cual hacía difícil el desarrollo de distintos proyectos en la Universidad si no se contaba con un alto presupuesto. Desde ese momento, han aparecido distintas opciones dentro del sector de sistemas electrónicos de bajo coste, aunque Arduino sigue siendo una de las más utilizadas. Un Arduino es una placa hardware de circuito integrado que se programa mediante instrucciones de código para que realize lo que el usuario desea. Es de código abierto, lo que permite que cualquier usuario pueda programarla. En la placa se incluye todo lo necesario para poder ponerla a punto y la gran variedad de módulos y accesorios disponibles hacen que sea muy versátil y permita realizar una gran cantidad de proyectos. Tiene desde aplicaciones meramente académicas, como este trabajo y otros muchos como [ 13 ] y [ 14 ] que se pueden encontrar en el depósito de trabajos de la Universidad, hasta aplicaciones más cotidianas. Un ejemplo de esto último sería el uso que se hace de Arduino para domótica en los hogares.. Una de las grandes ventajas de Arduino es que, como ya se ha comentado, es un sistema de código abierto. Además, al estar su uso tan extendido, existen gran cantidad de foros y comunidades en las que los usuarios colaboran unos con otros en proyectos. De esta manera se crea una retroalimentación entre los distintos usuarios tratando de buscar soluciones a los problemas que se presentan. Existen gran cantidad de librerías con funciones ya creadas para distintos módulos que se encuentran en el mercado. Estas librerías son gratuitas y pueden ser tanto librerías oficiales de Arduino, como librerías escritas por otros usuarios que se encuentran en páginas web como GitHub Figura 2.1 Logo Arduino.CC. 5 6Capítulo 2. Hardware utilizado o GitLab. Dentro de Arduino, existen distintos modelos de placas. El más pequeño es el Arduino Nano Every, que cuenta con una superficie de, aproximadamente, 8.1 cm2 y es el más barato de la colección con un precio de 9 € en la web oficial. Por el otro lado, el modelo más grande es el Arduino MEGA, que tiene una superficie aproximada de 54.1 cm2 . Este último cuenta con un total de 54 pines digitales, 16 pines analógicos y 4 puertos seriales, lo cual implica que el aumento de tamaño conlleva un aumento de la capacidad de la placa. Además, la placa Arduino MEGA cuenta con un microcontrolador más potente, lo que hace que sea la óptima en el caso de proyectos grandes que necesiten una gran capacidad de procesamiento para funcionar. Teniendo todo esto en cuenta, no existe una placa de Arduino que sea esencialmente mejor que la otra, sino que esto dependerá de la función que se desee realizar y de una gran cantidad de elementos como el espacio disponible o el presupuesto. El modelo que se tratará en el trabajo aquí presente es Arduino UNO. Es el modelo más utilizado, sobretodo a nivel académico, ya que no siempre es necesario utilizar la placa más potente. En este caso, no se necesita un microcontrolador de gran capacidad, debido a que se conectará un número pequeño de módulos a cada placa (dos y uno, respectivamente) y no son módulos que necesiten demasiada potencia para funcionar correctamente. Por todo esto, el Arduino UNO es capaz de cumplir los requerimientos del proyecto. Este modelo puede comprarse por sí solo o bien como parte de packs de iniciación que incluyen una gran cantidad de elementos como diodos LED, resistencias, pantallas LCD, etc. para poder realizar distintos proyectos. Figura 2.2 Placa Arduino UNO. Características de Arduino UNO [12]: •Microcontrolador: ATMEGA328P. •Voltaje de funcionamiento: 5V. •Voltaje de entrada recomendado: 7-12V. • Cuenta con 6 pines analógicos, que funcionan únicamente como entradas. Estos vienen marcados en la placa desde A0 hasta A5. • Cuenta con 14 pines digitales de entrada/salida. Vienen numerados desde el 0 hasta el 13. Además, entre estos 14 pines, 6 de ellos pueden manejar señales PWM. Estos últimos vienen definidos con el símbolo ~ al lado de su correspondiente número. •Además de los pines ya comentados, dispone de un puerto USB A y un puerto jack. 2.1 Arduino 7 Figura 2.3 Diagrama de pines de la placa Arduino UNO. •Memoria Flash: 32 KB. •Memoria RAM: 2 kB •Memoria EEPROM: 1 kB •Reloj de cuarzo de 16 MHz. •Dimensiones: 68.6 mm x 53.4 mm. •Peso: 25 g. •Precio: 20€, en la página web de ArduinoCC. Además de ser un sistema de bajo coste, con un precio significantemente menor que los de otros sistemas similares, Arduino pone a disposición de los usuarios los esquemáticos de sus productos, para que el usuario tenga la posibilidad de crear su propia placa desde cero. Las placas Arduino pueden funcionar tanto conectadas a un ordenador mediante un cable de USB A a USB B, como de forma autónoma. Para esto último existen diversas opciones. Pueden utilizarse portapilas, baterías o transformadores que se conecten a la corriente eléctrica. Estos sistemas pueden ir conecctados o bien al puerto jack de la placa, al puerto USB A hembra, o al pin Vin utilizando cables de conexión de tipo macho. Existe además un modelo especial dentro del Arduino UNO, que es el Arduino UNO WiFi. Este tiene características muy similares al aquí explicado pero con mejores prestaciones. La principal diferencia reside en que esta placa cuenta con la posibilidad de conectarse a WiFi o Bluetooth sin necesidad de utilizar módulos adicionales para ello. Aun así, la placa tiene un precio más elevado que el modelo convencional. 8Capítulo 2. Hardware utilizado Tabla 2.1 Precisión del sensor MPU6050. Función Precisión Acelerómetro 2g,4g,8g y 16g Giróscopo 250,500,1000 y 2000º/s 2.2 MPU6050 El módulo MPU-6050 [ 15 ] es una IMU de seis grados de libertad. Cuenta, por tanto, con tres acelerómetros y tres giróscopos, de modo que nos permite medir tanto aceleraciones lineales como velocidades angulares. Es un sensor muy económico, lo que hace que sea uno de los más utilizados. El sensor viene montado en un módulo, de forma que se facilita su uso, haciendo más accesibles los pines desde el exterior. En el caso de este trabajo, sin embargo, va a utilizarse únicamente uno de los grados de libertad del acelerómetro, aunque es fácilmente extensible al resto. El giróscopo, sin embargo, no es necesario para este proyecto. Figura 2.4 Módulo MPU6050. La alimentación se realiza entre 2.4V y 3.6V. Aunque en este caso, una de las ventajas brindadas por el módulo GY-521 es que este incluye un regulador de tensión, de forma que puede alimentarse conectándolo al pin de 5V de la placa. El módulo cuenta con un diodo LED de color verde que se enciende para indicar que el este tiene corriente. Respecto a la precisión del sensor, esta puede modificarse según las necesidades del proyecto a realizar. Las precisiones disponibles pueden verse en la tabla 2.1. La precisión por defecto son 2g, aunque puede modificarse con líneas de código. En este proyecto seha mantenido a 2g, debido a que es la que mejor se adapta a las necesidades del mismo. Se comunica utilizando protocolos I2C, y soporta una velocidad de hasta 400Hz. Es por este motivo por el cual es necesario utilizar las librerías de comunicacion I2C [ 16 ] cuando se programe este módulo, como puede verse en el código correspondiente al anexo A.2. Dentro de la librería [ 17 ] del sensor, se encuentran una variedad de funciones. Las funciones utilizadas en el desarrollo de este trabajo se detallan a continuación: •initialize(): Permite inicializar el sensor. 2.3 Módulo NRF24L01 9 • testConection(): Devuelve 1 en caso de que la conexión se haya producido correctamente, y un 0 en caso contrario. • getAcceleration(ax,ay,az): Guarda en las variables ax, ay y az los valores de las aceleraciones. Es importante tener en cuenta que estos son valores "raw" y, por tanto, hay que pasarlos a Sistema Internacional. •getAccelerationX(ax): Guarda en la variable ax el valor de la aceleración sobre el eje X. •getAccelerationY(ay): Guarda en la variable ax el valor de la aceleración sobre el eje Y. •getAccelerationZ(az): Guarda en la variable ax el valor de la aceleración sobre el eje Z. •getXAccelOffset(): Devuelve el valor del offset sobre el eje X. •setXAccelOffset(axo): Establece el valor de axocomo offset sobre el eje X. •getYAccelOffset(): Devuelve el valor del offset sobre el eje Y. •setYAccelOffset(ayo): Establece el valor de ayocomo offset sobre el eje Y. •getZAccelOffset(): Devuelve el valor del offset sobre el eje Z. •setZAccelOffset(azo): Establece el valor de axocomo offset sobre el eje Z. Estas nos permiten obtener fácilmente los valores que están tomando las aceleraciones y los ángulos de giro, obtener los Offset que tiene el sensor programados o cambiar estos valores, entra otras muchas funciones. Esto último es importante, ya que en [ 18 ] se describe la importancia de que los sensores de un proyecto estén bien calibrados, y más aún, si se van a tratar valores pequeños, como es el caso de este trabajo. 2.2.1 Comunicación I2C La comunicación I2C fue introducida en el mercado en 1982. Es un protocolo de comunicación de información entre circuitos integrados. Una de sus grandes ventajas es que necesita solo dos señales y, por tanto, dos cables; uno para la señal de reloj (SCL) y otro para la señal de datos (SDA). El sistema utiliza una estructura Maestro-Esclavo. El dispositivo que trabaja como Maestro es el encargado de la señal de reloj, que es única para ambos equipos, de forma que es más sencillo que ambos se encuentren sincronizados. Además, es también el maestro el que inicia y detiene la comunicación entre ambos dispositivos. Por su parte, el dispositivo que trabaja como Esclavo es el encargado de proporcionar la información de interés. En este caso, el dispositivo maestro es el Arduino UNO, mientras que el esclavo en el sensor MPU-6050. 2.3 Módulo NRF24L01 Para enviar los datos en vivo desde la placa transmisora, colocada en la estructura que se desee medir, hasta la placa receptora, conectada al ordenador, se utilizará el módulo NRF24L01 [19]. Dicho módulo cuenta con un transceptor de radiofrecuencia , de forma que puede funcionar tanto de transmisor como de receptor y que trabaja entre 2400MHz y 2525MHz (divididos en 125 canales de 1MHz cada uno). Existen dos modelos similares de este mismo módulo. El modelo más básico, que es el utilizado en este proyecto, que se puede ver en la figura 2.5, y un módelo que cuenta con una antena externa, lo cual aumenta su alcance significativamente. En el caso del modelo básico, cuya antena 16 Capítulo 3. Software utilizado (a) (b) Figura 3.7 Configuración de Putty. Figura 3.8 Monitor serial de Putty. Putty es un programa que fue creado en 1997 por Simon Tathan, y que a día de hoy funciona gracias a su creador y a un equipo de voluntarios [ 21 ]. Es de código libre, igual que el caso del IDE, y puede descargarse gratuitamente de su página web. En el caso de este trabajo, se utilizó como monitor serial, guardando los datos recibidos en un archivo .dat en el directorio indicado. Para ello basta con configurarlo con las opciones que pueden verse en la figura 3.7. Al cerrar la ventana del monitor serial, el archivo queda guardado en la ruta indicada en la configuración. 3.3 MATLAB 17 Figura 3.9 Pantalla principal de MATLAB. 3.3 MATLAB Finalmente, para realizar el postprocesado de los datos, se utilizó MATLAB [ 22 ]. Este es un programa principalmente de cálculo númerico, aunque a día de hoy cuenta con un gran número de opciones y posibilidades. Es un programa no gratuito, es decir, se necesita una licencia de pago para que funcione. En este caso, se utilizó para leer los datos de los archivos correspondientes, analizarlos y, por último, realizar las representaciones gráficas que se encuentran en capítulos posteriores. Aunque en este trabajo no se ha utilizado, MATLAB permite la opción de programar Arduino y reconoce la placa cuando esta está conectada. Por tanto, habría sido otra opción en caso de no poder o no querer utilizar el IDE para programarla. 4 Realización del proyecto 4.1 Conexión de los dispositivos El esquema general del proyecto puede verse en la figura 4.1 . En dicha figura, la línea discontinua representa los datos de aceleración que se envían desde el Arduino transmisor hasta el Arduino receptor. Para conectar los módulos a las placas correspondientes se ha seguido el esquema de las Figura 4.1 Esquema de las conexiones del sistema.. tablas 4.1 y 4.2. El módulo MPU6050 queda conectado por tanto a los pines analógicos del Arduino, además de a su correspondiente alimentación y tierra. Para realizar estas conexiones existía la posibilidad de soldar los pines al módulo mediante un soldador de estaño o utilizar cables macho/macho, en las dos opciones el módulo quedaba conectado a una placa de pruebas o protoboard que, a su vez, se conectaba a la placa Arduino. Ambas opciones son similares así que, por simplicidad, se utilizaron cables. Además de estas conexiones es necesario mencionar la alimentación de las placas. El Arduino receptor queda alimentado por el ordenador, al estar conectado a este mediante USB, con un voltaje de 5 V. Para alimentar al Arduino transmisor, que tiene que funcionar sin una conexión al ordenador, ya que este se encontrará sobre la superficie sobre la que se desee medir; se valoraron distintas opciones como utilizar una batería como la de la imagen 4.2a o un transformador para conectarlo a la corriente eléctrica. Finalmente, se optó por esta última opción. 19 20 Capítulo 4. Realización del proyecto Tabla 4.1 Conexión del acelerómetro MPU6050 con Arduino. Sensor MPU6050 Arduino UNO Vcc 5V GND GND SCL A5 SDA A4 XOA Sin conectar XCL Sin conectar AD0 Sin conectar INT Sin conectar Tabla 4.2 Conexión del módulo NRF24L01 con Arduino. Módulo NRF24L01 Arduino UNO Vcc 3.3V GND GND CE D9 SCN D10 MOSI D11 MISO D12 SCK D13 IRQ Sin conectar 4.2 Programación de los dispositivos 4.2.1 Calibración del sensor El primer paso es calibrar el sensor. Esto es, tratar de que las medidas sean cero en el momento en el que la superficie no se encuentre vibrando. Para ello es importante colocar la placa sobre la superficie que se va a medir y no moverla hasta que la calibración haya terminado. Este paso es especialmente importante ya que se trabajará con valores de aceleración pequeños. Este código se ejecuta con la placa conectada al ordenador, sin necesidad de utilizar el módulo NRF24L01. Es por esto por lo que en el código se incluyen únicamente las librerías correspondientes al módulo MPU6050. Primeramente, se reciben del dispositivo los Offsets que en ese momento están guardados en el sensor. El código consiste en una serie de bucles iterativos consecutivos, de forma que finalizará en el momento en que todos los ejes estén ajustados. Para realizar el ajuste se modifican estos Offsets hasta que se consiga un valor nulo o cercano a cero en las aceleraciones de los ejes. El código está disponible en el anexo A.1 y su diagrama de flujo puede verse a continuación, en la figura 4.3. 4.2.2 Código del transmisor Para programar esta placa es necesario tener en cuenta que tiene dos funciones simultáneas. Por un lado, tiene que leer los datos del sensor de aceleración y, por otro, mediante el módulo de radiofrecuencia, enviar los datos hasta la placa que se encuentra conectada al ordenador. Para realizar estas funciones, se han utilizado las librerías correspondientes a ambos módulos, que aparecen en los 4.2 Programación de los dispositivos 21 (a) (b) Figura 4.2 Posibilidades valoradas para alimentar el Arduino en remoto. códigos descritos en los anexos. Cabe destacar la importancia de pasar los datos a Sistema Internacional. El sensor cuenta con una resolución de 16 bits, por tanto, los valores en bruto de sus medidas serán desde -32768 hasta 32767. Será necesario entonces escalar los valores mediante el uso de factores de conversión. Para ello es necesario recordar que la precisión del sensor puede tomar distintos valores, que son 2g, 4g, 8g y 16g. Utilizando la fórmula 4.1 se obtienen los valores en Sistema Internacional. Si se desean obtener las medidas en g(un g equivale a 9.81 m/s2 ), en vez de utilizar la fórmula anterior, se utilizará la fórmula 4.2. En el código en cuestión se ha utilizado únicamente el valor de la aceleración en el eje Z, ya que el acelerómetro de piezoeléctrico con el que se comparan los valores es un acelerómetro de un solo eje, al contrario que el MPU-6050, que puede obtener las medidas de tres ejes. El código completo puede verse en el apéndice A.2. Por su parte, el diagrama de flujo de dicho código queda definido en la figura 4.4. accSI =2×9.81 32768 (4.1) accg=2 32768 (4.2) 22 Capítulo 4. Realización del proyecto Figura 4.3 Diagrama de flujo de la calibración. 4.2 Programación de los dispositivos 23 Figura 4.4 Diagrama de flujo de la placa transmisora. 24 Capítulo 4. Realización del proyecto 4.2.3 Código del receptor Este caso es más sencillo que el anterior, ya que la placa receptora solo se encuentra conectada al módulo de radiofrecuencia y su única función es recibir los datos y mostrarlos por puerto serie. Puede verse el diagrama de flujo correspondiente en la figura 4.5 Al tener conectado un único módulo a la placa, solo son necesarias las librerías que aseguren un comportamiento correcto del NRF24L01. Una vez hecho esto y tras configurar los pines del módulo, se comprueba si el dispositivio transmisor está disponible y, en caso de que la respuesta sea afirmativa, comienza a recibir los datos. Es importante tener en cuenta que el valor de la variable "pipe" debe ser mismo en el código de transmisión y en el código de recepción de los datos, ya que esta variable indica el canal por el que se comunican los módulos entre sí. Para más detalles del código, este se puede encontrar en el apéndice A.3. 4.2.4 Código de postprocesado Este código corresponde a MATLAB, y es el responsable de procesar los datos una vez han sido tomados. Tal y como vemos en la figura 4.6, el programa recibe los datos tomados con el Arduino en un archivo .dat, y los datos tomados con el acelerómetro de piezoeléctrico en un archivo .mat, que contiene las variables de aceleración y tiempo. El tiempo correspondiente a los datos del sistema de bajo coste se establece utilizando el periodo de muestreo utilizado en el ensayo. Posteriormente, el código filtra los datos utilizando un filtro de Chebyshev de tipo uno para reducir el valor del ruido de baja frecuencia. Además, se utiliza la FFT para representar también los datos de los ensayos pero en el dominio de la frecuencia, en lugar de en el tiempo. Finalmente, se representan los datos en ambos dominios gráficamente. 4.2 Programación de los dispositivos 25 Figura 4.5 Diagrama de flujo de la placa receptora. 32 Capítulo 5. Ensayos realizados 1 1.2 1.4 1.6 1.8 2 2.2 Tiempo [s] -0.3 -0.2 -0.1 0 0.1 0.2 0.3 Aceleración [m/s2] Dominio del tiempo Arduino Piezoeléctrico 0 10 20 30 40 50 60 70 80 90 100 Frecuencia [Hz] 10-5 10-4 10-3 10-2 10-1 100 Aceleración [m/s2/Hz] Dominio de la frecuencia Arduino Piezoeléctrico Figura 5.8 Ensayo con 30Hz de frecuencia y 100mV de amplitud. 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 Tiempo [s] -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 Aceleración [m/s2] Dominio del tiempo Arduino Piezoeléctrico 0 10 20 30 40 50 60 70 80 90 100 Frecuencia [Hz] 10-4 10-3 10-2 10-1 100 Aceleración [m/s2/Hz] Dominio de la frecuencia Arduino Piezoeléctrico Figura 5.9 Ensayo con 30Hz de frecuencia y 200mV de amplitud. 5.4 Resultados obtenidos 33 1.1 1.2 1.3 1.4 1.5 1.6 Tiempo [s] -0.1 -0.05 0 0.05 0.1 0.15 0.2 Aceleración [m/s2] Dominio del tiempo Arduino Piezoeléctrico 0 10 20 30 40 50 60 70 80 90 100 Frecuencia [Hz] 10-5 10-4 10-3 10-2 10-1 100 Aceleración [m/s2/Hz] Dominio de la frecuencia Arduino Piezoeléctrico Figura 5.10 Ensayo con 40Hz de frecuencia y 100mV de amplitud. 1 1.1 1.2 1.3 1.4 1.5 Tiempo [s] -0.3 -0.2 -0.1 0 0.1 0.2 0.3 Aceleración [m/s2] Dominio del tiempo Arduino Piezoeléctrico 0 10 20 30 40 50 60 70 80 90 100 Frecuencia [Hz] 10-4 10-3 10-2 10-1 100 Aceleración [m/s2/Hz] Dominio de la frecuencia Arduino Piezoeléctrico Figura 5.11 Ensayo con 40Hz de frecuencia y 200mV de amplitud. 34 Capítulo 5. Ensayos realizados 0.9 0.95 1 1.05 1.1 1.15 1.2 1.25 1.3 1.35 1.4 Tiempo [s] -0.15 -0.1 -0.05 0 0.05 0.1 Aceleración [m/s2] Dominio del tiempo Arduino Piezoeléctrico 0 10 20 30 40 50 60 70 80 90 100 Frecuencia [Hz] 10-5 10-4 10-3 10-2 10-1 100 Aceleración [m/s2/Hz] Dominio de la frecuencia Arduino Piezoeléctrico Figura 5.12 Ensayo con 50Hz de frecuencia y 100mV de amplitud. 0.9 0.95 1 1.05 1.1 1.15 1.2 1.25 Tiempo [s] -0.25 -0.2 -0.15 -0.1 -0.05 0 0.05 0.1 0.15 0.2 0.25 Aceleración [m/s2] Dominio del tiempo Arduino Piezoeléctrico 0 10 20 30 40 50 60 70 80 90 100 Frecuencia [Hz] 10-5 10-4 10-3 10-2 10-1 100 Aceleración [m/s2/Hz] Dominio de la frecuencia Arduino Piezoeléctrico Figura 5.13 Ensayo con 50Hz de frecuencia y 200mV de amplitud. 5.4 Resultados obtenidos 35 2 4 6 8 10 12 Tiempo [s] -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 Aceleración [m/s2] Dominio del tiempo Arduino Piezoeléctrico 0 10 20 30 40 50 60 70 80 90 100 Frecuencia [Hz] 10-5 10-4 10-3 10-2 10-1 100 Aceleración [m/s2/Hz] Dominio de la frecuencia Arduino Piezoeléctrico Figura 5.14 Ensayo con excitación Burst random y 100mV de amplitud. 1 2 3 4 5 6 7 8 9 10 11 Tiempo [s] -2 -1.5 -1 -0.5 0 0.5 1 1.5 Aceleración [m/s2] Dominio del tiempo Arduino Piezoeléctrico 0 10 20 30 40 50 60 70 80 90 100 Frecuencia [Hz] 10-5 10-4 10-3 10-2 10-1 100 101 Aceleración [m/s2/Hz] Dominio de la frecuencia Arduino Piezoeléctrico Figura 5.15 Ensayo con excitación Burst random y 200mV de amplitud. 6 Conclusiones Los resultados obtenidos en este trabajo demuestran que el desarrollo de un sistema de bajo coste para medir vibraciones es posible y realizable. Ahora bien, es necesario tener en cuenta para ello que los sistemas tienen limitaciones importantes. Una de las grandes limitaciones es que el sensor aquí utilizado tiene una precisión inferior al sistema de piezoeléctrico. Si esta reducción de la calidad de las medidas frente al precio del mismo es aceptable o no, dependerá en general de la aplicación que vaya a hacerse del mismo. Si el sistema se desarrolla para realizar análisis a grandes rasgos de una estructura, sí es un sistema útil que cumple su función. En el caso de que el sistema pretenda utilizarse en aplicaciones que necesiten un grado muy fino de ajuste, existirían riesgos que habría que valorar. Dentro de las limitaciones comentadas, sin embargo, algunas tienen solución sencilla. Una de las limitaciones es que, al enviar los datos por radiofrecuencia en tiempo real existe un rango máximo de distancia en el que esto es posible, lo cual dependerá del alcance de los transceptores. Por tanto, siempre habrá que mantener el Arduino receptor dentro de este rango, o se perderá la conexión. Una solución a esto sería sustituir el envío de datos por el guardado de los mismos en una memoria utilizando un módulo para tarjetas SD o microSD, o realizar ambas funciones simultáneamente de forma que, en caso de que no se encuentre dentro del rango de los módulos de radiofrecuencia, los datos queden guardados en la tarjeta SD a modo de respaldo. Otra solución sería utilizar módulos con un alcance mayor, como es el caso de la otra versión disponible de los módulos NRF24L01 aquí utilizados, o sustituirlos por otras tecnologías. Aun así, no todo son desventajas. El pequeño tamaño de los dispositivos de bajo coste utilizados en este trabajo le confieren una gran capacidad de transporte y portabilidad. En este caso se optó por una fuente de alimentación, ya que los ensayos se han probado dentro del laboratorio. Sin embargo, es importante tener en cuenta que si el ensayo se va a realizar en una estructura real que se encuentre en el exterior, será necesario utilizar una batería u otro sistema de alimentación autónomo. Además, en caso de que se busque una monitorización a largo plazo, el sistema de alimentación debe asegurar el funcionamiento durante todo el proceso. 6.1 Posibles desarrollos futuros En este trabajo se optó por el módulo MPU-6050, que es muy económico, sin embargo sería interesante realizar un estudio con acelerómetros de mejor calidad, tratando de ver si los resultados son más exactos. Otra opción sería comparar los resultados aquí presentados con los resultados obtenidos utilizando un sensor de vibraciones de bajo coste (como por ejemplo, el módulo SW420 o el módulo 801S). 37 38 Capítulo 6. Conclusiones Como se ha comentado anteriormente, sería una buena línea de trabajo incluir en el montaje un módulo para tarjetas de memoria, o bien como respaldo o bien como sistemas principal de guardado de datos. En este trabajo se ha utilizado MATLAB para realizar el procesado de los datos obtenidos en los ensayos. Esto ha sido posible debido a que la Universidad dispone de licencias de dicho programa. Sin embargo, si no se dispusiera de estas licencias se complicaría el desarrollo del mismo. Por tanto, sería interesante realizar una aplicación que permita el análisis de los datos sin utilizar un software que necesite licencia. Además, también existe la posibilidad de realizar desde cero la placa de circuitos integrados. De esta forma, utilizando un software de diseño de placas (por ejemplo, Eagle) y soldando los componentes necesarios a ella, se podría reducir el espacio necesario para el sistema. Entre las ventajas de esto se encuentra que se podría prescindir de la placa de pruebas o protoboard, no serían necesarios los cables que conectan los pines y, por tanto, se elimina la posibilidad de un fallo por una mala conexión o un mal funcionamiento de los mismos. Apéndice A Códigos de Arduino A.1 Código de calibración 0// Librer ías #include "I2Cdev.h" 2#include "MPU6050.h" #include "Wire.h" 4 const int dir = 0x68; 6// Si el pin A0 está a 1, dir = 0x69 MPU6050 sensor(dir); 8 // Se crean las variables de las aceleraciones en los ejes 10 int ax, ay, az; int ax_o, ay_o, az_o; 12 void setup () { 14 Serial .begin(57600); Wire.begin() ; 16 sensor . initialize () ; if (sensor . testConnection () ){ 18 Serial . println ("El sensor se ha iniciado correctamente , va a comenzar la calibraci ón."); Serial . println ("Por favor , mantenga el sensor horizontal y no lo mueva"); 20 } else{ 22 Serial . println (" Inicializaci ón fallida . Por favor , vuelta a intentarlo "); } 24 sensor . getAcceleration (&ax,&ay,&az); ax_o = sensor .getXAccelOffset () ; 26 ay_o = sensor . getYAccelOffset () ; az_o = sensor . getZAccelOffset () ; 28 } 30 void loop() { sensor . getAcceleration (&ax,&ay,&az); 32 delay(30000); if ((abs(ax<0.5)) && (abs(ay<0.5)) && (abs(az<0.5))) { 34 Serial . println ("Los Offset necesarios son:"); Serial . println (ax_o); 36 Serial . println (ay_o); Serial . println (az_o); 38 delay(12000000); } 39 40 Capítulo A. Códigos de Arduino 40 else { Serial . print ("hola"); 42 // Bucle para el Offset en el eje X if (ax>0.02) { 44 ax_o −−; Serial . println (ax_o); 46 } else if (ax<0.02){ 48 ax_o ++; Serial . println (ax_o); 50 } sensor . setXAccelOffset(ax_o); 52 // Bucle para el Offset en el eje Y 54 if (ay>0.02) { ay_o −−; 56 } else if (ay<0.02){ 58 ay_o ++; } 60 sensor . setYAccelOffset (ay_o); 62 // Bucle para el Offset en el eje Z if (az>0.02) { 64 az_o −−; } 66 else if (az<0.02){ az_o ++; 68 } sensor . setZAccelOffset (az_o); 70 } } Código A.1 Calibración del sensor MPU6050. A.2 Código transmisor 0 // Librer ías necesarias para el funcionamiento del MPU6050 2#include "I2Cdev.h" #include "MPU6050.h" 4#include "Wire.h" 6// Librer ías necesarias para el funcionamiento del NRF24L01 #include "nRF24L01.h" 8#include "RF24.h" #include "RF24_config.h" 10 #include "SPI.h" 12 14 // Configuración de NRF24L01 int CE = 9; // Pin CE del módulo 16 int SCN = 10; //Pin CSN del módulo RF24 radio (CE,SCN); 18 const uint64_t pipe = 0xE8E8F0F0E1LL; 20 // Configuración del sensor MPU6050 A.2 Código transmisor 41 const int dir = 0x68; 22 // En caso de colocar el pin A0 a 1, dir = 0x69 MPU6050 sensor(dir); 24 // Creación de las variables necesarias 26 float aceleracion [2]; int ax,ay,az; 28 float az_si ; // 30 32 // Es necesario usar factores de conversión para obtener las medidas en sistema internacional 34 const float factor_accel = 2∗9.81/32768; // Si lo queremos en g, 1g=9.81m/s2 36 // Se define el periodo necesario para la frecuencia de muestreo deseada 38 // En este caso la frecuencia de muestreo es 500Hz 40 int periodo = 2; // En millis unsigned long tiempo = 0; 42 44 void setup(void) { Serial .begin(115200); 46 Wire.begin() ; radio .begin() ; 48 radio .openWritingPipe(pipe) ; // Comienza a transmitir datos 50 sensor . initialize () ; if (sensor . testConnection () ){ 52 Serial . println ("El sensor se ha iniciado correctamente"); } 54 else { Serial . println (" Inicializaci ón fallida . Por favor , vuelta a intentarlo "); 56 } 58 // Introducir aquí los resultados obtenidos tras calibrar el sensor sensor . setXAccelOffset(−4790); 60 sensor . setYAccelOffset (979); sensor . setZAccelOffset (−297); 62 } 64 void loop(void) { 66 tiempo = millis () ; 68 sensor . getAcceleration (&ax , &ay , &az); // Se obtienen los datos del MPU6050 70 // Se convierten a Ssistema Internacional 72 aceleracion [1]= factor_accel ∗az; 74 radio . write(&aceleracion , sizeof aceleracion ); // Se envían los datos utilizando el módulo de radiofrecuencia 76 while ( millis () < tiempo + periodo) {} 78 } Código A.2 Código transmisor. 48 Capítulo C. Montaje detallado verde, se encuentra encendida. Si esto no ocurre, será necesario comprobar que la placa y el cable funcionan correctamente. En este paso, la placa receptora no interviene, de modo que se mantiene conectada al ordenador. Lo siguiente es abrir Putty y configurar el programa tal y como se ve en las figuras 3.7a y 3.7b. En el campo "Serial Line" se escribe el puerto al que está conectada la placa receptora, que puede consultarse utilizando IDE como se ha explicado anteriormente. De la misma forma, en "Speed" se escribe la velocidad a la que se ha configurado la comunicación por Puerto Serie en el código, que en este caso es 115200 baudios. En el menú izquierdo, se selecciona la opción "Logging" y se abre otro menú de opciones distinto al anterior. En "Session Logging" es necesario seleccionar la opción "All session output", para que se guarden en el archivo todos los datos recibidos. En "log file name", se indica la ruta en la que se desean guardar los datos, indicando al final de esta el nombre del archivo que se desee y, su extensión (en este caso, .dat). Al pulsar "Open", se abre el monitor serial, que es igual que el que puede verse en 3.8. Una vez la sesión haya comenzado, se recibirán los datos que irán apareciendo por pantalla y que se guardarán en el archivo deseado. Cuando la sesión se cierre, el archivo quedará guardado en la ruta que se ha indicado en la configuración. Una vez tomados los datos en todos los ensayos, basta con desconectar cada Arduino de su alimentación y de sus componentes. Para volver a programarlo con posterioridad no hay que realizar ninguna opción adicional, bastará con cargar el código que se desee en él. Índice de Figuras 1.1 Tipos de giróscopos respecto a su precio [5] 2 2.1 Logo Arduino.CC 5 2.2 Placa Arduino UNO 6 2.3 Diagrama de pines de la placa Arduino UNO 7 2.4 Módulo MPU6050 8 2.5 Módulo NRF24L01 10 2.6 Placa de pruebas 11 2.7 Conexiones en una placa de pruebas 12 3.1 IDE 13 3.2 Opciones disponibles en IDE 14 3.3 Documentación sobre las funciones disponibles en la web de Arduino 14 3.4 Librerías 14 3.5 Monitor serial del IDE 15 3.6 Serial Plotter del IDE de Arduino 15 3.7 Configuración de Putty 16 3.8 Monitor serial de Putty 16 3.9 Pantalla principal de MATLAB 17 4.1 Esquema de las conexiones del sistema. 19 4.2 Posibilidades valoradas para alimentar el Arduino en remoto 21 4.3 Diagrama de flujo de la calibración 22 4.4 Diagrama de flujo de la placa transmisora 23 4.5 Diagrama de flujo de la placa receptora 25 4.6 Diagrama de flujo del procesado de datos 26 5.1 Montaje del sistema de medida 28 5.2 Montaje del sistema receptor 28 5.3 Acelerómetro de piezoeléctrico 29 5.4 Montaje de los acelerómetros sobre el excitador 30 5.5 Ensayo con 10 Hz de frecuencia y 100 mV de amplitud 30 5.6 Ensayo con 20Hz de frecuencia y 100mV de amplitud 31 5.7 Ensayo con 20Hz de frecuencia y 200mV de amplitud 31 5.8 Ensayo con 30Hz de frecuencia y 100mV de amplitud 32 5.9 Ensayo con 30Hz de frecuencia y 200mV de amplitud 32 5.10 Ensayo con 40Hz de frecuencia y 100mV de amplitud 33 49 50 Índice de Figuras 5.11 Ensayo con 40Hz de frecuencia y 200mV de amplitud 33 5.12 Ensayo con 50Hz de frecuencia y 100mV de amplitud 34 5.13 Ensayo con 50Hz de frecuencia y 200mV de amplitud 34 5.14 Ensayo con excitación Burst random y 100mV de amplitud 35 5.15 Ensayo con excitación Burst random y 200mV de amplitud 35 C.1 Cables de conexión para Arduino 45 C.2 46 C.3 Esquema de conexión del transmisor 46 C.4 Esquema de conexión del receptor 47 C.5 Cambiar Puerto Serie 47 Índice de Tablas 2.1 Precisión del sensor MPU6050 8 2.2 Presupuesto aproximado del sistema 12 4.1 Conexión del acelerómetro MPU6050 con Arduino 20 4.2 Conexión del módulo NRF24L01 con Arduino 20 51 Índice de Códigos A.1 Calibración del sensor MPU6050 39 A.2 Código transmisor 40 A.3 Código receptor 42 B.1 Procesado de datos 43 53 Bibliografía [1] G. P. Luth, “Chronology and context of the hyatt regency collapse - chronology and context of the hyatt regency collapse by gregory p luth1 abstract this paper | course hero.” [2] R. Gaal, “November 7, 1940: Collapse of the tacoma narrows bridge,” [3] “Tacoma narrows bridge history.” [4] “A micromachined quartz angular rate sensor for automotive and advanced inertial applications | fierceelectronics.” [5] “Guía imu.” [6] A. Villarroel, G. Zurita, and R. Velarde, “Development of a low-cost vibration measurement system for industrial applications,” Machines, vol. 7, p. 12, 3 2019. [7] M. Y. Upadhye, P. B. Borole, and A. K. Sharma, “Real-time wireless vibration monitoring system using labview,” pp. 925–928, Institute of Electrical and Electronics Engineers Inc., 7 2015. [8] C. Chiculita and L. Frangu, “A low-cost car vibration acquisition system,” pp. 281–285, Institute of Electrical and Electronics Engineers Inc., 11 2015. [9] S. Biansoongnern, B. Plungkang, and S. Susuk, “Development of low cost vibration sensor network for early warning system of landslides,” vol. 89, pp. 417–420, Elsevier Ltd, 6 2016. [10] I. M. Díaz, A. Poncela, E. Carrera, F. Miglioretti, M. Petrolo, J. D. Sebastián, A. Escudero, R. Arnanz, I. M. Díaz, and A. Lorenzana, “A low-cost vibration monitoring system for a stressribbon footbridge plcs lab view project development of novel damping system for pedestrian structures (reves-p) view project jesús de sebastián cartif a low-cost vibration monitoring system for a stress-ribbon footbridge,” 2013. [11] C. A. A. Basto, “Study on possibilities for low-cost monitoring of historical structures.” [12] “Arduino.cc.” [13] F. V. Fernández, J. María, M. Núñez, and J. O. Granja, “Diseño y control de una prótesis de mano de bajo coste,” 2020. [14] J. Álvaro, F. Carrasco, and C. V. Venegas, “Estudio y diseño de un sistema interfaz cerebrocomputador de bajo coste con módulo arduino,” 2017. [15] “Datasheet mpu6000 and mpu6050,” 2013. 55 56 Bibliografía [16] “Librería i2c.” [17] “Librería mpu6050.” [18] Q. Sun, W. Wabinski, and T. Bruns, “Measurement science and technology high-precision and low-cost vibration generator for low-frequency calibration system related content investigation of primary vibration calibration at high frequencies using the homodyne quadrature sineapproximation method: problems and solutions,” 2018. [19] “Datasheet nrf24l01,” 2006. [20] “Librería nrf24l01.” [21] “Putty - a free ssh and telnet client for windows.” [22] “Matlab - el lenguaje del cálculo técnico - matlab simulink.” [23] “Características del acelerómetro de piezoeléctrico.” Glosario FFT Transformada Rápida de Fourier. 24 I2C Circuito Inter-Integrado. Protocolo de comunicación en serie.. 8 IDE Entorno de Desarrollo Integrado. 3, 13 IMU Unidad de Medidas Inerciales. III, V, 3 LCD Pantalla de cristal líquido. 6 Memoria EEPROM Memoria de solo lectura programable eléctricamente. 7 Memoria RAM Memoria de Acceso Aleatorio. 7 MEMS Sistemas Microelectromecánicos. 2, 3 Offset Valor que define el punto inicial respecto al que se toma una medida. 9 PWM Señal con modulación de pulso. 6 SD Secure Digital. 2, 37 SPI Serial Peripheral Interface. Estándar de comunicaciones utilizado en comunicación en corta distancia.. 10 SSH Secure Shell. 15 TCP Protocolo de Control de Transmisión. 2 TelNet Teletype Network. 15 57