Caracterizaci on e instrumentaci on de sensores de...

148
Universidad Polit ´ ecnica de Madrid Proyecto de fin de carrera Caracterizaci´ on e instrumentaci´on de sensores de ultrasonidos. Autor: Alberto Palacios Patr´on Tutor: D. C´ esar Briso Rodr´ ıguez 25 de junio de 2013

Transcript of Caracterizaci on e instrumentaci on de sensores de...

Page 1: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

Universidad Politecnica de Madrid

Proyecto de fin de carrera

Caracterizacion e instrumentacion desensores de ultrasonidos.

Autor:

Alberto Palacios Patron

Tutor:

D. Cesar Briso Rodrıguez

25 de junio de 2013

Page 2: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

PROYECTO FIN DE CARRERA PLAN 2000

E.U.I.T. TELECOMUNICACIÓN

RESUMEN DEL PROYECTO:

TEMA:

TÍTULO:

AUTOR:

TUTOR: Vº Bº.

DEPARTAMENTO:

Miembros del Tribunal Calificador:

PRESIDENTE:

VOCAL:

VOCAL SECRETARIO:

DIRECTOR:

Fecha de lectura:

Calificación: El Secretario,

CARACTERIZACIÓN E INSTRUMENTACIÓN DE SENSORES DE ULTRASONIDOS

CARACTERIZACIÓN E INSTRUMENTACIÓN DE SENSORES DE ULTRASONIDOS

ALBERTO PALACIOS PATRÓN

CÉSAR BRISO RODRÍGUEZ

MAGDALENA GONZÁLEZ MARTÍN

CÉSAR BRISO RODRÍGUEZ

CARLOS CORTÉS ALCALÁ

JULIO 2013

DIAC

En este proyecto se va a proceder al desarrollo de un sónar de barrido lateral y se van a abordar doscampos:

1- La caracterización de los sensores de ultrasonidos , obteniendo sus lóbulos de cobertura ycaracterísticas básicas para su posterior simulación y manejo.

2- Instrumentación de manejo de dichos sensores e interpretación de la información suministrada porellos.

Una vez conseguido el modelado teórico de los sensores, se realizará una simulación del conjuntoelectrónica de adaptación-transductor a través del uso de varios generadores de señal que seránempleados en la calibración y testeo del software, sin necesidad de construir fisicamente los bloquessimulados. La obtención de la información de los sensores se realizaría a través de una tarjeta de adquisición queenviará los datos a un PC, la información será tratada e interpretada por una aplicación que mostrará laimagen correspondiente en tiempo real, sea la del fondo marino o las correspondientes a las señales detesteo.

Page 3: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

Agradecimientos

Este proyecto de fin de carrera, si bien ha requerido de esfuerzo y dedicacion

por parte del autor y su tutor, D. Cesar Briso Rodrıguez, no hubiese sido posible

su finalizacion sin el apoyo incondicional de todas y cada una de las personas que

estuvieron conmigo a lo largo de esta andadura y muchas de las cuales han sido un

soporte imprescindible en momentos de fustracion y agotamiento.

En primer lugar agradecer la paciencia y buen hacer de mi tutor en el desarrollo

de este proyecto, con altibajos , atascos y problemas inesperados, que gracias a su

buen caracter y amplia experiencia hemos conseguido superar juntos. Gracias Cesar

por haber confiado en mi y haberme brindado la oportunidad de trabajar junto a ti,

por haberme ensenado importantes lecciones y aprender a tener la mente abierta a

todas las posibles soluciones de un mismo problema, ya que esta no suele ser unica

y absoluta, ni mucho menos. Gracias tambien por tu comprension ante la dificultad

de compatibilizar un trabajo bastante absorvente con la finalizacion de mis estudios,

con las dificultades y demoras que ello ha conllevado. Por todo esto te estare siempre

agradecido de corazon.

iii

Page 4: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

iv

Por otra parte tambien quisiera agradecer muy especialmente a mi familia el

apoyo que me han dado, a todos y cada uno de vosotros gracias, ya que sin vosotros

no serıa quien soy, ni como soy. Gracias a mis abuelos, Miguel, Catalina, Francisco

y Manuela, que con sus grandes sacrificios y sus lecciones de humildad sembraron la

semilla del esfuezo y la superacion en mi, iluminando mi camino con vuestro ejemplo

de sacrificio, porque vuestra vida no fue facil, ya que os vısteis obligados a abandonar

el colegio, siquiera habiendolo empezado, para contribuir en casa, trabajando en unas

condiciones de absoluta dureza desde la mas tierna ninez, sin quejas y sin lamentos,

con valor y fortaleza, solo espero que alguna vez llegueis a sentir por mi una mınima

parte del orgullo que siento yo de ser vuestro nieto.

Gracias a mis padres, Antonio y Marıa, por no haber puesto nunca traba a mis

suenos, sino todo lo contrario, habeis alimentado mi sed de conocimiento, habeis he-

cho todo lo posible para fomentar en mi el afan por el descubrimiento, el conocimien-

to y esa curiosidad innata que de vostros herede. Gracias papa, por ese abrazo y la

expresion de ilusion y felicidad que resulto en tu cara cuando te dije que finalmente

irıa a la universidad, en momentos duros me hicieron retomar fuerzas y volver a la

tarea, ya que solo por esa ilusion valıa la pena cualquier sacrificio, gracias a la moti-

vacion, apoyo y el gran ejemplo que me has dado he conseguido llegar al final de este

camino con exito. Gracias mama por esas charlas en las que podıa desahogar mis

angustias y compartir mis alegrıas y que me hacıan, y hacen, sentir completamente

arropado y comprendido, por tu carino sin condiciones, en buenos y malos momentos,

por tus opiniones, siempre acertadas y cargadas de razon y logica, siempre mirando

por lo mejor para mi, aunque alguna vez me costase reconocerlo.

Page 5: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

v

Gracias a mi hermana, Raquel, por el ejemplo y el amor que siempre me has

ofrecido de la forma mas desinteresada, pese a discusiones y enfados tıpicos entre

hermanos, tu siempre has estado ahı, contra viento y marea, siempre ahı, para lo

que necesitase, incondicionalmente, sin reproches ni juicios, siempre he sabido que

podıa contar contigo porque siempre, desde que tengo uso de razon, has cuidado de

mi y me has hecho sentir querido, como buenısima hermana mayor que eres.

Gracias a mis tıos, Miguel, Pilar, Clara y Manuel, por vuestro constante interes

y apoyo, por vuestras alegrıas con mis avances y vuestras inyecciones de moral en

mis atolladeros, siempre habeis tenido una buena palabra, un buen gesto, un beso o

un abrazo dados desde el corazon que han sabido reconfortarme.

Gracias a mis primos, Desiree, Ruben, Patricia, Cintia y Celia, con vuestro carino

y alegrıa muchas veces aliviasteis mi tristeza, solo con vuestra frescura y espontanei-

dad me hicisteis olvidar los problemas pendientes.

Para terminar, quisiera recordar a los companeros y amigos, algunos anteriores

a mi paso por la universidad, otros conocidos durante mi epoca de estudio o en el

trabajo. A los amigos de toda la vida, Marcos, Mario, Molano, Pablo, Marta, Inaki,

Pedro, Nacho, Edu, Javi, Fran, Miguel, Jose Antonio, Alberto... y un largo etcetera,

a Patricia, mi pareja, gracias, sin vosotros habrıa un vacıo imposible de llenar, ya

que mi aprecio y carino por vosotros, como el universo, es infinito.

Page 6: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

vi

Todos los companeros de la asociacion de sonido, Pablo, Javi, Alex, Matıas, Dani,

Alberto, Montes, Edu, Carlos, Marıa, Paula, Laura, Ruso... etc. , de la asociacion de

radio, David, Armando y Juan... y de la asociacion de fotografıa, Quique y Alvaro,

a companeros de laboratorio y de clase, especialmente Angel Luis, Raquel, Ernesto,

Jaime y Ruben, a los companeros de informatica, Angel, Andres, Aurora, Alejandro,

Fernando, Juan Carlos... a todos vosotros gracias por los momentos de evasion, por

vuestra paciencia en momentos de tension, las charlas en los descansos, los cigarros

entre clases, las ayudas que me habeis ofrecido desinteresadamente, los buenos ratos

en el futbol, todo lo que he aprendido de y con vosotros y sencillamente por vuestra

amistad.

A los companeros de trabajo, Pedro, Goni, Paco, Palomeque, Finistrosa, Palma,

Mingo, Llamas, Jorge, Isma, Carlitos, Cefe, Colomer, David, Guillermo, Rodri, Javi,

Alex... Por haberme ayudado hasta el punto de hacer parte de mi trabajo para que

tuviese mas tiempo para estudiar en epocas de examenes, por motivarme a seguir y

a no acomodarme pese a tener un trabajo estable.

Gracias a todos por haber hecho de mi, lo que soy a dıa de hoy.

Page 7: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

vii

El desacuerdo entre los suenos y la realidad no produce dano alguno, siempre que la

persona que suena crea seriamente en su sueno, se fije atentamente en la vida, compare

sus observaciones con sus castillos en el aire y, en general, trabaje escrupulosamente

en la realizacion de sus fantasıas.

—Vladimir Ilich Ulianov

Al buscar lo imposible, el hombre siempre ha realizado y reconocido lo posible.

Aquellos que sabiamente se han limitado a lo que creıan posible, jamas han dado un

paso adelante.

—Mikhail Alexandrovich Bakunin

Los filosofos no han hecho mas que interpretar diversamente el mundo, ahora se

trata de cambiarlo. —Karl Heinrich Marx

Lo que la humanidad observa en el hombre moral es su energıa plena de vida, que

le empuja a dar su inteligencia, sus sentimientos y sus actos, sin pedir nada a cambio.

—Piort Alekseyevich Kropotkin

Page 8: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

Resumen

El proposito de este proyecto de fin de carrera es la caracterizacion e instru-

mentacion de un sensor de ultrasonidos modelado por el tutor de este proyecto: Don

Cesar Briso Rodrıguez.

Una vez realizado el modelado de dicho sensor, simulando tanto sus caracterısti-

cas fısicas, como sus caracterısticas electricas, se procede a la intrumentacion y uso

del mismo. La parte de intrumentacion incluye tanto la electronica que serıa nece-

saria para la excitacion del piezoelectrico, en el modo de emision, como para la

recepcion de los pulsos electricos generados por el sensor, como respuesta a los ecos

recibidos, y su adecuacion a niveles de senal correctos para la adquisicion, en el modo

de escucha.

Tras la adecuacion de las senales para la adquisicion, estas seran digitalizadas,

tratadas y representadas por pantalla en un PC, a traves de una tarjeta de adquisi-

cion de datos por puerto USB encargada del muestreo de las senales de respuesta ya

tratadas y su posterior envıo al software de control y representacion desarrollado en

este proyecto. El entorno de usuario, el software de control de la tarjeta de adquisi-

cion y el software de tratamiento y representacion se ha desarrollado con Visual

Basic 2008 y las utilidades graficas de las librerıas OpenGL.

ix

Page 9: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

Abstract

The purpose of this project is to limit the characterization and implementation of

an ultrasonic sensor modeled by Mr. Cesar Briso Rodrıguez.

Once the sensor modeling by simulating physical characteristics and electrical

characteristics, we proceed to the instrumentation and use. This section includes

electronic instrumentation that would be necessary for the piezoelectric excitation

in the emission mode and for receiving electrical pulses generated by the sensor in

response to the received echoes, and matching signal levels right to acquire, in the

reception mode.

After the adjustment of the signals for the acquisition, these signals will be digi-

talized, processed and represented on the screen on a PC through a data acquisition

card by USB port. Acquisition card is able to sample the response signals and trans-

mit the samples to representation and control software developed in this project. The

user interface, the acquisition card control software and processing and representa-

tion software has been developed with Visual Basic 2008 and OpenGL graphical

libraries.

i

Page 10: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

xi

Dedicado a mi familia y amigos por su firme apoyo en los

buenos y malos momentos. Muchas gracias por estar siempre a

mi lado. . .

Page 11: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

xii

Page 12: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

Indice general

Agradecimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii

Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix

Indice de figuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xx

Indice de tablas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi

Indice de acronimos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv

1. Introduccion 1

1.1. Sistemas de alta resolucion . . . . . . . . . . . . . . . . . . . . . . . 3

1.1.1. Sonar multibeam . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.1.2. Sonar de barrido lateral . . . . . . . . . . . . . . . . . . . . . 7

1.1.3. Sistemas comerciales de sonares Side-scan . . . . . . . . . . . 8

1.2. Sistemas sonar de barrido lateral . . . . . . . . . . . . . . . . . . . . 10

xiii

Page 13: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

xiv INDICE GENERAL

1.2.1. Arquitectura general . . . . . . . . . . . . . . . . . . . . . . . 10

1.2.2. Arquitectura del sistema desarrollado . . . . . . . . . . . . . 11

2. Sistemas sonar 13

2.1. Sistemas estandar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.2. Side-scan Sonar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.3. Sistemas comerciales de sonares Side-scan . . . . . . . . . . . . . . . 23

3. Equipo de adquisicion 27

3.1. Sistema sonar de barrido lateral . . . . . . . . . . . . . . . . . . . . . 33

3.1.1. Tarjeta de adquisicion . . . . . . . . . . . . . . . . . . . . . . 33

3.1.2. Electronica de adaptacion . . . . . . . . . . . . . . . . . . . . 41

3.2. Transductores de ultrasonidos . . . . . . . . . . . . . . . . . . . . . . 44

3.3. Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

3.3.1. Librerıa iUSBDAQ.dll . . . . . . . . . . . . . . . . . . . . . . 52

3.3.2. Librerıa OpenGL . . . . . . . . . . . . . . . . . . . . . . . . . 69

3.3.3. Librerıas Tao . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

3.3.4. Sofware de control . . . . . . . . . . . . . . . . . . . . . . . . 74

Page 14: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

INDICE GENERAL xv

4. Resultados y medidas 81

5. ANEXO 97

5.1. Codigo comentado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

Page 15: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

xvi INDICE GENERAL

Page 16: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

Indice de figuras

1.1. Esquema de funcionamiento. . . . . . . . . . . . . . . . . . . . . . . 4

1.2. Sonar multihaz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.3. Imagen sonar multihaz. . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.4. Imagen sonar multihaz. . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.5. Imagen sonar multihaz. . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.6. Imagen sonar multihaz. . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.7. Esquema de funcionamiento. . . . . . . . . . . . . . . . . . . . . . . 7

1.8. Sonar de barrido lateral EG & G. . . . . . . . . . . . . . . . . . . . . 7

1.9. Ejemplo de imagen obtenida por un sistema de barrido lateral. . . . 8

1.10. Ejemplo de sitema comercial de sonar Side-scan. . . . . . . . . . . . 9

1.11. Modelo 872 SideScan (YellowFin) de Imagenex. . . . . . . . . . . . . 9

xvii

Page 17: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

xviii INDICE DE FIGURAS

1.12. Diagrama de bloques de un sistema generico. . . . . . . . . . . . . . 10

1.13. Diagrama de bloques del sistema desarrollado. . . . . . . . . . . . . . 11

2.1. Influencia de las variaciones de velocidad y trayectoria en la imagen. 20

2.2. Esquema del torpedo de transductores. . . . . . . . . . . . . . . . . . 20

2.3. Influencia de los movimientos de los transductores en la imagen. . . 21

2.4. Modelo 872 SideScan (YellowFin) de Imagenex. . . . . . . . . . . . . 23

2.5. Electronica de adaptacion estandar. . . . . . . . . . . . . . . . . . . 25

2.6. Imagen generada por el sistema. . . . . . . . . . . . . . . . . . . . . 26

3.1. Diagrama de bloques del sistema completo. . . . . . . . . . . . . . . 28

3.2. Esquema de emision de los transductores. . . . . . . . . . . . . . . . 29

3.3. Esquema de ecos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.4. Tarjeta HYTEK iUSBDAQ-U120816. . . . . . . . . . . . . . . . . . . 33

3.5. Diagrama interno de la tarjeta HYTEK iUSBDAQ-U120816. . . . . 35

3.6. Ejemplo de esquema de electronica de adaptacion. . . . . . . . . . . 41

3.7. Posible esquema de bloques de electronica de adaptacion. . . . . . . 42

3.8. Circuito equivalente a un transductor. . . . . . . . . . . . . . . . . . 48

Page 18: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

INDICE DE FIGURAS xix

3.9. Lobulos de cobertura de los transductores. . . . . . . . . . . . . . . . 51

3.10. Pantalla al inicio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

3.11. Diagrama de flujo general. . . . . . . . . . . . . . . . . . . . . . . . . 75

3.12. Diagrama de flujo del bucle de obtencion y representacion de muestras. 76

4.1. Sistema de prueba completo. . . . . . . . . . . . . . . . . . . . . . . 82

4.2. Senal de Trigger. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

4.3. Generador de senal muestreada: onda cuadrada, 25 Hz. . . . . . . . . 84

4.4. Pantalla del osciloscopio: onda cuadrada, 25 Hz y Trigger. . . . . . . 84

4.5. Generador de senal muestreada: onda senoidal, 25 Hz. . . . . . . . . 85

4.6. Pantalla del osciloscopio: onda senoidal, 25 Hz y Trigger. . . . . . . . 85

4.7. Pantalla al inicio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

4.8. Pantalla al inicio con tarjeta conectada. . . . . . . . . . . . . . . . . 87

4.9. Representacion de una onda cuadrada a 10 m de profundidad. . . . . 88

4.10. Representacion de una onda cuadrada a 20 m de profundidad. . . . . 89

4.11. Representacion de una onda cuadrada a 40 m de profundidad. . . . . 89

4.12. Representacion de una onda cuadrada a 60 m de profundidad. . . . . 90

Page 19: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

xx INDICE DE FIGURAS

4.13. Representacion de una onda cuadrada a 80 m de profundidad. . . . . 90

4.14. Representacion de una onda sinusoidal a 10 m de profundidad. . . . 91

4.15. Representacion de una onda sinusoidal a 20 m de profundidad. . . . 92

4.16. Representacion de una onda sinusoidal a 40 m de profundidad. . . . 92

4.17. Representacion de una onda sinusoidal a 60 m de profundidad. . . . 93

4.18. Representacion de una onda sinusoidal a 80 m de profundidad. . . . 93

4.19. Parar representacion de una onda cuadrada. . . . . . . . . . . . . . . 94

4.20. Parar representacion de una onda sinusoidal. . . . . . . . . . . . . . 94

4.21. Carga de imagen de senal sinusoidal a 60 m desde fichero. . . . . . . 95

Page 20: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

Indice de cuadros

2.1. Relacion entre frecuencia y alcance. . . . . . . . . . . . . . . . . . . . 14

2.2. Espectro de frecuencias. . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.3. Especificaciones del sistema. . . . . . . . . . . . . . . . . . . . . . . . 24

3.1. Calculos previos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.2. Descripcion de pines de la tarjeta. . . . . . . . . . . . . . . . . . . . 36

3.3. Relacion entre el numero de canales, Src maximo y Srt maximo. . . 38

xxi

Page 21: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

xxii INDICE DE CUADROS

Page 22: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

Indice de acronimos

USB Universal Serial Bus (Bus serie universal)

PC Personal Computer (Ordenador personal)

OpenGL Open code Graphic Library (Librerıa grafica de codigo abierto)

GLSL Graphic Library Shading Language (Lenguaje de sombreado de la

librerıa grafica)

Ksps Kilosamples per second (Miles de muestras por segundo)

PWM Pulse Width Modulation (Modulacion de ancho de pulso)

SPI Serial Port Interface (Interfaz puerto serie)

ADC Analog to Digital Converter (Conversor analogico digital)

CMOS Complementary Metal-Oxide Semiconductor (Semiconductor

complementario metal-oxido)

TTL Transistor-Transistor Logic (Logica transistor-transistor)

API Application Programing Interface (Interfaz de programacion de

aplicaciones)

xxiii

Page 23: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

xxiv INDICE DE ACRONIMOS

EEPROM Electrically Erasable Programable Read Only Memory (Memoria de solo

lectura borrable y programable electricamente)

SNR Signal to Noise Ratio (Relacion senal/ruido)

GPS / DGPS Global Positioning System / Differential Global Positioning System

(Sistema de posicionamiento global / Sistema de posicionamiento global

diferencial)

Page 24: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

Capıtulo 1

Introduccion

Los sistemas sonar son una familia muy variada sistemas adecuados a distintos

usos finales, con usos tales como la deteccion de bancos de peces, estudio de la

orografıa del fondo marino, deteccion de erupciones volcanicas submarinas, etc.

La principal diferenciacion entre este tipo de sistemas es entre los sonares pasivos,

no emiten sonido, captan sonidos emitidos en el medio, como pueden se erupciones

submarinas, ballenas u otros barcos, y los sonares activos, los cuales emiten sonido

y ”escuchan” despues los ecos producidos por las emisiones al chocar con los objetos

que se encuentren en su area de cobertura.

Dentro de la familia de sonares activos tambien podemos diferenciar distintos

tipos de sistemas, entre ellos Echo Sounder, sonares pesqueros, sonares de barrido

lateral o sonares multihaz, siendo destacables entre ellos los dos ultimos por su

precision.

1

Page 25: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

2 CAPITULO 1. INTRODUCCION

La arquitectura en la que se ha basado el proyecto es la de los sonares

Side-scan, explicados en mayor profundidad en el siguiente capıtulo, exponiendo fac-

tores a tener en cuenta como son las posibles distorsiones de la imagen, limitaciones

de alcance y resolucion, equipo necesario y procesado de informacion.

El objetivo de este proyecto es conseguir procesar en un ordenador la informa-

cion conseguida a traves de la tarjeta de adquisicion de datos USB 2.0, HYTEK

iUSBDAQ U120816, conectada a un transductor de ultrasonidos, siendo la utilidad

del proyecto, el desarrollo de un sonar para visionado de fondos marinos controlado

por PC a traves de la ya mencionada tarjeta de adquisicion, la cual recibe informa-

cion del transductor de ultrasonidos. Para el uso correcto, por parte de la tarjeta,

necesitan ser adecuados tanto los pulsos de disparo para la sincronizacion como los

pulsos de respuesta del sensor a niveles de senal dentro del margen dinamico de la

tarjeta de adquisicion, por ello entre la tarjeta y el sensor encontramos la electronica

de acondicionamiento.

La electronica de acondicionamiento es empleada para adaptar los niveles electri-

cos y establecer la sincronizacion entre la tarjeta y por tanto el PC, y los sensores,

transformando las senales de respuesta de los sensores a niveles electricos dentro del

margen dinamico de la tarjeta, ademas de generar el tren de pulsos de excitacion

de los piezoelectricos para que comiencen a emitir ultrasonidos y que a su vez sirve

de senal de arranque para el muestreo de la tarjeta a las senales generadas por el

transductor tras recibir los ecos que se producen.

Una vez que las senales llegan a la tarjeta, procedentes del sensor, con nivel de

senal y sincronizacion adecuados por el sistema de acondicionamiento, la tarjeta se

encarga de la digitalizacion y posterior envıo de las senales muestreadas al sofware

de control a traves del puerto USB del PC al que esta conectada.

Page 26: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

1.1. SISTEMAS DE ALTA RESOLUCION 3

La obtencion de datos se realiza desde el programa principal a traves de las fun-

ciones de manejo de la tarjeta que estan implementadas en la librerıa iUSBDAQ.dll,

aportada por el fabricante, y que son empleadas por el software de control y procesa-

do. Una vez tratadas las muestras, se representaran por pantalla, haciendo uso de las

utilidades graficas de las librerıas OpenGL, a traves de las cuales se iran conformando

las imagenes a partir de los datos recibidos y tratados. Ademas de la representacion,

se produce un guardado automatico de los datos en fichero para la conservacion de

la informacion y poder ası volver a revisar las imagenes posteriormente.

1.1. Sistemas de alta resolucion

Estos tipos de sistemas sonar son destacables debido a la alta resolucion de

imagen que pueden conseguir obteniendo imagenes de alta calidad y gran detalle de

la zona explorada. Los mas destacables son los expuestos a continuacion.

1.1.1. Sonar multibeam

Sonar multihaz, es un sistema sonar que al tener varios transductores genera

haces de ondas que dan una franja mas amplia como area de cobertura, guardando

posicion y profundidad. El inconveniente es que este tipo de sonares han de ser cor-

regidos y ajustados en movimiento, estos ajustes pueden ser necesarios debido a la

velocidad de la embarcacion, corrientes o profundidad del objetivo y evitaran distor-

siones en la imagen. Puede llegar a dar hasta un 100 % de cobertura, no habra zonas

de sombra, pero sus inconvenientes son el alto coste tanto economico como de proce-

sado, debido a la cantidad ingente de informacion.

Page 27: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

4 CAPITULO 1. INTRODUCCION

Figura 1.1: Esquema de funcionamiento.

Figura 1.2: Sonar multihaz.

Page 28: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

1.1. SISTEMAS DE ALTA RESOLUCION 5

Figura 1.3: Imagen sonar multihaz.

Figura 1.4: Imagen sonar multihaz.

Page 29: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

6 CAPITULO 1. INTRODUCCION

Figura 1.5: Imagen sonar multihaz.

Figura 1.6: Imagen sonar multihaz.

Page 30: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

1.1. SISTEMAS DE ALTA RESOLUCION 7

1.1.2. Sonar de barrido lateral

Sonar de barrido lateral, uno de los principales sistemas de sonar, los trans-

ductores se portan en un torpedo remolcado por la embarcacion, esto posibilita el

escaneado de las dos areas laterales del torpedo, cada una por un transductor. Existe

tambien la opcion de portar los sensores en el casco del barco. Al ser la arquitec-

tura de sonar en la que se ha basado este proyecto entraremos en mas detalle y

aplicaciones en el siguiente capıtulo.

Figura 1.7: Esquema de funcionamiento.

Figura 1.8: Sonar de barrido lateral EG & G.

Page 31: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

8 CAPITULO 1. INTRODUCCION

Figura 1.9: Ejemplo de imagen obtenida por un sistema de barrido lateral.

1.1.3. Sistemas comerciales de sonares Side-scan

En la figura 1.10 podemos ver un ejemplo comercial de sonar Side-scan del

fabricante Klein, en el que se toma consciencia de lo practico que puede resultar este

tipo de equipos en cuanto a portabilidad y versatilidad se refiere, ya que podemos

modificar o sustituir alguno de sus componentes de manera modular sin tener que

cambiar el sistema completo, ademas de que en comparacion con otros, este tipo de

equipos son facilmente transportables, al no ser equipos estaticos empotrados con el

resto de sistemas de navegacion en las consolas de control del navıo.

Page 32: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

1.1. SISTEMAS DE ALTA RESOLUCION 9

Figura 1.10: Ejemplo de sitema comercial de sonar Side-scan.

La siguiente imagen muestra el sistema comercial de Imagenex modelo 872

SIDESCAN (YellowFin), este sistema sera descrito en el siguiente capıtulo.

Figura 1.11: Modelo 872 SideScan (YellowFin) de Imagenex.

Page 33: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

10 CAPITULO 1. INTRODUCCION

1.2. Sistemas sonar de barrido lateral

En este apartado se mostraran los diagramas de bloques tanto de un sistema

de sonar de barrido lateral estandar y el correspondiente al diseno realizado en este

proyecto de fin de carrera.

1.2.1. Arquitectura general

Figura 1.12: Diagrama de bloques de un sistema generico.

Page 34: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

1.2. SISTEMAS SONAR DE BARRIDO LATERAL 11

1.2.2. Arquitectura del sistema desarrollado

Figura 1.13: Diagrama de bloques del sistema desarrollado.

Page 35: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

12 CAPITULO 1. INTRODUCCION

Page 36: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

Capıtulo 2

Sistemas sonar

2.1. Sistemas estandar

Este capıtulo abordara la descripcion de los sitemas sonar existententes haciendo

especial hincapie en los sonares de barrido lateral, en los cuales se ha basado el diseno

de este proyecto de fin de carrera.

En primer lugar, la frecuencia del sonido emitido, es un factor muy importante para

este tipo de sistema ya que nos dara las limitaciones de nuestro sistema tanto en

alcance como en resolucion, el rango tıpico de frecuencias oscila entre 100 kHz y

500 kHz, siendo mayor la resolucion a mayores frecuencias pero perdiendo alcance

y viceversa reduciendo la frecuencia del sonido emitido mejoramos el alcance pero

reducimos la resolucion obtenida, por ejemplo, con una frecuencia de 100 kHz el

alcance oscila entre los 200 metros y los 300 metros con una resolucion maxima de

0,15 metros, sin embargo con una frecuencia de 500 kHz el alcance se reduce a unos

75 metros pero con una resolucion mucho mayor de imagen.

13

Page 37: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

14 CAPITULO 2. SISTEMAS SONAR

En las siguientes tablas podemos observar la relacion entre frecuencia y alcance

maximo, en la tabla 2.1 y el espectro de frecuencias cubierto por las distintas apli-

caciones sonar, en la tabla 2.2 .

Cuadro 2.1: Relacion entre frecuencia y alcance.

Cuadro 2.2: Espectro de frecuencias.

Page 38: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

2.1. SISTEMAS ESTANDAR 15

Para modelar matematicamente el sistema de sonar y estimar las senales recibidas,

se emplean una serie de ecuaciones dependientes de las variables que afectaran al

sistema, tales como la ecuacion de relacion senal ruido (SNR), que determina cuando

el sonar sera capaz de distinguir los ecos de informacion del ruido ambiente oceanico,

el nivel de senal de la fuente, la dispersion del sonido, absorcion del sonido o aten-

uacion en el medio, perdidas de reflexion y refraccion y las propias caracterısticas

del receptor. La ecuacion del sonar nos da el valor de la relacion senal ruido que

tendremos en funcion de los demas parametros, esta ecuacion es diferente para las

distintas familias de sonar, de las cuales podemos diferenciar entre dos:

1. Sonar Pasivo - El sonar pasivo no emite sonido alguno, actua meramente co-

mo receptor de sonidos generados por elementos marinos, tales como ballenas,

volcanes submarinos, vehıculos submarinos u otros barcos. Sus componentes

basicos son los siguientes:

a) Transductor / Hidrofono -El Hidrofono serıa el equivalente subacuatico

del microfono, el hidrofono mide las variaciones de presion producidas por

las ondas que se propagan por el agua.

b) Receptor - Equipo que interpreta la informacion recibida a traves del

transductor, que la adapta e interpreta antes de reproducirla a traves del

altavoz o del monitor.

c) Amplificador - Etapa de amplificacion de la senal recibida del hidrofono,

aumentando y adecuando la senal para su posterior reproduccion a traves

del altavoz o del monitor.

d) Altavoz / Monitor - Es la interfaz con el usuario en la cual se repro-

duciran los datos adquiridos ya sea a traves de senales acusticas (altavoz)

o a traves de imagenes (monitor).

Page 39: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

16 CAPITULO 2. SISTEMAS SONAR

e) Grabadora de datos

f ) Ecuacion de sonar - La relacion senal ruido para este tipo de sonares

queda definida en la siguiente ecuacion:

SNR = SL-TL-(NL-AG) dB (Decibelios)

Correspondiendose estos terminos con:

1) SL - Source level (Nivel de la fuente)

2) TL - Transmission loss (Perdidas de transmision)

3) NL - Noise level (Nivel de ruido en el receptor)

4) AG - Array gain (Ganancias del array de transductores)

2. Sonar Activo - El sonar activo si emite sonido, emite un pulso y

posteriormente realiza la escucha de los ecos producidos al chocar las ondas

con la superficie del objetivo, actuando el transductor como emisor y receptor.

Sus componentes basicos son los siguientes:

a) Generador de frecuencia - Generara el tren de pulsos de excitacion

del transductor en el modo de emision.

b) Conmutador Emision / Recepcion - Seleccionara el modo de fun-

cionamiento, emision o recepcion en el que se esta utilizando el transduc-

tor, alternandolos entre si para emitir el pulso y posteriormente escuchar

los ecos.

c) Transductor - Es el emisor/receptor del sistema, sera el generador de

las ondas acusticas y a su vez el receptor de los ecos.

Page 40: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

2.1. SISTEMAS ESTANDAR 17

d) Receptor - Equipo que interpreta la informacion recibida a traves del

transductor, que la adapta e interpreta antes de reproducirla a traves del

altavoz o del monitor.

e) Bases de tiempo - Son los tiempos que han de respetarse para el

correcto funcionamiento del sistema, condicionan por ejemplo los limites

de funcionamiento del generador de frecuencia.

f ) Altavoz / Monitor - Es la interfaz con el usuario en la cual se repro-

duciran los datos adquiridos ya sea a traves de senales acusticas (altavoz)

o a traves de imagenes (monitor).

g) Objetivo - Elemento que producira los ecos de respuesta al recibir la

incidencia del haz de ondas.

h) Ecuacion de sonar - La relacion senal ruido para este tipo de sonares

queda definida en la siguiente ecuacion:

SNR = SL-2TL+TS-(NL-AG) dB (Decibelios)

Correspondiendose estos terminos con:

1) SL - Source level (Nivel de la fuente)

2) TL - Transmission loss (Perdidas de transmision)

3) TS - Target strength (Fuerza del objetivo)

4) NL - Noise level (Nivel de ruido en el receptor)

5) AG - Array gain (Ganancias del array de transductores)

Ahora atenderemos a la clasificacion de los principales equipos de sonar:

1. Echo-Sounder y Fish Finder - Sonar de sonda acustica y sonar localizador

de peces, son dispositivos portatiles montados sobre el casco del barco,

Page 41: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

18 CAPITULO 2. SISTEMAS SONAR

tanto el equipo de representacion como los propios transductores. El haz de

ondas tıpico para este tipo de sonares es aproximadamente conico, teniendo

el vertice del cono en los transductores y la base sobre el fondo marino. Son

empleados tanto en localizacion de peces como para analizar la composicion

de las capas de lecho marino.

2. Fisheries SONAR - Sonar pesquero o de escaneado por sectores (Sector

scan sonar), son dispositivos empleados en la localizacion de bancos de peces.

Su principal caracterıstica es que el transductor debe estar sumergido antes

de comenzar el escaneado, dentro de una capsula, pudiendo esta ademas rotar

tanto vertical como horizontalmente, para realizar ası el escaneado por sectores,

proyectando el haz de ultrasonidos por el area a escanear.

3. Side-scan SONAR (SSS) - Sonar de barrido lateral, uno de los principales

sistemas de sonar, los transductores se portan en un torpedo remolcado por la

embarcacion, esto posibilita el escaneado de las dos areas laterales del torpedo,

tambien existe la opcion de portar los sensores en el casco del barco. Al ser la

arquitectura de sonar en la que se ha basado este proyecto entraremos en mas

detalle y aplicaciones en el siguiente punto de este capıtulo.

4. Multibeam SONAR (MBS) - Sonar multihaz, al tener varios haces de

ondas da una franja mas amplia como area de covertura, guardando posicion y

profundidad, el inconveniente es que este tipo de sonares han de ser corregidos

y ajustados en movimiento, estos ajustes pueden ser necesarios debido a la

velocidad de la embarcacion, corrientes o profundidad del objetivo y evitaran

distorsiones en la imagen. Puede llegar a dar hasta un 100 % de cobertura,

no habra zonas de sombra, pero sus inconvenientes son el alto coste tanto

economico como de procesado, debido a la cantidad ingente de informacion.

Page 42: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

2.2. SIDE-SCAN SONAR 19

2.2. Side-scan Sonar

Este es el modelo de equipo de sonar que se ha tomado para el desarrollo de

este proyecto, ahora procederemos a describir esta tecnologıa y sus aplicaciones mas

comunes.

Desarrollado por el profesor Harold Edgerton entre otros en 1960, es considerado uno

de los sistemas mas precisos para la exploracion y representacion de zonas extensas

de fondo oceanico. Los rangos de frecuencia de los pulsos de sonido oscilan entre

los 100 kHz y los 500 kHz, sucediendo como ya explicamos que a mayor frecuencia

mayor resolucion de imagen pero menor alcance efectivo y viceversa.

El funcionamiento y componentes basicos del sonar Side-scan son los siguientes:

Sensores de ultrasonidos montados de tal forma que transmiten un haz de ondas

que cubren el area desde la perpendicular del sensor hasta la cobertura maxima, a

cada lado de la embarcacion, esta cobertura viene limitada por la frecuencia, tal y

como relfeja la tabla 2.1 , la potencia y diseno del transductor. Los ecos reflejados

por el fondo marino y captados por el transductor son grabados en cada ciclo, for-

mando ası una serie de datos de amplitud respecto al tiempo a los que se suman

la informacion de la posicion del barco, obtenida por GPS/DGPS, la velocidad de

propagacion del sonido en el agua marina y la profundidad. Las correcciones de la

imagen se tienen que hacer sobre el terreno debido a las influencias externas que

pueden generar distorsiones en la imagen, estos factores de distorsion pueden ser los

siguientes:

Page 43: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

20 CAPITULO 2. SISTEMAS SONAR

1. Variaciones en la velocidad y trayectoria del barco - Si la velocidad

de la embarcacion no es constante y no sigue una trayectoria relativamente

recta la imagen que se conforme tendra deformaciones, estos parametros han

de corregirse para evitar en la medida de lo posible imagenes erroneas que nos

puedan llevar a conclusiones equivocadas al interpretarlas.

Figura 2.1: Influencia de las variaciones de velocidad y trayectoria en la imagen.

2. Movimientos indeseados de los transductores - En la mayorıa de los

casos el sensor es remolcado por la embarcacion en el interior de un torpedo,

aunque los sensores pueden montarse en el propio casco del navıo. El esquema

del sistema en el torpedo serıa el reflejado en la figura 2.2:

Figura 2.2: Esquema del torpedo de transductores.

Page 44: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

2.2. SIDE-SCAN SONAR 21

Cuando los sensores van montados en un torpedo tenemos mas factores de error

al conformar la imagen, debido a los movimientos indeseados que se producan

