De Arossini

 Descripción

Mi esposa sufre un problema en sus oídos medios, que le impiden ecualizar presiones por ejemplo durante la subida y bajada de un avión, produciéndole un dolor muy intenso.

Un familiar que vive en Austria, sufría del mismo problema y su médico le recetó usar Otobar Nasenballon. Tratamos de conseguirlo allá y no fue posible. Idéntico resultado tuvimos en Argentina. La fotografía corresponde a la caja del producto alemán. Comencé a investigar en la WEB y apareció muchísima información sobre todo en You tube. Allí pude ver que en España se llama Otovent, idéntico al de la fotografía y apareció otro nombre VentytubA que trabaja sin el globo. Es la segunda fotografía. El sistema Otovent, aumenta la presión en el oído medio inflando el globo, y el VentytubA también, pero lo hace dejando salir el aire en forma restringida por un orificio pequeño. La información encontrada indica que la presión que se levanta con el globo, llega a 400 mm de columna de agua.

La idea entonces fue construir un dispositivo que midiera la presión, para que se la pudiera elegir a voluntad, sintiendo los efectos que esta presión causa en el oído.

 Caja original   Boquilla Nasal

El procedimiento de uso del Otovent, lo encuentran en youtube.

El procedimiento del VentytubA está en esta página WEB: http://www.ventytuba.com/

Procedimiento de uso de mi dispositivo

El procedimiento de mi dispositivo es el siguiente:

1) presionar el pulsador para que arranque. El display deberá marcar cero (0).

2) Inspirar profundamente. Colocar el dispositivo en un orificio nasal y tapar el otro con otro dedo.

3) Espirar por el orificio del dispositivo levantando la presión. Se visualiza en el display entre 0 y 9. El valor 9 corresponde a 400 mm de columna de agua. Mi esposa usa entre 6 y 7, lo que le da buenos resultados.

Si luego de 9 se sigue soplando a mayor presión, el display no la marcará, pero la presión sigue igual aumentando.

4) Luego de transcurridos 15 segundos, el sistema, y por lo tanto el display se apaga. Se debe entonces espirar lentamente sacando el dispositivo del orificio nasal.

5) Hacer el movimiento de masticación deglución para que la presión del oído medio se normalice.

Esquema

 

 

Está basado en el Arduino Micro, de tamaño reducido. La primera experiencia la hice con un Arduino Uno. No cambia el programa ni las conexiones.

No tiene llave de corte, porque al apagarse, la batería queda desconectada. Se enciende solamente 15 segundos.

El BMP 180 Y la cápsula que lo contiene

 El BMP 180, es un módulo para medición de presión atmosférica, altura y temperatura ambiente. Mide aproximadamente 1 x 1 cm.

Aquí la usamos para medir presión relativa a la atmosférica, por lo tanto, la debemos usar en una cápsula (Fabricada con Masilla epoxi, "Poxilina") aislada de la atmósfera. De esa cápsula saldrán los 4 cables que la conectan al Arduino y el tubo que la conecta a la nariz.

 

Esta es la imagen de la cápsula, bastante agrandada, donde se ven los 4 cables y el tubo de 4 mm de diámetro. Está superpuesta la imagen del BMP 180.

Para construirla, pegué un cartón liviano a ambas caras de la plaqueta, y lo cubrí todo, plaqueta cables y tubo con una capa de masilla epoxi. El espesor de pared quedó demasiado grueso, sin necesidad.

Tener mucho cuidado, porque el integrado metálico del BMP180, tiene un orificio muy pequeño, que no debe ser tapado.

Cuando arranca el sistema, el tubo está conectado a la atmósfera, y mide el valor cero de presión relativa. Cuando se sopla, mide la presión interior de la cápsula o sea la del oído y trompa de Falopio. Luego calcula la diferencia y muestra la presión en cm de columna de agua afectada por una escala para ver números del 0 al 9.

Programa

Está en el archivo zipeado.

Está basado en el trabajo de esta página: www.arossini.com.ar  132 - Arduino + Sensor de Presión Barometrica BMP180

 #include <SFE_BMP180.h>

#include <Wire.h>

 SFE_BMP180 pressure;    //Se declara una instancia de la libreria

//Se declaran las variables. Es necesario tomar en cuenta una presion inicial

//esta sera la presion que se tome en cuenta en el calculo de la diferencia de presion

double PresionBase;   // Medicion de la presion atmosferica al inicio del sistema

double Presion = 0;   // Medicion de la presion actualizada en el recinto del sensor

double Altura = 0;

double Temperatura = 0;

 char status;

 #define ba 20  // Define las 7 barras en 7 pines digitales, dejando el 1 y 2 para serial

#define bb 21

#define bc 4

#define bd 5

#define be 6

#define bf 7

#define bg 8

#define Arranque 10 // Salida del pulsador de arranque

 //     Pines para      A   B  C  D  E  F  G, en secuencia

const int segs[7] = { 21, 20, 4, 5, 6, 7, 8 };

 // Definir que barras estan apagadas - prendidas para cada numero

const byte numbers[11] = { 0b0111111, 0b0000110, 0b1011011, 0b1001111, 0b1100110, 0b1101101, 0b1111101, 0b0000111, 0b1111111, 0b1101111, 0b1000000};

