Cientificosaficionados.com

Los foros de los científicos aficionados de la red.
Fecha actual Dom Jun 07, 2020 4:46 am

Todos los horarios son UTC [ DST ]




Nuevo tema Responder al tema  [ 405 mensajes ]  Ir a página Anterior  1 ... 35, 36, 37, 38, 39, 40, 41  Siguiente
Autor Mensaje
NotaPublicado: Mié Ago 28, 2019 7:21 pm 
Desconectado
Avatar de Usuario

Registrado: Dom Feb 11, 2007 10:16 pm
Mensajes: 4905
Ubicación: Islas Baleares, España
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


Arriba
 Perfil  
 
NotaPublicado: Mié Ago 28, 2019 7:43 pm 
Desconectado
Avatar de Usuario

Registrado: Dom Feb 11, 2007 10:16 pm
Mensajes: 4905
Ubicación: Islas Baleares, España
...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


Arriba
 Perfil  
 
NotaPublicado: Jue Ago 29, 2019 8:08 am 
Desconectado
Avatar de Usuario

Registrado: Dom Feb 11, 2007 10:16 pm
Mensajes: 4905
Ubicación: Islas Baleares, España
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


Arriba
 Perfil  
 
NotaPublicado: Vie Ago 30, 2019 2:16 pm 
Desconectado
Avatar de Usuario

Registrado: Dom Feb 11, 2007 10:16 pm
Mensajes: 4905
Ubicación: Islas Baleares, España
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


Arriba
 Perfil  
 
NotaPublicado: Sab Ago 31, 2019 12:57 pm 
Desconectado
Avatar de Usuario

Registrado: Dom Feb 11, 2007 10:16 pm
Mensajes: 4905
Ubicación: Islas Baleares, España
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


Arriba
 Perfil  
 
NotaPublicado: Dom Sep 01, 2019 12:31 pm 
Desconectado
Avatar de Usuario

Registrado: Dom Feb 11, 2007 10:16 pm
Mensajes: 4905
Ubicación: Islas Baleares, España
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


Arriba
 Perfil  
 
NotaPublicado: Dom Sep 01, 2019 10:32 pm 
Desconectado
Avatar de Usuario

Registrado: Dom Feb 11, 2007 10:16 pm
Mensajes: 4905
Ubicación: Islas Baleares, España
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


Arriba
 Perfil  
 
NotaPublicado: Lun Sep 02, 2019 10:03 am 
Desconectado
Avatar de Usuario

Registrado: Dom Feb 11, 2007 10:16 pm
Mensajes: 4905
Ubicación: Islas Baleares, España
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


Arriba
 Perfil  
 
NotaPublicado: Mar Sep 03, 2019 12:05 am 
Desconectado
Avatar de Usuario

Registrado: Dom Feb 11, 2007 10:16 pm
Mensajes: 4905
Ubicación: Islas Baleares, España
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


Arriba
 Perfil  
 
NotaPublicado: Mar Sep 03, 2019 9:52 pm 
Desconectado
Avatar de Usuario

Registrado: Dom Feb 11, 2007 10:16 pm
Mensajes: 4905
Ubicación: Islas Baleares, España
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


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 405 mensajes ]  Ir a página Anterior  1 ... 35, 36, 37, 38, 39, 40, 41  Siguiente

Todos los horarios son UTC [ DST ]


¿Quién está conectado?

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


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro

Buscar:
Desarrollado por phpBB® Forum Software © phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com