en el mismo, como se muestra muestra en la figura 2.3 como consecuencia de

corrientes, oleajes, etc.

Figura 2.3: Influencia de los movimientos de los transductores en la imagen.

Debido a que las proyecciones de los haces son tal y como muestra la figura 3.2,

se pueden comprender mejor las consecuencias de las oscilaciones, de los cambios de

velocidad y trayectoria del torpedo.

Tras haber realizado los ajustes oportunos en nuestro sistema, abordaremos el proce-

sado de los datos obtenidos de forma correcta.

La conformacion final de la imagen y su clasificacion requiere de un postprocesado

de los datos adquiridos, para ello se procura controlar el manejo de los formatos

estandar de imagen para este tipo de aplicaciones, tales como, XTS, QMIPS y

SEGI, siendo la mayorıa de los sistemas capaces de generar e interpretar al menos

uno de ellos.

Page 45: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

22 CAPITULO 2. SISTEMAS SONAR

Los formatos anteriormente mencionados son capaces de almacenar la informa-

cion recogida a traves de los transductores y referenciarla con informacion captada

a traves de otros sistemas como por ejemplo el posicionamiento GPS/DGPS, la in-

formacion tomada de sondas de profundidad, detectores de cable cortado, sistemas

de posicionamiento acustico, referencias de movimiento y girocompases, siendo el

archivo resultante para cada sondeo un compendio completo de la informacion nece-

saria para procesar y generar una imagen completamente georeferenciada.

Ejemplos de aplicaciones de sonares Side-scan:

1. Comerciales:

Operaciones de clasificacion y monitorizacion del fondo marino con el objeto

de localizar betas de materiales, petroleo y gas principalmente.

2. Cientıficas:

Operaciones de mapeado de habitats marinos y proyectos de clasificacion del

fondo subacuatico, tanto en lagos como en las zonas del oceano cercanas a la

costa.

Deteccion de arrecifes, embarcaciones hundidas y canones submarinos.

Page 46: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

2.3. SISTEMAS COMERCIALES DE SONARES SIDE-SCAN 23

2.3. Sistemas comerciales de sonares Side-scan

Las siguientes caracterısticas definen el sistema comercial de Imagenex modelo

872 SIDESCAN (YellowFin).

Figura 2.4: Modelo 872 SideScan (YellowFin) de Imagenex.

Page 47: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

24 CAPITULO 2. SISTEMAS SONAR

Especificaciones hardware

Interfaz EthernetFrecuencias

Anchura del haz

Resolución Margen dinámico / 1000

Alimentación

Dimensiones de la electrónica120,65 mm. X 120,65 mm.

111, 76 mm. Entre taladros de fijación

Opción PCB reducida88,9 mm. X 165,1 mm.

81,28 mm. Y 157,48 mm. Entre taladros de fijaciónDimensiones de los transductores Ver figura 2.7 y figura 2.8.Peso: en el aire, Transductores 385g cada uno

Electrónica

260 kHz / 330 kHz / 800 kHz nominal 260 kHz: 2,2° X 75°330 kHz: 1,8° X 60°800 kHz: 0,7° X 30°

Nominal 24 Vdc (22 Vdc – 33 Vdc) como mínimo 2,5 W

121 g.

Especificaciones Software

S.O admitidos Windows 98, Me, NT, 2000, XP, Vista, 7

Tipos de zoom

Rango de escalas

Formato de los archivos (Nombre del archivo).872

Requerimientos mínimos del PC256 MB RAM

2 GB de disco duro

1024 X 768 X 256 colores gráficos

AUV-SS.exe

1x, 2x, 3x, 4x, 5x desplazable dinámicamente

10 m, 20 m, 30 m, 40 m, 50 m, 60 m, 80 m, 100m,

125 m, 150 m y 200 m

Penthium III 800 MHz

Especificaciones sobre el protocolo de comunicación

Ethernet Nombre del archivo de referencia:

Código fuente disponible para el testeoSidescan Ethernet Specification.pdf

RecordData.exe

Cuadro 2.3: Especificaciones del sistema.

Page 48: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

2.3. SISTEMAS COMERCIALES DE SONARES SIDE-SCAN 25

Imagenex AUV Sidescan Board(170-025.V1)

RJ-45

[email protected]”Φ

0.000”

0.000”

0.100”

1.000”

0.250”, 3.600”

0.150”,1.200”

3.800”

0.100”

0.900”

4.600”, 3.500”

4.500”,1.100”

3.700”

0.175”,4.575”

0.175”,0.175”4.575”,0.175”

4.575”,4.575”

0.325”,4.425”

0.325”,0.325”4.425”,0.325”

4.425”,4.425”

SamTec # ESQ-125-38-G-D

Pin #50

Pin #1

Pin #1

Pin #50

2.525”,0.675”3.263”,0.675”

Maximum Component Height off Board = 0.50”

Transducer

1.325”,1.750”

0.450”,1.825”

4.750”,4.750”

Hirose # DF13-3P-1.25DSA

Hirose # DF13-4P-1.25DSARJ45-8N-B Optional

Ethernet

SamTec # ESQ-125-38-G-D

PCB hole = 0.035”

PORTSTARBOARD

JP20JP21

Power is taken from this header EPROM

+24Vdc = Pin 34 COM = Pin 32

Pin #2

CLKR0

INT3

Transmit Trigger Output+5V Logic

5V

0V

TRANSMIT TRIGGER OUTPUT

TTL Pulse – Ranges <= 100m 120μs long Ranges > 100m 300μs long

+ Transmit Trigger O/P(on CLKR0)

- Transmit Trigger O/P(on COM)

Mechanical Layout of the Imagenex AUV Sidescan Board (170-025.V1)with Transmit Trigger Output

410-036-00 September 14, 2010

Figura 2.5: Electronica de adaptacion estandar.

Page 49: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

26 CAPITULO 2. SISTEMAS SONAR

Figura 2.6: Imagen generada por el sistema.

Page 50: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

Capıtulo 3

Equipo de adquisicion

En este capıtulo se tratara en detalle cada uno de los bloques que componen el

sistema completo, haciendo una descripcion en profundidad de cada uno de ellos y

sus caracterısticas particulares.

El equipo de adquisicion consta principalmente de dos partes, una hardware

y otra software. En la parte hardware podemos incluir la tarjeta de adquisicion de

datos, el PC, la electronica de acondicionamiento y los transductores de ultrasonidos.

En la parte software incluiremos todo el entorno programado, es decir el software

de procesado, control y representacion encargado del tratamiento de la informacion

adquirida por la tarjeta, que por otra parte hace tambien la funcion de interface

entre el propio software y el usuario.

El diagrama de bloques del sistema queda reflejado en la figura 3.1, donde se

muestra la interconexion entre los modulos del sistema y las direcciones en las que

fluira la informacion durante el funcionamiento normal del sistema.

27

Page 51: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

28 CAPITULO 3. EQUIPO DE ADQUISICION

Figura 3.1: Diagrama de bloques del sistema completo.

La forma en que seran emitidos los haces de ondas por parte del torpedo que

darıa alojamiento al array de transductores de ultrasonidos, que sera finalmente

utilizado, se ve reflejado en la figura 3.2.

Esta figura refleja la geometrıa a seguir en la realizacion de los calculos previos

al desarrollo de la aplicacion y que nos daran los valores de los parametros de fun-

cionamiento de la tarjeta de adquisicion y del sofware de control, teniendo ademas

en cuenta otros factores influyentes como son la velocidad del barco, la velocidad de

propagacion del sonido en agua salada, la inclinacion de los sensores respecto a la

normal, la frecuencia de muestreo o el numero de muestras por canal que deseamos

recoger, sabiendo que se asigna un canal a cada sensor.

Los resultados de estos calculos se muestran en la tabla 3.1, estos valores son los

que nos daran las cotas de funcionamiento temporal y sinronizacion a emplear para

la obtencion del numero adecuado de muestras en el instante de tiempo correcto

para que no se produzcan distorsiones en la representacion imagen.

Page 52: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

29

Figura 3.2: Esquema de emision de los transductores.

10 17,32 17,32 7,28 27,36 10,64 20 13,33 26,67 40 9,6 19,2 120 34,64 34,64 14,56 54,72 21,28 40 26,67 53,33 80 9,6 19,2 230 51,96 51,96 21,84 82,08 31,93 60 40,00 80,00 120 9,6 19,2 340 69,28 69,28 29,12 109,45 42,57 80 53,33 106,67 160 9,6 19,2 450 86,60 86,60 36,40 136,81 53,21 100 66,67 133,33 200 9,6 19,2 560 103,92 103,92 43,68 164,17 63,85 120 80,00 160,00 240 9,6 19,2 670 121,24 121,24 50,96 191,53 74,49 140 93,33 186,67 280 9,6 19,2 780 138,56 138,56 58,24 218,89 85,13 160 106,67 213,33 320 9,6 19,2 890 155,88 155,88 65,51 246,25 95,78 180 120,00 240,00 360 9,6 19,2 9

100 173,21 173,21 72,79 273,62 106,42 200 133,33 266,67 400 9,6 19,2 10110 190,53 190,53 80,07 300,98 117,06 220 146,67 293,33 440 9,6 19,2 11120 207,85 207,85 87,35 328,34 127,70 240 160,00 320,00 480 9,6 19,2 12130 225,17 225,17 94,63 355,70 138,34 260 173,33 346,67 520 9,6 19,2 13140 242,49 242,49 101,91 383,06 148,98 280 186,67 373,33 560 9,6 19,2 14150 259,81 259,81 109,19 410,42 159,63 300 200,00 400,00 600 9,6 19,2 15

Y (m) Xd (m) Xi (m) Zs (m) Xc (m) Amin (m) Amax (m) tpmin (ms) tpmax (ms) Tw (ms) Src (Ksps) Srt (Ksps) N. s. prom.

1.500 1,05 0,35

1,67 60 20

3 384 2

Vp (m/s) Өmax (rad) Ф (rad)

Vb (m/s) Өmax (deg) Ф (deg)

Vb (nudos). N.samples N° de canales

Cuadro 3.1: Calculos previos.

Page 53: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

30 CAPITULO 3. EQUIPO DE ADQUISICION

Siendo esta la leyenda de los terminos de la tabla:

1. Vp - Velocidad de propagacion del sonido en el agua.

2. Vb - Velocidad de avance del barco.

3. Y - Distancia del torpedo al fondo.

4. φ - Angulo de inclinacion del primer transductor respecto a la normal.

5. θ - Angulo de inclinacion del ultimo transductor respecto a la normal.

6. Xc - Area de cobertura total, es el area total de fondo marino que idealmente

quedarıa cubierta por el haz de ultrasonidos para ser representada, es decir,

si no hubiese zona de sombra. Sus valores se obtienen de la ecuacion Xc =

2 Y tan θ.

7. Zs - Zona de sombra, zona que debido a la inclinacion de los primeros trans-

ductores en el array queda fuera de la zona de incidencia de los ultrasonidos

y por tanto no podra ser representada. Sus valores se obtienen de la ecuacion

Zs = 2 Y tanφ

8. Xd - Area de cobertura derecha, sera Xc2 −

Zs2 y corresponde con la mitad

derecha del area de cobertura total menos la mitad derecha de la zona de

sombra que no puede ser representada.

9. Xi - Area de cobertura izquierda, sera Xc2 −

Zs2 y corresponde con la mitad

izquierda del area de cobertura total menos la mitad izquierda de la zona de

sombra que no puede ser representada.

10. Amin - Distancia recorrida por las ondas del primer transductor del array

debido a su inclinacion. Sus valores se obtienen de la ecuacion Amin = Ycosφ

Page 54: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

31

11. Amax - Distancia recorrida por las ondas del ultimo transductor del array

debido a su inclinacion. Sus valores se obtienen de la ecuacion Amax = Ycos θ

12. tpmin - Tiempo de propagacion mınimo de las ondas, es decir el empleado en

recorrer Amin dos veces, es decir, ida y vuelta al sensor, tpmin = 2 AminV p .

13. tpmax - Tiempo de propagacion maximo de las ondas, es decir el empleado

en recorrer Amax dos veces, es decir, ida y vuelta al sensor, tpmax = 2 AmaxV p .

14. Tw - Ventana de tiempo total empleada en la recogida de muestras, su valor

mınimo se corresponde con la suma de tpmin + tpmax

15. Src - Sample rate per chanel, velocidad de muestreo por canal, determinara el

numero de muestras total de muestras por canal recogidas por la tarjeta en

cada solicitud de datos, Src = N.samples10mTw10m

.

16. Srt - Sample rate total, y sera el producto de Src por el numero de canales

empleados, en nuestro caso dos, Srt = 2 Src.

17. N. samples - Numero de muestras que seran representadas, en nuestro caso

384 muestras por canal.

18. N. s. prom. - Numero de muestras recogidas que seran promediadas para

obtener un dato valido para la representacion, este valor depende de la dis-

tancia del torpedo al fondo, ya que el Src no varıa con la profundidad, se

obtendra un mayor numero de muestras a medida que aumenta Y, por tanto

promediaremos dichas muestras hasta obtener el numero adecuado de ellas,

384 por canal, N.s.prom. = Src TwYN.samples .

Page 55: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

32 CAPITULO 3. EQUIPO DE ADQUISICION

El esquema de ecos, figura 3.3, refleja el esquema temporal que seguirıa el sistema,

tomando como valores los expresados en la tabla 3.1.

Figura 3.3: Esquema de ecos.

En la figura 3.3 se puede diferenciar entre el primer pulso, que es el pulso de

excitacion de los sensores para que comiencen a emitir, y el resto, que son los pulsos

generados por los ecos, producidos tras chocar con la orografıa del fondo, y en los

que varıa la amplitud de dichos ecos dependiendo de la lejanıa al sensor a la que

se produzca la reflexion de las ondas emitidas, estos ecos al ser recibidos por el

sensor se transformaran en una sucesion de pulsos electricos que son los que seran

muestreados.

Page 56: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

3.1. SISTEMA SONAR DE BARRIDO LATERAL 33

Esta figura nos da una idea del bucle de funcinamiento que tendra el sistema

durante la fase de adquisicion y representacion, siendo este el bucle de excitacion

y escucha y repitiendose sucesivamente mientras dure la representacion. Las limita-

ciones temporales que conllevara son la limitacion del periodo del tren de pulsos

de excitacion de los transductores, Ts, que ha de ser extrictamente mayor que Tw,

para tener tiempo suficiente en la adquisicion y representacion de las muestras y no

perder ası informacion y la obligacion de establecer una frecuencia de muestreo por

canal suficiente para la obtencion de todas las muestras requeridas por ese canal

durante el tiempo de escucha de los ecos.

Tras este estudio previo para fijar las cotas de funcionamiento del sistema pasare-

mos a la descripcion de cada uno de los componentes por separado.

3.1. Sistema sonar de barrido lateral

3.1.1. Tarjeta de adquisicion

La tarjeta empleada es la tarjeta de adquisicion de datos por USB, HYTEK

iUSBDAQ-U120816, que se puede ver en la figura 3.4.

Figura 3.4: Tarjeta HYTEK iUSBDAQ-U120816.

Page 57: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

34 CAPITULO 3. EQUIPO DE ADQUISICION

Las caracterısticas de la tarjeta, facilitadas por el fabricante, son:

1. USB 2.0/1.1 Full Speed Interface.

2. Alimentacion por puerto USB.

3. Ocho entradas analogicas digitalizadas a doce bits, el margen dinamico de estas

entradas es de 0 a 4,096 voltios.

4. Soporta dos modos de adquisicion de datos, uno es el modo Scan y el otro

modo Streaming.

5. Muestreo maximo para un solo canal de 32 Ksps en modo Scan y 13 Ksps en

modo Streaming.

6. Entrada Trigger dedicada en el modo Streaming.

7. Dos salidas PWM de 10 bits con un rango de frecuencias de 3kHz a 333kHz.

8. Dieciseis Entradas/Salidas digitales, son bidireccionales, con una frecuencia de

actualizacion de 125 Hz.

9. Un contador de 16 bits.

10. Memoria EEPROM de 240 bytes para datos de usuario.

11. Varias tarjetas pueden ser conectadas al mismo PC.

12. Medidas aproximadas 9cm x 8,5cm x 3cm.

13. Rango de funcionamiento termico industrial.

14. Admite trabajar con los siguientes sistemas operativos Windows 98SE, ME,

2000 o XP.

Page 58: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

3.1. SISTEMA SONAR DE BARRIDO LATERAL 35

El diagrama de bloques interno de la tarjeta se ve en la figura 3.5:

Figura 3.5: Diagrama interno de la tarjeta HYTEK iUSBDAQ-U120816.

El cuadro explicativo de los pines de la tarjeta queda reflejado en la tabla 3.2,

mostrandose en ella el numero de pin, nombre que recibe, direcionalidad del flujo de

informacion y una breve descripcion.

A continuacion pasaremos a una descripcion mas detallada de cada pin o grupo

de pines, por ejemplo, todas las entradas analogicas se comportan de igual modo,

igual sucede con las entradas/salidas digitales o los PWM, dando descripcion a

sus posibles configuraciones, margenes dinamicos de funcionamiento, limitaciones y

demas caracterısticas dignas de mencion, describiendo ademas el uso concreto que

se le dara a cada pin en este proyecto.

Page 59: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

36 CAPITULO 3. EQUIPO DE ADQUISICION

Número de pin Nombre del pin Tipo Descripción1 +5V Salida Fuente de alimentación interna de +5V nominales de tensión2 AGND -- Masa analógica3 AI 0 Entrada Entrada analógica, canal 04 AI 1 Entrada Entrada analógica, canal 15 AGND -- Masa analógica6 AI 2 Entrada Entrada analógica, canal 27 AI 3 Entrada Entrada analógica, canal 38 AGND -- Masa analógica9 AI 4 Entrada Entrada analógica, canal 410 AI 5 Entrada Entrada analógica, canal 511 AGND -- Masa analógica12 AI 6 Entrada Entrada analógica, canal 613 AI 7 Entrada Entrada analógica, canal 714 GND -- Masa común15 DIO 1 Bidireccional Entrada/Salida digital, canal 116 DIO 2 Bidireccional Entrada/Salida digital, canal 217 DIO 3 Bidireccional Entrada/Salida digital, canal 318 DIO 4 Bidireccional Entrada/Salida digital, canal 419 Trigger Entrada Pin de señal Trigger para el muestreo analógico en modo streaming20 GND -- Masa común21 GND -- Masa común22 DIO 5 Bidireccional Entrada/Salida digital, canal 523 DIO 6 Bidireccional Entrada/Salida digital, canal 624 DIO 7 Bidireccional Entrada/Salida digital, canal 725 PWM 1 Salida Salida PWM 126 PWM 2 Salida Salida PWM 127 GND -- Masa común28 Contador Entrada Contador29 DIO 8 Bidireccional Entrada/Salida digital, canal 830 DIO 9 Bidireccional Entrada/Salida digital, canal 931 DIO 10 Bidireccional Entrada/Salida digital, canal 1032 DIO 11 Bidireccional Entrada/Salida digital, canal 1133 GND -- Masa común34 DIO 12 Bidireccional Entrada/Salida digital, canal 1235 DIO 13 Bidireccional Entrada/Salida digital, canal 1336 DIO 14 Bidireccional Entrada/Salida digital, canal 1437 DIO 15 Bidireccional Entrada/Salida digital, canal 1538 DIO 16 Bidireccional Entrada/Salida digital, canal 1639 Sin usar -- --40 GND -- Masa común

Cuadro 3.2: Descripcion de pines de la tarjeta.

Page 60: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

3.1. SISTEMA SONAR DE BARRIDO LATERAL 37

1. Pin +5V - Esta salida se corresponde con la salida de una fuente de ali-

mentacion interna de la tarjeta de +5V de tension nominales. La corriente

total que circula a traves de la tarjeta, incluyendo la fuente de tension de

+5V, las salidas digitales y las salidas PWM, no deberıa superar los 450 mA

para que lo soporten la mayorıa de PCs de sobremesa y hubs USB alimentados

externamente. Se recomienda en todo caso por el fabricante no superar los 250

mA de circulacion de corriente por este pin.

Para algunos PCs portatiles y hubs USB sin alimentacion externa esta corriente

se vera limitada entorno a 100 mA, debido a ello la corriente maxima que

circula a traves de la fuente de tension de +5V, las salidas digitales y las

salidas PWM, no deberıa superar los 50 mA ya que la electronica interna de

la tarjeta consume los otros 50 mA por si sola.

2. Pines AGND - Esta masa es la masa empleada por la entradas analogicas.

Para reducir ruidos en dichas entradas usaremos esta masa en exclusiva para

este tipo de entradas, no usandola para referenciar a masa ninguna entra-

da/salida digital.

3. Pines AI0 - AI7 - Son la entradas analogicas de la tarjeta, tienen un rango

dinamico de 0 a 4,096 V, son digitalizadas a traves de un ADC de 12 bits con

una resolucion de 1 mV. La tarjeta iUSBDAQ soporta dos modos de adquisi-

cion, el primero es el modo Scan, este modo toma una unica muestra cuando

nosotros indiquemos, se puede aplicar a uno o varios canales simultaneamente,

con un tiempo de ejecucion de 4 ms para nuestro modelo de tarjeta, haciendo

una adquisicion a 125 Hz por canal. El segundo modo es el modo Streaming,

este modo puede comenzar la adquisicion por orden directa del PC o esperar

una senal externa de Trigger, el modo de arranque de la adquisicion es con-

figurable vıa software, en este modo se tomaran muestras desde el arranque

hasta que se produzca una finalizacion del muestreo por parte del PC.

Page 61: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

38 CAPITULO 3. EQUIPO DE ADQUISICION

Número de canales8 32 47 30,1 4,36 27 4,55 25 54 22 5,53 19,5 6,52 18,4 9,21 13 13

Srtmax

(Ksps) Srcmax

(Ksps)

Cuadro 3.3: Relacion entre el numero de canales, Src maximo y Srt maximo.

En modo de arranque por Trigger externo, un nivel alto en la patilla de Trigger,

Pin 19, hara que arranque la adquisicion. La velocidad de muestreo en el modo

Streaming varıa en funcion del numero de canales a muestrear. La relacion

entre el numero de canales muestreados y la velocidad maxima de muestreo

se refleja en la tabla 3.3. La relacion entre la velocidad de muestreo por canal

y la velocidad de muestreo total es la siguiente, Srt = Src · No de canales .

En modo Streaming la mınima velocidad de muestreo total 128 muestras/s.

Durante el modo Streaming podemos seguir ejecutando otras funciones como

son la lectura/escritura de las entradas/salidas digitales, generacion de PWM,

etc.

4. Pines DIO 1 - DIO 16 - Son 16 canales digitales bidireccionales, se pueden

emplear como entrada o salida, siendo configuradas debidamente por software,

a conveniencia. Todos los canales tienen salida CMOS con niveles electricos

TTL y entrada Smith trigger, ademas incluyen una serie de resistencias de 470

Ω que actuan de circuito de proteccion contra sobretensiones y cortocircuitos

y otra serie de resistencias de 1 MΩ conectadas a masa.

Page 62: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

3.1. SISTEMA SONAR DE BARRIDO LATERAL 39

Hay una sola funcion de uso de las DIO, esta lee/escribe los estados y las

direccionalidades, si son entradas o salidas, de todos los canales DIO, esta

funcion emplea entorno a 8 ms en su ejecucion, lo que nos da una frecuencia

de refresco en estos pines entorno a los 125 Hz por canal.

5. Trigger - Es la linea externa de disparo para la adquisicion en modo

Streaming, es configurable por software si el usuario desea esperar a la acti-

vacion de este pin para el arranque de la adquisicion o no. Cuando usamos este

pin, tan pronto como se detecta un nivel de tension alto, tiene niveles TTL,

empezara la adquisicion de datos.

6. PWM - En esta tarjeta tenemos dos generadores PWM que pueden ser con-

figurados por sofware, tanto en periodo como en ciclo de trabajo, de forma

separada. Los periodos pueden variar desde los 3 µs a los 333 µs, generan-

do frecuencias entre los 3 KHz y los 333 KHz. El ciclo de trabajo se puede

configurar entre el 0 y el 100 por ciento.

7. Counter - La tarjeta dispone de un contador de 16 bits interno, vıa software

podemos seleccionar si queremos que el contador se reinicie despues de la

lectura o no. El contador sufre un incremento cuando detecta un flanco de

bajada seguido de un flanco de subida en este pin.

8. GND - Esta es la masa comun, todas las GNDs son la misma, se pueden em-

plear por cualquier terminal de la tarjeta exceptuando las entradas analogicas

que usaran AGND.

9. EEPROM - La tarjeta posee 240 Bytes de memoria interna para datos del

usuario. La operacion lectura/escritura de la memoria EEPROM emplea unos

8 ms en ejecutarse.

Page 63: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

40 CAPITULO 3. EQUIPO DE ADQUISICION

Para esta aplicacion se emplearan los siguientes pines en la tarjeta:

1. Ax - Usaremos A0 y A1, dos canales analogicos, uno por cada mitad del

area de cobertura. Estos dos canales estaran referenciados a masa a traves

de cualquiera de la pines AGND de la tarjeta.

2. Src - Fijaremos un Src de 9,6 Ksps, Src = N.samples10mTw10m

= 384 muestras40µs = 9, 6

Ksps, valor que aunque sobrepase los valores maximos de muestreo por canal

dados por el fabricante, es admitido por la tarjeta, debido a la tolerancia, y nos

permite tomar el valor Y = 10 m como valor mınimo de distancia del torpedo

al fondo marino.

3. Srt - Sera el producto de Src por el numero de canales empleados, en nuestro

caso dos, Srt = 2 · Src = 19, 2 Ksps.

4. Trigger - Habilitamos el modo de disparo externo para el arranque del muestreo,

esto se hara vıa software a traves del programa principal.

Fijando estos parametros y con los calculos previos ya realizados, tenemos defini-

da la configuracion optima de la tarjeta de adquisicion de datos para el correcto

funcionamiento dentro de este proyecto.

Page 64: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

3.1. SISTEMA SONAR DE BARRIDO LATERAL 41

3.1.2. Electronica de adaptacion

Este es un ejemplo de electronica de adaptacion de un sistema comercial de sonar

de barrido lateral, el circuito exacto dependera del tipo de transductores que sean

utilizados, en este proyecto se simularan los sensores con generadores de senal, como

se vera en el capıtulo 4, ası que no se puede incluir el esquema del circuito concreto

que se empleara finalmente.

Figura 3.6: Ejemplo de esquema de electronica de adaptacion.

Page 65: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

42 CAPITULO 3. EQUIPO DE ADQUISICION

Teniendo en cuenta el sistema de la figura 3.6, un primer modelado de bloques

valido para el sistema desarrollado podrıa ser el siguiente:

Figura 3.7: Posible esquema de bloques de electronica de adaptacion.

Las etapas de interfaz de transductores serıan las encargadas de la adecuacion de

los niveles electricos, convirtiendo los niveles de los sensores a niveles validos para

la tarjeta de adquisicion y los niveles de tension del generador de trigger a niveles

validos para la excitacion de los sensores. Estas etapas tambien seran las encargadas

de la conmutacion del modo emision al modo escucha y viceversa.

En principio se podrıa disenar el generador de senal de trigger directamente adecuado

en niveles a los de la tarjeta de adquisicion, ası solo tendremos que adaptarlos a los

niveles de los sensores.

Page 66: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

3.1. SISTEMA SONAR DE BARRIDO LATERAL 43

El bloque de generacion de trigger, sera el encargado de fijar el tren de pulsos que

nos servira para excitar los piezoelectricos de los sensores y a su vez nos indicara el

arranque de la toma de muestras por parte de los modulos de adquisicion.

Sera interesante la comunicacion entre este bloque y el de adquisicion para poder

realizar ajustes vıa software sobre las caracterısticas mas importantes de la senal

cuadrada generada, como son la frecuencia, el ciclo de trabajo y la amplitud de

la senal, no teniendo ası que hacer modificaciones sobre el hardware para realizar

dichos ajustes.

Esta comunicacion y un diseno adecuado de este bloque lo hara sumamente

versatil y reutilizable en el caso de que se quieran cambiar componentes como los

transductores o la tarjeta de adquisicion y en consecuencia varıen las caracterısticas

de la senal de sincronismo y excitacion.

Page 67: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

44 CAPITULO 3. EQUIPO DE ADQUISICION

3.2. Transductores de ultrasonidos

Los transductores de ultrasonidos estan basados en el uso de la piezoelectricidad.

La piezoelectricidad es un fenomeno presentado por determinados cristales que al

ser sometidos a tensiones mecanicas adquieren polarizacion electrica, apareciendo

cargas electricas en su superficie y en consecuencia una diferencia de potencial. El

fenomeno sucede tambien a la inversa, es decir, si el cristal se somete a la influencia

de un campo electrico sufrira deformaciones bajo la accion de fuerzas internas.

Pueden distinguirse dos grupos de materiales con propiedades piezoelectricas:

1. Los materiales que las poseen de manera natural - Pueden ser minerales

como el cuarzo o la turmalina.

2. Los materiales ferroelectricos - Presentan propiedades piezoelectricas tras

haber sido polarizados, pueden ser de dos tipos:

a) Materiales monocristalinos o ceramicas - Como pueden ser el tan-

talio de litio, nitrato de litio o berlinita.

b) Polımeros polares - Bajo la forma de microcristales orientados.

Como acabamos de ver los materiales piezoelectricos pueden ser cristales natu-

rales o sinteticos, eso si, que no poseen centro de simetrıa, por lo tanto, tendran un

eje polar. El efecto de una compresion o de una cizalladura, consiste en la disociacion

de los centros de gravedad de las cargas positivas y negativas, apareciendo por ello

dipolos elementales en la masa y cargas de signo opuesto en las superficies. Cuando

se ejerce una presion en los extremos del eje polar, se produce polarizacion en el

material, creadose un flujo de electrones que va hacia un extremo, produciendo en

el mismo un exceso de carga negativa, mientras que en el extremo opuesto, y debido

a esa circulacion de electrones, se produce un exceso de carga positiva.

Page 68: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

3.2. TRANSDUCTORES DE ULTRASONIDOS 45

El voltaje obtenido es mayor si se emplean laminas de cristal estrechas y de gran

superficie. Las laminas se cortan de manera que el eje polar cruce perpendicularmente

ambas caras, siendo la corriente generada proporcional al area de la placa y a la

rapidez de la variacion de presion aplicada perpendicularmente a la superficie de la

misma.

Dependiendo de como se corte el material piezoelectrico, se obtienen tres formas

de operacion:

1. Efecto transversal - Aplicando la fuerza a lo largo del eje neutro Y, los

cambios son generados a lo largo del eje X, es decir, perpendicularmente a la

presion ejercida. La cantidad de carga generada dependera de las dimensiones

geometricas del elemento piezoelectrico.

2. Efecto longitudinal - La cantidad de carga generada es directamente propor-

cional a la fuerza aplicada e independiente del tamano y forma del piezoelectri-

co. Usando varios elementos conectados mecanicamente en serie, pero electri-

camente en paralelo, se puede conseguir aumentar la carga generada.

3. Efecto tangencial - En este caso las cargas producidas son estrictamente

proporcionales a la fuerza aplicada e independiente de forma y tamano del

piezoelectrico.

Otra aplicacion importante de la piezoelectricidad resulta del cumplimiento de la

propiedad inversa, si sometemos a un material piezo electrico a una tension variable,

este se deforma, oscilando debido las variaciones de tension de la senal electrica, si el

material esta en contacto con un fluido transmite dichas vibraciones a traves del flui-

do, generando ası ultrasonidos. La primera aplicacion practica de la piezoelectricidad

fue el sonar.

Page 69: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

46 CAPITULO 3. EQUIPO DE ADQUISICION

Las ventajas de estos materiales son multiples, el modulo de elasticidad es compa-

rable al de muchos metales y a pesar de que los sensores piezoelectricos son sistemas

electromecanicos que reaccionan a la presion, los elementos sensoriales muestran una

deflexion practicamente nula, ademas son insensibles a campos electromagneticos y

radiaciones y algunos de ellos, especialmente la turmalina, poseen un alto grado de

sensibilidad incluso siendo expuestos a altas temperaturas, permitiendo que el sensor

opere eficientemente hasta temperaturas proximas a los 1000 grados Celsius.

Una de las desventajas es que no se pueden usar en las mediciones de fuerzas

estaticas, que darıan como resultado una cantidad de carga fija en la superficie

del material piezoelectrico, siendo destacable tambien la perdida de sensibilidad de-

bida al aumento significativo de la presion y la temperatura a la que se encuentre

sometido el material.

Las principales propiedades de los materiales piezoelectricos desde el punto de vista

de aplicacion son la siguientes:

1. Constante de carga piezoelectrica (d) - Indica la proporcion entre la

variacion dimensional (∆l) del material piezoelectrico, medido en metros, y la

diferencia de potencial aplicada, medida en Voltios, y tambien la proporcion

inversa, la que existe entre la generacion de cargas electricas, medida en Cu-

lombios, y la fuerza aplicada al material, medida en Newtons. Se mide en m/V

o C/N.

2. Constante de tension piezoelectrica (g) - Indica la proporcion entre la

diferencia de potencial generada, medida en Voltios, y la fuerza aplicada, me-

dida en Newtons, para una ceramica de 1 metro de longitud. Disminuyendo

la dimension de la ceramica o aumentando la fuerza aplicada, el modulo de la

tension generada aumenta. Se mide en V· m/N.

Page 70: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

3.2. TRANSDUCTORES DE ULTRASONIDOS 47

3. Coeficiente de acoplamiento - Indica la eficiencia del material en la trans-

duccion de energıa electrica en energıa mecanica y viceversa, se emplea en el

control de calidad de las ceramicas piezoelectricas y en el diseno de dispositivos

en que no se desea conversion de energıa cruzada, es decir, que una vibracion

o deformacion sobre uno de los ejes no genere cargas electricas en otro eje, en

este caso cuanto menor sea el factor de acoplamiento mejor se comportara el

material. Adimensional.

4. Factor de calidad mecanico (Q) - Indica el amortiguamiento del material.

Adimensional.

5. Factor de disipacion dielectrica (Tan δ) - Indica la propiedad dielectrica

del material. Adimensional.

6. Temperatura de Curie (TC) - Indica la temperatura a partir de la cual

el material sufre una transicion de fase dejando de presentar propiedades

piezoelectricas, tras superar esta temperatura el material pierde la polarizacion

remanente inducida, dejando de comportarse como transductor piezoelectrico.

Se mide en grados Celsius.

7. Constante de frecuencia(N) - Permite una estimacion de la frecuencia de

resonancia del dispositivo piezoelectrico. Se mide en Hz · m.

8. Impedancia acustica (Z) - Indica la manera en que la energıa mecanica se

propaga por el medio, siendo una propiedad analoga al ındice de refraccion,

la diferencia entre las impedancias acusticas de dos medios adyacentes es de-

terminante en la fraccion de energıa reflejada y transmitida de una onda que

incide en el medio. Es calculado a traves del producto de la densidad por la

velocidad, siendo la velocidad aproximadamente igual al doble de la constante

de frecuencia (N), para el caso de las ceramicas. Se mide en MRayls, que se

corresponde con kg/m2·s.

Page 71: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

48 CAPITULO 3. EQUIPO DE ADQUISICION

En la figura 3.8 podemos ver el circuito equivalente a un transductor piezoelectri-

co, que sirve para el diseno del mismo y para comprender su comportamiento electri-

co.

Figura 3.8: Circuito equivalente a un transductor.

Un transductor piezoelectrico tiene muy alta impedancia de salida para la corri-

ente continua y puede ser modelado como una fuente proporcional de voltaje y una

red de filtrado a continuacion. El voltaje en la fuente es directamente proporcional

a la fuerza, presion o tension mecanica aplicada, la senal producida esta relacionada

con esta fuerza mecanica como si no hubiera pasado a traves del circuito equivalente.

Un modelo detallado incluye los efectos de la construccion mecanica del sensor y

otras no idealidades. La inductancia Lm es causada por la masa sısmica y la iner-

cia del propio sensor, la capacidad Ce es inversamente proporcional a la elasticidad

mecanica del sensor, la capacidad C0 representa la estatica del sensor, que es resul-

tado de la inercia de una masa de tamano finito, la resistencia Ri es la resistencia

de aislamiento a la salida del elemento transductor, si el sensor esta conectado a

una resistencia de carga, esta actuara en paralelo con la resistencia de aislamiento,

incrementando el valor de la ya de por si alta frecuencia de corte.

Page 72: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

3.2. TRANSDUCTORES DE ULTRASONIDOS 49

Se pueden diferenciar dos grandes grupos de materiales empleados como piezoelectri-

cos:

1. Ceramicas piezoelectricas - Por ejemplo las ceramicas PZT, tienen una sen-

sibilidad constante que es aproximadamente dos ordenes de magnitud mayor

que los materiales monocristalinos y pueden ser producidos a traves de procesos

de sintetizacion de bajo coste. El efecto ”piezo” en las ceramicas se considera

”entrenado” ya que se genera con un proceso de polarizacion previo, por lo

que desafortunadamente su alta sensibilidad se ve degradada con el tiempo y

muy influenciada por el grado de temperatura que soportara la ceramica.

2. Materiales monocristalinos - Principalmente el fosfato de galio, cuarzo y

turmalina, son menos sensibles que la ceramicas pero cuando se manipulan

adecuadamente tienen mayor estabilidad a largo plazo en el tiempo.

Los materiales piezoelectricos mas utilizados son:

1. Cuarzo.

2. Rubidio.

3. Sal de Seignette.

4. Ceramicas.

5. Ceramicas piezoelectricas.

6. Ceramicas tecnicas.

Page 73: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

50 CAPITULO 3. EQUIPO DE ADQUISICION

Las formas y dimensiones mas comunes de las ceramicas piezoelectricas comer-

ciales son:

1. Ceramicas piezoelectricas de alta potencia PZT-8 - Empleadas para

soldaduras por ultrasonidos. En forma de anillo.

a) 50mm x 20mm x 5,15mm

b) 50,8mm x 19,1mm x 3mm

c) 38,1mm x 19,1mm x 5,15mm

d) 30mm x 10mm x 6mm

e) 25mm x 12mm x 3,15mm

f ) 25mm x 10mm x 4,15mm

2. Ceramicas piezoelectricas de alta potencia PZT-4 - Empleadas en limpieza

por ultrasonidos. En forma de anillo.

a) 50mm x 20mm x 5,15mm

b) 38mm x 13mm x 6,35mm

c) 25mm x 12mm x 3,15mm

3. Ceramicas piezoelectricas para sensores PZT-5A - Empleadas en la

fabricacion de sensores piezoelectricos.

a) 38mm x 13mm x 6,35mm, en forma de anillo.

b) 25mm x 12mm x 3,15mm, en forma de anillo.

c) 15mm x 0,9mm, en forma de disco.

Este tipo de piezoelectrico sera el empleado para la fabricacion de los sensores

adecuados para nuestra aplicacion.

Page 74: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

3.2. TRANSDUCTORES DE ULTRASONIDOS 51

La siguiente figura nos muestra un modelo de lobulos de cobertura de trans-

ductores de ultrasonidos utilizados habitualmente en la tecnologıa Sonar Side-scan,

siendo la mitad superior de la imagen, la vista frontal y la mitad inferior la vista

superior de dichos lobulos, esta sera el tipo de respuesta que buscaremos en los

sensores que se usaran en nuestro equipo.

Figura 3.9: Lobulos de cobertura de los transductores.

Page 75: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

52 CAPITULO 3. EQUIPO DE ADQUISICION

3.3. Software

3.3.1. Librerıa iUSBDAQ.dll

El controlador de la tarjeta iUSBDAQ instala la API de programacion

iUSBDAQ.dll en el sistema de archivos del PC que sera utilizado, esta dll sera in-

vocada por el sofware de control, que se encargara del manejo de la tarjeta.

1. Estructura DevSession - Estructura que guardara los datos de sesion de la

tarjeta.

Private Structure DevSession

Dim DevIdex As Integer

Dim DevInstance As Integer

Dim DevType As Integer

Dim iSession1 As Integer

Dim iSession2 As Integer

End Structure

2. Estructura DevInfo - Estructura que guardara informacion de fabricante y

usuario de la tarjeta.

Private Structure DevInfo

Dim SerialNumber As ULong

Dim DevID As Byte

Dim UserIndex As Byte

Dim Version As Integer

End Structure

Page 76: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

3.3. SOFTWARE 53

3. Funcion Enumerate Device - Esta funcion sera la primera en ser invocada

antes de utilizar cualquier otra funcion de la librerıa.

Enumera el total de tarjetas conectadas al PC, creando un mapeado de las mis-

mas, si hubiera alguna sesion de dispositivo abierta previamente, esta funcion

la cerrara automaticamente para crear el mapa de dispositivos. Esta funcion

tambien devuelve el numero de tarjetas conectadas al PC del tipo especificado

en la llamada a la funcion.

Normalmente solo necesitamos invocar esta funcion una vez durante la eje-

cucion normal de la aplicacion pero el usuario puede querer reenumerar los

dispositivos por si se ha desconectado alguno durante la ejecucion y tener

ası un mapeado actualizado de los dispositivos disponibles.

Sintaxis:

iUSBDAQ EnumerateDev (ByVal DevType As Integer, ByRef Count As

Integer) As Integer

Parametros:

DevType: Entrada, actualmente solo existe el modelo U120816, por tanto el

valor sera siempre 0.

Count: Salida, guarda el numero total de tarjetas conectadas y encontradas.

Datos devueltos:

Nos devuelve el codigo de error que resulte tras la ejecucion de la funcion o 0

si no hay errores.

4. Funcion Open Device - Esta funcion abre una sesion iUSBDAQ, esta sesion

sera empleada posteriormente para la llamada a otras funciones de la tarjeta.

Page 77: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

54 CAPITULO 3. EQUIPO DE ADQUISICION

La secuencia de llamada a las funciones de uso de la tarjeta serıa primero

enumerar dispositivos, despues abrir una sesion iUSBDAQ, invocar todas las

funciones de manejo que deseemos y al final de la aplicacion cerrar la sesion

iUSBDAQ, no siendo necesario repetir este bucle cada vez que vayamos a

emplear una funcion de manejo de la tarjeta.

Sintaxis:

iUSBDAQ OpenDevice (ByVal DevType As Integer, ByVal DevIndex As

Integer, ByRef Session As DevSession) As Integer

Parametros:

DevType: Entrada, actualmente solo existe el modelo U120816, por tanto el

valor sera siempre 0.

DevIndex: Entrada, ındice del dispositivo que se desea utilizar.

Session: Salida, guarda la sesion que ha sido abierta para emplearla en la

llamada a otras funciones de la tarjeta.

Datos devueltos:

Nos devuelve el codigo de error que resulte tras la ejecucion de la funcion o 0

si no hay errores.

5. Funcion Reset - Reinicia la tarjeta vıa software.

Sintaxis:

iUSBDAQ Reset (ByRef Session As DevSession) As Integer

Parametros:

Session: Entrada, guarda la sesion que ha sido abierta para emplearla en la

llamada a otras funciones de la tarjeta.

Datos devueltos:

Nos devuelve el codigo de error que resulte tras la ejecucion de la funcion o 0

si no hay errores.

Page 78: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

3.3. SOFTWARE 55

6. Funcion Release Device - Esta funcion cierra una sesion de dispositivo

ya abierta, normalmente se usa esta funcion una vez que el dispositivo no

va a volver a usarse, empleandose para cerrar el bucle de enumeracion de

dispositivos, apertura de sesion de dispositivo, llamada a funciones de manejo

y cierre de sesion al terminar de utilizar la tarjeta.

Sintaxis:

iUSBDAQ ReleaseDevice (ByRef Session As DevSession) As Integer

Parametros:

Session: Entrada, guarda la sesion que ha sido abierta para emplearla en la

llamada a otras funciones de la tarjeta.

Datos devueltos:

Nos devuelve el codigo de error que resulte tras la ejecucion de la funcion o 0

si no hay errores.

7. Funcion Get Device Serial Number - Esta funcion nos devuelve el numero

de serie del dispositivo, sabiendo que cada tarjeta tiene un numero de serie

unico podemos emplearlo para distinguir el dispositivo deseado en el caso de

que hubiera varios de ellos conectados simultaneamente al PC.

Sintaxis:

iUSBDAQ GetDeviceSerialNo (ByRef Session As DevSession, ByRef Serial-

Number As Integer) As Integer

Parametros:

Session: Entrada, guarda la sesion que ha sido abierta para emplearla en la

llamada a otras funciones de la tarjeta.

SerialNumber:

Salida, guarda el numero de serie del dispositivo devuelto por la funcion.

Page 79: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

56 CAPITULO 3. EQUIPO DE ADQUISICION

Datos devueltos:

Nos devuelve el codigo de error que resulte tras la ejecucion de la funcion o 0

si no hay errores.

8. Funcion Get Credits - Esta funcion devuelve informacion del disenador.

Sintaxis:

iUSBDAQ GetCredits (ByRef Session As DevSession, ByVal data As Byte)

As Integer

Parametros:

Session: Entrada, guarda la sesion que ha sido abierta para emplearla en la

llamada a otras funciones de la tarjeta.

data: Salida, es un array de 64 bytes que el usuario debera asignar, nos devuelve

informacion del disenador.

Datos devueltos:

Nos devuelve el codigo de error que resulte tras la ejecucion de la funcion o 0

si no hay errores.

9. Funcion Get DLL Version - Esta funcion devuelve la version de la librerıa

iUSBDAQ.dll que esta instalada.

Sintaxis:

iUSBDAQ GetDLLVersion () As Integer

Parametros:

Ninguno.

Datos devueltos:

Nos devuelve la version de la librerıa iUSBDAQ.dll que esta instalada.

Page 80: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

3.3. SOFTWARE 57

10. Funcion Get Firmware Version - Esta funcion devuelve la version de

Firmware que se esta utilizando.

Sintaxis:

iUSBDAQ GetFirmwareVersion (ByRef Session As DevSession, ByRef Ver-

sion As Integer) As Integer

Parametros:

Session: Entrada, guarda la sesion que ha sido abierta para emplearla en la

llamada a otras funciones de la tarjeta.

Version: Salida, almacenara el valor de la version de firmware.

Datos devueltos:

Nos devuelve el codigo de error que resulte tras la ejecucion de la funcion o 0

si no hay errores.

11. Funcion Get Error Description - Esta funcion toma un codigo de error del

dispositivo y da como salida una descripcion detallada del error.

Sintaxis:

iUSBDAQ GetErrorDes (ByVal ErrorCode As Integer, ByVal ErrorString As

Byte) As Integer

Parametros:

ErrorCode: Entrada, codigo del error.

ErrorString: Salida, almacenara la cadena de caracteres de la descripcion del

error, el usuario deberıa asignar una longitud de 256 bytes.

Datos devueltos:

Ninguno.

Page 81: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

58 CAPITULO 3. EQUIPO DE ADQUISICION

12. Funcion Read Single Analog Input - Esta funcion lee la tension de la

entrada analogica seleccionada.

Sintaxis:

iUSBDAQ ReadSingleAnalogIn (ByRef Session As DevSession, ByVal

Channel As Integer, ByVal InputRange As Integer, ByRef Voltage As Single,

ByRef Reserved As Integer) As Integer

Parametros:

Session: Entrada, guarda la sesion que ha sido abierta para emplearla en la

llamada a otras funciones de la tarjeta.

Channel: Entrada, nos da el numero del canal del que se leera el voltaje, el

rango de valores validos va de 0 a 7.

InputRange: Entrada, por el momento las tarjeta iUSBDAQ solo tienen un

rango de tension, por tanto sera siempre 0.

Voltage: Salida, guarda el valor de tension leido del canal seleccionado.

Reserved: Salida, parametro reservado, por el momento devolvera 0 siempre.

Datos devueltos:

Nos devuelve el codigo de error que resulte tras la ejecucion de la funcion o 0

si no hay errores.

13. Funcion Read Multiple Analog Inputs - Esta funcion lee la tension de

varias entradas analogicas a la vez.

Sintaxis:

iUSBDAQ ReadMultiAnalogIn (ByRef Session As DevSession, ByVal StartCh

As Integer, ByVal NofChs As Integer, ByVal InputRange As Integer, ByVal

Voltages As Single, ByRef Reserved As Integer) As Integer

Parametros:

Session: Entrada, guarda la sesion que ha sido abierta para emplearla en la

llamada a otras funciones de la tarjeta.

Page 82: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

3.3. SOFTWARE 59

StartCh: Entrada, nos da el numero del primer canal del que se leera el voltaje,

el rango de valores validos va de 0 a 7.

NofChs: Entrada, nos da el numero de canales del que se leera el voltaje a

partir del primer canal seleccionado. El numero maximo de canales es 8, pero

el valor maximo de este parametro dependera del primer canal seleccionado ya

que StartCh + NofChs no debe exceder de 8.

InputRange: Entrada, por el momento las tarjeta iUSBDAQ solo tienen un

rango de tension, por tanto sera siempre 0.

Voltages: Salida, guarda el valor de las tensiones leıdas de los canales

seleccionados.

Reserved: Salida, parametro reservado, por el momento devolvera 0 siempre.

Datos devueltos:

Nos devuelve el codigo de error que resulte tras la ejecucion de la funcion o 0

si no hay errores.

14. Funcion Analog Input Start Streaming - Esta funcion arranca el modo

streaming de adquisicion de datos de las entradas analogicas. Esta funcion

devuelve el control al programa principal tras su llamada y el streaming se

produce en segundo plano guardando los datos en un buffer interno del dis-

positivo.

La velocidad de muestreo maxima vendra limitada por el numero de canales

a muestrear, siendo la relacion entre ambos parametros la siguiente:

SampleRate = ScanRate ·NumberOfChannels

Por ejemplo, si tenemos un ScanRate de 3 Ksps y muetreamos los 8 canales

tendremos un SampleRate de 24 Ksps.

El valor mınimo para SampleRate tiene que ser 128 Samples/s, si necesitase-

mos un velocidad menor se podrıa emplear el modo Scan o sobremuestrear y

descartar muestras a posteriori.

Page 83: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

60 CAPITULO 3. EQUIPO DE ADQUISICION

Cuando activamos el modo de trigger externo, el dispositivo esperara un nivel

alto en la linea Trigger para comenzar la adquisicion, si este modo no esta ac-

tivo la adquisicion comenzara justo despues de la llamada a la funcion.

La funcion tambien devuelve el valor real de ScanRate, este valor no siempre

coincidira con el valor asignado por el usuario a este parametro y un codigo

de error si alguna de las configuracines de los canales es incorrecta.

Sintaxis:

iUSBDAQ AIStartStream (ByRef Session As DevSession, ByVal StartCh As

Integer, ByVal NofChs As Integer, ByVal InputRange As Integer, ByVal

ScanRate As Single, ByRef ActualRate As Integer, ByVal

withExternalTrigger As Single) As Integer

Parametros:

Session: Entrada, guarda la sesion que ha sido abierta para emplearla en la

llamada a otras funciones de la tarjeta.

StartCh: Entrada, nos da el numero del primer canal del que se leera el voltaje,

el rango de valores validos va de 0 a 7.

NofChs: Entrada, nos da el numero de canales de los que se leeran los voltajes

a partir del primer canal seleccionado. El numero maximo de canales es 8, pero

el valor maximo de este parametro dependera del primer canal seleccionado ya

que StartCh + NofChs no debe exceder de 8.

InputRange: Entrada, por el momento las tarjeta iUSBDAQ solo tienenvun

rango de tension, por tanto sera siempre 0.

ScanRate: Entrada, nos da el numero de muestras por segundo, siendo una

muestra la lectura de todos los canales seleccionados.

ActualRate: Salida, es el valor real de muestreo devuelto por la tarjeta, no

siempre se corresponde con el parametro ScanRate, ya que depende del reloj

interno del dispositivo.

Page 84: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

3.3. SOFTWARE 61

withExternalTrigger: Entrada, si el valor es 1, la funcion esperara un nivel alto

en la linea externa de trigger, si no comenzara a ejecutarse el streaming en

segundo plano tras la llamada a esta funcion.

Datos devueltos:

Nos devuelve el codigo de error que resulte tras la ejecucion de la funcion o 0

si no hay errores.

15. Funcion Analog Input Get Scans - Esta funcion obtiene los datos que han

ido almacenandose en segundo plano en el buffer interno durante la adquisicion

en modo streaming, la cantidad de muestras solicitadas puede ser especificada

por el usuario, no siendo necesario solicitar el total de ellas.

Esta funcion termina su ejecucion en el momento en que las muestras solici-

tadas han sido obtenidas, para detener su ejecucion deberemos invocar a la fun-

cion iUSBDAQ AIStopStream, en este caso la funcion iUSBDAQ AIGetScans

se detendra y nos dara el codigo de error correspondiente.

Los datos obtenidos van intercalados, por ejemplo, si comenzamos el

streaming, siendo el canal AI0 el primero y teniendo dos canales a muestrear,

los datos devueltos seguirıan el siguiente secuencia:

AI00, AI10, AI01, AI11, AI02, AI12...

Esta funcion tambien devuelve el numero real de muestras que se han obtenido

y que no necesariamente coincidira con el numero de muestras solicitadas.

La relacion entre el tamano del buffer y el numero de muestras reales es

Longitud del buffer ≥ Actual Scans ·Numero de Canales

La solicitud mınima no puede ser de menos de 128 muestras en total pero

no hay limite maximo en el numero total de muestras solicitadas. El buffer

interno tiene un tamano de 12,8 Ksamples, si se llena durante el streaming

los ultimos datos seran ignorados, normalmente el usuario deberıa llamar a la

funcion iUSBDAQ AIGetScans justo despues de que comience el streaming.

Page 85: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

62 CAPITULO 3. EQUIPO DE ADQUISICION

Hay dos posibles formas de solicitar las muestras, la primera es solicitar un

gran numero de muestras en cada llamada a la funcion, este numero puede

ser mayor al tamano del buffer interno y la propia librerıa se hara cargo de

ello, ya que la funcion esperara a haber conseguido el total de requerido para

terminar su ejecucion, la segunda opcion es solicitar un numero menor de

muestras y repetir la solicitud tantas veces como sea necesario, el riesgo de hac-

erlo de este modo son los retrasos temporales que pueden acarrear las multiples

llamadas a la funcion o la posibilidad de llenado del buffer interno y por tanto

que se comiencen a ignorar muestras teniendo discontinuidad en la correcta

adquisicion de datos.

Sintaxis:

iUSBDAQ AIGetScans (ByRef Session As DevSession, ByVal NumbofScans

As Integer, ByVal Timeout As Integer, ByVal Buffer As Single, ByRef

actualScans As Integer) As Integer

Parametros:

Session: Entrada, guarda la sesion que ha sido abierta para emplearla en la

llamada a otras funciones de la tarjeta.

NumbofScans: Entrada, nos da el numero total de muestras solicitadas a la

tarjeta .

Timeout: Entrada, nos dice el tiempo maximo de espera de la funcion en milise-

gundos en la lectura de 128 muestras, normalmente 1000 milisegundos sera un

valor valido para la mayor parte de aplicaciones.

buffer: Salida, hace referencia al array de datos en el que quedaran guardadas

las muestras requeridas.

actualScans: Salida, este parametro nos dira el numero real de muestras obtenidas

en la peticion y que no ha de ser a la fuerza el mismo valor que las muestras

solicitadas.

Page 86: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

3.3. SOFTWARE 63

Datos devueltos:

Nos devuelve el codigo de error que resulte tras la ejecucion de la funcion o 0

si no hay errores.

16. Funcion Analog Input Stop Streaming - Esta funcion detiene la adquisi-

cion de datos en modo streaming.

Sintaxis:

iUSBDAQ AIStopStream (ByRef Session As DevSession) As Integer

Parametros:

Session: Entrada, guarda la sesion que ha sido abierta para emplearla en la

llamada a otras funciones de la tarjeta.

Datos devueltos:

Nos devuelve el codigo de error que resulte tras la ejecucion de la funcion o 0

si no hay errores.

17. Funcion Read Counter - Esta funcion obtiene el valor de cuenta que tenga

el contador interno de la tarjeta en ese instante.

Sintaxis:

iUSBDAQ ReadCounter (ByRef Session As DevSession, ByVal Reset As In-

teger, ByRef Count As Integer) As Integer

Parametros:

Session: Entrada, guarda la sesion que ha sido abierta para emplearla en la

llamada a otras funciones de la tarjeta.

Reset: Entrada, si el valor de este parametro es 1, la cuenta se reiniciara despues

de la lectura y comenzara la siguiente cuenta desde 0, si el valor del parametro

es 0, la cuenta continuara desde el valor que tenga en el momento de la lectura.

Count: Salida, este parametro guardara el valor de la cuenta tras la llamada

a la funcion.

Page 87: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

64 CAPITULO 3. EQUIPO DE ADQUISICION

Datos devueltos:

Nos devuelve el codigo de error que resulte tras la ejecucion de la funcion o 0

si no hay errores.

18. Funcion Digital Input/Output - esta funcion hace una lectura/escritura

sobre los puertos digitales de entrada/salida. Las direcciones y estados son

representados mediante un byte, 8 bits, donde el bit de menor peso representa

al pin DIO mas bajo y el de mayor peso al pin DIO mas alto.

Sintaxis:

iUSBDAQ DIO (ByRef Session As DevSession, ByVal Port1to8dir As Byte,

ByVal Port9to16dir As Byte, ByRef Port1to8state As Byte, ByRef Port9to16state

As Byte, ByVal updateDio As Integer) As Integer

Parametros:

Session: Entrada, guarda la sesion que ha sido abierta para emplearla en la

llamada a otras funciones de la tarjeta.

Port1to8dir: Entrada, este parametro de tipo byte, 8 bits, representa los pines

DIO del 1 al 8, poniendo a 1 el bit correspondiente haremos que el pin al que

representa se configure como entrada digital, si el valor del bit es 0, el pin

representado sera configurado como salida digital, por ejemplo, si deseamos

configurar como entradas los pines DIO del 1 al 4 y como salidas los cuatro

pines restantes el valor binario de este parametro serıa 00001111, valor que

expresado en decimal serıa 15, este valor del parametro hara que este puerto

tome la configuracion descrita anteriormente.

Port9to16dir: Entrada, este parametro de tipo byte, 8 bits, representa los pines

DIO del 9 al 16, poniendo a 1 el bit correspondiente haremos que el pin al que

representa se configure como entrada digital, si el valor del bit es 0, el pin

representado sera configurado como salida digital.

Page 88: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

3.3. SOFTWARE 65

Port1to8state: Entrada/Salida, este parametro representa los estados de los

pines DIO del 1 al 8, para los pines configurados como salida, si el parametro

updateDio esta fijado a 1, lo que significa escritura/actualizacion de los pines

de salida, se escribira el valor del pin dado por el parametro y se leera y

devolvera a traves de este mismo parametro el valor anterior que tuvieran los

pines de salida. Si el valor de updateDio es 0, solo se producira una accion de

lectura del puerto guardando en este parametro el valor leıdo.

Port9to16state: Entrada/Salida, este parametro representa los estados de los

pines DIO del 9 al 16, para los pines configurados como salida, si el parametro

updateDio esta fijado a 1, lo que significa escritura/actualizacion de los pines

de salida, se escribira el valor del pin dado por el parametro y se leera y

devolvera a traves de este mismo parametro el valor anterior que tuvieran los

pines de salida. Si el valor de updateDio es 0, solo se producira una accion de

lectura del puerto guardando en este parametro el valor leıdo.

updateDio: Entrada, el valor de este parametro nos define que tipo de accion se

va a realizar sobre el puerto DIO seleccionado, si el valor es 1, se producira una

accion de escritura y actualizacion de todos los pines configurados como salida

en el puerto, si el valor es 0, se realizara una accion de lectura sobre todos los

pines del puerto.

Datos devueltos:

Nos devuelve el codigo de error que resulte tras la ejecucion de la funcion o 0

si no hay errores.

19. Funcion PWM Out - Esta funcion nos permite seleccionar y configurar las

salidas PWM del dispositivo.

Sintaxis:

iUSBDAQ PWMOut (ByRef Session As DevSession, ByVal Channel As Byte,

ByVal DutyCycle As Integer, ByVal Period As Integer) As Integer

Page 89: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

66 CAPITULO 3. EQUIPO DE ADQUISICION

Parametros:

Session: Entrada, guarda la sesion que ha sido abierta para emplearla en la

llamada a otras funciones de la tarjeta.

Channel: Entrada, este parametro selecciona cual de las dos salidas PWM

deseamos utilizar.

DutyCycle: Entrada, este parametro configura el ciclo de trabajo de la senal,

es decir la porcion de tiempo, de 0 a 100, que el pulso se mantendra a nivel

alto en un periodo.

Period: Entrada, el valor de este parametro define el periodo de la senal

generada, los valores pueden oscilar entre 3 µs y 333 µs, dando un rango de

frecuencias de funcionamiento entre 333 KHz y 3 KHz. Los dos canales de

PWM deberan tener la misma frecuencia de funcionamiento, siendo la ultima

frecuencia configurada la que se empleara en ambos canales.

Datos devueltos:

Nos devuelve el codigo de error que resulte tras la ejecucion de la funcion o 0

si no hay errores.

20. Funcion Stop PWM -Esta funcion nos permite detener la generacion de los

pulsos PWM del dispositivo.

Sintaxis:

iUSBDAQ STOPPWM (ByRef Session As DevSession, ByVal Channel As

Byte) As Integer

Parametros:

Session: Entrada, guarda la sesion que ha sido abierta para emplearla en la

llamada a otras funciones de la tarjeta.

Channel: Entrada, este parametro selecciona cual de las dos salidas PWM

deseamos detener.

Page 90: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

3.3. SOFTWARE 67

Datos devueltos:

Nos devuelve el codigo de error que resulte tras la ejecucion de la funcion o 0

si no hay errores.

21. Funcion Read Memory - Esta funcion nos permite leer datos de la memoria

EEPROM interna del dispositivo.

Sintaxis:

iUSBDAQ ReadMemory (ByRef Session As DevSession, ByVal ByteCount As

Byte, ByVal Address As Byte, ByVal Data As Byte) As Integer

Parametros:

Session: Entrada, guarda la sesion que ha sido abierta para emplearla en la

llamada a otras funciones de la tarjeta.

ByteCount: Entrada, este parametro nos da el numero de bytes que deseamos

leer, pero ha de cumplirse la siguiente condicion:

Address + ByteCount ≤ 240 esto se debe a que el tamano reservado, en la

memoria EEPROM interna, para datos de usuario es de 240 bytes.

Address: Entrada, este parametro nos da la direccion del primer byte que

queremos leer.

Data: Salida, este parametro sera el array que guardara los bytes leıdos de la

memoria, el tamano del array no puede ser menor que el valor del parametro

ByteCount .

Datos devueltos:

Nos devuelve el codigo de error que resulte tras la ejecucion de la funcion o 0

si no hay errores.

22. Funcion Write Memory - Esta funcion nos permite escribir datos en la

memoria EEPROM interna del dispositivo.

Page 91: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

68 CAPITULO 3. EQUIPO DE ADQUISICION

Sintaxis:

iUSBDAQ WriteMemory (ByRef Session As DevSession, ByVal ByteCount

As Byte, ByVal Address As Byte, ByVal Data As Byte) As Integer

Parametros:

Session: Entrada, guarda la sesion que ha sido abierta para emplearla en la

llamada a otras funciones de la tarjeta.

ByteCount: Entrada, este parametro nos da el numero de bytes que deseamos

escribir, pero ha de cumplirse la siguiente condicion:

Address + ByteCount ≤ 240 esto se debe a que el tamano reservado, en la

memoria EEPROM interna, para datos de usuario es de 240 bytes.

Address: Entrada, este parametro nos da la primera direccion en la que de-

seamos escribir el primer byte.

Data: Entrada, este parametro sera el array que guardara los bytes que quer-

emos escribir en la memoria.

Datos devueltos:

Nos devuelve el codigo de error que resulte tras la ejecucion de la funcion o 0

si no hay errores.

Page 92: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

3.3. SOFTWARE 69

3.3.2. Librerıa OpenGL

OpenGL es una especificacion estandar que define una API multilenguaje y mul-

tiplataforma para crear aplicaciones que produzcan graficas 2D y 3D. La interfaz

consta de mas de 250 funciones diferentes que pueden usarse para dibujar esce-

nas tridimensionales complejas a partir de formas primitivas geometricas simples,

tales como puntos, lineas y triangulos, se usa de forma bastante generalizada en

herramientas CAD, realidad virtual, representacion cientıfica, visualizacion de in-

formacion, simulacion de vuelo y desarrollo de videojuegos.

Fundamentalmente OpenGL es una especificacion, es decir, un documento que

describe un conjunto de funciones y el comportamiento exacto de las mismas,

habiendo implementaciones eficientes de OpenGL para Mac OS, Windows, GNU

Linux, varias plataformas Unix y Play Station 3, existiendo tambien implementa-

ciones de sofware que permiten la ejecucion de aplicaciones OpenGL sin soporte de

aceleracion hardware.

OpenGL tiene dos propositos esenciales:

1. Ocultar la complejidad de la interfaz con las diferentes tarjetas graficas, pre-

sentando al programador una API unica y uniforme.

2. Ocultar las diferentes capacidades de las diversas plataformas hardware, re-

quiriendo que todas las implementaciones soporten la funcinalidad completa

de OpenGL (utilizando emulacion software si fuera necesario).

El funcionamiento basico de OpenGL consiste en aceptar primitivas tales como pun-

tos, lıneas y polıgonos y convertirlas en pıxeles. Este proceso es realizado por una

pipeline grafica conocida como maquina de estados OpenGL.

Page 93: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

70 CAPITULO 3. EQUIPO DE ADQUISICION

La mayor parte de los comandos de OpenGL envıan primitivas a la pipeline grafica

o bien configuran como la pipeline procesa dichas primitivas. Hasta la version 2.0

cada etapa de la pipeline ejecutaba una funcion prefijada, resultando poco config-

urable, a partir de esta version algunas etapas son programables usando un lenguaje

de programacion llamado GLSL.

OpenGL es una API basada en procedimentos de bajo nivel que requiere que

el programador dicte los pasos exactos necesarios para renderizar una escena y ha

influido en el desarrollo de la trajetas graficas, promocionando un nivel basico de

funcionalidad que actualmente es comun en el hardware comercial, algunas de estas

contribuciones son:

1. Primitivas basicas de puntos, lıneas y polıgonos rasterizados.

2. Uso de una pipeline de transformacion e iluminacion.

3. Z-buffering.

4. Alpha blending.

Una descripcion somera del proceso en la pipeline grafica podrıa ser la siguiente:

1. Evaluacion, si procede, de las funciones polinomiales que definen ciertas en-

tradas,aproximando curvas y la geometrıa de la superficie.

2. Operaciones por vertices, transformandolos, iluminandolos segun su material y

recortando partes no visibles de la escena para producir un volumen de vision.

3. Rasterizacion o conversion de la informacion previa en pıxeles. Lospolıgonos

son representados con el color adecuado mediante algoritmos de interpolacion.

Page 94: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

3.3. SOFTWARE 71

4. Operaciones por fragmentos o segmentos, como actualizacion segun valores

venideros o ya almacenados, de profundidad o combinacion de colores, entre

otros.

5. Por ultimo, los fragmentos son volcados en el Frame Buffer.

Page 95: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

72 CAPITULO 3. EQUIPO DE ADQUISICION

3.3.3. Librerıas Tao

Tao Framework es una interfaz, a un conjunto de librerıas codificadas en C,

basada en C # que da acceso a desarrolladores en leguajes de programacion .NET,

como es Visual Basic 2008, y Mono a un amplio espectro de utilidades graficas tales

como OpenGL y SDL. Actualmente el proyecto de Tao Framework se ha continuado

bajo el nombre de Tao Classic siendo este ultimo la continuacion directa del proyecto

Tao Framework.

Originalmente el diseno grafico basado en Tao Framework era bastante simple,

dotando a traves de estas librerıas de una coleccion de APIs de utilidades graficas

basadas en C y realizando la accion de interface entre dichas librerıas y la aplicacion

desarrollada en .NET o Mono.

Tao Classic sigue esta misma filosofıa, migrando simplemente el lenguaje de codifi-

cacion de las librerıas de C a C C++ para tratar de optimizar su funcionamiento.

En la fase actual de desarrollo de Tao Classic se han conseguido soportar diversos

sistemas operativos tales como Windows y gran parte de distribuciones de Linux,

tanto de 32 como de 64 bits. El soporte para Mac OSx se esta desarrollando actual-

mente para cubrir todos los sistemas operativos soportados por el antiguo proyecto

Tao Framework.

Tao Classic ofrece interface para las siguientes librerıas graficas:

1. BASS - Actualmente en desarrollo.

2. Cg 2.0.0.0

3. DevIL 1.6.8.3

4. FFmpeg 0.4.9.0

Page 96: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

3.3. SOFTWARE 73

5. FreeGLUT 2.4.0.2

6. FreeType 2.3.5.0

7. GLFW 2.7.7.0

8. Lua 5.1.3.0

9. ODE 0.12.0.0

10. OpenAL 1.1.0.1

11. OpenGL 4.3.0.0

12. PhysFS 1.0.1.2

13. SDL 1.2.13.0

Page 97: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

74 CAPITULO 3. EQUIPO DE ADQUISICION

3.3.4. Sofware de control

La pantalla de interfaz con el usuario que nos encontramos al arrancar la apli-

cacion es la mostrada en la figura 3.10:

Figura 3.10: Pantalla al inicio.

El funcionamiento del software de control y representacion queda reflejado en

los siguientes diagramas de flujo, siendo la figura 3.11 el diagrama general de la

aplicacion y la figura 3.12 el diagrama de flujo durante la representacion explicado

en detalle para hacernos una idea concreta de la secuencia de acciones que sigue el

bucle de obtencion, tratamiento y representacion de muestras.

Page 98: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

3.3. SOFTWARE 75

Si es Iniciar representación

Si es Recuperar imagen

Si es Pararrepresentación

Si

No

Esperar la pulsación de algún botón

Se pulsaun botón

Arrancarstreaming

Comenzar laobtención

del número demuestrassolicitado

Parar streaming

¿Hay errores?

Procesarmuestras

Guardar muestras

procesadas enun fichero

Representarmuestras

procesadas

No Si¿Detener

representación?

Parar streaming,la recogida de muestras y la

representación

Notificar el / los avisos

Representar

Habilitar teclas de desplazamineto

de imagen

No

Si

No ¿Manipularimagen?

Si

Notificar el / los avisos

¿Hay errores?

Cargar datosdel fichero

¿Hay errores?Si

No

Seleccionar fichero

Figura 3.11: Diagrama de flujo general.

Page 99: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

76 CAPITULO 3. EQUIPO DE ADQUISICION

Espera pulsación de tecla

¿Tecla pulsada?

Arrancar Streaming

¿Hay errores?

¿Llega la señal?Tiempo de

espera sobre-pasado

Inicio de representación pulsada

Esperar señal de trigger

Solicitud de muestras

¿Hay errores?

Esperar muestras

¿Muestras recibidas?

Parar Streaming

¿Hay errores?

Prorrateo de las muestras

Normalización de muestras prorrateadas

¿Hay errores?

¿Hay errores?

Guardado de los datos ya tratados en fichero

Representación en pantalla de los datos tratados

¿Parar representación?

SI

NO

SI

SI

SI

SI

SI

SI

SI

SI

SI

NO NO

NO

NO

NO

NO

NO

NO

NO

Tiempo deespera sobre-

pasado

SI

NO

Salir del bulceObtener /

Representarmuestras

Publico el aviso

Figura 3.12: Diagrama de flujo del bucle de obtencion y representacion de muestras.

Page 100: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

3.3. SOFTWARE 77

Ahora analizaremos mas concienzudamente el proceso de obtencion y repre-

sentacion de las muestras.

Tras la pulsacion de la tecla START comienza el ciclo de adquisicion de muestras,

arrancando el muestreo y posterior almacenaje en el buffer interno de la tarjeta, a

traves de la funcion:

Errores = iUSBDAQ AIStartStream(DeviceSession, 0, N Canales, 0, BRate, ARate,

1)

A traves de esta funcion arrancamos y configuramos el modo Streaming de adquisi-

cion de datos pasando como parametros DeviceSession que da informacion de sesion

del dispositivo a utilizar, por si hubiera varios dispositivos del mismo tipo conecta-

dos simultaneamente a nuestro PC, Canal inicial = 0, que nos da el primer canal

a muestrear, N Canales = 2, que nos da el numero total de canales a muestrear

a partir del canal inicial dado en el parametro anterior, BRate = 9600, que nos

da la frecuencia de muestreo por canal escaneado y activando la opcion de Trigger

externo, que habilita la entrada externa de senal de trigger que servira de senal de

sincronismo, de esta funcion se recogen los datos Errores que nos dira si la ejecucion

de la funcion ha sido correcta y ARate que nos dara el valor real de muestreo que

esta empleando la tarjeta en la adquisicion, comprobamos al consultar este valor que

se corresponde con BRate facilitado a la funcion como parametro.

A continuacion se invoca la funcion de peticion de muestras:

Errores = iUSBDAQ AIGetScans(DeviceSession, Samples, Timeout, Buffer datos,

N Samples)

Page 101: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

78 CAPITULO 3. EQUIPO DE ADQUISICION

A esta funcion le facilitamos los siguientes parametros, DeviceSession que da

informacion de sesion del dispositivo a utilizar, por si hubiera varios dispositivos

del mismo tipo conectados simultaneamente a nuestro PC, Samples, que fijara el

numero de muestras por canal que deseamos recibir, Timeout, fija el tiempo maximo

de espera para 128 muestras, el valor recomendado por el fabricante son 1000 ms y

Buffer datos, facilita el acceso al buffer de guardado de muestras, como respuesta

obtenemos los valores Errores, que nos informara del funcionamiento correcto o no

de la llama a la funcion y N Samples que nos devuelve el numero exacto de muestras

devueltas por la funcion, nos sirve para comprobar que se nos han devuelto todas

las muestras solicitadas.

Tras la llamada a esta funcion se iran adquiriendo muestras hasta llegar al

numero de ellas solicitadas por el software de control a traves de la misma, este

numero dependera de la distancia al fondo tal y como se muestra en la tabla 3.1 ,

una vez alcanzada la cantidad correcta seran enviadas al sofware de control para su

procesado y adecuacion para una representacion correcta, siempre y cuando no se

hayan producido errores en el proceso.

Tras la consecucion de las muestras deseadas se detiene la adquisicion, compro-

bando si se producen errores en la detencion del muestreo a traves de la variable

errores que recogera el codigo de error devuelto por la funcion, 0 si no se producen

errores, siendo la funcion empleada la siguiente:

Errores = iUSBDAQ AIStopStream(DeviceSession)

A esta funcion tan solo se le facilita el parametro DeviceSession que da informa-

cion de sesion del dispositivo utilizado.

Page 102: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

3.3. SOFTWARE 79

En funcion de la profundidad tambien viene determinado el numero de muestras

a prorratear para obtener un valor adecuado para la representacion, promediado y

normalizado, la ecuacion empleada para ello es la siguiente:

∑Nn=0

MuestranN

4,096

Siendo N el numero de muestras a prorratear y calculado a partir del valor de

distancia del torpedo al fondo, y 4,096 V el valor maximo de tension que recoge la

tarjeta. Aplicando esta ecuacion a cada una de las adquisiciones obtenemos los

valores que seran representados por pantalla y guardados en fichero. La repre-

sentacion de las muestras se realiza a traves de la librerıa OpenGL con la que con-

seguimos transformar los datos numericos en puntos de la pantalla, asignandoles una

coordenada XY, en funcion del momento de adquisicion, y color, distintos tonos de

verde que nos facilita OpenGL, en funcion del valor normalizado y prorrateado de

las muestras, esta representacion se hace a traves de funciones propias de la librerıa

grafica, manejadas a traves de la clase OGL creada exclusivamente para el manejo de

las funciones graficas y configuracion de la representacion. Tras la representacion y si

no se han producido errores se realiza un guardado de las muestras representadas en

un fichero .dat, este fichero podra consultarse posteriormente para recuperar dicha

imagen en el momento que se desee.

Este bucle se repite hasta que se pulse la tecla STOP, la pulsacion de esta provo-

cara la detencion del muestreo, la adquisicion, la representacion y el guardado y la

habilitacion de los controles de recuperacion y manipulacion de la imagen, permitien-

do cargar cualquier imagen guardada en fichero y movernos a lo largo de ella a traves

de la teclas de desplazamiento, desplazamiento lento, de un pixel por pulsacion, o

desplazamiento rapido, de cinco pixeles por pulsacion.

Page 103: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

80 CAPITULO 3. EQUIPO DE ADQUISICION

Por otra parte, para el correcto almacenamiento, cada vez que arrancamos la

aplicacion se genera automaticamente en el directorio ”Imagenes”, dentro del di-

rectorio raız del programa, una carpeta nombrada con la fecha actual, dentro de

esta carpeta se guardaran automaticamente todos los ficheros que se generen ese

dıa nombrados con la hora, minuto y segundo a la que arranco la representacion,

durante todas estas operaciones se va comprobando que no se produzcan errores de

ejecucion y, si es el caso, publicando el aviso de notificacion al usuario.

Page 104: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

Capıtulo 4

Resultados y medidas

En este apartado incluiremos las capturas de pantalla obtenidas en el laboratorio,

haciendo funcionar el sistema sin incluir la electronica de adaptacion ni los sensores,

simulandolos a traves de dos generadores de senales, figura 4.1, uno que marcara la

frecuencia de trigger tanto de la tarjeta como del otro generador para sincronizar la

representacion, a traves de la generacion de un tren de pulsos cuadrados de entre 1

Hz y 2 Hz de frecuencia, que son los margenes dinamicos del sistema de adquisicion,

figura 4.2.

El segundo generador de senales generara dos tipos de senales, el primero, ondas

cuadradas, figuras 4.3 y 4.4, que nos sirven para ver las posibles faltas de sincronismo,

figuras 4.9, 4.10, 4.11, 4.12 y 4.13, y la segunda, sinusoides, figuras 4.5 y 4.6, para

recorrer los distintos tonos de verde con los que se representara en pantalla la imagen,

figuras 4.14, 4.15, 4.16, 4.17 y 4.18, la frecuencia en ambas se ha fijado en 25 Hz,

para que a la profundidad mınima, 10 m, se cubra cada una de las mitades de la

imagen con un periodo completo de la senal muestreada.

81

Page 105: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

82 CAPITULO 4. RESULTADOS Y MEDIDAS

Las siguientes figuras nos muestran la interconexion de los sistemas en el labo-

ratorio para la obtencion de las imagenes anteriores ası como detalles de su

configuracion.

Figura 4.1: Sistema de prueba completo.

Page 106: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

83

Figura 4.2: Senal de Trigger.

Page 107: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

84 CAPITULO 4. RESULTADOS Y MEDIDAS

Figura 4.3: Generador de senal muestreada: onda cuadrada, 25 Hz.

Figura 4.4: Pantalla del osciloscopio: onda cuadrada, 25 Hz y Trigger.

Page 108: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

85

Figura 4.5: Generador de senal muestreada: onda senoidal, 25 Hz.

Figura 4.6: Pantalla del osciloscopio: onda senoidal, 25 Hz y Trigger.

Page 109: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

86 CAPITULO 4. RESULTADOS Y MEDIDAS

Arrancamos la aplicacion y aparece la siguiente pantalla, podemos ver que en la

ventana de avisos aparece el mensaje de que la tarjeta no esta conectada al PC.

Figura 4.7: Pantalla al inicio.

Page 110: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

87

Si conectamos la tarjeta al puerto USB del equipo y pulsamos la tecla START

obtendremos la siguiente pantalla en la que se nos indica que la tarjeta esta conectada

y se ha iniciado correctamente.

Figura 4.8: Pantalla al inicio con tarjeta conectada.

Iniciamos la representacion, volviendo a pulsar la tecla START y hasta que

pulsemos la tecla STOP, el sistema generara graficas como las siguientes:

Page 111: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

88 CAPITULO 4. RESULTADOS Y MEDIDAS

Representacion de la onda cuadrada de 25 Hz:

Figura 4.9: Representacion de una onda cuadrada a 10 m de profundidad.

Page 112: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

89

Figura 4.10: Representacion de una onda cuadrada a 20 m de profundidad.

Figura 4.11: Representacion de una onda cuadrada a 40 m de profundidad.

Page 113: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

90 CAPITULO 4. RESULTADOS Y MEDIDAS

Figura 4.12: Representacion de una onda cuadrada a 60 m de profundidad.

Figura 4.13: Representacion de una onda cuadrada a 80 m de profundidad.

Page 114: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

91

Representacion de la onda sinusoidal de 25 Hz:

Figura 4.14: Representacion de una onda sinusoidal a 10 m de profundidad.

Page 115: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

92 CAPITULO 4. RESULTADOS Y MEDIDAS

Figura 4.15: Representacion de una onda sinusoidal a 20 m de profundidad.

Figura 4.16: Representacion de una onda sinusoidal a 40 m de profundidad.

Page 116: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

93

Figura 4.17: Representacion de una onda sinusoidal a 60 m de profundidad.

Figura 4.18: Representacion de una onda sinusoidal a 80 m de profundidad.

Page 117: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

94 CAPITULO 4. RESULTADOS Y MEDIDAS

Una vez que se ha representado el area deseada pulsamos la tecla STOP para

detener la representacion, esto nos genera pantallas como las siguientes.

Figura 4.19: Parar representacion de una onda cuadrada.

Figura 4.20: Parar representacion de una onda sinusoidal.

Page 118: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

95

Llegados a esta pantalla, como la mostrada en las figuras 4.20 y 4.19, se habilita

la opcion de recuperar imagen desde fichero, una vez que se pulsa esta tecla,

RECUPERAR IMAGEN, aparece un explorador en el que podemos seleccionar

el archivo que deseamos cargar.

Una vez cargada la imagen se habilitan las teclas de desplazamiento para poder

movernos a lo largo de la imagen, tal y como se ve en la imagen 4.21.

Figura 4.21: Carga de imagen de senal sinusoidal a 60 m desde fichero.

Page 119: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

96 CAPITULO 4. RESULTADOS Y MEDIDAS

Page 120: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

Capıtulo 5

ANEXO

5.1. Codigo comentado

Clase Form1.vb

Option Strict Off

Option Explicit On

Imports Tao.Platform.Windows ’ Librerıas Tao, permiten la utilizacion de OpenGL.

Imports System.Array ’Importamos la clase Array del sistema.

Imports Microsoft.VisualBasic.FileIO.FileSystem ’Importamos la clase FileIO para

el manejo de ficheros.

97

Page 121: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

98 CAPITULO 5. ANEXO

Public Class Form1

Inherits System.Windows.Forms.Form

’CONSTANTES.

Const N Canales = 2 ’Numero de canales usados en la tarjeta.

Const BRate = 9600 ’Baudrate de muestreo de los canales analogicos.

Const Timeout = 1000 ’Timeout para la transmision de 128 muestras por la tarjeta.

Const Tamanio = (17 * 768) - 1 ’Tamano del buffer de recepcion de muestras.

Habra que ver cual es el tamano maximo deseado, dependiendo de la profundidad

maxima.

Const Tamaniopixeles = 767 ’Tamano del buffer de normalizacion y prorrateo. Cor-

responde con el ancho de la imagen.

Const Tamaniopantalla = 1100 ’Corresponde con el largo de la imagen.

Const Estado P1 8 = 255 ’Configura el puerto DIO 1-8, todo salidas.

Const Estado P9 16 = 255 ’Configura el puerto DIO 9-16, todo salidas.

’DEFINICIONES DE DATOS.

’Estructura que guardara los datos de sesion de la tarjeta.

Private Structure DevSession

Dim DevIdex As Integer

Dim DevInstance As Integer

Dim DevType As Integer

Dim iSession1 As Integer

Dim iSession2 As Integer

End Structure

Page 122: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

5.1. CODIGO COMENTADO 99

’Estructura que guarda informacion de fabricante y usuario de la tarjeta.

Private Structure DevInfo

Dim SerialNumber As ULong

Dim DevID As Byte

Dim UserIndex As Byte

Dim Version As Integer

End Structure

Public Structure Buffer

Dim Buffer() As Single

End Structure

’ATRIBUTOS.

’Variables de informacion de estado.

Dim Inicializacion As Boolean = False ’Nos indica la inicializacion o no de la tarje-

ta.

Dim Representacion As Boolean = False ’Nos indica el inicio o no de la repre-

sentacion de datos.

’Variables de almacenmiento e informacion sobre los datos.

Dim Samples As Integer ’Numero de muestras por canal que se van a solicitar.

Dim N Samples As Integer ’Valor real de muestras devueltas por la tarjeta.

Dim Buffer datos(Tamanio) As Single ’Buffer de datos, guarda las muestras solici-

tadas a la tarjeta.

Dim Buffer Norm Pro(0) As Buffer ’Buffer de datos, guarda los datos prorrateados

y normalizados.

Dim Samples proRated As Integer ’Numero mınimo de muestras a promediar por

pixel.

Page 123: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

100 CAPITULO 5. ANEXO

Dim X As Integer = 0 ’Nos da la posicion del pixel a lo largo del eje X,es decir, la

posicion en Buffer Norm Pro.

Dim Coordenada x As Single = -1 ’Nos da la posicion del pixel a lo largo del eje X

de la imagen, sirve para posicionarnos en la imagen al representar.

Dim desplazamiento As Integer = 0 ’Nos da el valor de columnas a desplazar durante

la representacion tras recuperar una imagen.

Dim N As Integer = 0 ’Almacena el tamano del buffer de lectura tras recuperar

datos de un fichero.

’Objeto OpenGL.

Dim opengl As OGL ’Objeto de tipo OGL empleado para las representaciones grafi-

cas.

’Variables de informacion y uso de la tarjeta.

Dim Errores As Integer ’Recoge el codigo de error devuelto por las funciones de la

tarjeta.

Dim ARate As Integer ’Guarda el valor de muestreo real devuelto por la tarjeta.

Dim DeviceSession As DevSession ’Guarda datos de sesion de la tarjeta.

Dim DeviceInfo As DevInfo ’Guarda informacion de la tarjeta.

’Variables temporarles.

Dim tpmin As Integer ’Tiempo mınimo de espera entre la excitacion del sensor y la

llegada de ecos en ms.

Dim tpmax As Integer ’Intervalo maximo de tiempo de recogida de muestras en ms.

’Variables para manejo de ficheros y directorios.

Dim archivo As String ’Guarda el nombre generado para el fichero que guardara la

imagen que se representa.

Dim directorio As String ’Guarda el nombre generado para el directorio que alber-

gara los ficheros que guardaran las imagenes que se representen ese dıa.

Page 124: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

5.1. CODIGO COMENTADO 101

’FUNCIONES IMPORTADAS.

’Funciones de manejo de la tarjeta incluidas en la librerıa iUSBDAQvb.dll.

Private Declare Function iUSBDAQ EnumerateDev Lib ”iUSBDAQvb.dll”

(ByVal DevType As Integer, ByRef Count As Integer)As Integer

Private Declare Function iUSBDAQ GetDLLVersion Lib ”iUSBDAQvb.dll” ()

As Integer

Private Declare Function iUSBDAQ OpenDevice Lib ”iUSBDAQvb.dll”

(ByVal DevType As Integer, ByVal DevIndex As Integer, ByRef Session As

DevSession) As Integer

Private Declare Function iUSBDAQ GetDeviceSerialNo Lib ”iUSBDAQvb.dll”

(ByRef Session As DevSession, ByRef serial As ULong) As Integer

Private Declare Function iUSBDAQ ReleaseDevice Lib ”iUSBDAQvb.dll”

(ByRef Session As DevSession)As Integer

Private Declare Function iUSBDAQ Reset Lib ”iUSBDAQvb.dll”

(ByRef Session As DevSession) As Integer

Private Declare Function iUSBDAQ ReadMultiAnalogIn Lib ”iUSBDAQvb.dll”

(ByRef Session As DevSession, ByVal StartCh As Integer, ByVal NofChs

As Integer, ByVal InputRange As Integer, ByRef Voltages As Single,

ByRef Reserved As Integer) As Integer

Private Declare Function iUSBDAQ AIStartStream Lib ”iUSBDAQvb.dll”

(ByRef Session As DevSession, ByVal StartCh As Short, ByVal NofChs

Page 125: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

102 CAPITULO 5. ANEXO

As Integer, ByVal InputRange As Integer, ByVal ScanRate As Integer,

ByRef ActualRate As Integer, ByVal withExternalTrigger As Integer) As Integer

Private Declare Function iUSBDAQ AIStopStream Lib ”iUSBDAQvb.dll”

(ByRef Session As DevSession) As Integer

Private Declare Function iUSBDAQ AIGetScans Lib ”iUSBDAQvb.dll”

(ByRef Session As DevSession, ByVal NoScans As Integer, ByVal timeout

As Integer, ByVal buffer() As Single, ByRef actualSamples As Integer) As Integer

Private Declare Function iUSBDAQ DIO Lib ”iUSBDAQvb.dll”

(ByRef Session As DevSession, ByVal Port1to8dir As Byte, ByVal Port9to16dir As

Byte, ByRef Port1to8state As Byte, ByRef Port9to16state As Byte,

ByVal update Renamed As Integer) As Integer

Private Declare Function iUSBDAQ GetErrorDes Lib ”iUSBDAQvb.dll”

(ByVal ErrorCode As Integer, ByVal ErrorString As String) As Integer

Private Declare Function iUSBDAQ ReadCounter Lib ”iUSBDAQvb.dll”

(ByRef Session As DevSession, ByVal Reset Renamed As Integer, ByRef Count

As Integer) As Integer

Private Declare Function iUSBDAQ PWMOut Lib ”iUSBDAQvb.dll”

(ByRef Session As DevSession, ByVal channel As Byte, ByVal dutyCycle As Integer,

ByVal period As Integer) As Integer

Page 126: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

5.1. CODIGO COMENTADO 103

Private Declare Function iUSBDAQ 10bitPWMOut Lib ”iUSBDAQvb.dll”

(ByRef Session As DevSession, ByVal channel As Byte, ByVal dutyCycle As Integer,

ByVal period As Integer) As Integer

Private Declare Function iUSBDAQ ChangePWMDutyCycle Lib ”iUSBDAQvb.dll”

(ByRef Session As DevSession, ByVal channel As Byte, ByVal dutyCycle As Integer,

ByVal period As Integer) As Integer

Private Declare Function iUSBDAQ Change10bitPWMDutyCycle Lib ”iUSBDAQvb.dll”

(ByRef Session As DevSession, ByVal channel As Byte, ByVal dutyCycle As Integer,

ByVal period As Integer) As Integer

Private Declare Function iUSBDAQ STOPPWM Lib ”iUSBDAQvb.dll”

(ByRef Session As DevSession, ByVal channel As Integer) As Integer

’Funcion para hacer esperas.

Private Declare Sub Sleep Lib ”kernel32 (ByVal dwMilliseconds As Integer)

’METODOS Y FUNCIONES.

Funcion de arranque de la aplicacion.

Private Sub Form1 Load(ByVal sender As Object, ByVal e As System.EventArgs)

Handles MyBase.Load

Dim Count As Integer = 0 ’Guarda el numero de tarjeta conectadas al PC.

Iniciar Tarjeta(Count)

Inicializaciones()

Crear Objeto OGL()

End Sub

Page 127: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

104 CAPITULO 5. ANEXO

’Funcion de cierre de la aplicacion.

Private Sub Form1 Closed(ByVal sender As Object, ByVal e As System.EventArgs)

Handles MyBase.Closed

Parar Representacion()

Cerrar()

End Sub

’Iniciar representacion.

Private Sub Button1 Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

Handles Button1.Click

Dim Count As Integer = 0 ’Guarda el numero de tarjeta conectadas al PC.

If Inicializacion = True Then

If Representacion = False Then

Button4.Visible = False

Button4.Enabled = False

Button5.Visible = False

Button5.Enabled = False

Button6.Visible = False

Button6.Enabled = False

Button7.Visible = False

Button7.Enabled = False

GroupBox4.Visible = False

X = 0

Iniciar Representacion()

End If

Page 128: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

5.1. CODIGO COMENTADO 105

Else

TextBox5.Text = ”Error al representar, primero debe iniciar la tarjeta.”

Iniciar Tarjeta(Count)

End If

End Sub

’Parar representacion.

Private Sub Button2 Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

Handles Button2.Click

If Representacion = True Then

GroupBox4.Visible = True

Parar Representacion()

End If

End Sub

’Recupera imagen desde fichero y la representa por pantalla.

Private Sub Button3 Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

Handles Button3.Click

desplazamiento = 0

Button4.Visible = True

Button4.Enabled = True

Button4.BackColor = Color.White

Button5.Visible = True

Button5.Enabled = True

Button5.BackColor = Color.White

Button6.Visible = True

Button6.Enabled = True

Button6.BackColor = Color.White

Button7.Visible = True

Page 129: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

106 CAPITULO 5. ANEXO

Button7.Enabled = True

Button7.BackColor = Color.White

N = Leer Fichero(Buffer Norm Pro)

X = N

opengl.Borrar pantalla()

While X ≥ 0

Representar()

X -= 1

End While

End Sub

’Desplazar imagen recuperada de fichero a la izquierda.

Private Sub Button4 Click(ByVal sender As System.Object, ByVal eAs System.EventArgs)Handles

Button4.Click

X = N

If X + desplazamiento ≥ 0 Then

Button5.BackColor = Color.White

desplazamiento -= 1

opengl.Borrar pantalla()

While X ≥ 0

Representar()

X -= 1

End While

Else

Button4.BackColor = Color.Red

End If

End Sub

Page 130: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

5.1. CODIGO COMENTADO 107

’Desplazar imagen recuperada de fichero a la derecha.

Private Sub Button5 Click(ByVal sender As System.Object, ByVal eAs System.EventArgs)Handles

Button5.Click

X = N

If desplazamiento ≤ 0 Then

Button4.BackColor = Color.White

desplazamiento += 1

opengl.Borrar pantalla()

While X ≥ 0

Representar()

X -= 1

End While

Else

Button5.BackColor = Color.Red

End If

End Sub

’Desplazar imagen recuperada de fichero a la derecha rapido.

Private Sub Button6 Click(ByVal sender As System.Object, ByVal eAs System.EventArgs)Handles

Button6.Click

X = N

If desplazamiento < −4 Then

Button7.BackColor = Color.White

desplazamiento += 5

opengl.Borrar pantalla()

While X ≥ 0

Representar()

Page 131: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

108 CAPITULO 5. ANEXO

X -= 1

End While

Else

Button6.BackColor = Color.Red

End If

End Sub

’Desplazar imagen recuperada de fichero a la izquierda rapido.

Private Sub Button7 Click(ByVal sender As System.Object, ByVal eAs System.EventArgs)Handles

Button7.Click

X = N

If desplazamiento + X ≥ 5 Then

Button6.BackColor = Color.White

desplazamiento -= 5

opengl.Borrar pantalla()

While X ≥ 0

Representar()

X -= 1

End While

Else

Button7.BackColor = Color.Red

End If

End Sub

Page 132: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

5.1. CODIGO COMENTADO 109

’Distancia perpendicular al fondo.

Private Sub TrackBar2 Scroll(ByVal sender As System.Object, ByVal e As Sys-

tem.EventArgs) Handles TrackBar2.Scroll

tpmin = CInt((TrackBar2.V alue · 20)/15) ’Distancia minima al fondo x2 (ida y

vuelta)/ Velocidad del sonido en agua salada.

tpmax = CInt((TrackBar2.V alue · 40)/15) ’Distancia maxima al fondo x2 (ida y

vuelta), x2 (dividida entre cos(60o) = 0,5)/ Velocidad del sonido en agua salada.

Samples = CInt((tpmin+ tpmax) ·BRate/1000) ’Numero total de muestras a solic-

itar a la tarjeta.

Samples proRated = CInt(TrackBar2.V alue/10) ’Numero de muestras a pror-

ratear por cada pixel.

TextBox2.Text = TrackBar2.Value & ” m.”

End Sub

’FUNCIONES EMPLEADAS POR LOS METODOS.

Private Function Prorrateo y Normalizacion(ByVal Buffer recepcion() As Single,

ByVal Buffer() As Buffer) As Integer

Dim n As Integer = 0

Dim i As Integer = 0

Borrado buffer()

While n < ((Tamaniopixeles+ 1)/2)

While i < Samples proRated

Buffer(0).Buffer(n)+ = (Buffer recepcion((2 · n · Samples proRated) +

(2 · i))/(4,095 · Samples proRated))

Buffer(0).Buffer(n+((Tamaniopixeles+1)/2))+ = (Buffer recepcion((2·

n · Samples proRated+ 1) + (2 · i+ 1))/(4,095 · Samples proRated))

i += 1

End While

Page 133: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

110 CAPITULO 5. ANEXO

n += 1

i = 0

End While

End Function

’Funcion de peticion de muestras a la tarjeta y llamada a la funcion de prorrateo y

normalizacion.

Private Function Obtener muestras() As Integer

Errores = iUSBDAQ AIGetScans(DeviceSession, Samples, Timeout, Buffer datos,

N Samples)

If Errores = 0 Then

Prorrateo y Normalizacion(Buffer datos, Buffer Norm Pro)

Else

TextBox5.Text = ”Error Obteniendo las muestras”

End If

End Function

’Funcion de representacion en pantalla de los datos normalizados y prorrateados.

Private Function Representar() As Integer

If X < Tamaniopantalla + 1 Then

Coordenada x =−1 + (2 · (X + desplazamiento)/Tamaniopantalla)

If Representacion <> False Then

opengl.Render(Buffer Norm Pro, 0, Coordenada x)

X += 1

Else

opengl.Render(Buffer Norm Pro, X, Coordenada x)

End If

Page 134: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

5.1. CODIGO COMENTADO 111

Else

opengl.Borrar pantalla()

X = -1

End If

End Function

’Bucle de obtencion y representacion de las muestras solicitadas.

Private Function Bucle Obtener Representar() As Integer

While Representacion = True

Errores = iUSBDAQ AIStartStream(DeviceSession, 0, N Canales, 0, BRate,

ARate, 1)

If Errores = 0 Then

Obtener muestras()

Errores = iUSBDAQ AIStopStream(DeviceSession)

TextBox5.Text = ”Representacion en curso...” & vbCrLf & ”No de disparos:

” & X ’Publico el aviso

If Errores <> 0 Then

TextBox5.Text = ”Error al terminar de muestrear.”

Else

Guardar Fichero(Buffer Norm Pro) Representar()

End If

Else

TextBox5.Text = ”Error al comenzar a muestrear.”

End If

End While

End Function

Page 135: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

112 CAPITULO 5. ANEXO

’Funcion de iniciacion de la representacion.

Private Function Iniciar Representacion() As Integer

Representacion = True

TextBox5.Text = ”Representacion en curso...” ’Publico el aviso

opengl.Borrar pantalla()

Crear fichero()

Borrado buffer()

Bucle Obtener Representar() ’Funcion de recogida de datos, procesado, repre-

sentacion y esperas pertinentes.

End Function

’Funcion de parada de la representacion.

Private Function Parar Representacion() As Integer

Representacion = False

Errores = iUSBDAQ AIStopStream(DeviceSession)

If Errores = 0 Then

TextBox5.Text = ”Representacion parada. Imagen guardada en disco.” ’Pub-

lico el aviso

Else

TextBox5.Text = ”Error deteniendo muestreo.”’Publico el aviso

End If

Borrado buffer()

End Function

’Funcion de puesta de valores iniciales a las variables.

Private Function Inicializaciones() As Integer

’Inicializacion de variables y mensajes.

TextBox2.Text = TrackBar2.Value & ” m.”

Page 136: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

5.1. CODIGO COMENTADO 113

tpmin = CInt((10 · 20)/15) ’Distancia mınima al fondo x2 (ida y vuelta)/ Velocidad

del sonido en agua salada.

tpmax = CInt((10 · 40)/15) ’Distancia maxima al fondo x2 (ida y vuelta), x2 (divi-

dida entre cos(60o) = 0,5)/ Velocidad del sonido en agua salada.

Samples = CInt((tpmin+ tpmax) ·BRate/1000) ’Numero total de muestras a solic-

itar a la tarjeta.

Samples proRated = CInt(TrackBar2.Value / 10) ’Numero de muestras a prorratear

por cada pixel.

ReDim Buffer Norm Pro(0).Buffer(Tamaniopixeles)

directorio = My.Application.Info.DirectoryPath & ” ” & ”Imagenes” ’Variable que

almacena el path del archivo

Crear dir()

Button4.Enabled = False

Button5.Enabled = False

Button6.Enabled = False

Button7.Enabled = False

OpenFileDialog1.InitialDirectory = directorio

End Function

’Funcion de iniciacion de la tarjeta.

Private Function Iniciar Tarjeta(ByRef Count As Integer) As Integer

Errores = iUSBDAQ EnumerateDev(0, Count) ’DevIndex empieza en cero DevIn-

dex = Count-1.

If Errores = 0 And Count > 0 Then

DeviceSession.DevIdex = Count - 1 ’Rellenamos el campo ındice de la es-

tructura de datos.

DeviceInfo.UserIndex = 256 - Count ’Rellenamos el campo de ındice de

usuario.

Page 137: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

114 CAPITULO 5. ANEXO

Errores = iUSBDAQ OpenDevice(0, DeviceSession.DevIdex, DeviceSes-

sion) ’Abrimos la sesion del dispositivo.

If Errores = 0 Then

Errores = iUSBDAQ GetDeviceSerialNo(DeviceSession, DeviceInfo.SerialNumber)

’Obtenemos el numero de serie de la tarjeta.

If Errores = 0 Then

DeviceInfo.Version = iUSBDAQ GetDLLVersion() ’Obtenemos la

version de librerıa de la tarjeta.

TextBox5.Text = ”Inicializacion OK, tarjeta preparada.Pulse el boton

START para comenzar.” ’Publico el aviso.

Inicializacion = True

End If

End If

ElseIf Errores <> 0 Then

TextBox5.Text = ”Error inicializando tarjeta.” ’Publico el aviso

ElseIf Count = 0 Then

TextBox5.Text = ”No hay tarjetas conectadas” ’Publico el aviso

End If

End Function

’Funcion de borrado del buffer de representacion.

Private Function Borrado buffer() As Integer

Dim Ancho As Integer = 0

Dim Largo As Integer = 0

While Largo < Tamaniopantalla + 1 And Largo < Buffer Norm Pro.Length

Page 138: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

5.1. CODIGO COMENTADO 115

While Ancho < Tamaniopixeles + 1

Buffer Norm Pro(Largo).Buffer(Ancho) = 0

Ancho += 1

End While

Ancho = 0

Largo += 1

End While

End Function

’Funcion de creacion del objeto OpenGL.

Private Function Crear Objeto OGL() As Integer

’Arranque de OpenGL

opengl = New OGL ’Creamos 1 objeto OGL para la imagen.

opengl.InitOPENGL(User.GetDC(PictureBox1.Handle)) ’Inicializamos los objetos.

Show()

opengl.Borrar pantalla()

opengl.BucleOpenGl(Buffer Norm Pro, X, Coordenada x)

End Function

’Funcion para terminar la ejecucion de la aplicacion.

Private Function Cerrar() As Integer

opengl.EliminarOpenGL()

Errores = iUSBDAQ ReleaseDevice(DeviceSession)

End

End Function

’Funcion de generacion del nombre del directorio en el que se guardaran las imagenes

que se generen ese dıa.

Private Function Crear dir() As Integer

Dim fecha As String = CStr(Today) ’Guarda la fecha actual.

Page 139: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

116 CAPITULO 5. ANEXO

System.IO.Directory.CreateDirectory(directorio & ” \” & fecha(0) & fecha(1) & ” ”

& fecha(3) & fecha(4) & ” ” & fecha(6) & fecha(7) & fecha(8) & fecha(9)) ’Creamos

el directorio.

directorio = directorio & ” \” & fecha(0) & fecha(1) & ” ” & fecha(3) & fecha(4)

& ” ” & fecha(6) & fecha(7) & fecha(8) & fecha(9) ’Guardamos el path completo

del directorio creado.

End Function

’Funcion de generacion del nombre del fichero en el que se guardaran las muestras

que se recojan en una representacion.

Private Function Crear fichero() As Integer

Dim hora As String = CStr(TimeOfDay) ’Guarda la hora de arranque de la repre-

sentacion que va a almacenar.

archivo = (directorio & ” \” & hora(0) & hora(1) & ” ” & hora(3) & hora(4) &

” ” & hora(6) & hora(7) & ”.dat”)’Guardamos el path completo del fichero que se

creara.

End Function

’Funcion que almacena los datos normalizados y prorrateados en un fichero .dat

Private Function Guardar Fichero(ByVal Buffer Norm Pro X() As Buffer) As

Integer

Dim OK As Boolean

Dim n As Integer = 0

FileOpen(1, archivo, OpenMode.Append) ’ Abrimos el archivo en modo Append,

para anadir los datos sin que se pisen.

OK = My.Computer.FileSystem.FileExists(archivo)

Page 140: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

5.1. CODIGO COMENTADO 117

If OK Then

While n < Tamaniopixeles + 1

Write(1, Buffer Norm Pro X(0).Buffer(n)) ’Grabamos los datos pasandole

como parametro a la sentencia Write las variables.

n += 1

End While

End If

FileClose()

End Function

’Funcion bucle que lee los datos normalizados y prorrateados previamente guardados

en un fichero .dat

Private Function Bucle Leer(ByRef Array Lectura() As Buffer, ByRef archivo1 As

String) As Integer

Dim n As Integer = 0

Dim i As Integer = 0

Dim tamanio As Long = 0

FileOpen(1, archivo1, OpenMode.Input)

tamanio = FileLen(archivo1) / (8 · Tamaniopixeles)

ReDim Array Lectura(tamanio)

While i < tamanio + 1

ReDim Array Lectura(i).Buffer(Tamaniopixeles)

While EOF(1) <> True And n < Tamaniopixeles + 1

Input(1, Array Lectura(i).Buffer(n))

n += 1

End While

Page 141: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

118 CAPITULO 5. ANEXO

n = 0

i += 1

End While

FileClose()

Return (CInt(tamanio))

End Function

’Funcion que lee los datos normalizados y prorrateados previamente guardados en

un fichero .dat, este fichero es seleccionado a traves de un cuadro de dialogo de

Windows.

Private Function Leer Fichero(ByRef Array Lectura() As Buffer) As Integer

Dim OK As Boolean

Dim archivo1 As String

Dim tamanio As Integer = 0

desplazamiento = 0

OpenFileDialog1.ShowDialog()

archivo1 = OpenFileDialog1.FileName

OK = My.Computer.FileSystem.FileExists(archivo1)

If OK <> False Then

tamanio = Bucle Leer(Array Lectura, archivo1)

Else

opengl.Borrar pantalla()

End If

Return (tamanio)

End Function

End Class

Page 142: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

5.1. CODIGO COMENTADO 119

Clase OGL.vb

’Esta clase contendra todos los atributos y funciones necesarios para el uso de

OpenGL por parte de la clase principal.

Imports Tao.OpenGl

Imports Tao.Platform.Windows

Public Class OGL

’Variables del objeto OGL

Const Tamaniopixeles = 767 ’Tamano del buffer de normalizacion y prorrateo.

Dim hRC As System.IntPtr

Dim hDc As System.IntPtr

’Funciones de manejo del objeto OGL.

Private Declare Sub ZeroMemory Lib ” kernel32.dll ” Alias ” RtlZeroMemory ” (

ByVal Destination As Gdi.PIXELFORMATDESCRIPTOR, ByVal Length

As Integer)

’Funcion de configuracion de la clase OGL

Public Sub InitOPENGL(ByVal ghDC As System.IntPtr)

Dim pfd As Gdi.PIXELFORMATDESCRIPTOR

Dim PixelFormat As Integer

hDc = ghDC

ZeroMemory(pfd, Len(pfd))

pfd.nSize = Len(pfd)

pfd.nVersion = 1

pfd.dwFlags = Gdi.PFD DRAW TO WINDOW Or Gdi.PFD SUPPORT OPENGL

Or Gdi.PFD DOUBLEBUFFER

pfd.iPixelType = Gdi.PFD TYPE RGBA

Page 143: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

120 CAPITULO 5. ANEXO

pfd.cColorBits = 32

pfd.cDepthBits = 32

pfd.cStencilBits = 32

pfd.iLayerType = Gdi.PFD MAIN PLANE

PixelFormat = Gdi.ChoosePixelFormat(ghDC, pfd)

If PixelFormat = 0 Then

MessageBox.Show(” Imposible obtener el formato de los pixels”)

End

End If

If Not (Gdi.SetPixelFormat(ghDC, PixelFormat, pfd)) Then

MessageBox.Show(” Imposible establecer formato de pixel”)

End

End If

hRC = Wgl.wglCreateContext(ghDC)

If hRC.ToInt32 = 0 Then

MessageBox.Show(” Imposible obtener el contexto del renderizado”)

End

End If

If Not (Wgl.wglMakeCurrent(ghDC, hRC)) Then

MessageBox.Show(” Imposible hacer el contexto del renderizado”)

End

End If

Inicializaciones()

End Sub

’Funcion de eliminacion de objetos OGL.

Page 144: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

5.1. CODIGO COMENTADO 121

Public Sub EliminarOpenGL()

Wgl.wglMakeCurrent(IntPtr.Zero, IntPtr.Zero)

Wgl.wglDeleteContext(hRC)

End Sub

’Inicializacion del objeto OGL

Private Sub Inicializaciones()

Gl.glClearColor(0.0F, 0.0F, 0.0F, 0.0F)

Gl.glClearDepth(1)

Gl.glEnable(Gl.GL DEPTH TEST)

Gl.glClear(Gl.GL COLOR BUFFER BIT Or Gl.GL DEPTH BUFFER BIT)

End Sub

’Bucle de renderizado de la imagen.

Public Sub BucleOpenGl(ByVal Datos() As Form1.Buffer, ByVal x As Integer ,

ByVal coordenada x As Single)

Do

Render(Datos, x, coordenada x)

Loop

End Sub

’Funcion de renderizado de la imagen.

Public Sub Render(ByVal Datos() As Form1.Buffer, ByVal x As Integer , ByVal

coordenada x As Single)

Gl.glLoadIdentity()

Pintar linea()

Crear imagen(Datos, x, coordenada x)

Application.DoEvents()

Gdi.SwapBuffers(hDc)

End Sub

Page 145: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

122 CAPITULO 5. ANEXO

’Funcion de borrado de la imagen renderizada.

Public Sub Borrar pantalla()

Gl.glClear(Gl.GL COLOR BUFFER BIT Or Gl.GL DEPTH BUFFER BIT)

Gl.glLoadIdentity()

Pintar linea()

Application.DoEvents()

Gdi.SwapBuffers(hDc)

End Sub

’Funcion que traza la lınea divisoria de la pantalla en las dos mitades que representas

las dos areas de cobertura.

Private Sub Pintar linea()

Gl.glLineWidth(3)

Gl.glBegin(Gl.GL LINES)

Gl.glColor3f(1, 0.8, 0)

Gl.glVertex2f(1, 0)

Gl.glVertex2f(-1, 0)

Gl.glEnd()

End Sub

’Funcion que representa puntos de color en una coordenada concreta.

Private Sub Pintar punto(ByVal G As Single , ByVal X As Single , ByVal Y As

Single)

Gl.glBegin(Gl.GL POINTS)

Gl.glColor3f(0, G, 0)

Gl.glVertex2f(X, Y)

Gl.glEnd()

End Sub

Page 146: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

5.1. CODIGO COMENTADO 123

’Funcion que convertira las muestras numericas recogidas en puntos de color en la

coordenada concreta correspodiente a la posicion que ocupa en el buffer de recogida.

Public Sub Crear imagen(ByVal Datos() As Form1.Buffer, ByVal x As Integer ,

ByVal coordenada x As Single)

Dim Ancho As Integer = 0

Coordenada y As Single = 0

While Ancho < ((Tamaniopixeles + 1) / 2) And x ≥ 0

Coordenada y = (Ancho + 3) / (((Tamaniopixeles + 1) / 2) + 2)

Pintar punto(Datos(x).Buffer(Ancho), coordenada x, Coordenada y)

Pintar punto(Datos(x).Buffer(Ancho + ((Tamaniopixeles + 1) / 2)), co-

ordenada x, -Coordenada y)

Ancho += 1

End While

End Sub

End Class

Page 147: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

124 CAPITULO 5. ANEXO

Page 148: Caracterizaci on e instrumentaci on de sensores de …oa.upm.es/21415/1/PFC_ALBERTO_PALACIOS_PATRON.pdf · 2014-09-22 · características básicas para su posterior simulación y

Bibliografıa

[1] Khalid bin Samo, SONAR Applications in Underwater Research

Universidad Terengganu de Malasia.

[2] Bernardo Cascales Salinas, Pascual Lucas Saorın, Jose Manuel Mira Ros, An-

tonio Jose Pallares y Salvador Sanchez-Pedreno Guillen, El libro de LATEX

Primera Edicion, reimpresion 2006: Pearson Prentice Hall.

[3] J. Gallego, Piezoelectric ceramics and ultrasonic transducers

J. Phys. E: Sci. Instrum.

[4] Hytek Automation Inc., USB 2.0 Full Speed Multifunction DAQ

Revision 2.2, 2007.

125