Arduineces y otras hierbas (Monitorizar fugas de agua)

Todo cuanto tiene que ver con la obtención, almacenamiento y proceso de la información digital, sus aplicaciones y el software y hardware utilizado.
Responder
Mensaje
Autor
Avatar de Usuario
Anilandro
Mensajes: 4905
Registrado: Dom Feb 11, 2007 10:16 pm
Ubicación: Islas Baleares, España
Contactar:

Re: Arduineces y otras yerbas digitales

#371 Mensaje por Anilandro »

Bueno, una vez tengo un poco por mano el tema de los Timers de Arduino, se me ha ocurrido aprovecharlos en un proyecto que me ha venido a la cabeza de forma repetitiva en los últimos años...

Se trataría de diseñar y construir un sistema que permita saber las coordenadas relativas de un elemento móvil, como por ejemplo un pequeño robot, en un espacio confinado. Para ello he pensado utilizar el principio de "Enrejado Hiperbólico", que usaba el antiguo LORAN, el OMEGA e incluso, aunque muy refinado, el actual GPS... El alcance de este sistema sería de algunos metros, primero en 2D, aunque luego se podría ampliar a 3D, y en vez de ondas de radio utilizadas por los sistemas anteriores, funcionaría con ultrasonidos, que en teoría permitirían una buena resolución en distancias métricas...

La frecuencia del sistema sería de 40 Khz, para aprovechar los emisores y receptores de los populares y baratos medidores de distancia HC-SR04...

Imagen


Continuará...

Saludos
La VIDA sólo es energía que ha aprendido a defenderse... (Anilandro)

*** La Web de Anilandro *** http://sites.google.com/site/anilandro

Avatar de Usuario
Anilandro
Mensajes: 4905
Registrado: Dom Feb 11, 2007 10:16 pm
Ubicación: Islas Baleares, España
Contactar:

Re: Arduineces y otras yerbas digitales

#372 Mensaje por Anilandro »

...He experimentado un poco con los transductores de estos módulos. Con un generador de BF de 40 Khz conectado al emisor y el osciloscopio al receptor, la señal directa es fuerte incluso a distancias de 1 metro, en que el receptor da una ganancia en tensión de entre el 0,5 y 1 respecto a la excitación en el emisor...

Imagen


...De todas formas, como necesitaré emitir en un haz abierto, al menos de 90º, y estos transductores lo tienen bastante estrecho, será necesario añadirles deflectores externos de sonido con la forma adecuada, y en la parte receptora hará falta amplificación, y pienso que tal vez pueda utilizar el propio circuito que lleva el módulo HC-SR04, basado en un operacional LM324... Algunos puntos muestran mucha ganancia, incluso con el emisor apuntando en una dirección distinta al receptor...

Imagen

Imagen


Continuará...

Saludos
La VIDA sólo es energía que ha aprendido a defenderse... (Anilandro)

*** La Web de Anilandro *** http://sites.google.com/site/anilandro

Avatar de Usuario
Anilandro
Mensajes: 4905
Registrado: Dom Feb 11, 2007 10:16 pm
Ubicación: Islas Baleares, España
Contactar:

Re: Arduineces y otras hierbas (UPP, Ultrasonic Pulse Positi

#373 Mensaje por Anilandro »

Para entender el fundamento de esta idea puede ser conveniente explicar un poco el sistema LORAN-C. En el Mediterráneo, por ejemplo, había una estación máster y tres esclavas que emitían breves señales de radio. Las diferencias de tiempo al recibirlas permitían situar el receptor sobre un mapa.

Concretamente, en esta cadena LORAN-C, identificada GRI 7990, la estación master estaba situada en Sellia Marina, al sur de Italia, y las esclavas, una en Estartit, en España, otra en la isla italiana de Lampedusa y la tercera en Kargaburun, en Turquía...

Imagen


En el LORAN estas señales no eran simultáneas, si no que de origen estaban desfasadas en tiempo, para que pudieran ocupar una sola frecuencia (100 Khz) y de forma independiente de la posición del receptor nunca pudieran solaparse.

Imagen


El receptor descontaba el tiempo de desfase y los valores de diferencia obtenidos se comparaban en las cartas LORAN con unas "líneas de diferencia de tiempos" que tenían forma de hipérbolas, y por este motivo este sistema se denominaba de "Situación por Enrejado Hiperbólico".

Imagen


Para situarse se buscaban sobre la carta las líneas de diferencia de tiempo más próximas y si era necesario se interpolaba para obtener al menos dos líneas exactas de estaciones distintas. El punto de corte de las líneas era la situación del receptor con precisión de 0,25 millas.

Continuará...

Saludos
La VIDA sólo es energía que ha aprendido a defenderse... (Anilandro)

*** La Web de Anilandro *** http://sites.google.com/site/anilandro

Avatar de Usuario
Anilandro
Mensajes: 4905
Registrado: Dom Feb 11, 2007 10:16 pm
Ubicación: Islas Baleares, España
Contactar:

Re: Arduineces y otras hierbas (UPP, Ultrasonic Pulse Positi

#374 Mensaje por Anilandro »

La idea que llamo UPP (Ultrasonic Pulse Position) es un triángulo equilátero de 3 m. de lado (aunque se podría aumentar sin problemas), con emisores de ultrasonidos E1, E2 y E3 en los vértices. Los pulsos estarían formados por frames de 5 ciclos de 40 Khz y la cobertura teórica mínima sería el círculo que engloba dicho triángulo...

Imagen


El proceso sería el siguiente:
1 ) El emisor E1 emite un frame de 5 ciclos de 40 Khz, con una duración de 125 uS.
2 ) Pausa de separación de 10 mS
3 ) El emisor E2 emite el mismo frame
4 ) Pausa de separación de 10 mS
5 ) El emisor E3 emite el frame
6 ) Pausa de separación de 10 mS
7 ) El emisor E1 vuelve a emitir el frame
8 ) Pausa de sincronismo de 32,7 mS
9 ) Se repite todo el ciclo

Toda esta secuencia cíclica estará generada por un único Arduino utilizando el Timer1, sin ninguna instrucción en el "loop()"

El receptor, equipado con otro Arduino, y situado en cualquier punto dentro del círculo que engloba los emisores recibirá los frames en secuencia E1, E2, E3 y E1, sin que por tiempo de transmisión nunca puedan cambiarse el orden o solaparse. El receptor deberá guardar el valor de tiempo absoluto en microsegundos del flanco del primer ciclo de cada frame.

La secuencia de captura también estará controlada por Timers, pero una vez obtenidos los tiempos desconectará la recepción y en el "loop()" calculará las diferencias E2-E1, E3-E2, E1-E3, datos que mediante cálculos de curvas hiperbólicas deberían permitir al receptor calcular sus coordenadas relativas a cualquiera de los emisores.

Continuará...

Saludos
La VIDA sólo es energía que ha aprendido a defenderse... (Anilandro)

*** La Web de Anilandro *** http://sites.google.com/site/anilandro

Avatar de Usuario
Anilandro
Mensajes: 4905
Registrado: Dom Feb 11, 2007 10:16 pm
Ubicación: Islas Baleares, España
Contactar:

Re: Arduineces y otras hierbas (UPP, Ultrasonic Pulse Positi

#375 Mensaje por Anilandro »

Ya tengo en marcha una versión del programa de generación de trenes de impulsos ultrasónicos para mi proyecto UPP (Ultrasonic Pulse Position). El programa es simple y funciona con el Timer-1 del Arduino, controlando 3 transductores que emiten en secuencia 4 trenes de pulsos de 40 Khz...

Imagen


La secuencia ISR es: el Emisor1 emite un frame de 5 ciclos a 40Khz, luego espera 10 mS. Luego el Emisor2 emite otro frame igual y espera 10 mS, el Emisor3 emite su frame y espera 10 mS, y finalmente el Emisor1 vuelve a emitir un frame y se espera 32 mS, reiniciando el ciclo...

Esta ISR no es demasiado compleja y la parte que tiene que ir rápida (cada 12,5 uS) tiene solamente tres instrucciones, así que cumple con el principio de brevedad. El resto va a 10 y 32,7 mS, y también le sobra tiempo para operar...

Continuará...

Saludos
La VIDA sólo es energía que ha aprendido a defenderse... (Anilandro)

*** La Web de Anilandro *** http://sites.google.com/site/anilandro

Avatar de Usuario
Anilandro
Mensajes: 4905
Registrado: Dom Feb 11, 2007 10:16 pm
Ubicación: Islas Baleares, España
Contactar:

Re: Arduineces y otras hierbas (UPP, Ultrasonic Pulse Positi

#376 Mensaje por Anilandro »

Debo reconocer que la puesta a punto de este programa hubiera sido muy difícil sin disponer de un analizador lógico Saleae, (en realidad un clónico del Saleae que se vende por 8 €) porque al principio ha costado que las señales salieran bien. En la imagen se ven los 5 ciclos de de 40 Khz de un "frame" ampliado, en concreto en el Emisor1...

Imagen


En esta otra imagen se ve la secuencia: Emisor1-10mS-Emisor2-10mS-Emisor3-10mS- otra vez el Emisor1-32 mS-, y reinicio de ciclo. Los pines de salida son E1 (Pin8), E2 (Pin9) y E3(Pin10). Los tiempos de 10 mS son para que las señales emitidas no se puedan solapar, y los 32 mS son para indicar al receptor que comienza un nuevo ciclo...

Imagen


En la siguiente imagen editada he añadido los tiempos de separación entre los frames...

Imagen


Continuará...

Saludos
La VIDA sólo es energía que ha aprendido a defenderse... (Anilandro)

*** La Web de Anilandro *** http://sites.google.com/site/anilandro

Avatar de Usuario
Anilandro
Mensajes: 4905
Registrado: Dom Feb 11, 2007 10:16 pm
Ubicación: Islas Baleares, España
Contactar:

Re: Arduineces y otras hierbas (UPP, Ultrasonic Pulse Positi

#377 Mensaje por Anilandro »

Lo que viene a continuación es puramente de hardware, estudiar los lóbulos de emisión y recepción de los transductores, así como la transmisión y amortiguamiento de ultrasonidos. Con el receptor fijo y el emisor móvil he obtenido la siguiente curva...

Imagen

Imagen


Para este proyecto voy a necesitar que los lóbulos de emisión sean mucho más anchos, al menos de unos 120º, y el de recepción tendrá que ser de 360º. Para conseguir estas características la idea es que los transductores trabajen en posición horizontal con los adecuados "espejos sonoros" situados sobre ellos. En el caso de los emisores llevarían un "espejo" semicircular convexo, y en el del receptor sería en forma de cono invertido. La primera prueba ha sido muy improvisada, doblando una pequeña pieza de plástico con los dedos y sin realizar ningún cálculo de forma, pero los cambios en el lóbulo ya son evidentes en la curva azul con respecto a la roja.

Imagen

Imagen


Continuará...

Saludos
La VIDA sólo es energía que ha aprendido a defenderse... (Anilandro)

*** La Web de Anilandro *** http://sites.google.com/site/anilandro

Avatar de Usuario
Anilandro
Mensajes: 4905
Registrado: Dom Feb 11, 2007 10:16 pm
Ubicación: Islas Baleares, España
Contactar:

Re: Arduineces y otras hierbas (UPP, Ultrasonic Pulse Positi

#378 Mensaje por Anilandro »

Al realizar estas pruebas de los transductores ultrasónicos se me ha ocurrido una breve experiencia que no tiene directamente que ver con el sistema UPP, si no más de forma didáctica en medir la longitud de onda y por tanto la frecuencia de los ultrasonidos utilizando un improvisado interferómetro hecho con un "prisma" de madera y una cajita de plástico...

Imagen


El funcionamiento es muy sencillo. En receptor de ultrasonidos está situado en ángulo recto con el emisor, y la señal le llega por dos caminos distintos. 1) desde el emisor rebotando en el prisma de madera, y desde el emisor, rebotando en la caja de plástico y el prisma de madera...

Imagen


...La señal resultante en el receptor será la suma de fases de ambas señales, y cuando nosotros desplazamos la caja de plástico sobre la regla graduada, estamos variando la longitud del este camino, lo cual producirá una secuencia de máximos y mínimos cada x mm. de desplazamiento. Sobre la regla, entre 9,6 y 3 cm. cuento 15 máximos de señal, lo cual me da una media de 4,4 mm. entre máximos. Teniendo en cuenta que el movimiento del "espejo" acorta el camino "rojo" el doble de su desplazamiento, la longitud de onda será del doble, 8,8 mm.

Imagen


Comprobando: 40Khz corresponden a un período de 0,000025 S (25 uS), y la velocidad del sonido es 331,4 + 0,61 x Tempº. A 30 Cº nos da 349,7 m/S y en mm. 349.700 mm/s. Por tanto la longitud de onda 349.700 x 0,000025 = 8,74 mm... y hemos medido 8,8, así que está bastante bien...

Un corto vídeo de la experiencia: https://t.co/bwIFxYgnLv

Continuará...

Saludos
La VIDA sólo es energía que ha aprendido a defenderse... (Anilandro)

*** La Web de Anilandro *** http://sites.google.com/site/anilandro

Avatar de Usuario
Anilandro
Mensajes: 4905
Registrado: Dom Feb 11, 2007 10:16 pm
Ubicación: Islas Baleares, España
Contactar:

Re: Arduineces y otras hierbas (UPP, Ultrasonic Pulse Positi

#379 Mensaje por Anilandro »

Mientras sigo trabajando con el hardware no debo descuidar el software. Ahora estoy con el programa receptor de los frames ultrasónicos, y en teoría creo que ya los leería y guardaría los tiempos entre frames, pero para probarlo necesitaré modificar el programa emisor...

La versión de "test" del emisor deberá olvidarse de la "capa física" de la comunicación por ultrasonidos y centrarse en la secuencia de señales digitales que llegarían al Arduino receptor...

La secuencia sería de cuatro señales de 125 uS separadas 10 mS entre ellas, y tras la última un tiempo de espera de 32,76 mS que actúa de sincronismo. Los tiempos de 10 mS han de poder variarse para simular distintas ubicaciones físicas del receptor con respecto a los emisores...

Ya tengo funcionando el programa de simulación para el emisor de señales. Al no tener que generar frames de 40Khz el código es más simple que el del emisor real. Una secuencia de 8 pasos crea las señales que una vez detectadas y filtradas llegarían al Arduino receptor...

Imagen


Comprobando la secuencia generada por este programa con el analizador lógico nos muestra los impulsos y los tiempos respectivos. En cuanto a los impulsos en sí, son todos iguales y miden 125 uS. Los tiempos de 10 mS podrán variarse desde el PC con código añadido en el "loop()"...

Imagen


Continuará...

Saludos
La VIDA sólo es energía que ha aprendido a defenderse... (Anilandro)

*** La Web de Anilandro *** http://sites.google.com/site/anilandro

Avatar de Usuario
Anilandro
Mensajes: 4905
Registrado: Dom Feb 11, 2007 10:16 pm
Ubicación: Islas Baleares, España
Contactar:

Re: Arduineces y otras hierbas (UPP, Ultrasonic Pulse Positi

#380 Mensaje por Anilandro »

Un nuevo pasito en el proyecto UPP. He puesto a funcionar un Arduino como emisor de señales, conectado directamente a otro Arduino como receptor. Aquí prescindo de la capa física de transmisión por ultrasonidos, y las señales pasan directamente sin "portadora" al Pin-2 del receptor...

Imagen


Tras un par de ajustes en el soft, echa a andar. El receptor lee perfectamente los tiempos de desfase de señales que he especificado en el emisor: T1 15740 que es irrelevante, T2=20000 que es el tiempo entre emisor 1 y 2, T3=20000, tiempo entre emisor 2 y 3, y T4=2001, tiempo entre emisor-3 y 1...

Imagen


Observo que las medidas oscilan entre 19999 y 20001, es decir, el valor central 20000 +/-1, lo cual arroja el insignificante error de lectura del 0,005%. Sin duda un buen sincronismo entre el programa codificador de señales de diferencia de tiempo y el decodificador... Aunque debo aclarar que el valor 20000 son pasos del contador del Timer1, que con el prescaler 8 equivalen a un tiempo real de 10,0001 mS. En mi sistema UPP, en teoría, un desplazamiento físico de 1 cm de receptor correspondería a una variación media de tiempo de 29,1 uS...

A la vez he descubierto que se pueden tener dos Arduinos conectados simultáneamente al mismo PC y sincronizados a dos ventanas del IDE con programas distintos. Así puedo cambiar los tiempos en el emisor y observar seguidamente como se refleja en la ventana serie del receptor...

Continuará...

Saludos
La VIDA sólo es energía que ha aprendido a defenderse... (Anilandro)

*** La Web de Anilandro *** http://sites.google.com/site/anilandro

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado