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 Proyecto Fin de Máster Máster Universitario en Ingeniería en Electrónica, Robótica y Automática Desarrollo y Evaluación de una Manta de Presión con Sensores Piezorresistivos para Aplicaciones Médicas Autor: África Sánchez Vera Tutores: Joaquín Ojeda Granja Ezequiel Martín Sosa Dpto. de Ingeniería Mecánica y Fabricación Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2024
Proyecto Fin de Máster Máster Universitario en Ingeniería en Electrónica, Robótica y Automática Desarrollo y Evaluación de una Manta de Presión con Sensores Piezorresistivos para Aplicaciones Médicas Autor: África Sánchez Vera Tutores: Joaquín Ojeda Granja Profesor Titular de Universidad Ezequiel Martín Sosa Profesor Sustituto Interino Dpto. de Ingeniería Mecánica y Fabricación Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2024
Proyecto Fin de Máster: Desarrollo y Evaluación de una Manta de Presión con Sensores Piezorresistivos para Aplicaciones Médicas Autor: África Sánchez Vera Tutor: Joaquín Ojeda Granja 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:
Resumen E ste trabajo presenta el desarrollo y evaluación de una manta de presión basada en sensores piezorresistivos, diseñada para aplicaciones médicas. El objetivo principal es comparar la eficacia de dos tipos de sensores piezorresistivos, el Force Sensitive Resistor (FSR) y el Velostat, para determinar cuál ofrece mejores resultados en términos de precisión, coste y practicalidad de fabricación. La investigación incluye la caracterización detallada de ambos sensores mediante experimentos que evaluaron sus curvas características, respuesta ante escalón, histéresis, deriva y repetibilidad. Los datos obtenidos de estos experimentos fueron procesados y analizados utilizando MATLAB, proporcionando una base sólida para la comparación de los sensores. Los resultados indican que cada sensor tiene ventajas y desventajas específicas, dependiendo de las condiciones de uso. El FSR mostró una mayor precisión en la detección de cambios rápidos en la presión, mientras que el Velostat ofreció una mejor estabilidad a largo plazo. La manta de presión desarrollada se propone como una herramienta innovadora para la medición de la distribución de fuerza en aplicaciones médicas, con un enfoque futuro en su utilización para la rehabilitación de pacientes de accidentes cerebrovasculares. En conclusión, este estudio proporciona una evaluación exhaustiva de los sensores piezorresistivos y establece una base para futuras investigaciones y desarrollos en el campo de las aplicaciones médicas. Se sugieren mejoras tecnológicas y metodológicas para optimizar el rendimiento de la manta de presión y ampliar su aplicabilidad en el ámbito clínico. I
Abstract T his work presents the development and evaluation of a pressure mat based on piezoresistive sensors, designed for medical applications. The primary objective is to compare the effectiveness of two types of piezoresistive sensors, the Force Sensitive Resistor (FSR) and Velostat, to determine which offers better results in terms of accuracy, cost, and manufacturability. The research includes a detailed characterization of both sensors through experiments that evaluated their characteristic curve, step response, hysteresis, drift, and repeatability. The data obtained from these experiments were processed and analyzed using MATLAB, providing a solid foundation for sensor comparison. The results indicate that each sensor has specific advantages and disadvantages depending on the conditions of use. The FSR demonstrated greater accuracy in detecting rapid pressure changes, while the Velostat offered better long-term stability. The developed pressure mat is proposed as an innovative tool for measuring force distribution in medical applications, with a future focus on its use for the rehabilitation of stroke patients. In conclusion, this study provides a comprehensive evaluation of piezoresistive sensors and establishes a basis for future research and developments in the field of medical applications. Technological and methodological improvements are suggested to optimize the performance of the pressure mat and expand its applicability in the clinical setting. III
4Capítulo 1. Introducción Los sensores resistivos de fuerza o FSR (Force Resistive Sensor) no están pensados para sustituir a las galgas extensométricas o a las celdas de carga en diseños en los que se requiere una alta precisión absoluta. Sin embargo, los FSR ofrecen ventajas significativas con respecto a las celdas de carga en cuanto a su bajo perfil físico y su rentabilidad (sin necesidad de circuitos puente o amplificadores de instrumentación), en aplicaciones en las que son aceptables las mediciones de fuerza relativa o absoluta. Los FSR destacan, por ejemplo, en una amplia variedad de aplicaciones de tacto humano, en las que una variación del 10% en la fuerza absoluta es prácticamente imperceptible. Dadas las características del problema que se quiere abordar nos vamos a centrar en los sensores resistivos de fuerza, en el artículo de J. Cepriá-Bernal [ 2 ] estudian la fuerza ejercida por la mano derecha en 21 actividades de la vida cotidiana con 22 sujetos, empleando el guante de Tekscan, anteriormente nombrado (Tekscan Grip System), el cual está dividido en 18 zonas sensibles colocadas en las principales áreas que interfieren en el agarre de la mano, como se puede observar en la Figura 1.2. Figura 1.2 Tekscan Grip System. Una de las actividades que estudió es la que nos ocupa, beber de un vaso de agua con el sujeto sentado. Se reconoció una fuerza media en la mano de entre 0.3959 y 12.8256 N, en el área que se detectó mas fuerza fue 6.8N, la fuerza en un sensor se calculó multiplicando la presión del sensor por el área asociada a cada sensor en la matriz de sensores (16 mm2 ). Es por esta necesidad de un buen rango de medida de fuerza en cargas bajas que se selecciona los sensores resistivos para comenzar a diseñar un dispositivo de bajo coste para poder realizar medidas de fuerza y posicion de la mano al agarrar un vaso. 1.3 Sensor de Fuerza Resistivo Los sensores de fuerza resistivos (FSR, del inglés Force Sensing Resistor) son dispositivos electrónicos empleados para medir la fuerza o presión aplicada a una superficie. Funcionan debido a la variación de la resistencia eléctrica de un material conductor cuando se aplica una fuerza o presión sobre él, mostrando un decrecimiento en su resistencia cuando incrementa la fuerza que se aplica a la superficie del sensor. Esta sensibilidad a la fuerza es optimizada y empleada en diferentes aplicaciones para el control al tacto o medición de fuerzas, tanto en aplicaciones industriales como en dispositivos médicos. Además, estos sensores son flexibles, ligeros, de bajo consumo y resistentes. Según la aplicación para la cuál se quieran emplear, existen diferentes formas y tamaños de sensores resistivos (rectangulares, cuadrados y redondos), algunos ejemplos se muestran en la Figura 1.3. 1.3.1 Configuraciones Los FSRs pueden ser agrupados de 3 formas distintas: •Un único sensor, como los ejemplos que se han presentado con dos terminales en la Figura 1.3. • Una matriz discreta es una unión de los sensores anteriores, impresos juntos en un único sustrato. Pueden seguir patrones personalizados y múltiples combinaciones. Los dos terminales de cada sensor
1.3 Sensor de Fuerza Resistivo 5 Figura 1.3 Diferentes tamaños y formas de sensores FSR, ©Flexkys. de la matriz pueden conectarse individualmente, o conectarse todos juntos a una traza en común a un extremo para reducir los conectores. Ejemplo en la Figura 1.4. Figura 1.4 Matriz discreta FSR. • En una matriz (no discreta), hay un sensor por cada intersección de columna y fila, no son sensores individuales como en el caso anterior. Por ello, se requiere una electrónica que multiplexe entre todas las filas y columnas para obtener una lectura de la matriz. Se puede observar un ejemplo en la siguiente Figura 1.5.
6Capítulo 1. Introducción Figura 1.5 MatrixArray FSR. 1.3.2 Velostat Es posible la creación de sensores resistivos a medida, gracias a la existencia de materiales como el Velostat. Este es un material conductivo sensible a la presión, ideal para la creación de sensores flexibles, sensores de impacto e interfaces táctiles, Figura 1.6. Es un polímero impregnado con partículas conductoras, lo que le permite cambiar su resistencia cuando se aplica presión o se deforma. Este material flexible puede ser cortado y moldeado fácilmente, lo que lo hace versátil para diversas aplicaciones. Un simple divisor de resistencia puede medir la deformación en el material, lo que puede ser útil para monitorizar el movimientos en los que se ejerza presión. [16] Para construir sensores de Velostat, se necesitan dos electrodos en contacto con el material, idealmente flexibles para mantener la flexibilidad general del sensor. La configuración más simple consiste en una tira de Velostat entre dos piezas de lámina de cobre, permitiendo medir tanto presión como flexión. En aplicaciones donde se desea evitar la flexión, como en dispositivos portátiles, se deben mantener los sensores de presión lo más pequeños posible. Una hoja de Velostat también se puede usar para localizar presión aplicada organizando los electrodos en una estructura de rejilla. La resistencia entre los electrodos superiores e inferiores es proporcional a la presión en su punto de intersección, proporcionando un mapeo en tiempo real de la presión aplicada. Figura 1.6 Imagen de Velostat a la derecha, esquema de funcionamiento a la izquierda. [12].
1.4 Objetivos 7 1.4 Objetivos El objetivo principal de este proyecto es desarrollar y evaluar una manta de presión utilizando sensores piezorresistivos. Específicamente se van a estudiar la viabilidad de dos opciones para fabricar un vaso instrumentado para aplicaciones médicas, una opción sería empleando sensores resistivos de fuerza (FSR) y otra empleando el Velostat. Para alcanzar este objetivo general, se plantean los siguientes objetivos específicos: 1. Caracterización de sensores: • Realizar una caracterización detallada de los sensores FSR y Velostat mediante la medición de sus curvas características, respuesta ante escalón, histéresis, deriva y repetibilidad. • Comparar el rendimiento de ambos sensores en términos de precisión, sensibilidad, estabilidad y tiempo de respuesta. 2. Desarrollo de un prototipo funcional: •Diseñar y construir un prototipo de manta de presión que integre los sensores seleccionados. • Implementar un sistema de adquisición de datos para la recolección y procesamiento de las señales generadas por los sensores. 3. Evaluación del prototipo: •Realizar pruebas experimentales para evaluar el funcionamiento del prototipo. • Analizar los datos obtenidos para verificar la precisión y confiabilidad del sistema en la medición de la distribución de fuerzas. •Identificar posibles limitaciones y errores en el diseño del prototipo.
2 Metodología E n este capítulo se presentan los planteamientos de soluciones para el problema que nos ocupa. Además se muestran las características de los FSR, en específico del FSR402, las características del material Velostat, los conexionados disponibles para la correcta interpretación de estos sensores, como se realizan su caracterización y la programación tras la lectura de estos sensores. 2.1 Planteamiento solución Se plantean soluciones con las premisas concluidas del estado del arte, dado que soluciones que tienen el dispositivo sensorizado y no la mano del paciente, son mas fácilmente empleados con distintos pacientes sin necesidad de adaptarlo según la mano del paciente. Con ello se plantean estas dos opciones para sensorizar un objeto cilíndrico. 2.1.1 Opción 1 En la primera opción, el dispositivo se compondrá de un cilindro con las dimensiones similares a una lata de refresco, basándonos en que estas latas tienen un estudio de su forma para su buen agarre y su semejanza con un vaso de agua. Este cilindro estará recubierto de sensores de fuerza resistivos que nos proporcionaran la información deseada. Realizando una búsqueda de los disponibles en el mercado y sus tamaños, a priori lo más sensato sería recubrir el cilindro con FSR cuadrados o rectangulares dejando las menores zonas posibles del cilindro sin sensorizar. Pero las dimensiones de estos sensores cuadrados y rectangulares son demasiado grandes para poder tener una diferenciación correcta entre la fuerza ejercida por diferentes zonas de la mano. Ya que el sensor proporciona una media de la fuerza total que se ejerce sobre él sin ningún tipo de discretización en este. Figura 2.1 Esquema de prototipo 1 cilíndrico realizado con Fusion. 9
10 Capítulo 2. Metodología Por tanto, para conseguir una mayor discretización en las fuerzas ejercidas por la mano alrededor del cilindro se opta por sensores FSR mas pequeños, que tengan alrededor del cm2 de área de detección, con esta restricción solo se encuentran FSR de forma redonda. Se seleccionó el FSR402 que tiene un rango de medida de 0 a 10 N. Suficiente para cubrir 1 cm2 de fuerza ejercida por la mano agarrando un vaso. Para el diseño con las dimensiones dadas se necesitarían 78 sensores FSR. Se diseña el cilindro como un prisma de 13 caras, para que el sensor se apoye en una superficie plana, ya que son muy sensibles a cómo apoyes sobre él. El resultado se muestra en la Figura 2.1. 2.1.2 Opción 2 En la segunda opción, para el estudio de la distribución de la fuerza en el agarre de un objeto cilíndrico, se desarrolla una matriz pizorresistiva basada en el material Velostat para convertir la presión en una señal eléctrica, como se muestra en la Figura 2.2. Primero, se realiza una caracterización de los sensores de presión basados en Velostat en función del tamaño, material de soporte y tendencia de presión. La realización y testeo de de una matriz sensorizada piezorresistiva de bajo coste basado en una estructura en sandwich es discutida. Este último, tiene una interfaz con un acondicionamiento de baja potencia y procesamiento basado en Arduino y un multiplexor analógico para adquirir los datos de presión. Figura 2.2 Esquema de prototipo 2 cilíndrico realizado con Fusion. 2.2 Características FSR Para el planteamiento de solución de la Opción 1, se estudia con más profundidad las características más destacables de un FSR, las cuáles hay que tener en cuenta para su integración en el proyecto: 1. Curva Característica de Resistencia vs. Fuerza: • La característica más destacada de los FSR es su curva de resistencia frente a la fuerza aplicada. Esta curva varía según el modelo del sensor y puede aproximarse mediante una función, generalmente como y=ax−b, como se puede observar en la gráfica de la Figura 2.3. • La forma de la curva está determinada por la geometría del sensor y la composición de su elemento conductor durante la fabricación. 2. Precisión y Limitaciones • La precisión de la relación entre la fuerza y la resistencia puede variar según el modelo de FSR, pero generalmente se encuentra en un rango de +/- 10%. Esta precisión puede verse afectada por factores como el montaje y el accionamiento. • Los FSR son adecuados para aplicaciones de mapeo de fuerza en las que la distribución de la fuerza es variable pero la fuerza absoluta no es crítica. 3. Histéresis de Carga: • La histéresis de carga se refiere al efecto en la resistencia de un FSR debido a las fuerzas previamente aplicadas.
2.3 Composición y construcción de los Sensores FSR 11 Figura 2.3 Resistencia frente a la fuerza aplicada en el FSR. • Puede ser caracterizada y compensada mediante algoritmos de software, aunque limitar la magnitud y la duración de la carga suele ser suficiente para minimizar su impacto. 4. Deriva Térmica: • Los FSR son sensibles a las variaciones de temperatura ambiente. En general, su resistencia aumenta a medida que la temperatura se eleva. • La relación exacta entre la resistencia y la temperatura depende de la composición específica del FSR y debe ser tenida en cuenta en aplicaciones que requieran baja deriva. 5. Diferencia entre Fuerza y Presión • Es importante destacar que los FSR detectan la presión (fuerza por área), no la fuerza absoluta. Esto significa que la respuesta de un FSR puede variar según el área sobre la que se aplique la fuerza. • Para obtener mediciones precisas, es fundamental aplicar fuerzas de manera consistente y controlada, asegurando un accionamiento mecánico uniforme. 2.3 Composición y construcción de los Sensores FSR En cuanto a la composición fundamental de un sensor de fuerza resistivo, siempre implica un material resistivo, típicamente una película fina de material conductor como el carbono, polímeros conductores o nanopartículas de metal. Este material se coloca sobre una superficie plana y flexible que actúa como la superficie semiconductor del sensor. Cuando se aplica una fuerza o presión sobre esta superficie, se produce una deformación que afecta la disposición de las partículas conductoras en el material resistivo, lo que a su vez provoca una variación en la resistencia eléctrica. Cuanto mayor sea la fuerza aplicada, mayor será la deformación y, en consecuencia, mayor será el cambio en la resistencia eléctrica. Es decir, cuando no se aplica ninguna fuerza al sensor, la resistencia es alta, del orden de mega ohmios (M Ω ), y disminuye cuando se aplica fuerza, generalmente del orden de kilo ohmios (KΩ). Los sensores de fuerza resistivos (FSR) se construyen en dos modos principales: ShuntMode y ThruMode, ambos comparten dos capas y dos terminales, Figura 2.4, pero exhiben características de respuesta distintas. En la modalidad ShuntMode, la capa superior del FSR consta de un elemento semiconductor sólido depositado sobre un sustrato flexible. La capa inferior está formada por trazas conductoras dispuestas en dos conjuntos de dedos entrelazados sobre otro sustrato flexible. Cuando se aplica presión a ambas capas, el elemento semiconductor de la capa superior desvía las trazas de la capa inferior, lo que da lugar a una variación en la resistencia eléctrica a través de los terminales de salida. En diseños personalizados, las trazas conductoras pueden ubicarse directamente sobre una placa de circuito impreso, eliminando el sustrato inferior. Por otro lado, en el modo ThruMode, se coloca un elemento semiconductor FSR sólido sobre una región conductora sólida que cubre completamente el conductor, en lugar de utilizar dedos interdigitados. Ambas
12 Capítulo 2. Metodología Figura 2.4 Estructura de construcción de un FSR en Shunt y Thru Mode. capas, superior e inferior, son idénticas pero contrarias, se alinean y se fijan entre sí. En este caso, el conductor sólido de cada capa se conecta a un único terminal de salida, permitiendo que la corriente de excitación fluya de una capa a otra. Debido a que los sensores ThruMode emplean dos regiones semiconductoras para formar una unión FSR "elemento sobre elemento", su curva de respuesta es más pronunciada y menos lineal en comparación con los dispositivos ShuntMode. Además, es importante destacar que la separación entre las dos capas de un FSR se puede controlar utilizando espaciadores de diferentes grosores, como el adhesivo de doble cara 3M 467. La altura, el diámetro interior y el área abierta del espaciador, junto con el grosor de la película superior o deflectora, determinan la cantidad de fuerza requerida para que las dos superficies entren en contacto. 2.4 FSR402 El sensor resistivo finalmente seleccionado para la Opción 1 es el FSR402, este sensor es ampliamente empleado y muy accesible. Sus características principales son: •Rango de sensibilidad: 0.1N - 100N. •Rango de resistencia: >10MΩ(Circuito abierto) - 200Ω. •Repetibilidad de la fuerza :±6%. •Área activa: ∅1.27 cm. Sus dimensiones son las mostradas en la Figura 2.5. Este sensor es construido con Shunt Mode, que se ha mostrado previamente. Esta forma de construcción nos interesa más ya que tiene una relación mas lineal de fuerza frente a resistencia que la que proporciona el Thru Mode. Para realizar la calibración del sensor se ha colocado un trozo de foam unido a una plataforma de plástico para colocar los diferentes pesos y de esta forma aumentar la repetibilidad de las mediciones y con ello la precisión de las mediciones, dado que como se ha visto en las características de los FSRs su resistencia varía según la superficie que les presione aunque sea la misma fuerza. Porque están midiendo la presión que es fuerza por el área, no solo la fuerza.
2.5 Características Velostat 13 Figura 2.5 Dimensiones FSR402. 2.5 Características Velostat Por otra parte, para la opción 2 se emplea Velostat. El Velostat es un material piezorresistivo, hecho de una película impregnada con partículas de carbono, se utiliza comúnmente para empaques antiestáticos de componentes electrónicos. Debido a su bajo costo (aproximadamente 24€por metro cuadrado) y su fácil disponibilidad, es una opción popular. Con unas especificaciones técnicas: •Dimensiones: 280 mm x 280 mm •Espesor: 0.1 mm •Peso: 18.66 g •Resistividad volumétrica: <500 ohm-cm •Resistividad superficial: <31,000 Ω/cm2 •Rango Tra operable: -45°C a 65°C Su viscoelasticidad puede limitar la precisión en ciertas mediciones, especialmente en aplicaciones que requieren alta consistencia y precisión, pero su capacidad para detectar flexión, estiramiento y presión simultáneamente ofrece una versatilidad notable. Ideal para prototipos, el Velostat permite experimentar con sensores de presión y movimiento de bajo costo y fácil implementación. [ 10 ] Sus propiedades eléctricas cambian significativamente al deformarse, ofreciendo oportunidades para crear sensores personalizados como cilindros o bolsas, y es particularmente útil en guantes sensores para reconocer gestos de los dedos mediante la variación de resistencia causada por la flexión del material. Aunque tiene limitaciones en precisión y consistencia, el Velostat es valioso para aplicaciones que requieren detección multifuncional y flexibilidad en el diseño del sensor. [15] 2.6 Tipos de conexionado Por sí solos, los sensores piezorresistivos no proporcionan una salida que se correlacione con una lectura de fuerza, pero se puede correlacionar con la fuerza aplicada mediante un procedimiento de calibración. Para que de este modo pueda detectar y medir el cambio relativo de la fuerza o carga aplicada. Para ello, existen diferentes configuraciones para obtener la equivalencia de la variación de la resistencia según la fuerza aplicada. Como se ha comentado, los FSR y la manta de presión son sensores piezorresistivos, es decir, son elementos pasivos que funcionan como una resistencia variable en un circuito eléctrico. Por tanto, en los circuitos eléctricos los veremos representados como resistencias variables. 2.6.1 Divisor de tensión El circuito más sencillo para medir la fuerza aplicada en el sensor piezorresistivo sería con una resistencia pull-down y Arduino, Figura 2.6. Así se obtiene una tensión variable a la salida que es leída por una entrada
20 Capítulo 2. Metodología Figura 2.14 Montaje para caracterizar el Velostat.. Figura 2.15 Montaje para caracterizar el FSR, (a) Vista superior, FSR fijo a la plataforma de la balanza. (b) Vista lateral, con el apoyo del peso sobre la almohadilla del FSR.. 2.7.2 Balanza La balanza empleada se crea a partir de una célula de carga, que es esencialmente un sensor de peso. Este dispositivo convierte la fuerza o el peso en una señal eléctrica mediante la detección de pequeñas deformaciones en una barra metálica debido a la aplicación de una carga. Estas deformaciones son medidas utilizando galgas extensiométricas integradas en la célula de carga, formando un puente de Wheatstone. Cuando se aplica una carga, la barra se deforma ligeramente, y esta deformación se traduce en una variación de resistencia eléctrica, que a su vez genera una señal de voltaje. Para crear una balanza digital precisa y eficiente, la célula de carga se combina con un convertidor A/D como el HX711 y un microcontrolador como Arduino. El HX711, con su alta resolución de 24 bits, permite detectar variaciones extremadamente pequeñas en la deformación de la célula de carga, garantizando mediciones precisas. Esta precisión y capacidad para medir pequeñas variaciones en el peso hacen que las células de carga sean ideales para una amplia gama de aplicaciones, desde balanzas comerciales hasta sistemas industriales de pesaje, donde la exactitud es crucial. La balanza empleada es creada a partir de una célula de carga, que es esencialmente un sensor de peso
2.7 Caracterización 21 combinado con un convertidor A/D como el HX711 y un microcontrolador como Arduino, permite crear una balanza digital precisa y eficiente. Los componentes necesarios para hacer funcionar esta balanza serían: •Célula de carga •Plataforma de balanza •Arduino UNO •Convertidor analógico-digital HX711 •Cables macho-hembra La célula de carga se fija en un extremo a una base sólida, como se puede observar en la Figura 2.16 (a), y en el otro extremo se coloca la plataforma de pesaje (b). Cuando se coloca un peso en la plataforma, la célula de carga se deforma ligeramente, y esta deformación es detectada por las galgas extensiométricas. Figura 2.16 Balanza, creada con célula de carga. (a) Vista superior. (b) Vista lateral. Por otra parte, la célula de carga se conecta al HX711, un convertidor analógico-digital de 24 bits que permite una alta precisión en la medición. Este dispositivo es fundamental porque su alta resolución supera la del convertidor A/D del Arduino, lo que permite detectar variaciones extremadamente pequeñas en la deformación de la célula de carga. Para leer los datos del HX711 y convertirlos en valores de peso utilizables, se emplea un código específico en el Arduino, garantizando así que la información obtenida sea precisa y fiable. Como se puede observa en la Figura 2.17, las conexiones del HX711 con la célula de carga son de los cables: Rojo (E+), Negro (E-), Verde (A-), Blanco (A+). Y con Arduino, Vcc, GND, SCK (a pin 2 de Arduino), DT (a pin 3 de Arduino). Por último, anotar que la calibración es crucial para obtener medidas precisas. Se requiere un peso conocido para ajustar la salida de la balanza, lo más próximo al peso máximo medible por la célula de carga. 2.7.3 Experimentos de caracterización Para la caracterización de estos sensores se realizan diferentes experimentos: • Curva Característica: muestra la relación entre la entrada aplicada (fuerza, presión, etc.) y la salida eléctrica (voltaje o corriente). Esta curva es crucial porque permite calibrar el sensor, establecer su rango de operación y determinar su linealidad y sensibilidad. Una curva lineal facilita la interpretación de los datos, mientras que una curva no lineal puede requerir correcciones adicionales en el procesamiento de la señal. • Escalón: consiste en aplicar una entrada abrupta y constante al sensor y observar su respuesta a lo largo del tiempo. Este experimento es importante porque ayuda a evaluar la velocidad de respuesta
22 Capítulo 2. Metodología Figura 2.17 Conexionado del ADC HX711 con la célula de carga y Arduino. y el comportamiento transitorio del sensor. La capacidad de un sensor para adaptarse rápidamente a cambios en la entrada es vital en aplicaciones que requieren monitoreo en tiempo real. • Histéresis: es el fenómeno donde la salida del sensor depende no solo del valor actual de la entrada, sino también del historial de entradas anteriores. Esto se traduce en un bucle en la curva característica cuando la entrada se incrementa y luego se disminuye. La histéresis es un parámetro clave para evaluar la precisión de un sensor, ya que un sensor con alta histéresis puede mostrar diferentes lecturas para la misma entrada dependiendo del recorrido previo, afectando la exactitud y la confiabilidad de las mediciones. • Deriva: se refiere a la variación lenta y no deseada en la salida del sensor cuando la entrada se mantiene constante durante un período prolongado. Puede ser causada por factores como cambios de temperatura, envejecimiento del material, o inestabilidad electrónica. La deriva es crítica para la estabilidad a largo plazo del sensor, ya que en aplicaciones que requieren una precisión constante durante largos períodos, puede introducir errores significativos y afectar la calidad de las mediciones y la confiabilidad del sensor. • Repetibilidad: es la capacidad del sensor para producir las mismas lecturas de salida cuando se aplica la misma entrada varias veces bajo las mismas condiciones. Este parámetro es fundamental para garantizar la consistencia de las mediciones. Un sensor con alta repetibilidad asegura que las mediciones sean fiables y reproducibles, lo cual es esencial en procesos de control de calidad y monitoreo continuo. 2.7.4 Pesos Los pesos empleados en esto experimentos han sido tornillos de entre 6 y 15 g, como los que se observan en la Figura 2.18, agrupados en bolsas de aproximadamente 100 g para poder variar con manejabilidad los pesos en las diferentes tomas de medida. El empleo de estos pesos, implica la incorporación y remoción de ellos de manera selectiva con el objetivo de lograr combinaciones específicas que se adecuen a caracterizar los sensores piezorresistivos. En la siguiente Tabla 2.1 se resumen qué pesos se emplean para cada uno de los experimentos de caracterización, anteriormente nombrados, y por cuánto tiempo se mantienen. En el caso de la curva característica, se va añadiendo pesos cada 30 segundos, para permitir que se estabilice la medida, comenzando por el soporte (estructura de semi-balancín), dónde luego se añaden más pesos, este tiene un peso aproximado de 30 g. Luego, se añaden tornillos de 15 g, uno a uno cada 30 segundos para caracterizar el inicio de la curva con más precisión ya que tiene una evolución más rápida a poco peso. Por último se van añadiendo bolsas de tornillos de 100 g aproximadamente cada 30 segundos. Para el escalón, se deja el sensor de ningún peso durante 2 minutos y se le deja caer un peso fijo de 340 g durante 14 minutos.
2.8 Programación 23 Figura 2.18 Pesos empleados, tornillos entre 6 y 15 g. En la histéresis, se siguen los mismos pasos que para la curva característica, pero cada 10 segundos. Cuando se finaliza de colocar los pesos también se van retirando uno a uno cada 10 segundos. En el experimento de la deriva, se deja el sensor sin carga durante dos minutos y se le añade carga durante dos minutos también, para diferentes cargas. Y en la repetibilidad, se añade carga durante 10 segundos y se deja sin carga durante 10 segundos, 5 veces para cada peso indicado. Tabla 2.1 Pesos para la caracterización de Sensores Piezorresistivos. Pesos (g) Duración Curva Característica 30 g a +1200 g: - 30 g (soporte) - 4 x tornillos de 15 g - 11 x 100 g aprox 30 s Escalón 340 g 2 - 14 min Histéresis = C. Caract., además retirando pesos 10 s Deriva 250, 600 y 900 g 2 - 2 min Repetibilidad 250, 550 y 860 g 10 - 10 s 2.8 Programación Para la implementación de todos estos experimentos, se hace una captura de los datos principales que serían el peso en gramos con la balanza y la salida del convertidor analógico digital, que corresponde con la tensión de salida del divisor de tensión. Estos datos se recopilan a través de Arduino con el programa adjuntado al Anexo 7.1. Luego, son enviados por puerto serie a Matlab donde para cada experimento se ha hecho un programa diferente para hacer los cálculos y representaciones necesarios. En el Anexo 7.2, ha sido adjuntado el programa que se emplea para el experimento de la caracterización en Matlab, el resto de experimentos siguen la misma estructura, cambiando la duración o la forma de representar las gráficas.
3 Resultados de la comparación de los dos sensores piezorresistivos 3.1 Curva Característica Los resultados obtenidos al obtener la curva características de ambos sensores piezorresistivos, siguiendo el procedimiento que se ha especificado en la subsección 2.7.4, se muestra a continuación. Se ha representado en ambos casos la Resistencia y la Conductancia vs. el Peso en Newtons, esto es debido a como se mostró en la Figura 2.10, la inversa de la resistencia, cuando esta sigue una distribución logarítmica, se corresponde con la conductancia que sigue una relación lineal con el peso. Por tanto, para un posterior procesamiento e interpretación de los valores tiene mayor rango de precisión y es más simple computacionalmente si empleamos la conductancia. En la Figura 3.1, se puede observar la curva característica para el sensor FSR. La ecuación de aproximación lineal para la conductancia junto con el coeficiente de determinación R2 se muestran a continuación en las ecuaciones 3.1 y 3.2: GF SR =1.0×10−3(0.1675 ·Peso+0.0925)(3.1) R2=0.9615 (3.2) Figura 3.1 Gráfica Peso (N) vs. Resistencia ( Ω ) y Conductancia (1/ Ω ) para diferente pesos, empleando FSR. 25
26 Capítulo 3. Resultados de la comparación de los dos sensores piezorresistivos En la Figura 3.2, se puede observar la curva característica para el sensor conformado con Velostat en un sándwich de 0.5 mm2 de cobre. La ecuación de aproximación lineal para la conductancia junto con el coeficiente de determinación R2se muestra a continuación en las ecuaciones 3.3 y 3.4: Gcel da =1.0×10−3(0.2829 ·Peso+0.3186)(3.3) R2=0.9951 (3.4) Figura 3.2 Gráfica Peso (N) vs. Resistencia ( Ω ) y Conductancia (1/ Ω ) para diferente pesos, empleando Velostat. Ambos sensores muestran una relación positiva entre la conductancia y el peso aplicado, lo que indica que a medida que se aplica más peso, la conductancia aumenta y la resistencia disminuye. Las gráficas utilizan un eje logarítmico para la resistencia, para una mejor visualización. Los valores que se ven representados por puntos son el valor medio durante los 30 segundos que se está midiendo con el mismo peso, se representa con barras de error los valores mínimos y máximos que se miden durante esos 30 segundos. Comparando ambas gráficas, se observa que la pendiente de la ecuación de aproximación lineal de la conductancia es superior para el sensor de Velostat que para el FSR, indicando un aumento más rápido de la conductancia con el peso. Al igual que la intersección es superior, debido que la conductancia inicial del Velostat sin pero aplicado tiene un valor mayor que en el caso del FSR. Debido a que el FSR cuando no tiene ningún peso su valor de resistencia es infinito, lo que implica una conductancia 0, en cambio velostat comienza con un valor inicial de resistencia diferente a infinito. La sensibilidad del FSR, además no empieza a variar su resistencia hasta que no tiene más de 70 gramos sobre el sensor, debido como indicaba el datasheet que su rango de sensibilidad comenzaba en 0.1 N. El coeficiente de determinación R2 del Velostat es superior que para el caso del FSR, indicando una mejor precisión al modelo lineal. 3.2 Respuesta ante escalón Para conocer la respuesta escalón de los sensores, y poder calcular el tiempo de respuesta o tiempo de subida de los sensores y cómo se comportan en régimen permanente, se añade en un momento dado un peso fijo de 340 g que se mantiene durante 14 minutos. La figura 3.3, muestra la gráfica escalón resultante para el sensor FSR. Se ha empleado la representación de la conductancia en vez de la resistencia, debido a que la resistencia con el aumento de peso disminuye y
3.2 Respuesta ante escalón 27 la conductancia aumenta, es simplemente por una visualización con un aumento en positivo del valor de la conductancia al añadir un peso. Los valores medios de la conductancia se han ido calculando para tramos de dos minutos, comparando la variación porcentual de la primera media calculada con la del último tramo, se obtiene una variación de poco más de un 30% del valor durante los 14 minutos. ∆Medias_FSR[%] = Gmedia(14 mins)−Gmedia(2mins) |Gmedia(2mins)|×100 =30.2059 % (3.5) Figura 3.3 Gráfica Tiempo (ds) vs. Conductancia (1/Ω) para 340 g, empleando FSR. Nota: los picos que se ven en la gráfica son debidos a golpes en el teclado/tocar la mesa durante las mediciones. En la Figura 3.4, se amplia la gráfica anterior, y se marca la media del valor de la conductancia los dos primeros minutos, para calcular el tiempo de subida a este valor medio, dado que a lo largo del tiempo no alcanza ningún valor de régimen permanente, se va a suponer este dado que no se espera emplear el sensor en un uso normal por un tiempo superior de 1 minuto. El tiempo de subida sería de 22.5 s aproximadamente. tsFSR = (1433 −1208)×10−1=22.5s (3.6) Por otra parte, la figura 3.5, muestra la gráfica escalón resultante para el sensor Velostat, se realizan los mismos cálculos y asumiciones que en el caso anterior. Calculando la media de la variación de la conductancia durante los 14 minutos, se obtiene casi un 22% de variación. ∆Medias_Velostat[%] = 21.7577 % (3.7) Ampliando la gráfica anterior, para calcular el tiempo de subida, se obtiene 28.7 s de tiempo de subida hasta alcanzar el valor medio de los dos primeros minutos. tsVelostat = (1462 −1175)×10−1=28.7s (3.8) Comparando la respuesta escalonada de los sensores FSR y Velostat ante un estímulo constante, ambos muestran una rápida respuesta inicial y una relativa estabilización de la conductancia (G) con el tiempo. El sensor FSR alcanza la estabilización de conductancia en aproximadamente 5.5 x 10−4 (1/ Omega ) más
28 Capítulo 3. Resultados de la comparación de los dos sensores piezorresistivos Figura 3.4 Ampliación gráfica Tiempo (ds) vs. Conductancia (1/Ω) para 340 g, empleando FSR. Figura 3.5 Gráfica Tiempo (ds) vs. Conductancia (1/Ω) para 340 g, empleando Velostat. rápidamente y con menos fluctuaciones y ruido, indicando mayor estabilidad y precisión a largo plazo. En contraste, el Velostat se estabiliza en aproximadamente 4.5 × 10−4 (1/ Omega ), pero muestra un periodo de estabilización más largo y con más fluctuaciones. El tiempo de subida es inferior para el FSR,pero el porcentaje de variación de las medias de la conductancia es mas de un 10% superior en el caso del FSR comparado con el del Velostat. Por tanto, el FSR tiene una respuesta ante escalón más rápida, pero su variación porcentual es superior.
3.3 Histéresis 29 Figura 3.6 Ampliación gráfica Tiempo (ds) vs. Conductancia (1/Ω) para 340 g, empleando Velostat. 3.3 Histéresis Las Figuras 3.7 y 3.8 muestran la histéresis de los sensores FSR y Velostat en función de la resistencia ( Ω ) con respecto al peso aplicado (N). La histéresis es la diferencia entre las curvas de carga y descarga, y es crucial para entender la precisión y repetibilidad de un sensor. Figura 3.7 Gráfica Peso (N) vs. Resistencia (Ω) para ascenso y descenso de pesos, empleando FSR. Ambos sensores presentan curvas de resistencia ascendente y descendente. Y en ambos casos, la resistencia disminuye a medida que aumenta el peso aplicado. Además, se incluyen en las gráficas una curva de histéresis que muestra la diferencia porcentual entre la carga y la descarga. Se puede observar la histéresis porcentual en la siguiente tabla según los pesos, muestra que la histéresis porcentual es más baja para el caso del sensor
36 Capítulo 4. Desarrollo Prototipo En primer lugar (1), se tiene como base una capa de aislante, en este caso se ha empleado un plástico transparente. A continuación, en (2) se colocó cinta de doble cara sobre el aislante. Estas dos capas se unieron por duplicado, de modo que en una de ellas se pegaron 11 tiras de cobre verticalmente (3) y en las otras capas se pegaron 6 cintas de cobre horizontalmente (5). En medio de estos dos conglomerados de capas se colocó una capa de Velostat (4). Obteniendo finalmente, superposiciones de capas que conforman la manta como se puede observar en (6). En la Figura 4.2, se puede observar parte del proceso en físico. En (1) se tiene en primera instancia la capa con las tiras de cobre verticales, en (3) se puede observar la capa con las tiras de cobre horizontales. Y en (2), se observa la capa central de Velostat. Figura 4.2 Proceso construcción de la manta. A continuación, se procede a soldar cables en todas las tiras de cobre. En las líneas verticales se les suelda un pin al otro extremo del cable, ya que estos se introducirán en los pines digitales del Arduino. Y en el caso de las tiras horizontales, se soldaran junto con resistencias de 1 K Ω formando divisores de tensión, e irán conectados a los pines analógicos del Arduino. En la Figura 4.3, se puede observar el esquema de conexionado que resulta de este montaje. Figura 4.3 Esquema de la configuración y conexiones de la manta.
4.1 Metodología 37 Figura 4.4 Manta conectada a Arduino. 4.1.2 Caracterización Manta Previamente, se ha obtenido la caracterización del sensor piezorresistivo formado por el Velostat y dos tiras de cobre de 5 mm de ancho, en representación del área efectiva mínima que va a componer la manta. En cambio, la construcción manufacturada de la manta de presión conlleva la incorporación de más materiales como son aislantes y adhesivo de doble cara que le añaden amortiguación y una no linealidad adicional. Es por ello, que se procede a caracterizar 5 celdas arbitrarias de la manta, para compararlas con la caracterización previa del sensor, y calcular en caso de que sea necesario una nueva ecuación de aproximación que relacione peso y conductancia. Figura 4.5 Esquema de la manta de presión, en morado las celda caracterizadas. En la Figura 5.4, se puede observar en morado las celdas las cuales se caracterizan, estas son las que se encuentran en las posiciones (2,6), (3,1), (3,10), (4,3) y (4,8). Además, se puede observar en naranja las diferentes celdas que miden en la manta de presión, el resto de celdas blancas no miden, dado que el 100% de la superficie de la manta no está sensorizada.
38 Capítulo 4. Desarrollo Prototipo El convertidor analógico-digital de MATLAB empleado es un convertidor de 8 bits, permitiéndonos tener un rango de valores entre 0-1023 en la salida. Representando en la Figura 4.6, la salida ADC vs. Peso (N), se comparan la salida de las 5 celdas con la curva característica del sensor creado con Velostat previamente (en marrón) y la media de las 5 celdas (en negro). El experimento para la caracterización es el idéntico realizado para los sensores piezorresistivos, se añaden pesos y se dejan 30 s, hasta llegar a 1.2 kg aproximadamente, los puntos representan la media de los valores durante esos 30 s. Los valores de las celdas son similares pero no idénticos, la celda (2,6) es con la que tienen mayor discrepancia. Estas diferencias pueden ser atribuidas a la fabricación realiza a mano del prototipo. Dado que existen diferencias entre la media de las 5 celdas y la caracterización del Velostat obtenida previamente, para minimizar estos errores y obtener mejores resultados de la lectura de la manta, se va a calcular una nueva ecuación que se ajuste a la relación del Peso (N) con la media de la conductancia de las 5 celdas. Figura 4.6 Caracterización ADC vs. Peso Celdas Manta. En la Figura 4.7, se observan la variación de la resistencia según el peso, para los diferentes valores de celdas es similar. En cambio, en la Figura 4.8, al realizar la inversa a la resistencia para obtener la conductancia, las discrepancias entre celdas se magnifican. Es por ello, que en la Figura 4.9, se calcula un nuevo ajuste de ecuación a la media de la conductancia de las celdas, se representas 3 ajustes diferentes, de primer, segundo y tercer orden. La ecuación de primer orden que se aproxima a la recta conductancia vs. peso, tiene un coeficiente de determinación: R2 1=0.9793 (4.1) G=10−3·(0.3633 ·Peso (N)+0.3332)(4.2) El coeficiente de determinación se mejora en la ecuación de segundo orden: R2 2=0.9944 (4.3) G=10−3·−0.0143 ·Peso (N)2+−0.0143 ·Peso (N)2+0.5310 ·Peso (N)+0.0964(4.4) E indudablemente, en la de tercer orden este coeficiente es superior, ajustándose mejor a la curva que relaciona conductancia y peso, como este coeficiente está próximo a 1, no es necesario seguir aumentando el orden de la ecuación, ya que no va a mejorar sustancialmente la aproximación.
4.1 Metodología 39 Figura 4.7 Caracterización Resistencia vs. Peso Celdas Manta. R2 3=0.9986 (4.5) G=10−3·0.0024 ·Peso (N)3−0.0588 ·Peso (N)2+0.7413 ·Peso (N)−0.0590(4.6) Figura 4.8 Caracterización Conductancia vs. Peso Celdas Manta. Para emplear la ecuación de tercer orden, se calcula su inversa, empleando la función finverse() de MATLAB, para obtener como varía el peso según la conductancia. La función inversa de tercer orden conductancia vs Peso (N) obtenida se muestra en la ecuación 4.7.
40 Capítulo 4. Desarrollo Prototipo Figura 4.9 Caracterización ajuste media Conductancia Manta. Peso(N) = 625000G 3+s625000G 3−608495 864 2 +17800025131 373248 −608495 864 1 3 −2611 72 625000G 3+q625000G 3−608495 864 2+17800025131 373248 −608495 864 1 3 +49 6 (4.7) Esta función será la empleada para interpretar los datos obtenidos de la manta de presión.
4.1 Metodología 41 4.1.3 Programación Para la programación del funcionamiento de la manta se va a emplear dos softwares: Arduino y Matlab. En Arduino, se realiza la programación de la lógica que va a alimentar la manta y realizar lectura de su respuesta. Por otra parte, Matlab se emplea para interpretar estas lecturas. Arduino El programa implementado en Arduino sigue el siguiente diagrama de flujo, Figura 4.10: Figura 4.10 Diagrama de flujo Arduino manta de presión. En el Anexo 7.3, se encuentra el programa para Arduino, en el que se tienen declaradas como variables el número máximo de columnas (6) y de filas (11), se crea una matriz de esas dimensiones. Además, se declaran las filas como entradas y las columnas como salidas a nivel bajo, ya que las columnas están conectadas a los pines digitales, que darán alimentación a cada una de ellas y las filas a los pines analógicos que van a ser leídos. De modo que se tienen dos bucles, uno en el que activas las columnas y otro que lee las salidas concatenadamente, creando una matriz del estado de los valores de esas resistencias. Por último, se imprime por el puerto serie los valores ordenados, en su matriz, seguidos de los terminadores "Retorno de carro" y "Salto de línea".
42 Capítulo 4. Desarrollo Prototipo MATLAB En MATLAB, se desarrolla la interpretación crucial de las medidas tomadas por la manta de presión. En la Figura 5.4, se resumen los pasos principales del procesamiento de estos datos. Figura 4.11 Lógica programa Matlab. En primer lugar, se tiene como entrada la salida analógica digital, esta se envía como se ha visto en el apartado anterior por puerto serie a MATLAB como una matriz, en la cual se tiene la salida analógica digital de cada celda entre 0-1023. Esta salida, es equivalente a la tensión de salida del divisor de tensión conformado por las celdas de la manta y resistencias de 1 K Ω como se ha comentado previamente. Por tanto, conociendo que la tensión de entrada Vin es de 5V y ADCmax son el rango de 1024, teniendo ADC se calcula Vout. Con esta y aplicando el divisor de tensión se obtiene la intensidad que pasa por el divisor y la resistencia de la celda. La conductancia es simplemente la inversa de la resistencia. Y con las ecuaciones calculadas a partir de la caracterización de la manta se puede obtener el peso aplicado en esta según la conductancia. Además, se puede expresar en términos de presión dado que el área es conocida. En la anterior Figura 4.6 se observa que a partir de una salida ADC de entre 700 y 800 se reconocen muchos valores con grandes saltos según la celda. Por otra parte, un valor en la salida ADC inferior a 40 puede ser causado por valores residuales. Es por ello que se limitan los valores mínimo y máximo de ADC que se va a interpretar, se toma 40 como el valor mínimo a partir del que se va a reconocer que hay una presión ejercida sobre la manta y 750 se va a tomar como el valor máximo. Por tanto en una medida con una salida ADC entre 40 y 750, se va a calcular el peso correspondiente, ya que se ha verificado que tiene un buen rango dinámico para diferenciar entre pesos. En cambio, en las medidas superiores a una salida ADC de 750, se va a considerar que son 500 g. Yen el caso de que la salida ADC sea menor que 40 se considera 0 g. Por otra parte, en la Figura 4.12, se muestran celdas naranjas (realizan medidas) y celdas blancas (espacios que no miden). Como se ha comentado, hay celdas de la manta de presión las cuales no se están midiendo, y con la información de las que sí lo están haciendo se pueden interpolar y tener una información más completa
4.1 Metodología 43 del área no efectiva de la medida y del reparto de presiones, para implementar la interpolación entre las celdas se emplea la función de MATLAB "interp2" con el método lineal. Figura 4.12 Interpolación lineal entre las celdas. En el Anexo 7.4, se encuentra el código implementado para su consulta.
5 Resultados Prototipo Los resultados del prototipo se ilustran con la realización de diferentes pruebas con la manta de presiones, entre los que se encuentran el empleo de la manta de presión con un objeto sólido, agarrando la manta de presión sobre un vaso y presionando la manta de presión contra una superficie horizontal con parte de la palma de la mano y el pulgar. Para la representación de los resultados se emplea MATLAB. 5.1 Objeto sólido Para comprobar el funcionamiento de la manta de presión, se deja descansar sobre ella un objeto sólido, con una superficie lo mas plana posible para que tenga una superficie de contacto considerable con respecto a la unidad efectiva de la medida. Figura 5.1 Manta de presión con objeto sólido. En las figuras (b), (c) y (d), se representan los valores de las celdas de la manta de presión, representando en el eje x las columnas y en el eje y las filas. En algunas celdas se muestra entre paréntesis (filas, columnas). En este caso se ha empleado un candado como se puede observar en la Figura 5.1(a). En la matriz de la manta de presión, que representa únicamente las celdas sensorizadas, el caso de la Figura 5.1(b), se representa en la columna de la izquierda el número de filas y en la fila inferior el número de columnas medibles de la manta de presión. Se puede observar que el candado descansa sobre 3 celdas medibles de la manta de presión. En la Figura 5.1(c), se representa la distribución del peso del candado en la superficie de la manta en 3D, sobre los ejes del plano se tienen filas y columnas representadas, pero esta vez también se incluyen las que 45
52 Capítulo 7. Anexo 38 39 } 40 delay(100); 41 } 7.2 Matlab - Caracterización 1 2%Lectura del divisor de tension del FSR o velostat con 10k + balanza 3 4%Limpiar y cerrar todo entre ejecuciones: 5clear all; 6close all; 7device = serialport("COM3 ",9600); %abre puerto serie 8configureTerminator(device,"CR/LF"); %lectura hasta Carrage/Return and Line/ Feed 9flush(device); %vaciar buffer de salida 10 11 % Inicializacion de vectores 12 13 peso_ADC_ = []; % valores cada 100 ms 14 peso_ADC_vec = []; % todos valores enviados por puerto serie de peso y ADC durante 30s 15 peso_ADC_vec_total = []; %todas las salidas durante todo el experimento 16 peso_ADC_vec_media = []; % media de esos valores 17 peso_ADC_vec_media_total = []; % media de TODOS los valores de Peso y ADC cada 30s 18 max_ADC_total = []; %maximo ADC cada 30s 19 min_ADC_total = []; %minimo ADC cada 30s 20 Rmax = []; %Rmax variable cada 30s 21 Rmin = []; %Rmin cada 30s 22 23 24 25 while true %bucle infinito 26 27 tStart=tic; 28 tEnd=0; 29 %se vuelven a inicializar estos valores cada vez que comienza el bucle: 30 peso_ADC_ = []; % valores cada 100 ms 31 peso_ADC_vec = []; % todos valores enviados por puerto serie de peso y ADC 32 max_ADC=[]; 33 min_ADC=[]; 34 flush(device); %vaciar buffer de salida 35 36 while tEnd<10 37 38 tEnd=toc(tStart) 39 peso_ADC_=str2num(readline(device)); %lectura del dispositivo [peso, ADC] 40 peso_ADC_vec = [peso_ADC_vec; peso_ADC_]; %registro de todos los valores de la matriz a lo largo de 10 segs 41 42 end
7.2 Matlab - Caracterización 53 43 44 % Calculos y guardar variables 45 46 peso_ADC_vec_total=[peso_ADC_vec_total; peso_ADC_vec]; %para guardar la totalidad de datos 47 max_ADC=max(peso_ADC_vec(:,2)); %obtener el valor maximo ADC 48 min_ADC=min(peso_ADC_vec(:,2));% y el valor minimo 49 max_ADC_total=[max_ADC_total; max_ADC]; %agrupar todos los maximos 50 min_ADC_total=[min_ADC_total; min_ADC]; % todos los minimos 51 peso_ADC_vec_media=mean(peso_ADC_vec); %calcular el valor medio 52 peso_ADC_vec_media_total=[peso_ADC_vec_media_total; peso_ADC_vec_media] % todas las medias 53 54 55 56 prompt = "¿Medir un nuevo peso? (Si=1, No=0) "; 57 x=input(prompt) 58 59 60 if x == 1 61 62 y="Se mide" 63 64 elseif x == 0 65 66 break; 67 68 end 69 70 end 71 72 73 74 % Calculo de R y G, a partir de la salida ADC 75 76 Vo=5*peso_ADC_vec_media_total(:,2)./1024; % Vout=ADC*Vin/ADC_max 77 I=Vo./1000; % Divisor de tension 1kohm 78 Rs=(5*ones(size(Vo,1),1)-Vo)./I; % Rs = resistencia de la celda 79 G=I./(5*ones(size(Vo,1),1)-Vo); %Conductancia 80 81 % Calculo de Rmaxs y Gmaxs 82 83 Vo=5*max_ADC_total./1024; % Vout=ADC*Vin/ADC_max 84 I=Vo./1000; % Divisor de tension 1kohm 85 Rmax=(5*ones(size(Vo,1),1)-Vo)./I; % Rs = resistencia de la celda 86 Gmax=I./(5*ones(size(Vo,1),1)-Vo); %Conductancia 87 88 % Calculo de Rmins y Gmins 89 90 Vo=5*min_ADC_total./1024; % Vout=ADC*Vin/ADC_max 91 I=Vo./1000; % Divisor de tension 1kohm 92 Rmin=(5*ones(size(Vo,1),1)-Vo)./I; % Rs = resistencia de la celda 93 Gmin=I./(5*ones(size(Vo,1),1)-Vo); %Conductancia 94 95 %Calculo de error + y - (Rango de error) 96 97 y_pos_R=Rmax-Rs;
54 Capítulo 7. Anexo 98 y_neg_R=Rs-Rmin; 99 100 y_pos_G=Gmax-G; 101 y_neg_G=G-Gmin; 102 103 %Gramos a Newtons 104 peso_ADC_vec_media_total(:,1)=peso_ADC_vec_media_total(:,1)/1000*9.8; 105 106 %Grafica con el peso total a lo largo de la ejecucion VS G, R y ADC: 107 108 figure(1); 109 110 plot(peso_ADC_vec_media_total(:,1),peso_ADC_vec_media_total(:,2),'b--o'); 111 grid; 112 title('Peso (N) VS salida ADC'); 113 xlabel('Peso (N)'); 114 ylabel('ADC'); 115 116 figure(2); 117 semilogy(peso_ADC_vec_media_total(:,1),Rs,'bo','MarkerSize',3.5,' MarkerFaceColor','b'); 118 hold on 119 errorbar(peso_ADC_vec_media_total(:,1),Rs,y_neg_R,y_pos_R,'b--') 120 grid 121 xlabel('Peso (N)'); 122 ylabel('R (Ohm)'); 123 hold on 124 125 % Se añade G a la misma gráfica 126 yyaxis right 127 plot(peso_ADC_vec_media_total(:,1),G,'ro','MarkerSize',3.5,'MarkerFaceColor',' r'); 128 errorbar(peso_ADC_vec_media_total(:,1),G,y_neg_G,y_pos_G,'--r') 129 grid 130 ylabel('G (1/Ohm)'); 131 hold on 132 133 % Ajuste lineal a la conductancia 134 p=polyfit(peso_ADC_vec_media_total(:,1),G,1); 135 136 % Valores ajustados 137 x1 = peso_ADC_vec_media_total(:,1); 138 y1=polyval(p,peso_ADC_vec_media_total(:,1)); 139 140 % Cálculo del R^2 141 SS_res = sum((G - y1).^2); 142 SS_tot = sum((G - mean(G)).^2); 143 R2 = 1 - (SS_res / SS_tot); 144 145 % Mostrar el resultado 146 fprintf('El coeficiente de determinación R^2 es: %.4f\n', R2); 147 148 plot(x1,y1,'-','Color',[0.9290 0.6940 0.1250]) 149 150 legend('Datos R','Rango R','Datos G','Rango G','Ajuste lineal G') 151 152 title('Caracterización 0.5mm^2 Velostat');
7.3 Arduino - Manta de presión 55 153 %title('Caracterización FSR'); 154 155 hold off 7.3 Arduino - Manta de presión 1#define MAX_COL 11 2#define MAX_ROW 6 3 4int columns[]={2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; 5int rows[]={A0, A1, A2, A3, A4, A5}; 6 7int mat_values[MAX_ROW][MAX_COL]; 8 9 10 void setup() { 11 // Código que se ejecuta solo una vez: 12 Serial.begin(9600); 13 for(int row=0; row<MAX_ROW; row++) 14 { 15 pinMode(rows[row],INPUT); 16 } 17 // Inicializa columnas como salida, nivel LOW 18 for(int col=0; col<MAX_COL; col++) 19 { 20 pinMode(columns[col],OUTPUT); 21 digitalWrite(columns[col],LOW); 22 } 23 } 24 25 void loop() { 26 27 for(int col=0; col<MAX_COL; col++){ 28 for(int row=0;row<MAX_ROW;row++){ 29 digitalWrite(columns[col],HIGH); 30 mat_values[row][col] = analogRead(rows[row]); 31 digitalWrite(columns[col],LOW); 32 33 } 34 } 35 36 Serial.print("["); 37 38 for(int row=0;row<MAX_ROW;row++){ 39 40 Serial.print("["); 41 42 for(int col=0; col<MAX_COL; col++){ 43 44 45 Serial.print(mat_values[row][col]); 46 if(col<MAX_COL-1) 47 { 48 Serial.print(",");
56 Capítulo 7. Anexo 49 } 50 51 52 } 53 if(row<MAX_ROW-1) 54 { 55 Serial.print("];"); 56 } 57 else 58 { 59 Serial.print("]"); 60 } 61 62 } 63 64 Serial.print("]"); 65 Serial.write(13); // \r 66 Serial.write(10); // \n 67 68 } 7.4 Matlab - Manta de presión 1 2%Lectura y representación de la manta de presión 3 4%Limpiar y cerrar todo entre ejecuciones: 5clear all; 6close all; 7device = serialport("COM10",9600); %abre puerto serie 8configureTerminator(device,"CR/LF"); %lectura hasta Carrage/Return and Line/ Feed 9flush(device); %vaciar buffer de salida 10 11 %Inicializaciones de variables 12 M=6; %filas 13 N=11; %columnas 14 var=zeros(M,N); %inicializacion matriz 6*11 ceros 15 16 val_min_ADC=40; %Valor mínimo con el que se va a trabajar de la salida AD 17 val_max_ADC=750;%Valor maximo (para 500 gr) 18 19 % Creacion de la matriz de medidas 20 [X, Y] = meshgrid(1:2:(2*N-1), 1:2:(2*M-1)); 21 22 % Creacion de la matriz completa, incluyendo las zonas no mesurables 23 [Xq, Yq] = meshgrid(1:(2*N-1), 1:(2*M-1)); 24 25 n=0; % variable para acumular los valores de la matriz de la manta 26 data = []; %acumula valores anteriores de la manta y su tiempo 27 28 % Se estblece el momento inicial 29 now_inicial = posixtime(datetime("now")); %tiempo inicial 30
7.4 Matlab - Manta de presión 57 31 %Bucle infinito donde se lee continuamente los valores de la manta 32 33 while true 34 35 pres_mat=str2num(readline(device)); 36 37 38 for i=1:M 39 for j=1:N 40 if (pres_mat(i,j))<val_min_ADC 41 pres_mat(i,j)=0; 42 elseif (pres_mat(i,j))>val_max_ADC 43 pres_mat(i,j)=500; %se limita a 500gr 44 else 45 Vo=(pres_mat(i,j)*5)/1024; % Vout=ADC*Vin/ADC_max 46 I=Vo/1000; % Divisor de tension 1kohm 47 % Rs=(5-Vo)/I; % Rs = resistencia de la celda 48 G=I/(5-Vo); %Conductancia 49 %Ec de 3er orden Inversa peso vs conductancia 50 pres_mat(i,j)=((625000*G)/3 + (((625000*G)/3 - 608495/864).^2 + 17800025131/373248).^(1/2) - 608495/864).^(1/3) - 2611/(72*((625000*G)/3 + (((625000*G)/3 - 608495/864).^2 + 17800025131/373248).^(1/2) - 608495/864).^(1/3)) + 49/6; 51 pres_mat(i,j)=pres_mat(i,j)/9.8*1000; 52 end 53 end 54 end 55 56 n=n+1; 57 pres_mat_all(:,:,n)=pres_mat; %registro de todos los valores de la matriz a lo largo del tiempo 58 59 %Matriz en relieve como columnas: 60 %b = bar3(pres_mat); 61 62 %Interpolar Areas no medidas: 63 augmentedMatrix = interp2(X, Y, pres_mat, Xq, Yq, 'linear ') 64 b = bar3(augmentedMatrix); 65 66 %Representación barras con colores a escala interpolados: 67 for k = 1:length(b) 68 zdata = b(k).ZData; 69 b(k).CData = zdata; 70 b(k).FaceColor = 'interp'; 71 end 72 colorbar; 73 74 data = [data; sum(augmentedMatrix,"all"), posixtime(datetime("now"));]; 75 76 if double(get(gcf,'CurrentCharacter')) == 32 %al pulsar la barra espaciadora se sale del bucle infinito 77 break; 78 end 79 80 end 81 82 %Grafica con el peso total a lo largo del tiempo:
58 Capítulo 7. Anexo 83 figure(2); 84 plot(data(:,2)-now_inicial,data(:,1)) 85 86 xlabel('Tiempo (s)') 87 ylabel(['Peso (gr)']) 88 grid 89 90 %Imagen de la matriz con los valores interpolados 91 figure(3);imagesc(augmentedMatrix);colorbar; 92 %Imagen de la matriz de los valores medidos 93 figure(4);imagesc(pres_mat);colorbar;
Índice de Figuras 1.1 Línea temporal de proyectos sobre el agarre prismático 2 1.2 Tekscan Grip System 4 1.3 Diferentes tamaños y formas de sensores FSR, © Flexkys 5 1.4 Matriz discreta FSR 5 1.5 MatrixArray FSR 6 1.6 Imagen de Velostat a la derecha, esquema de funcionamiento a la izquierda. [12] 6 2.1 Esquema de prototipo 1 cilíndrico realizado con Fusion 9 2.2 Esquema de prototipo 2 cilíndrico realizado con Fusion 10 2.3 Resistencia frente a la fuerza aplicada en el FSR 11 2.4 Estructura de construcción de un FSR en Shunt y Thru Mode 12 2.5 Dimensiones FSR402 13 2.6 Esquema divisor de tensión con Arduino 14 2.7 Gráfica Fuerza aplicada en el FSR vs Vout, según se emplee diferentes valores de reisitencias pull-down. [5] 14 2.8 Media resultantes Salida ADC del divisor de tensión a diferentes pesos y resistencias 15 2.9 Circuito FSR con amplificador transimpedancia 16 2.10 Gráfica de la relación de la resistencia y la conductancia en función de la fuerza aplicada en un FSR 17 2.11 Medidas resultantes de la tension de salida del amplificador de transimpedancia para varios pesos y ecuación de tendencia lineal asociada 17 2.12 Conexiones Puente de Wheatstone con FSR 18 2.13 Setup para los experimentos 19 2.14 Montaje para caracterizar el Velostat. 20 2.15 Montaje para caracterizar el FSR, (a) Vista superior, FSR fijo a la plataforma de la balanza. (b) Vista lateral, con el apoyo del peso sobre la almohadilla del FSR. 20 2.16 Balanza, creada con célula de carga. (a) Vista superior. (b) Vista lateral 21 2.17 Conexionado del ADC HX711 con la célula de carga y Arduino 22 2.18 Pesos empleados, tornillos entre 6 y 15 g 23 3.1 Gráfica Peso (N) vs. Resistencia (Ω) y Conductancia (1/Ω) para diferente pesos, empleando FSR 25 3.2 Gráfica Peso (N) vs. Resistencia (Ω) y Conductancia (1/Ω) para diferente pesos, empleando Velostat 26 3.3 Gráfica Tiempo (ds) vs. Conductancia (1/Ω) para 340 g, empleando FSR 27 3.4 Ampliación gráfica Tiempo (ds) vs. Conductancia (1/Ω) para 340 g, empleando FSR 28 3.5 Gráfica Tiempo (ds) vs. Conductancia (1/Ω) para 340 g, empleando Velostat 28 3.6 Ampliación gráfica Tiempo (ds) vs. Conductancia (1/Ω) para 340 g, empleando Velostat 29 3.7 Gráfica Peso (N) vs. Resistencia (Ω) para ascenso y descenso de pesos, empleando FSR 29 3.8 Gráfica Peso (N) vs. Resistencia (Ω) para ascenso y descenso de pesos, empleando Velostat 30 3.9 Gráfica Peso (N) vs. Conductancia (1/Ω) para 250, 600 y 900 g, empleando FSR 31 3.10 Gráfica Peso (N) vs. Conductancia (1/Ω) para 250, 600 y 900 g, empleando Velostat 32 3.11 Gráfica Peso (N) vs. Conductancia (1/Ω) para 250, 550 y 860 g, empleando FSR 32 3.12 Gráfica Peso (N) vs. Conductancia (1/Ω) para 250, 550 y 860 g, empleando Velostat 33 59
60 Índice de Figuras 4.1 Esquemático de las capas por las que está formada la manta 35 4.2 Proceso construcción de la manta 36 4.3 Esquema de la configuración y conexiones de la manta 36 4.4 Manta conectada a Arduino 37 4.5 Esquema de la manta de presión, en morado las celda caracterizadas 37 4.6 Caracterización ADC vs. Peso Celdas Manta 38 4.7 Caracterización Resistencia vs. Peso Celdas Manta 39 4.8 Caracterización Conductancia vs. Peso Celdas Manta 39 4.9 Caracterización ajuste media Conductancia Manta 40 4.10 Diagrama de flujo Arduino manta de presión 41 4.11 Lógica programa Matlab 42 4.12 Interpolación lineal entre las celdas 43 5.1 Manta de presión con objeto sólido. En las figuras (b), (c) y (d), se representan los valores de las celdas de la manta de presión, representando en el eje x las columnas y en el eje y las filas. En algunas celdas se muestra entre paréntesis (filas, columnas) 45 5.2 Agarre cilíndrico a manta de presión. En las figuras (b), (c) y (d), se representan los valores de las celdas de la manta de presión, representando en el eje x las columnas y en el eje y las filas. En algunas celdas se muestra entre paréntesis (filas, columnas) 46 5.3 Compresión palma y pulgar a manta de presión. En las figuras (b), (c) y (d), se representan los valores de las celdas de la manta de presión, representando en el eje x las columnas y en el eje y las filas. En algunas celdas se muestra entre paréntesis (filas, columnas) 47 5.4 Evolución temporal del peso total en la manta de presión 47 5.5 Texturas superficie manta de presión 48 6.1 PCB Flexible 49
Bibliografía [1] A. A. Amis, Variation of finger forces in maximal isometric grasp test on a range of cylinder diameters, J.Biomed. Eng., Butterworth Co., 1987. [2] J. Cepriá-Bernal and A. Pérez-González, Dataset of tactile signatures of the human right hand in twenty-one activities of daily living using a high spatial resolution pressure sensor, Sensors, 21(8), 2594, 2020. [3] M. R. Cutkosky, On grasp choice, grasp models, and the design of hands for manufacturing tasks, IEEE TRANSACTIONS ON ROBOTICS AND AUTOMATION, VOL. 5, NO. 3, JUNE 1989. [4] R. G. Dong and J. Z. Wu, A new approach to characterize grip force applied to a cylindrical handle, Medical Engineering Physics, Volume 30, Issue 1„ 2007. [5] Interlink Electronics, Force sensing resistor integration guide and evaluation parts catalog. [6] K. Gintner, Simultaneous measurement of resistance and temperature changes in bridge circuits, University of Applied Sciences Karlsruhe, 2019. [7] A. Pérez González, M. Jurado Tovar, and J.L. Sancho Bru, Fuerzas de contacto entre mano y objeto en el agarre cilíndrico: comparación de dos técnicas de medición, XIX Congreso Nacional de Ingeniería Mecánica, 2012. [8] J. Gámez, A. Astorgano, D. Rosa, and E. Alcantará, Diseño de un equipo de medición de las presiones de la palma de la mano en un deporte tradicional, la pelota vasca, Instituto de Biomecánica de Valencia, 2001. [9] Y. Herbst and L. Zelnik, Analysis of subject specific grasping patterns, PLoS ONE, 2020. [10] D. Kim, E. Jeong, and J. Lee, Finger-gesture recognition glove using velostat, ICCAS, 2011. [11] R. Koiva, Development of an intelligent object for grasp and manipulation research, IEEE, 2012. [12] E. Perrone, R. Velázquez, and M. Vittorio, Development of a self-powered piezo-resistive smart insole equipped with low-power ble connectivity for remote gait monitoring, Sensors, 2021. [13] K.A. Schroeder, A novel force sensitive resistor wheatstone bridge for prothesis control, ASME, 2014. [14] S. Shimizu, The relation between human grip types and force distribution pattern in grasping, IEEE, 1994. [15] S.S. Suprapto, A.W. Setiawan, and H. Zakaria, Low-cost pressure sensor matrix using velostat, IEEE, 2017. [16] I. Vehec and L. Livovsky, Flexible resistive sensor based on velostat, IEEE, 2020. 61