//                           6543210               gfedcba

int digit1 = 0;  // Digito

 int val;   // Valor de la presion relativa a la atmosfera

double Inicio; // Valor del reloj del Arduino al inicio

 void setup() {

   //Serial.begin(9600);           // Se inicia la comunicacion serial

  SensorStart();                //Se inicia el sensor y se hace una lectura inicial

   pinMode(ba, OUTPUT); // Definir el estado de los puertos

  pinMode(bb, OUTPUT);

  pinMode(bc, OUTPUT);

  pinMode(bd, OUTPUT);

  pinMode(be, OUTPUT);

  pinMode(bf, OUTPUT);

  pinMode(bg, OUTPUT);

  pinMode(Arranque, OUTPUT);

  Inicio = millis();  // Leer el valor inicial del reloj

  digitalWrite(Arranque, HIGH);  // Poner el puerto arranque en 1, para que el relay cierre el contacto y alimente todo.

}

 //*********************************************************

void loop() {

   //Serial.println(Inicio );   // se abre para la puesta a punto

  //Serial.println(millis() -Inicio );

  if ((millis() - Inicio) > 15000) {digitalWrite(Arranque, LOW); }  // Son los 15 segundos que se mantiene encendido el sistema

                                                                    // Cierra el contacto

  ReadSensor();                      //Se hace lectura del sensor

  val = Presion - PresionBase;  // Calcula la presion relativa

// Prender el display

digit1= round(val)/4; // Le aplica una escala al valor leido y lo redondea.

if (digit1>9) {digit1=10;}  // Si la presion es mayor a 9 muestra el guion

// Serial.println(val);

// Serial.println(digit1);

EncenderDigit1(numbers[digit1]);

 } // Fin del Void loop()

 

 // Siguen las subrutinas

 // *************************************************************

void EncenderDigit1(byte numbers)

{

    for (int i = 0; i < 7; i++) {

    int bit = bitRead(numbers, i);

    digitalWrite(segs[i], bit);

  }

}

 

// *********************************************************************

void ReadSensor()

{

//En este método se hacen las lecturas de presión y temperatura y se calcula la altura

//Se inicia la lectura de temperatura

status = pressure.startTemperature();

  if (status != 0)

  { // INI 1

  delay(status);

  status = pressure.getTemperature(Temperatura);     //Se realiza la lectura de temperatura

    if (status != 0)

    { // INI 2

      status = pressure.startPressure(3);             //Se inicia la lectura de presión

      if (status != 0)

      { // INI 3

      delay(status);

       //Se lleva a cabo la lectura de presión,

      //considerando la temperatura que afecta el desempeño del sensor

      status = pressure.getPressure(Presion, Temperatura);

        if (status != 0)

        { // INI 4

        //Se hace el cálculo de la altura en base a la presión leída en el Setup

        Altura = pressure.altitude(Presion, PresionBase);

        } // FIN 4

       } // FIN 3

    } // FIN 2

  } // FIN 1

} // FIN void ReadSensor()

 // ********************************************************************

void SensorStart()

{

//Secuencia de inicio del sensor

if (pressure.begin())

//Se inicia la lectura de temperatura

status = pressure.startTemperature();

if (status != 0)

  {

  delay(status);

  //Se lee una temperatura inicial

  status = pressure.getTemperature(Temperatura);

   if (status != 0)

    {

    //Se inicia la lectura de presiones

    status = pressure.startPressure(3);

        if (status != 0)

        {

        delay(status);

        //Se lee la presión inicial incidente sobre el sensor en la primera ejecución

        status = pressure.getPressure(PresionBase, Temperatura);

        }

    }

  }

} // FIN void SensorStart()

Gabinete Plástico

Está fabricado como en el trabajo de esta página: www.arossini.com.ar   80 - Procedimiento para fabricar nuestros gabinetes y Dispositivo de calentamiento

Fotografías

 Vista completa del Dispositivo. Mide 85 x 60 x 35 de altura

 Vista interior, donde se observa la cápsula del BMP180, la batería de 9 Volt y la plaqueta del Arduino Micro con el display Led y el Relay.

 Vista lateral, donde se observa el pulsador negro, para el arranque y algo de espuma plástica de relleno para proteger al conjunto de golpes.

 

0
0
0
s2smodern

SONIDO AMBIENTAL

SONIDO AMBIENTAL

Ladelec instala el sonido ambiental a Centros Comerciales, Aeropuertos, Iglesias, escuelas, Colegios, Universidades, academias, oficinas, salas de espera, Clínicas...

leer mas

ASESORIA EN TESIS DE GRADO

MADRID1

Ladelec ofrece a estudiantes de ingeniería electrónica y afines, asi como a técnicos, tecnólogos y aficionados los servicios personalizados de ayuda para todo nivel de aprendizaje de la ciencia electrónica.

leer mas

ALQUILER AMPLIFICACIÓNES

ALQUILER AMPLIFICACIONES

Servicio de Alquiler de equipos amplificadores de potencia de audio para toda ocasión, que incuyen las cabinas de refuerzo de Sonido y los Amplificadores en potencias de hasta 20.000 W RMS.

leer mas