Sunteți pe pagina 1din 81

INGENIERA

DE SONIDO


Sistema de medicin cinemtico para
altoparlantes de baja frecuencia.

Autor: Facundo Ramn


Tutor: Ing. Carlos Alberto Maiocchi

() Tesis para optar al ttulo de Ingeniero de Sonido

Noviembre 2015






"Sin duda alguna, la ciencia y la vida ampliarn an ms, dentro de tres o cuatro aos, el
horizonte de sus pensamientos y de sus aspiraciones, y si, despus de la Universidad,
quiere usted volver a su idea, nada se lo impedir"


Fidor Dostoyevski - El adolescente

Agradecimientos
Agradezco a mis padres Hugo Ramn y Patricia Iglesias por el apoyo incondicional y a mis
hermanos por estar siempre presentes.
A mis amigos, docentes y guas que me ayudaron a concretar este trabajo. En particular a
Ing. Francisco Ruffa, Ing. Eduardo Sacerdoti, Ing. Carlos Maiocchi y Alberto Escria.
A los Sres. Lic. Anbal Y. Jozami, Lic. Martn Kaufmann, Dr. Jos Mara Berraondo, Ing.
Carlos Mundt e Ing. Alejandro Bidondo.
Agradezco tambin a la gran comunidad online que aporta tiempo y dedicacin a la
generacin de conocimiento libre y gratuito: GitHub, ProcessingForum, StackOverFlow y
ArduinoForum.

Tabla de contenido
Resumen ....................................................................................................................... III
Abstract ........................................................................................................................ IV
1 Introduccin ............................................................................................................ 1
1.1 Fundamentacin ........................................................................................................... 1
1.2 Objetivo ........................................................................................................................ 3
1.3 Metodologa ................................................................................................................. 4

2 Marco terico y estado del arte ............................................................................... 5


2.1 El altoparlante de bobina mvil .................................................................................... 5
2.1.1 Resonancia y factor de amortiguamiento (Q) ............................................................... 6
2.1.2 Efecto del gabinete ....................................................................................................... 9
2.1.2.1 Gabinete cerrado .............................................................................................................. 10
2.1.2.2 Gabinete Ventilado ........................................................................................................... 10

2.1.3 Alinealidades ............................................................................................................... 11


2.1.3.1 Producto B.l ....................................................................................................................... 11
2.1.3.2 Suspensin mecnica ........................................................................................................ 13
2.1.3.3 Variacin de inductancia ................................................................................................... 14
2.1.3.4 Offset de desplazamiento ................................................................................................. 15
2.1.3.5 Compresin trmica .......................................................................................................... 16
2.1.3.6 Alinealidades en el gabinete ............................................................................................. 16

2.1.4 Excursin en resonancia ............................................................................................. 17


2.1.5 Lmites fsicos .............................................................................................................. 18
2.1.6 Rango de excursin lineal ........................................................................................... 20
2.1.7 Xmax ........................................................................................................................... 21
2.2 Sistemas de medicin de distancia pticos sin contacto .............................................. 22
2.2.1 Interferometra ........................................................................................................... 22
2.2.2 Triangulacin Laser ..................................................................................................... 23
2.2.2.1 Triangulacin Difusa .......................................................................................................... 23
2.2.2.2 Triangulacin Especular .................................................................................................... 24

2.2.3 Intensidad de luz ......................................................................................................... 25


2.3 MEMS Acelermetro ................................................................................................ 26
2.3.1 Aceleracin, velocidad y desplazamiento ................................................................... 27
2.3.2 Aceleracin de diafragma ........................................................................................... 28

- I -

2.4 Antecedentes .............................................................................................................. 29

3 Desarrollo del sistema ........................................................................................... 31


3.1 Caracterizacin de diafragmas .................................................................................... 31
3.2 Medidor ...................................................................................................................... 32
3.2.1 Requerimientos del sistema de medicin ................................................................... 32
3.2.2 Sistema ptico ............................................................................................................ 33
3.2.3 Acelermetro .............................................................................................................. 35
3.2.3.1 Cableado ........................................................................................................................... 36
3.2.3.2 Fijacin .............................................................................................................................. 37
3.2.3.3 Masa mecnica agregada .................................................................................................. 38

3.3 Micro controlador ....................................................................................................... 38


3.4 Software ..................................................................................................................... 39

4 Calibracin y validacin de las mediciones ............................................................. 41


4.1 Comportamiento de altoparlante con acelermetro ................................................... 41
4.2 Validacin de frecuencia ............................................................................................. 44
4.3 Validacin de Aceleracin, Velocidad y Desplazamiento ............................................. 46

5 Trabajo a fututo ..................................................................................................... 50


6 Conclusiones .......................................................................................................... 50
7 Bibliografa ............................................................................................................ 52
Anexo I ........................................................................................................................ 55
Anexo II ....................................................................................................................... 58

- II -

Resumen
En el presente trabajo se expone el desarrollo de un sistema capaz de cuantificar y
digitalizar la aceleracin, velocidad y desplazamiento mecnico de un altoparlante de
bobina mvil de baja frecuencia (20Hz a 500Hz).
El sistema utiliza un acelermetro MPU6050, un micro controlador ATMega 328 en una
placa programadora Arduino UNO y un software dedicado que cuantifica la aceleracin
en dominio temporal y calcula la velocidad y desplazamiento en dominio espectral.
Se logr corroborar una resolucin de 0.1mm en la medicin de desplazamiento. El ancho
de banda de trabajo es de aproximadamente 500Hz con una resolucin espectral de
0.12Hz. La principal limitacin se encuentra en el dispositivo MEMS, por lo cul se decidi
trabajar de forma que este sea fcilmente reemplazable en un futuro.




- III -

Abstract

In this paper the development of a system for measuring the acceleration, speed and
mechanical displacement of a low-frequency moving coil (20Hz to 500Hz ) loudspeaker is
presented.
The system uses a MPU6050 accelerometer, micro controller ATMega 328 in Arduino
UNO programming board and dedicated software that quantifies the acceleration in time
domain and calculates the velocity and displacement in spectral domain.
The displacement measurement resolution was prooved to be 0.1mm and the spectral
resolution is 0.12Hz. The main limitation of the system is caused by the MEMS device,
therefore, it was desing so the accelerometer can be easily replaced in the future.

- IV -

1 Introduccin
1.1 Fundamentacin
El desarrollo de sistemas de refuerzo sonoro es una tarea compleja e interdisciplinaria.
Las mediciones, ya sean acsticas, elctricas o mecnicas, son un punto clave del proceso
que facilita la toma de decisiones.
Hoy en da, con el avance de la amplificacin Clase D y los procesadores digitales de
seales (DSP), se observa una clara tendencia al uso de equipos auto-amplificados [1]. Es
decir, tanto el amplificador como el procesador forman parte del gabinete y es tarea del
diesador optimizar el funcionamiento de cada uno de los componentes.
Las unidades modernas de amplificacin externas tambin incluyen procesadores
digitales fcilmente programables. Esto facilita aplicar ecualizaciones y procesos
dinmicos a cada uno de sus canales.
De esta manera se obtiene un control individual de cada gabinete en sistemas complejos
de refuerzo sonoro.
El control individual permite la utilizacin de procesadores de seal dinmicos
individuales, cuyo objetivo es proteger a los altoparlantes y garantizar la calidad del audio
ante seales de excesivo nivel. Es sabido que un altoparlante puede daarse de forma
permanente ante un exceso de temperatura en su bobina mvil, relacionado con el valor
cuadrtico medio (RMS) de la seal que lo excita; o por un exceso de excursin del
diafragma, relacionado con los transitorios de la seal [2]. Adems, elevados niveles de
seal pueden generar notorias alinealidades en el audio resultante [3]. El correcto uso de
procesadores puede evitar dichas fallas.
Esto constituye una importante herramienta de diseo para el fabricante. No slo le
permite definir un nivel mximo de potencia sino que puede bloquear el sistema e
imposibilitar al usuario a exceder dicho nivel.

- 1 -

Ahora bien, para definir los mximos niveles tolerables son necesarias herramientas de
medicin precisas. Si bien las especificaciones tcnicas de los altoparlantes detallan
niveles mximos de funcionamiento, estos son obtenidos bajo condiciones de laboratorio
[4, 5] que no representan su situacin final de uso y, por lo tanto, no brindan suficiente
informacin al fabricante de sistemas de refuerzo sonoro. Son necesarias herramientas
complementarias que brinden la informacin faltante.
Por otro lado, el diseo estructural del gabinete debe satisfacer varias condiciones. Una
de las ms importantes es que no disipe energa ni genere ruidos por vibraciones. La
correcta colocacin de refuerzos logra evitar modos normales de vibracin y radiacin
sonora en los laterales [6]. Sin embargo, la deteccin de este tipo de problema no es tan
simple como su solucin dado que se torna necesario analizar mecnicamente los
laterales del gabinete.
Por ltimo, ciertos descriptores acsticos son extremadamente difciles de obtener sin un
recinto apropiado, en especial la respuesta en frecuencia por debajo de los 100Hz o el
nivel mximo de presin sonora que el parlante es capaz de desarrollar. En muchos casos
la medicin acstica se torna impracticable y es necesario analizar el aspecto electro-
mecnico del transductor para predecir su comportamiento acstico.
Es por esto que se propone el desarrollo una herramienta que permita la medicin del
comportamiento cinemtico de un altoparlante de bobina mvil. Con esa informacin el
fabricante de gabinetes podr conocer el comportamiento del altoparlante en su
situacin real de uso y as decidir el nivel de limitacin de potencia que proteger a su
sistema de eventuales fallas sin sacrificar prestaciones.
Al tratarse de un instrumento para medir vibraciones, tambin permitir el estudio
estructural de las partes de un gabinete. Adems brindar informacin sobre el
comportamiento del diafragma en baja frecuencia con lo cul ser posible calcular
parmetros como SPL mximo o respuesta en frecuencia sin la necesidad de un campo
acstico especfico.

- 2 -

1.2 Objetivo
Es objetivo principal de este trabajo desarrollar un sistema de medicin del
comportamiento cinemtico de altoparlantes de bobina mvil diseados para radiar en
baja frecuencia.
Para lograrlo se propone el uso de un acelermetro capaz de generar una seal elctrica
proporcional a la aceleracin del diafragma. La seal es digitalizada por un micro
controlador y enviada va USB a una computadora porttil estndar (ver figura 1). Luego,
con un software especficamente desarrollado en la plataforma de programacin JAVA, se
observan y analizan los resultados entregados por el medidor. El uso de una plataforma
de programacin libre y gratuita garantiza el acceso y usabilidad del sistema en cualquier
ordenador comercial que cuente con puerto USB.

Figura 1 - Diagrama del sistema

En la actualidad, las empresas lderes del pas en diseo y construccin de equipamiento


para refuerzo sonoro se encuentran limitadas para adquirir sistemas de medicin
especficos que, adems de tener un elevado costo, requieren una infraestructura
dedicada para su implementacin. Por lo tanto, el desarrollo de una herramienta simple y
adaptable a cualquier entorno permitir un salto de calidad en el diseo de gabinetes y
facilitar la obtencin de los valores lmites de potencia que un sistema es capaz de
tolerar.
A futuro, se espera que esta herramienta facilite el estudio de un altoparlante sin la
necesidad de campos acsticos especficos, es decir, cmaras anecoicas o semi-anecoicas.
Medir el movimiento mecnico del diafragma y compararlo con la seal elctrica
- 3 -

permitir obtener una curva de transferencia en la que se reflejarn las caractersticas del
sistema altoparlante-gabinete. Luego se podr, entre otras cosas, obtener la fuerza
electromotriz inducida por el campo magntico, medir distorsin, o respuesta en
frecuencia sin la necesidad de una cmara anecoica. As mismo, se espera generar una til
herramienta para la enseanza.

1.3 Metodologa
La etapa cero de este trabajo consisti en el relevamiento de las medidas y caractersticas
de los altoparlantes comerciales. En base a los datos obtenidos se procedi al diseo del
sistema de medicin.
La etapa uno del trabajo consisti en la adquisicin de los materiales necesarios y la
construccin del medidor.
A grandes rasgos, los elementos necesarios para el desarrollo son:

Insumos de electrnica (resistores, capacitores, amplificadores operacionales,


LEDs, acelermetros.)

Microcontrolador ATMega 328 en placa programadora Arduino UNO

Gabinete de aluminio para contener al sistema

Computadora con puerto USB

En la segunda etapa se desarroll el software. Se us la plataforma de programacin


Processing, basada en el lenguaje de programacin JAVA. Este lenguaje permite la
creacin de un software multiplataforma que puede ser utilizado en cualquier ordenador
que cuente con la ltima versin de JAVA instalada.
La tercer etapa consisti en la validacin del medidor. Se utilizaron medidores
comerciales con precisin de dcima de milmetro para validar el sistema mediante un
mtodo comparativo.
Por ltimo, se redactaron los procedimientos y resultados obtenidos. Esto incluye toda la
base terica necesaria para el desarrollo, objetivos finales, aplicaciones del medidor,
caractersticas del diseo y procedimiento para la construccin.

- 4 -

2 Marco terico y estado del arte


2.1 El altoparlante de bobina mvil
El altoparlante de bobina mvil fue expuesto por primera vez en 1925 por Rice y Kellog
[7]. Desde entonces se han estudiado y analizado sus caractersticas tanto mecnicas
como acsticas por diversos autores. Los ms destacados fueron Beranek, con su
desarrollo de analogas electro-mecano-acsticas [8] y Thiele y Small con el desarrollo de
los conocidos parmetros de Thiele-Small y el estudio de los gabinetes [9, 10].
Resumidamente, un altoparlante de bobina mvil es un transductor electro-mecano-
acstico que genera presin sonora mediante el movimiento de un diafragma. El
diafragma, o cono, est sujeto a una estructura metlica llamada campana por medio de
dos uniones flexibles, una inferior llamada araa y otra superior conocida como
suspensin superior. La fuerza mecnica necesaria para el desplazamiento se obtiene de
la interaccin entre la corriente circulante por la bobina mvil y el campo magntico
permanente que la rodea (ver figura 2).
El campo magntico es generado por un imn permanente inserto en un circuito
magntico que, en general, consta de tres piezas polares: una central, una superior y otra
inferior (ver figura 3).
La bobina mvil se encuentra en el entrehierro, rodea a la pieza polar central y est
slidamente unida al diafragma. Las lneas de flujo magntico circulan desde la pieza
polar superior hacia la pieza polar central. La corriente que circula por la bobina mvil
corta las lneas de flujo magntico e induce una fuerza electromotriz que mueve al
diafragma.

- 5 -


Figura 2 - Altoparlante de bobina mvil
Imagen tomada de www.bcspeakers.com

Lneas de flujo magntico


Pieza polar superior
Imn permanente

Altura del
entrehierro

Pieza polar inferior

Entrehierro

Pieza polar central

Figura 3 Corte lateral del circuito magntico de un altoparlante


Dado que este trabajo centra su atencin en el movimiento mecnico del diafragma, se
pasan a detallar los factores que afectan directamente al desplazamiento.
2.1.1 Resonancia y factor de amortiguamiento (Q)
Las partes mviles del altoparlante conforman un sistema masa-resorte amortiguado (ver
fig. 4). La masa del sistema est compuesta por el diafragma y la bobina mvil, mientras
que el resorte lo conforman la suspensin superior y la araa. Para generar sonido, a este
sistema se le aplica una fuerza determinada por: la corriente i que circula en la bobina, la
longitud l del bobinado y la densidad de flujo magntico B que existe en el entrehierro
(ver ec. 1).
= . (1)

- 6 -


Figura 4 - Sistema masa-resorte amortiguado

Tanto el resorte como la masa son elementos capaces de almacenar energa. Cuando se
aplica una fuerza F a un resorte este se comprime una distancia x y obtiene energa
potencial, la relacin entre la fuerza y la compresin queda establecida por la constante
elstica del resorte k (ver ec. 2).
() = . = .

!"(!)
!"

(2)

Por otro lado, al aplicar fuerza a una masa esta acelera y adquiere velocidad, o sea,
energa cintica, y requiere de una fuerza igual y opuesta para volver al reposo (ver ec. 3).
() = . = . () (3)
Por lo tanto, ante la presencia de una fuerza externa, uno de los elementos del sistema
adquiere energa cintica mientras que el otro adquiere energa potencial, es decir,
cuando el resorte se comprime o expande adquiere la fuerza necesaria para empujar a la
masa y otorgarle velocidad; y cuando la masa tiene velocidad posee la energa necesaria
para comprimir o expandir el resorte.
Naturalmente, este ida y vuelta de energa sucede en determinado perodo de tiempo, el
cual depende de la elasticidad del resorte y de la cantidad de masa. Este perodo es el que
define la frecuencia de resonancia del sistema. En un parlante, la frecuencia de
resonancia viene dada por la masa del diafragma y la elasticidad de la suspensin (ver ec.
4).
! =

!
!

(4)

En resonancia el parlante alcanza su mxima excursin.

- 7 -

Ahora bien, la suspensin sufre compresin y expansin repetidas veces, lo cual genera
friccin viscosa en el material elstico y consume energa. Esta energa es puramente
activa. Desde el punto de vista mecnico, el amortiguador de la suspensin es el nico
elemento que atena la resonancia del diafragma. La fuerza que opone un amortiguador
se relaciona linealmente con la velocidad v por medio de la constante de resistencia
viscosa del amortiguador c (ver ec. 5).
() = . () (5)
Por otro lado el altoparlante tambin se comporta como un generador, es decir, el
movimiento de la bobina sumergida en el campo magntico genera una diferencia de
potencial e entre sus bornes que depende de la densidad de flujo magntico B, la longitud
l y la velocidad v de la bobina (ver ec. 6 y fig. 5). Cuando el circuito est cerrado, es decir,
el parlante en funcionamiento, la diferencia de potencial e genera una corriente que
circula en sentido opuesto a la que origin el desplazamiento, e interacta con el imn
generando una fuerza electromotriz reflejada que se opone al desplazamiento del
diafragma. El valor de resistencia elctrica de la bobina mvil Re influye directamente
sobre valor de dicha fuerza; a mayor Re menor cantidad de corriente se genera, y menor
es la fuerza reflejada.
= . (6)


Figura 5 - (Izq) fuerza F generada por la circulacin de corriente i. (Der) diferencia de potencial e generada cuando el
conductor se mueve a velocidad v.

Esta oposicin, junto con la resistencia viscosa de la suspensin, son los elementos
resistivos que controlan la resonancia del altoparlante y definen el factor de calidad Q.

- 8 -

La carga de aire presente en el diafragma del parlante tambin se opone al movimiento,


pero, debido a que la resonancia mecnica sucede a frecuencias bajas, en donde la
longitud de onda es mucho mayor a las dimensiones fsicas del diafragma, la impedancia
del aire resulta mayoritariamente reactiva y no permite que se desarrolle potencia
acstica. Su parte reactiva s es contemplada en la ecuacin del Q (ver ec. 7 y 8).
A continuacin se expresan las ecuaciones de los distintos Q del sistema segn [9].
Q !" = !

!!" !!!"

Q !" = !

!!" !!!"

!!"

!.! !
!!

(7)

(8)

.!

! = ! !"!!!" (9)
!"

!"

En donde Qms es el factor de calidad mecnico, Qes es el factor de calidad elctrico, QT es


el factor de calidad total, s es la velocidad angular de resonancia, MMD es la masa
mecnica del diafragma, XMR es la impedancia reactiva de radiacin, RMS es la resistencia
mecnica de la suspensin, Re es la resistencia elctrica de la bobina mvil, B es la
densidad de flujo magntico y l es la longitud de la bobina mvil.
Se recuerda que el factor de calidad de una sistema resonante es la relacin entre la
energa reactiva y activa en la frecuencia de resonancia. En el caso de un altoparlante, nos
brindan informacin acerca del control que ejerce las suspensiones mecnica y elctrica
sobre el desplazamiento del diafragma en la frecuencia de resonancia.
2.1.2 Efecto del gabinete
El diafragma de un altoparlante tiene dos caras, una frontal y otra trasera, ambas irradian
simultneamente en contrafase. Por este motivo es necesario separarlas con una pantalla
(o bafle). El concepto de pantalla o bafle infinito suele ser poco prctico y, la mayora de
las veces, se suele optar por plegar las paredes del bafle y as crear gabinetes, ya sea
abiertos o sellados que simulan la condicin de bafle infinito.
Un parlante empotrado en un gabinete irradia prcticamente como un monopolo en
frecuencias bajas, o sea, frecuencias cuyas longitudes de onda son mayores a las
- 9 -

dimensiones del diafragma y del gabinete. A medida que aumenta la frecuencia, la


directividad del sistema altoparlante-gabinete comienza a ser direccional.
2.1.2.1 Gabinete cerrado
Ahora bien, un volumen cerrado de aire se comporta como un resorte, es decir, aporta
una componente reactiva a las ecuaciones planteadas en la seccin superior. La
compliancia (cualidad anloga y recproca a la rigidez de un resorte) del volumen de aire
se relaciona directamente con su tamao, mientras mayor sea el volumen, ms fcil ser
comprimirlo y viceversa (ver ec. 10).
C! = !

! .!

(10)

Ca es la compliancia acstica del volumen V, 0 es la densidad del aire y c es la velocidad


del sonido. A mayor compliancia menor es el esfuerzo necesario para comprimir el
volumen de aire.
Entonces, a la suspensin mecnica del altoparlante se le acopla la suspensin acstica
del gabinete. Esto repercute directamente en el Q del sistema, el QT del altoparlante al
aire libre ser siempre menor al Q total del sistema altoparlante-gabinete.
Mientras mayor sea el volumen de aire encerrado en el gabinete, menor ser el efecto
que este posea en el altoparlante. Un gabinete suficientemente grande acta como bafle
infinito y no genera cambios significativos en el comportamiento mecnico del parlante.
Por otro lado, si la compliancia del volumen de aire es comparable con la elasticidad de la
suspensin (un volumen pequeo) entonces el gabinete, adems de separar las caras del
diafragma, aporta una suspensin acstica que modifica las caractersticas del sistema. Al
agregar un componente reactivo aumenta el Q del sistema y desplaza la frecuencia de
resonancia hacia valores superiores.
2.1.2.2 Gabinete Ventilado
Para extender la respuesta en baja frecuencia se suele incluir un tubo de sintona. A estos
gabinetes se los suele llamar ventilados o gabinetes sintonizados. El tubo y el
volumen interior del gabinete conforman un resonador de Helmholtz que es sintonizado
generalmente a la frecuencia de resonancia mecnica del altoparlante. Su funcin es
- 10 -

utilizar la energa de la cara posterior del diafragma para excitar el resonador. Esto
modifica considerablemente el comportamiento del altoparlante. El diafragma deja de
tener mxima excursin en su frecuencia de resonancia porque comienza a actuar como
amortiguador del resonador de Helmholtz. De hecho, si el gabinete se encuentra
correctamente diseado, la excursin en la frecuencia de resonancia es mnima.
2.1.3 Alinealidades
Las ecuaciones planteadas en las secciones superiores describen el comportamiento de
un altoparlante para seales de bajo nivel. Cuando se aplican seales de alto nivel
muchos de los parmetros considerados constantes se vuelven variables y el
comportamiento del sistema deja de ser lineal, esto implica que el nivel en la seal de
elctrica no es proporcional al desplazamiento. A continuacin se detallan las
alinealidades generadas por la excursin del diafragma.
2.1.3.1 Producto B.l
Cuando la bobina se desplaza hacia fuera o hacia adentro del circuito magntico, un
segmento queda fuera del entrehierro y, en consecuencia, interacta con las lneas de
flujo dispersas existentes en los bordes del entrehierro. Adems, la longitud de alambre
atravesado por el campo magntico no permanece constante con el desplazamiento. En
consecuencia, el producto de B.l vara en funcin del desplazamiento del diafragma [11,
12, 13, 14] (ver fig. 6).


Figura 6 Fuerza magneto motriz (B.l) en funcin del desplazamiento del diafragma (x). Modelo terico.
Imagen tomada de [12].

- 11 -

Dependiendo de la topologa del sistema esta variacin puede ser o no significativa.


Algunos altoparlantes utilizan bobinas que sobresalen del entrehierro para garantizar que
en cualquier punto de la excursin siempre haya una cantidad constante de vueltas de
alambre dentro del entrehierro y obtener as una densidad de flujo constante. Sin
embargo, esto implica mayor cantidad de vueltas en la bobina, es decir, incremento de la
masa que perjudica la capacidad de vibracin en alta frecuencia y exige ms potencia en
el motor magntico.
Otros optan por alargar el entrehierro para que la bobina permanezca siempre dentro del
mismo. Pero, las piezas magnticas son las partes ms costosas del altoparlante, por lo
cul esta opcin no es muy considerada. La opcin equivalente es utilizar una bobina con
menor cantidad de vueltas, es decir, reducir l en la ecuacin (1). De esta forma se obtiene
linealidad pero se desperdician lneas de flujo magntico.
Lo usual es que la bobina y el entrehierro posean alturas similares, si bien no es la opcin
con mayor linealidad, es la que consigue mejor sensibilidad y optimiza la accin del motor
magntico.
En lneas generales, mayor altura de bobina que de entrehierro significa linealidad con
escasa sensibilidad, mientras que alturas similares de entrehierro y bobina implican
buena sensibilidad pero escasa linealidad.
En muchos casos, la variacin del flujo magntico es asimtrica, es decir, en la parte
superior existe menos densidad de flujo disperso que en la inferior.
Las variaciones del producto B.l generan distorsin debido a dos motivos: el primero
queda evidenciado en la ecuacin (1), cuando la bobina se encuentra fuera del
entrehierro el producto B.l es bajo y la corriente no genera fuerza para desplazar al
diafragma; el segundo queda en evidencia en la ecuacin (6), la fuerza electromotriz
reflejada se reduce cuando la bobina abandona el entrehierro, por lo que se pierde
control magntico sobre el sistema y queda dependiendo slo del control mecnico.

- 12 -

2.1.3.2 Suspensin mecnica


La suspensin mecnica cumple la funcin de centrar el diafragma en el entrehierro,
limitar la libertad de movimiento en slo un eje y otorgar fuerza al diafragma para que
vuelva a su punto cero de excursin (ver ec. 2).
Las suspensiones estn hechas de fibras impregnadas, gomas o plsticos y poseen un
lmite de deformacin elstica a partir del cual dejan de comportarse linealmente (ver fig.
7 y 8).


Figura 7 Diagrama de deformacin y relacin no lineal entre fuerza vs. desplazamiento.
Imagen tomada de [11]


Figura 8 Rigidez de la suspensin (K) en funcin del desplazamiento del diafragma (x). Se muestran la rigidez de la
araa, de la suspensin superior y la suma de ambas. Imagen tomada de [11].

En la figura 8 se observa que la suspensin tiene un mnimo de rigidez entre los 2mm de
excursin y se torna ms rgida cuando abandona el entrehierro tanto hacia fuera como
hacia adentro. Adems, se observa que la variacin no es simtrica. En este caso, la

- 13 -

rigidez de la suspensin superior (sealada en el grfico como surround) es ms constante


que la rigidez de la araa (sealada como spider).
Parte del trabajo de los diseadores de altoparlantes corresponde en lograr una rigidez lo
ms simtrica posible y que su mnimo se encuentre en el punto cero de excursin. Las
asimetras de las diferentes suspensiones se pueden compensar entre s.
2.1.3.3 Variacin de inductancia
La bobina mvil es un inductor de ncleo variable. Cuando se encuentra en reposo, las
piezas polares la rodean y facilitan la circulacin del flujo magntico. Sin embargo, cuando
la bobina abandona el entrehierro, parte del ncleo deja de ser ferroso para comenzar a
ser de aire, por lo tanto se reduce su capacidad de autoinduccin. Sin embargo, cuando la
excursin es negativa, la bobina queda rodeada por ms material ferroso y su
autoinduccin aumenta (ver fig. 9).


Figura 9 Inductancia de bobina mvil en funcin del desplazamiento. Imagen tomada de [12]

El autor [11] tom la curva de impedancia de un altoparlante suelto y la compar con la


curva de impedancia de un altoparlante rgidamente sujeto con +7mm de excursin
positiva y -7mm negativa (ver fig. 10).
Cuando el parlante est libre genera una curva clsica de impedancia con un pico en la
resonancia mecnica y un aumento en alta frecuencia debido a la inductancia de la
bobina. Cuando se encuentra sujeto, no se observa resonancia debido a que no existe
movimiento mecnico y se observa una variacin en la impedancia a altas frecuencias.

- 14 -

Esta variacin corresponde a la variacin de la inductancia. Cuando el parlante queda a


+7mm fuera del entrehierro la impedancia se reduce y cuando queda a -7mm aumenta.


Figura 10 Curva de impedancia con altoparlante libre (X=0mm), con altoparlante sujeto rgidamente 7mm hacia
fuera (X=+7mm) y con altoparlante sujeto rgidamente 7mm hacia adentro (X=-7mm). Imagen tomada de [11]

La variacin de inductancia tiene efecto en altas frecuencias, posterior a la frecuencia de


resonancia.
Por otro lado, el valor de la corriente que circula por la bobina tambin modifica el valor
de la inductancia. Cuando circula corriente en sentido positivo, la densidad de flujo
existente en el circuito magntico (generada por el imn permanente) aumenta, mientras
que cuando la corriente es negativa la densidad de flujo se reduce. Desde el punto de
vista de la bobina, la permeabilidad del material ferromagntico vara en funcin de la
corriente, por lo tanto, la auto inductancia vara.
El uso de un anillo conductor (shorting-ring) en la pieza polar central, cuya funcin es
compensar los incrementos en la densidad de flujo magntico puede reducir
considerablemente la alinealidad causada por la bobina [11].
2.1.3.4 Offset de desplazamiento
Cuando se presentan variaciones asimtricas en los parmetros descriptos en las
secciones superiores, aparecen componentes de continua en el desplazamiento del
diafragma. Es decir, el diafragma cambia su punto de reposo y queda adelantado o
atrasado [12].

- 15 -

Conocer el sentido del desplazamiento y su frecuencia generadora puede otorgar


informacin significativa sobre errores en el diseo del altoparlante o daos.
Se considera un desplazamiento positivo cuando la bobina sale hacia fuera del
entrehierro, y negativo cuando ingresa al entrehierro.
Si el desplazamiento sucede por encima de la frecuencia de resonancia, puede ser
indicador de una suspensin poco rgida. Los desplazamientos en la frecuencia de
resonancia dan indicacin de asimetras en las suspensiones, dado que, en resonancia, el
movimiento del diafragma es principalmente mecnico. Y, por ltimo, si el
desplazamiento sucede a frecuencias mucho mayores que la resonancia es un indicador
de alinealidades en la inductancia de la bobina mvil [11].
2.1.3.5 Compresin trmica
La circulacin de corriente en la bobina mvil aumenta la temperatura del alambre, por lo
tanto aumenta su agitacin trmica y, en consecuencia, su resistividad. Entonces, el valor
de resistencia elctrica de la bobina mvil Re incrementa con la temperatura. Un
incremento en Re provoca un efecto conocido como compresin trmica: la sensibilidad
del altoparlante se reduce, es decir, un altoparlante excitado con la misma seal genera
mayor nivel de presin sonora cuando est fro que cuando est caliente, debido a
que al calentarse opone mayor resistencia al paso de la corriente y desarrolla menos
potencia con igual nivel de voltaje. Adems, la curva de impedancia en funcin de la
frecuencia se ve alterada y se desplaza la frecuencia de resonancia. Cuando el calor se
transfiere a la suspensin mecnica esta puede ablandarse y en consecuencia se produce
un incremento de la compliancia mecnica de la suspensin.
Por lo tanto, la capacidad de excursin del diafragma se encuentra ligada tambin a la
temperatura de la bobina mvil.
2.1.3.6 Alinealidades en el gabinete
El gabinete en s puede generar alinealidades que afecten al sistema completo. Al
calentarse el aire en su interior, ya sea por la bobina mvil o por un mdulo amplificador,
cambian sus caractersticas elsticas. El gabinete puede tener prdidas de aire que no
presentan problema para bajos niveles de seal pero que modifican la respuesta en
- 16 -

frecuencia para grandes amplitudes. Tambin, las vibraciones de las paredes del gabinete
absorben parte de la energa generada por el transductor. Todos estos factores modifican
el factor de amortiguamiento del sistema completo.
Por otro lado, el aire deja de comportarse linealmente con presiones cercanas a los 150
dB SPL, las cuales son posibles en un gabinete de bajas frecuencias si el volumen no es
suficientemente grande. Si se trata de un gabinete ventilado, elevadas velocidades de
volumen aumentan las prdidas en el tubo de sintona y agregan alinealidades en el
comportamiento del aire [15, 16, 17].
2.1.4 Excursin en resonancia
Cuando el altoparlante resuena, su desplazamiento es consecuencia principalmente del
intercambio de energa reactiva que realizan la masa del diafragma y la suspensin, el
motor magntico nicamente aporta la energa suficiente para compensar las prdidas en
la suspensin.
Debido a que el desplazamiento es mximo, la velocidad de la bobina al atravesar el
entrehierro tambin es mxima. Esto provoca que la fuerza electromotriz reflejada (ver
ec. 6) sea mxima y la impedancia del altoparlante alcance un pico.
Por otro lado, debido a que el sistema en resonancia es mayoritariamente reactivo, el
desplazamiento se encuentra 90 grados desfasado respecto a la corriente, por lo tanto,
cuando el diafragma alcanza un pico positivo (se encuentra fuera del entrehierro y el
producto B.l es mnimo) la corriente es nula, y cuando el parlante atraviesa el punto de
excursin cero (B.l mximo) la corriente es mxima. Esto resulta en un mximo de fuerza
electromotriz que compensa los mximos de fuerza electromotriz reflejada. Entonces, en
resonancia, el altoparlante puede desplazarse hasta los lmites de la suspensin sin
perder su linealidad por variaciones electromagnticas.
En la figura 11 se puede observar la corriente en la bobina en funcin del tiempo con
lnea slida y el desplazamiento del diafragma en funcin del tiempo con lnea punteada.
Se observa el desfasaje de 90 entre desplazamiento y corriente. Obsrvese que las
deformaciones en la funcin de corriente coinciden con el punto cero de excursin, ese es

- 17 -

el efecto de la fuerza electromotriz reflejada. Por ltimo, se puede observar que la


corriente posee notoriamente mayor distorsin que el desplazamiento.


Figura 11 Corriente y desplazamiento de la bobina en funcin del tiempo para f=fs. Imagen tomada de [12]

Por otro lado, debido a que la impedancia elctrica es mxima para la frecuencia de
resonancia, cualquier componente armnico de la fundamental de la seal elctrica ve
una impedancia proporcionalmente menor que le permite desarrollar corriente y, en
consecuencia, generar distorsin armnica. Este efecto se conoce como supresin de la
fundamental.
Como consecuencia, se puede deducir que la corriente elctrica y el desplazamiento
poseen distorsin armnica en la frecuencia de resonancia, sin embargo, no tienen
relacin entre sus magnitudes. As mismo, la mayor proporcin de distorsin resultante
en resonancia es causada por la suspensin mecnica, la cul llega a sus lmites de
estiramiento. La accin del motor es mnima debido al pico de impedancia y otra parte de
la distorsin es causada por la supresin de la fundamental.
2.1.5 Lmites fsicos
El altoparlante presenta dos tipos de lmites fsicos. Uno corresponde al lmite trmico y
otro al lmite de desplazamiento.
El lmite trmico queda definido por las capacidades disipativas de calor que posea el
sistema. La bobina mvil es una fuente de calor que debe ser disipada por las distintas

- 18 -

partes del altoparlante para no deteriorarse ni deteriorar las piezas que la rodean. Este
lmite est relacionado al valor cuadrtico medio de la seal que se ingresa al
altoparlante.
Por otro lado, existe un lmite de excursin mecnico definido por dos factores, el lmite
de estiramiento de la suspensin antes de la destruccin, y la distancia entre la bobina
mvil y la base del circuito magntico. Superado este lmite suele suceder la destruccin
mecnica del altoparante. Adems, la longitud de la bobina mvil tiene influencia sobre
este lmite. Cuando la bobina abandona el entrehierro hacia delante es posible que se
desplace del centro del entrehierro y no pueda volver a ingresar en l. Este suceso se
conoce en la jerga como cono clavado y suele suceder en parlantes de baja frecuencia
que son sobre-exitados. Una bobina corta es ms propensa a salir por completo del
entrehierro que una bobina larga, sin embargo, una bobina larga es ms propensa a
chocar contra la base del circuito magntico y generar un sonido muy notorio que puede
deteriorarla.
Por ltimo, existe otro lmite reconocido por la normativa internacional [4, 5] llamado
Xmax. Se define como el punto a partir del cual la alinealidad del motor magntico es
mayor al 10%. La linealidad se puede medir como distorsin o desviacin en la funcin de
transferencia. Se obtiene mediante un ensayo de potencia con el altoparlante empotrado
en un bafle infinito y a frecuencia de resonancia.
Tal como plantea el autor en [12], tanto la definicin como el mtodo de medicin dan
lugar a ambigedades. En la normativa se realizan suposiciones incorrectas y se deja
librado a criterio del fabricante decisiones que pueden afectar considerablemente el
resultado final.
A diferencia del lmite trmico, el lmite de excursin est relacionado a los transitorios de
la seal y se define en frecuencias bajas, cercanas a la resonancia. Esto es porque el
desplazamiento del diafragma se reduce a un rango de -12dB por octava a partir de la
resonancia. A medida que aumenta la frecuencia, la masa del diafragma junto con la
impedancia de la bobina mvil comienzan a limitar el desplazamiento.

- 19 -

2.1.6 Rango de excursin lineal


Entre el reposo y los lmites de excursin se encuentra el rango de excursin lineal. Los
mrgenes de esta regin son decisin de diseo y tienen relacin directa con el nivel de
presin sonora.
En la siguiente expresin se muestra la presin generada por un altoparlante empotrado
en un bafle infinito a una distancia [8]
() =

!! !! !!!
!

(10)

en donde ! es la velocidad del diafragma y ! la superficie del diafragma. Si expresamos


la velocidad en funcin del desplazamiento del diafragma y de la velocidad angular
(! = ! ) se logra la siguiente expresin
=

!! !! ! !"!
!

!!"! !! ! ! !!
!

(11)

con ! como desplazamiento de diafragma.


Al despejar ! de la ecuacin 11 se puede observar que la amplitud de movimiento
necesaria para mantener presin constante disminuye con el cuadrado de la frecuencia,
es decir, frecuencias bajas necesitan mayor amplitud que frecuencias altas para generar
igual nivel de presin sonora. Tambin se observa que, con presin y frecuencia
constantes, el desplazamiento disminuye a medida que aumenta la superficie de
radiacin ! , por lo tanto, un diafragma grande genera mayor presin que uno ms chico
con la misma excursin.
Los parlantes diseados para baja frecuencia suelen tener ms excursin que los
parlantes de medias y altas frecuencias. Por ejemplo, un parlante de 21 pulgadas con
frecuencia de resonancia cercana a los 40 Hz tiene un rango de excursin que puede
llegar a los 20 mm de amplitud pico. Mientras que un parlante de 5 pulgadas con
frecuencia de resonancia cercana a los 70 Hz suele excursionar hasta los 5 mm de pico.
Por otro lado, los parlantes diseados para gabinetes de suspensin acstica poseen una
amortiguacin blanda, por lo tanto, pueden excursionar ms que un parlante controlado
por suspensin mecnica.
- 20 -

2.1.7 Xmax
Las primeras especificaciones de Xmax se obtuvieron en base a la geometra del
altoparlante, tales como la longitud de la bobina y las capacidades de movimiento del
altoparlante. Por supuesto, estos mtodos no contemplan las alinealidades que suceden
previas a los lmites mecnicos.
En 1984 AES publica una serie de recomendaciones para especificar altoparlantes [4]
entre las cuales se propone una definicin de Xmax relacionada con la alinealidad del
sistema. Hasta el da de hoy, se presupone que las especificaciones encontradas en un
altoparlante comercial responden a dicha normativa.
AES define Xmax como el punto a partir del cual la alinealidad del motor magntico es
mayor al 10% y especifica que la alinealidad se puede medir como distorsin armnica
total (THD) o desviacin en la funcin de transferencia. Tambin exige que la medicin se
realice con el parlante empotrado en un bafle y en frecuencia de resonancia. No brinda
especificacin acerca de qu instrumentacin usar para medir el desplazamiento. El valor
de Xmax se expresa en unidad mtrica (milmetros) y no se especifica el nivel de seal
necesario para llegar a dicho valor. A este punto, la especificacin slo sirve para estimar
el mximo volumen de aire desplazado por el parlante.
Como ya se mencion en las secciones superiores, la excursin y alinealidades del
altoparlante en la frecuencia de resonancia se deben principalmente a la suspensin
mecnica, adems (y a modo de ejemplo), cuando el altoparlante es empotrado en un
gabinete sintonizado, su excursin en resonancia pasa a ser mnima mientras que
aumenta considerablemente para frecuencias anteriores. Del mismo modo, la nica
forma que el fabricante puede averiguar el nivel de tensin necesario para excursionar
hasta el valor de Xmax, es realizando una medicin de desplazamiento con el parlante en
su situacin final de uso.
Varios mtodos fueron desarrollados para la medicin del desplazamiento del diafragma
y el establecimiento de las distancias mximas tolerables. Entre ellos se destacan los
sistemas de medicin mecnica con y sin contacto, ensayos destructivos e incluso
predicciones mediante modelos matemticos.

- 21 -

La medicin mecnica con contacto consiste en el uso de un acelermetro o algn


dispositivo adosado al diafragma del altoparlante, lo cul implica obligatoriamente
agregar una masa al diafragma. Si se trata de un diafragma grande con un motor
poderoso (sub-woofer), los errores agregados resultan despreciables y el mtodo es
funcional. Sin embargo, no es aplicable a parlantes de menor tamao para los cuales la
masa del dispositivo es comparable con la del diafragma [18].
Por otro lado, los ensayos destructivos son aplicables a todo tipo de sistema y se puede
extraer toda la informacin necesaria a partir de ellos, sin embargo, son ensayos de
elevado costo y requieren la existencia de, al menos, dos piezas iguales.
Varios modelos matemticos se desarrollaron para calcular la excursin en funcin de
parmetros conocidos [19, 20].
Sin embargo, los mtodos de medicin pticos sin contacto fueron los ms adoptados
debido a que no presentan ninguno de los problemas mencionados [21].

2.2 Sistemas de medicin de distancia pticos sin contacto


Los sistemas de medicin sin contacto son utilizados cuando se requieren medir rpidos
desplazamientos de elementos livianos. No tener contacto con la fuente permite
estudiarla sin alterar su comportamiento.
A continuacin se detallan los sistemas de medicin ptica sin contacto conocidos.
2.2.1 Interferometra
La interferometra es un mtodo de medicin de alta resolucin y precisin. Se utiliza
para medir desplazamientos muy pequeos, del orden del micrmetro con precisin de
nanmetros. Su principal aplicacin es de laboratorio.
Utiliza la diferencia de fase entre un haz de luz coherente emitido por un lser y el haz
reflejado en una superficie cercana para obtener la distancia [22].
La calidad del medidor depende en primer medida del lser, se necesita una luz
monocromtica (ancho de banda estrecho) y coherencia estable para lograr precisin. Es
tambin necesario el uso de ptica especfica y delicada. Adems, variaciones de
- 22 -

temperatura, presin y humedad en el aire cambian las velocidades de transmisin de la


luz y, en consecuencia, se modifica la longitud de onda.
Si bien se logran mediciones muy precisas, el rango de medicin es pequeo. Se han
registrado mediciones de hasta 20mm con este tipo de tecnologa [23].
2.2.2 Triangulacin Laser
Este mtodo se basa en detectar la posicin de la luz. Se utiliza un emisor para proyectar
un punto lumnico sobre un objeto para luego, mediante un arreglo de foto-detectores,
detectar su posicin y calcular la distancia a la que se encuentra el objeto mediante
trigonometra [24]. Es un sistema popular en procesos de control industrial.
El largo del arreglo de foto-detectores, as tambin como la angulacin entre emisor y
receptor definen las caractersticas del medidor.
La superficie del objeto a medir puede reflejar el haz especularmente o de forma difusa,
en funcin de ello se diferencian dos tipos de medidores.
Sea cual sea el tipo utilizado, el dispositivo es capaz de medir distancias relativas a un
punto focal. Cuanto ms distante se encuentre el punto focal habr mayor rango de
medicin con menor precisin. Mientras que un punto cercano permite un rango
estrecho con buena precisin.
Debido al procesamiento necesario para localizar el haz y calcular la distancia, este
mtodo no puede entregar una lectura continua. La velocidad depende del tipo de sensor
utilizado y el procesamiento para ubicar la posicin de la luz y calcular la distancia.
2.2.2.1 Triangulacin Difusa
En la figura 12 se observa un medidor por triangulacin difusa. Debido a que el reflejo no
es especular, sino difuso, es necesario mayor esfuerzo computacional para localizar la
reflexin. En muchos casos se recurre a mediciones redundantes para mejorar la relacin
seal/ruido.
El lser se encuentra ortogonal a la superficie de medicin mientras que el sensor se
encuentra en ngulo. Esto facilita enfocar el haz de luz en la superficie. Sin embargo,

- 23 -

cualquier inclinacin que haga perder la ortogonalidad puede resultar en errores de


medicin, mostrando distancias aparentemente mayores a las reales. Del mismo modo,
superficies curvas o irregulares pueden generar distorsin en la medicin.


Figura 12 Medidor por triangulacin difusa. Imagen tomada de [25]

2.2.2.2 Triangulacin Especular


La triangulacin especular slo se puede realizar con superficies reflectantes. En la fig. 13
se muestra un medidor especular. En este caso, tanto laser como sensor se encuentran en
ngulos opuestos. Si bien se dificulta concentrar el haz en un punto circular (debido al
ngulo del incidencia el punto tiende a ser ovalado), este mtodo presenta mejor
precisin que la medicin difusa.

- 24 -


Figura 13 Medidor por triangulacin especular. Imagen tomada de [25]

Tambin se pierde validez en la medicin si se modifican los ngulos relativos entre el


objeto y el medidor. Curvas o irregularidades en la superficie distorsionan las lecturas.
2.2.3 Intensidad de luz
Este mtodo utiliza la intensidad de la luz como elemento de medicin. Se basa en que la
luz se propaga en forma de onda esfrica y su intensidad disminuye con la ley del inverso
del cuadrado. En la figura 14 se muestra un esquema de este tipo de medidor.


Figura 14 Medidor por intensidad de luz. Imagen tomada de [24]

- 25 -

El problema intrnseco al sistema es su alinealidad, la relacin entre la potencia lumnica y


la distancia presentan una curva cuadrtica. En la figura 15 se muestra una tpica curva de
potencia lumnica en el receptor en funcin de la distancia del objetivo.


Figura 15 Potencia lumnica normalizada (Pn) en funcin de la distancia normalizada (dn), en donde dn=1
corresponde al punto de potencia mxima. Imagen tomada de [24]

Sin embargo, este mtodo es el ms simple en cuanto a equipamiento y, por lo tanto, el


ms utilizado para aplicaciones varias que van desde sensores de movimiento binarios
hasta medidores lineales de rango reducido.
Debido a que la medicin se realiza integrando un rea y no midiendo un nico punto, se
obtiene mayor tolerancia a errores de posicionamiento o imperfecciones en la superficie
a medir. Por otro lado, deja de ser posible medir objetos pequeos que no logren
contener todo el haz lumnico que genere el LED.
Es un sistema sensible a los coeficientes de reflexin de los objetivos y a la luz ambiente.
Se suele aplicar una modulacin en la luz para lograr diferenciarse del ruido de fondo.

2.3 MEMS Acelermetro


Los MEMS (Micro Electro-Mechanical Systems) son sistemas integrados que combinan
micro-electrnica con micro-mecnica para lograr sensores de varios tipos y reducido
tamao. Hoy en da se encuentran en la mayora de los dispositivos mviles y fueron uno
de los elementos que revolucionaron la tecnologa del siglo actual [26].
Un IMU (Inertia Measurement Unit) es un MEMS diseado para mediciones inerciales.
Esto incluye aceleracin y velocidad de rotacin en uno, dos o tres ejes.
Los acelermetros se clasifican segn su rango de trabajo que puede ir desde 1 G hasta
1000 G. Algunos cuentan con salida analgica en donde se establece una relacin entre
- 26 -

mV/G. Otros cuentan con conversores AD integrados y la relacin queda establecida por
el rango de trabajo y el numero de bits.
Al ser sistemas mecnicos con masas y elementos flexibles poseen una frecuencia de
resonancia que limita su rango de trabajo lineal. Los que cuentan con conversores AD
tienen, adems, un rango definido por su frecuencia de muestreo.
El peso final de un acelermetro ronda los 5 gramos. Es posible encontrarlos en plaquetas
de desarrollo o como integrado individual.


Figura 16 - MPU6050 en placa de desarrollo y ADXL190 en chip SMD

2.3.1 Aceleracin, velocidad y desplazamiento


En la aceleracin se encuentra contenida informacin sobre velocidad y desplazamiento.
Las relaciones entre las tres magnitudes en el dominio temporal es la siguiente:
v=

a dt ; x =

a dt dt (12)

en donde a es aceleracin, v es velocidad y x es desplazamiento.


Para obtener el desplazamiento a partir de la velocidad se debe integrar la seal dos
veces. El clculo en s puede resolverse tanto analgicamente con un circuito de
integracin, como digitalmente con mtodos numricos. La dificultad para ambos casos
se encuentra en el error acumulativo [27].
La gravedad es una aceleracin constante que acta en el eje Z y el acelermetro no es
capaz de discriminarla respecto a otras aceleraciones que suceden en el mismo eje. Por lo
tanto se la debe sustraer manualmente para realizar cualquier clculo de posicin. De lo
contrario el sensor interpreta que est en cada libre, que su velocidad aumenta

- 27 -

linealmente y su posicin cuadrticamente respecto al tiempo. Es decir, cualquier error


en la substraccin de la aceleracin genera una desviacin que se acumula
cuadrticamente con el tiempo en el clculo de posicin.
Del mismo modo el ruido propio del dispositivo induce el mismo error sobre la posicin. A
medida que transcurre el tiempo las lecturas se vuelven menos certeras.
Trabajar con velocidad angular en vez de velocidad lineal minimiza los errores
mencionados. Suponiendo un sistema armnico simple se obtiene:
= !"# cos () (13)
=

!!"# !"# !"

!"# =

!"#

; =

!!!"# !"#(!")

; !"# =

!!

!"#

(14)

! (15)

De este modo es posible despreciar las componentes de continua y calcular velocidad y


desplazamiento por frecuencia.
2.3.2 Aceleracin de diafragma
De lo planteado en la parte superior, conociendo el !"# y es posible conocer !"# .
Por ejemplo: un altoparlante de 21 pulgadas diseado para radiar en baja frecuencia
(21IPAL de ByC Speakers) especifica un lmite de excursin lineal de 22mm y frecuencia de
resonancia en 37 Hz.
Suponiendo que, tal como plantea la normativa, los lmites de excursin lineal fueron
medidos a frecuencia de resonancia estamos en condiciones de obtener la aceleracin
mxima del diafragma en resonancia con la ecuacin 15:
2210!! 237 !!

= 1189

!
!!

= 121 [] (16)

Se puede observar que el aumento de aceleracin tiene relacin cuadrtica con la


frecuencia y no as con el desplazamiento. Parlantes con resonancia en frecuencias
mayores y menores valores de excursin pueden mantener o superar estos valores de
aceleracin.
- 28 -

Dentro de la zona lineal, las aceleraciones mximas que pueden conseguir los
altoparlantes de baja frecuencia rondan los 150 G.

2.4 Antecedentes
Numerosos autores han estudiado el comportamiento cintico del altoparlante.
Con la aparicin de la tecnologa lser surgieron diversos sistemas de medicin pticos. El
primero encontrado fue realizado en el Instituto Tecnolgico de Georgia por J. E. Weaver,
W. M en 1978 [28].
Mediante un arreglo de lentes y espejos se proyectan dos haces de luz sobre el
guardapolvo de un altoparlante. Los ngulos de incidencia lumnica son perfectamente
opuestos. En la bisectriz de ambos haces se coloca una lente de proyeccin focal que
concentra la reflexin en una pantalla semi-transparente. La proyeccin consta de dos
lneas horizontales que pueden medirse con un calibre milimtrico y as, mediante
trigonometra, obtener el desplazamiento del diafragma.


Figura 17 Arreglo ptico para realizar la medicin. Imagen tomada de [28]

El objetivo de utilizar dos haces es observar componentes de continua en el


desplazamiento.

- 29 -


Figura 18 Haces proyectados en la pantalla semi-transparente. Izq. sin componente de DC, der. Con componente de
DC. Imagen tomada de [28]

Al ser una medicin sin contacto, cuenta con la ventaja de no alterar el elemento a medir.
Sin embargo es netamente de laboratorio y limitada. La seal utilizada es siempre
senoidal y los valores medidos son nicamente de pico, por lo que no permite visualizar
alinealidades.
A medida que la tecnologa baj sus costos se desarrollaron instrumentos confiables de
medicin que fueron utilizados para el estudio del altoparlante. La gran mayora de los
autores opt por utilizar medidores comerciales.
Klippel [29] desarroll un sistema de medicin con un vibrmetro lser por triangulacin
difusa. El medidor utilizado es similar al OADM 20I6441/S14F de la marca BraumerTM. Este
sensor tiene un costo aproximado de U$S 1.500,00- en el mercado internacional.


Figura 19 Medidor de distancia por triangulacin difusa marca Braumer.

Santarine y Hessel [30] publicaron en 2003 un sistema de caracterizacin de altoparlantes


con un interfermetro de Michelson de bajo costo. Sus resultados fueron satisfactorios
pero el sistema result intolerante al ruido trmico y se vio afectado por la poca
coherencia del lser utilizado. Funcion slo como herramienta de laboratorio.

- 30 -

Por otro lado, en 1980 J. Christophouro [18] realiz un profundo anlisis de un


altoparlante para bajas frecuencias medido con acelermetro. Su objetivo fue medir las
caractersticas acsticas del transductor en baja frecuencia sin la necesidad de una
cmara anecoica o campo libre. En su trabajo se confirma que es posible el estudio
acstico por medio del anlisis cintico siempre y cuando se trabaje en la zona de
pistn. Es decir, frecuencias suficientemente bajas para que el diafragma se mueva
completamente en fase.
En 1989 D. S. Hall [31] trabaj en un sistema de realimentacin para mejorar la
alinealidad de un altoparlante con acelermetros. Debido al los elevados costos de ese
entonces, Hall decidi disear su propio acelermetro. En su trabajo detalla las cualidades
que debe tener el sensor mecnico para operar correctamente.

3 Desarrollo del sistema


A continuacin se detallan los principales procesos en el desarrollo del sistema de
medicin.
Primero se analizaron brevemente los tipos de diafragmas usados en audio profesional.
Esto incluye su tamao, material y geometra.
Segundo se realizaron pruebas con sistemas pticos, en particular con un medidor de
distancia por intensidad de luz. Los resultados no fueron satisfactorios y se opt por
evaluar un acelermetro como instrumento de medicin. Finalmente se us el segundo
para el desarrollo final.
El ltimo paso consisti en la realizacin del software para adquirir, visualizar, analizar y
guardar los datos generados en las mediciones.

3.1 Caracterizacin de diafragmas


Los tamaos de altoparlantes estn estandarizados y se miden en pulgadas.
Normalmente se utilizan encuentran desde 21 hasta 3 pulgadas, lo cul no implica que no
existan de otras medidas. Las medidas ms comunes en pulgadas son las siguientes:
21 18 15 12 8 7 6 6 5 5 4 3

- 31 -

Por otro lado, tambin es posible encontrar altoparlantes ovalados que se utilizan
principalmente en la industria automotriz y en productos electrnicos de consumo, por
ejemplo: televisores. Los tamaos se especifican con los dos semi-ejes que conforman el
valo. Por ejemplo: 7x10.
El material ms utilizado en la fabricacin de diafragmas es el papel prensado o cartn.
Sin embargo, tambin los hay hechos de plstico polipropileno, aluminio, kevlar, fibra de
carbn o materiales compuestos.
En lneas generales, los materiales utilizados buscan optimizar la relacin entre rigidez y
peso. Se pretende mucha rigidez con poco peso.
El color y brillo es variado. Los diafragmas de papel suelen ser color negro mate, aunque
tambin es posible observar negro brillante. El brillo lo genera el mismo material o la
aplicacin de protectores contra agua. Tambin se pueden encontrar parlantes blancos o
de colores.
El guardapolvo puede ser cncavo o convexo y generalmente est hecho del mismo
material que el diafragma. En los parlantes coaxiales no existe guardapolvo ya que el
radiador de alta frecuencia cubre buena parte del frente.

Las partes mviles del parlante pueden pesar desde 3 hasta 300 gramos
aproximadamente.

3.2 Medidor
Se describen los dos sistemas de medicin probados.
3.2.1 Requerimientos del sistema de medicin
Para cumplir con los objetivos planteados, el sistema debe ser capaz de satisfacer los
siguientes requerimientos.

Precisin de < 0.5mm

Rango de 1mm - 25mm

Debe medir de manera continua o con frecuencia de muestreo mayor o igual a


1kHz
- 32 -

La medicin debe alterar lo menos posible el funcionamiento del sistema

3.2.2 Sistema ptico


Se decidi probar un sistema de medicin por intensidad de luz por los siguientes
motivos:

No se agrega masa al sistema

No se precisa reflexin especular

No es necesaria alineacin angular

Se mide integrando una superficie del diafragma, tolera irregularidades

Simple realizacin sin elementos de laboratorio de ptica

Se genera luz infrarroja por medio de un diodo emisor de luz (IR LED). La luz se refleja
sobre un rea pequea del guardapolvo de un altoparlante y es captada por un
fototransistor. A mayor distancia del diafragma menor ser la intensidad del reflejo.
El fototransistor elegido fue el BPX43-4 manufacturado por Siemens (ver fig. 20). Es
sensible a un ancho de banda estrecho y es direccional. Esto favorece la inmunidad a
luces exteriores (ruido). Cuenta adems con un terminal de base que permite polarizacin
elctrica. Y por ltimo, en su hoja de especificaciones se destaca por su extensa
linealidad.


Figura 20 - Fototransistor BPX43-4

Su esquema y circuito de polarizacin se muestran en la figura 21. Es una configuracin


tipo colector comn.


- 33 -

Figura 21 Esquema y circuito de polarizacin

Con este circuito se realizaron pruebas sobre un parlante de 6 con diafragma de papel
prensado color negro mate. El objetivo fue encontrar la relacin entre desplazamiento y
tensin de salida.


Figura 22 Ensayo de medicin

Se midi la tensin en el emisor vs. distancia al diafragma (ver fig. 23).

V"out"Vs."Distancia"
7$
6,9$

V"Out"

6,8$
6,7$
6,6$
6,5$
6,4$
6,3$
0$

10$

20$

30$

40$

50$
Dist."[mm]"

60$

70$

80$

90$

100$

Figura 23 Grfico de Tensin en fototransistor Vs distancia al diafragma.

Se observa una curva similar a la descripta en la fig. 15. El flanco ascendente finaliza a los
25mm de distancia, hasta ese punto el fototransistor se encuentra parcialmente
iluminado. A partir de los 25 mm est completamente iluminado y la intensidad comienza
a decaer de forma cuadrtica.
El flanco ascendente queda delimitado en 25mm mximo. Esto no es suficiente para
medir la excursin pico a pico de un parlante de baja frecuencia. Adems el sensor
debera colocarse peligrosamente prximo al parlante y podran daarse mutuamente.

- 34 -

Con una curva de correccin es posible utilizar el flanco descendente desde 25 mm hasta
60 mm aproximadamente. Se podra colocar el sensor a 40mm del altoparlante y obtener
15 mm de medicin. An as es insuficiente para altoparlantes de baja frecuencia.
Por otro lado la medicin posee dos grandes conflictos. El coeficiente de reflexin del
material define la sensibilidad del sistema, por lo tanto sera necesaria una calibracin
previa a cada medicin. Adems, cualquier variacin milimtrica en el posicionamiento
del sensor durante la medicin puede generar errores significativos, las variaciones de
presin y velocidades de volumen de aire que genera una altoparlante son ms que
suficiente para volver la medicin impracticable.
3.2.3 Acelermetro
El uso de un acelermetro no es una solucin ideal debido a que agrega masa al sistema
y, por lo tanto, modifica su comportamiento. Sin embargo, en diafragmas con masa
mecnica sufiecientemente grande el error se puede considerar despreciable.
Sin embargo, respecto a cualquier sistema ptico, un acelermetro posee la ventaja de
ser un sistema inercial. Es decir, no importa la posicin relativa entre el sensor y el
dispositivo a medir. Un sistema de sub-woofer profesional genera ms de 120dB SPL de
presin pico. Esto es suficiente para provocar vibraciones en estructuras cercanas y hacer
vibrar la carcasa de cualquier dispositivo de medicin cercano afectando los resultados. Si
el dispositivo se encuentra slidamente unido al transductor este error se minimiza.
El MEMS elegido es el MPU-6050 del fabricante InvenSenseTM montado en una placa de
desarrollo GY-521.
Se trata de una unidad de procesamiento cintico que cuenta con giroscopio y
acelermetro de 3 ejes integrados en un nico chip. El acelermetro tiene un rango de
medicin configurable que puede programarse en 2, 4, 8 y 16 G. Posee un conversor
A/D con frecuencia de muestreo de 1kHz y 16bits de resolucin. Se comunica por medio
del protocolo I2C y es de fcil adquisicin en el mercado local.
Posee diversas opciones de procesamiento interno, como deteccin de movimiento,
filtros pasa bajos a diferentes frecuencias, deteccin de cada libre, de impatco, etc. Estas

- 35 -

funciones no son utilizadas en este trabajo debido a que se desea minimizar el tiempo de
procesamiento y mantener compatibilidad con acelermetros de menor complejidad y
mayor rango de medicin.
El micro chip est montado en una plaqueta de desarrollo GY-521 que posee un regulador
de tensin e indicadores de encendido. Adems de facilitar la manipulacin del integrado,
la plaqueta ofrece una superficie de apoyo til para montar el conjunto sobre una
superficie vibrante.
Se opt por utilizar este dispositivo a modo de primer prototipo para no demorar el
desarrollo del software. El objetivo final es trabajar con el acelermetro ADXL190 de
AnalogDevicesTM o similar. Este segundo acelermetro posee un slo grado de libertad y
su rango de medicin es de 100g. La salida es analgica y su ancho de banda est
delimitado hasta 400Hz. Actualmente no se encuentra en el mercado local y su compra
demora un aproximado de dos meses.
3.2.3.1 Cableado
El acelermetro posee 4 contactos, dos para alimentacin y otros dos para comunicacin.
Se decidi utilizar un cable de USB para conectarlo con el micro controlador. El largo del
cable es de 1.5m para permitir movilidad, sin embargo, siempre es necesario fijar el cable
a una estructura rgida cercana al sensor, por ejemplo: la campana del parlante. Se busca
brindar libertad de movimiento minimizando la cantidad de masa agregada.


Figura 24 Acelermetro con 4 cables soldados.

El cable es flexible, por lo tanto no slo agrega masa mecnica sino tambin compliancia y
resistencia mecnica. La frecuencia de resonancia y el Q del sistema se ven afectados por
estos tres parmetros.
- 36 -

3.2.3.2 Fijacin
La fijacin mecnica al diafragma debe cumplir las siguientes condiciones: ser fuerte para
soportar las aceleraciones, suficientemente rgida para no absorber energa, no debe
daar al diafragma y debe agregar la menor cantidad de masa posible al sistema.
Se realizaron pruebas con cera y distintos tipos de pegamentos. Finalmente se opt por
utilizar cinta doble faz de alta adherencia. La masa agregada es insignificante y se logra
buena adherencia. Al mismo tiempo es fcil de remover y no destruye el parlante.

Figura 25 Acelermetro montado en altoparlante de 21

Para mantener al mnimo la masa mecnica del medidor se opt por utilizar el sensor sin
ningn tipo de carcasa. La superficie de la placa de desarrollo se pega directamente al
diafragma del parlante a medir.
Es importante adems que el acelermetro est colocado en el centro del guardapolvo.
De este modo se garantiza que el movimiento mecnico est en lnea con el eje Z del
acelermetro. Colocar el sensor en otra parte del parlante conduce a errores de lectura.
Existen dificultades para medir altoparlantes con guardapolvos pequeos o muy curvos.
No se logra buena superficie de adherencia y no es posible fijar el sensor.


Figura 26 Parlante de 5 con guardapolvo curvo. No hay superficie de adherencia.

- 37 -

3.2.3.3 Masa mecnica agregada


Se midi el acelermetro en una balanza de precisin de miligramos. Su peso es de 1.1g
(ver fig. 24).


Figura 27 Peso del acelermetro en gramos

Al sumar los cables se agregan 3.1 g y el peso total queda definido en 4.2 g.


Figura 28 Acelermetro con cable

3.3 Micro controlador


El sensor es controlado por medio de un micro controlador ATMega 328 en una placa
programadora Arduino UNO. Se decidi utilizar la plataforma Arduino debido a su
filosofa de cdigo abierto que, al igual que pretende este trabajo, impulsa la generacin
de conocimiento desinteresado y accesible.


Figura 29 Placa de programacin Arduino UNO

- 38 -

El micro controlador se utiliza para configurar el sensor, esto es: definir frecuencia de
muestreo en 1kHz y rango de medicin en 16 g (los ms altos disponibles), encender
interrupcin de data ready para siempre leer valores nuevos, ejecutar un self test (ver
captulo 4) al iniciar una medicin y encender el medidor. Por ltimo se deshabilitan las
funciones no utilizadas, como filtro pasa-bajos, giroscopio, etc.
Las placas Arduino en su mayora cuentan con un adaptador a Universal Serial Bus que
permite la comunicacin con la computadora de manera muy simple.
Se realiz un zcalo con una plaqueta de PCB que tambin permite la fijacin a un chasis
de aluminio plegado. El cable ingresa al chasis y se conecta al zcalo con un conector de 4
pines. El cable se fija a los tornillos interiores del chasis para evitar que se desprenda con
tirones o durante traslado.
El puerto USB queda accesible desde la parte trasera.
El cdigo de programacin se puede encontrar en el Anexo I.

Figura 30 Sistema completo

Para la versin posterior el micro controlador cumplir la funcin de digitalizar la seal


entregada por el acelermetro analgico.

3.4 Software
Por ltimo, el software cumple la funcin de graficar la aceleracin en el dominio
temporal y espectral. De all se calculan velocidad y desplazamiento en funcin de la
frecuencia. La medicin se puede guardar y volver a cargar para anlisis posterior. O bien

- 39 -

se puede exportar un archivo *.csv para analizar con herramientas de clculo ms


poderosas.
En la figura 31 se puede observar la pantalla principal del programa. A continuacin se
describen los elementos numerados.

(1) Men desplegable con las opciones de


o Cargar medicin anterior
o Reiniciar medicin actual
o Guardar medicin actual
o Salir del programa

(2) Segundos por divisin vertical de la ventana 6

(3) Zoom y barra de desplazamiento temporales de la ventana 6

(4) Botn Play/Pause para comenzar, pausar o continuar una medicin

(5) Escala fija de la ventana 6

(6) Grafico de Aceleracin Vs Tiempo

(7) Valor de aceleracin. En modo Pausa indica el valor de la aceleracin en la


posicin del cursor, en modo Play indica ltima aceleracin medida.

(8) Mximo valor registrado en la ventana 6

(9) Frecuencia en la posicin del cursor

(10) Activar/Desactivar promedio en la FFT

(11) Activar/Desactivar grafico de Desplazamiento en funcin de la frecuencia y


valor de desplazamiento en posicin del cursor

(12) Activar/Desactivar grafico de Velocidad en funcin de la frecuencia y valor de


desplazamiento en posicin del cursor

(13) Activar/Desactivar grafico de Aceleracin en funcin de la frecuencia y valor


de desplazamiento en posicin del cursor

(14) Zoom vertical de FFT

(15) FFT de la seal mostrada en la ventana 6.

- 40 -

(2)

(1)

(5)

(4)

(3)

(7)

(6)

(8)
(9)
(10)

(15)

(14)

(11)
(12)

(13)


Figura 31 Pantalla principal

Es importante tener en cuenta que cada vez que se inicia una medicin es necesario que
el acelermetro se encuentre quieto y en posicin. Esto se debe a que se mide y extrae la
componente de aceleracin aportada por la gravedad de la tierra.

4 Calibracin y validacin de las mediciones


Previo a cada medicin se realiza un proceso llamado self test en el cual el
acelermetro corrobora el correcto funcionamiento de sus sensores. El test consiste en
simular una excitacin mecnica y leer el valor registrado. Este valor se compara con una
referencia y se analiza la diferencia. Si est dentro de la tolerancia entonces se aprueba el
test y la medicin de aceleracin queda validada.
La velocidad y desplazamiento se obtienen a partir de la aceleracin realizando
operaciones que implican transformar el dominio temporal a frecuencia.

4.1 Comportamiento de altoparlante con acelermetro


Se midi la curva de impedancia de altoparlantes de diversos tamaos con y sin el
acelermetro adherido al domo.

- 41 -


Figura 32 Parlantes medidos

De la curva de impedancia se extrajo la frecuencia de resonancia y el Q mecnico,


elctrico y total.
En la siguiente tabla se expresa la masa mecnica del diafragma brindada por el
fabricante, la frecuencia de resonancia medida con y sin el acelermetro, y el porcentaje
de variacin calculado. Todos los altoparlantes son de la marca ByC SpeakersTM y se
probaron sin ablandamiento previo, es decir, los valores de resonancia sern mayores a
los especificados por la compaa.
Modelo
21sw152
18ps76
15ps76
15cl76
12cl64
10ndl64
8ndl51
8pe21
6mdn64

Masa [g]
460
149
106
108
55
37
28
18
11

fs sin [Hz] fs con [Hz]


39,03
39,03
37,01
36,34
38,96
38,06
48,45
47,10
49,80
47,78
75,37
72,00
84,11
78,73
81,42
76,04
219,4
203,9

%
0,00
1,81
2,31
2,79
4,06
4,47
6,40
6,61
7,06


Tabla 1 Frecuencia de resonancia con y sin acelermetro

Se decidi graficar el porcentaje de variacin de frecuencia de resonancia respecto a la


masa mecnica del parlante.

- 42 -

%"de"Variacin"fs"Vs"Mms"
10"
9"
%"de"Variacin"fs"

8"
7"
6"
5"
4"
3"
2"
1"
0"
0"

50"

100"

150"

200"

250"

300"

350"

400"

450"

500"

Mms"[g]"

Figura 33 Variacin de frecuencia de resonancia Vs masa mecnica.

Se observa que las variaciones no son perfectamente lineales, esto se debe a que el
sistema de medicin no slo le agrega masa al altoparlante, sino tambin una leve rigidz
a travs del cable de conexin. En ninguno de los casos medidos la compliancia es
suficientemente alta para generar un aumento en la frecuencia de resonancia.
A partir de un punto no es posible medir la variacin ocasionada por el sensor. Se realiz
una regresin lineal sobre los valores para encontrar este punto.

%"de"Variacin"fs"Vs"Mms"
10"
9"

%"de"Variacin"fs"

8"

y"="$0,0386x"+"6,9057"
R"="0,89742"

7"
6"
5"
4"
3"
2"
1"
0"
0"

20"

40"

60"

80"

100"

Mms"[g]"

120"

140"

160"

Figura 34 - Linea de regresin

La funcin resultante tiene su raz ubicada en x = 179 g. Para altoparlantes con masa
mecnica mayor a 179 g la incidencia del acelermetro se puede considerar insignificante.
En proporcin, el acelermetro puede significar hasta un 2.3% del peso del diafragma
antes de alterar la medicin.

- 43 -

El Q del sistema con y sin dispositivo se expresa en la siguiente tabla.




Modelo
21sw152
18ps76
15ps76
15cl76-4
12cl64
10ndl64
8ndl51
8pe21
6mdn64

Sin Acelermetro
Qes
Qms
Qt
0,500 5,840 0,461
0,351 5,744 0,331
0,345 6,076 0,326
0,340 7,440 0,325
0,304 5,055 0,287
0,368 2,809 0,325
0,612 5,879 0,554
0,200 3,800 0,190
0,933 3,925 0,754

Con Acelermetro
Qes
Qms
Qt
0,500 5,840 0,461
0,354 5,553 0,333
0,353 6,177 0,334
0,342 7,460 0,327
0,310 4,900 0,292
0,390 2,870 0,343
0,614 5,553 0,553
0,201 3,624 0,190
1,027 4,011 0,818

% Variacin
Qes Qms Qt
0,0
0,0
0,0
0,8 -3,4 0,6
2,3
1,6
2,2
0,6
0,3
0,6
1,9 -3,2 1,6
5,6
2,1
5,2
0,3 -5,9 -0,3
0,5 -4,9 0,2
9,2
2,1
7,8


Tabla 2 Variacin de Q con y sin acelermetro

Se puede observar que el Q elctrico tiende a aumentar en todos los casos, esto es
debido al aumento de masa mecnica (ver ecuacin 8). Por otro lado, el Q mecnico no se
comporta de igual forma. Para algunos casos aumenta y para otros disminuye. Esto indica
que el sensor tambin agrega una resistencia mecnica a travs del cable de conexin. En
consecuencia se amortigua ligeramente la resonancia (ver ecuacin 7).
Dependiendo de las caractersticas del altoparlante el Q total se ver afectado de
diferentes formas. Para la mayora de los casos va a aumentar debido al aumento de la
masa mecnica, sin embargo, en altoparlantes livianos y con amortiguacin rgida, la
resistencia mecnica del cable puede ser suficiente para disminuir el Q mecnico y en
consecuencia el total. En ninguno de los casos la modificacin fue mayor al 10%, y slo en
dos casos fue mayor al 3%.

4.2 Validacin de frecuencia


Velocidad y desplazamiento se obtienen a partir del anlisis espectral de la aceleracin. Es
importante lograr una buena resolucin y precisin en la FFT para realizar los clculos
subsiguientes.
Se realiza una FFT de 8192 (213) muestras. La frecuencia de muestreo es de 1kHz. Esto
permite una lectura de espectro desde 0Hz a 500Hz con una resolucin de 0.12Hz.

- 44 -

Para validar la lectura de frecuencia se utiliz un generador de seales digital junto con
un amplificador de audio. Se excit un parlante de 10 pulgadas con un tono senoidal a
distintas frecuencias. Se mantuvo la amplitud a bajo nivel para no generar distorsin en el
desplazamiento del altoparlante y se contrast la frecuencia indicada por el generador
con la frecuencia de mxima amplitud en el sistema de medicin.

Generador [Hz] Software [Hz]
20
20
25
25
30
30
35
35
40
40
45
44,9
50
50,2
55
55,1
60
60,3
65
65,2
70
69,9
75
75,2
80
80,3
85
85,1
90
90,2
95
95,7
100
100,6
150
150
200
200,3
250
251,7
300
299,8
350
349,4
400
403
450
448,7
500
493,9

% variacin
0,0
0,0
0,0
0,0
0,0
-0,2
0,4
0,2
0,5
0,3
-0,1
0,3
0,4
0,1
0,2
0,7
0,6
0,0
0,2
0,7
-0,1
-0,2
0,8
-0,3
-1,2

Tabla 3 Frecuencia generada Vs. Frecuencia leda en Software

A partir de 45 Hz comienzan a observarse diferencias entre los valores. Este error se debe
a la interfaz grfica. Para obtener la intensidad sobre una frecuencia especfica es
necesario posar el mouse sobre la parte del grfico espectral que la contiene. Debido a la
distribucin logartmica se torna difcil seleccionar una sola frecuencia por encima de 45
Hz.
- 45 -

Por la impresicin de mouse se cometen errores de hasta 1%.


Figura 35 Distribucin logartmica, menor densidad en la izquierda y mayor en la derecha.

Es importante destacar que este error es slo de visualizacin y no se propaga a las


etapas siguientes de clculo. Sin embargo, cierta informacin est quedando inaccesible
para el usuario, es decir, para frecuencias altas se pierde resolucin visual.
Se decidi priorizar los valores mximos de amplitud. Es decir, se analiza un ancho de
banda proporcional a la posicin del cursor, mientras ms a la derecha se encuentre
mayor es la cantidad de valores analizados. De ese grupo se obtiene el valor mximo y se
calculan velocidad y desplazamiento para esa frecuencia. Este es el valor que se muestra
en pantalla. La magnitud de aceleracin y la frecuencia estn ligados, es decir, no hay
corrimientos y la resolucin se mantiene en 0.12Hz.

4.3 Validacin de Aceleracin, Velocidad y Desplazamiento


El valor obtenido de aceleracin cuenta con la validacin del fabricante. Como se
mencion al principio del captulo, el acelermetro realiza un auto-test antes de
comenzar a medir en donde corrobora el correcto funcionamiento de sus sensores.
El valor de la velocidad y desplazamiento se obtienen segn la ecuacin 15. Su precisin y
certeza dependen de la aceleracin y de la obtencin de la frecuencia.
Se obtuvo el lmite terico de medicin de desplazamiento y velocidad para una
aceleracin mxima de 16 G (valor pico) y se calcul la resolucin de cada parmetro
segn las especificaciones del fabricante.
Con un rango de 32 G y una resolucin de 16 bits es posible medir variaciones de 0.5 mG.
Esto brinda impresionantes resoluciones de velocidad y desplazamiento, 76 m/s y 600
m respectivamente, ambas calculadas a 20Hz. Sin embargo, el ruido propio del
dispositivo est indicado como 400G/Hz a 10Hz, lo cul indica un piso de ruido de
aproximadamente 8mG en todo el ancho de banda (20Hz 500Hz). Esto reduce la
resolucin a 1.2mm/s y 10m.
- 46 -

En el siguiente grfico se observa el desplazamiento mximo para una aceleracin de 16


G en funcin de la frecuencia.
12"

Desplazamiento-[mm]-

10"
8"
6"
4"
2"
0"
10"

100"
Frecuencia-[Hz]-

1000"

Figura 36 Desplazamiento Vs frecuencia con aceleracin constante de 16 G

Y en el siguiente grfico se observa el lmite terico de velocidad.


1,4#
1,2#

Velocidad)[m/s])

1,0#
0,8#
0,6#
0,4#
0,2#
0,0#
10#

100#
Frecuencia)[Hz])

1000#

Figura 37 Velocidad Vs frecuencia con aceleracin constante de 16 G

Se decidi validar la medicin de desplazamiento.


Se fij un calibre digital con precisin de hasta 10m sobre un altoparlante como se
muestra en la figura . Se utiliz una escuadra para garantizar la linealidad entre el eje Z
del acelermetro y el calibre. Todo el arreglo se afirm a la campana del parlante
mediante un robusto taco de madera y dos sargentos para evitar desplazamiento por
vibraciones.
- 47 -

Con un generador de seales digital y un amplificador de audio se movi el diafragma con


tonos puros a diferentes amplitudes y frecuencias. La amplitud fue controlada
digitalmente en el generador.


Figura 38 - Validacin de desplazamiento con calibre digital

En un ambiente silencioso se prosigui a fijar una distancia entre el sensor y el calibre


para luego aumentar progresivamente el nivel de seal en el parlante hasta escuchar muy
levemente el contacto con la parte metlica del calibre. Se tuvo cuidado suficiente para
no daar el sensor ni alterar la medicin.


Figura 39 - Medicin de 0.5mm

- 48 -

Se decidi medir en 5 octavas comenzando desde 30Hz hasta 480Hz. Se midi con pasos
de 50m el primer milmetro y luego se realizaron saltos de a un milmetro. No se utiliz
el calibre a mxima capacidad para evitar errores de posicionamiento.
En la siguiente tabla se observan los resultados obtenidos para las distancias medidas.

Calibre [mm]
0,05
0,1
0,15
0,2
0,25
0,3
0,35
0,4
0,45
0,5
0,55
0,6
0,65
0,7
0,75
0,8
0,85
0,9
0,95
1
2
3
4

30 Hz
0,064
0,111
0,143
0,210
0,257
0,298
0,346
0,400
0,446
0,501
0,545
0,604
0,649
0,706
0,745
0,802
0,845
0,901
0,965
1,013
2,012
2,985
3,897

60 Hz
0,061
0,108
0,140
0,203
0,254
0,290
0,340
0,401
0,443
0,497
0,545
0,601
0,647
0,695
0,743
0,799
0,838
0,898
0,962
1,006
1,532
-
-

120 Hz
0,052
0,102
0,139
0,201
0,196
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-

240 Hz
0,032
0,063
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-

480 Hz
0,017
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-

Tabla 4 Validacin medicin de distancia

Se puede observar que el sensor comienza a mostrar alinealidades en los extremos de


funcionamiento. Al llegar al los mximos de aceleracin decrece el valor medido respecto
a la referencia.
Por otro lado, al aumentar la amplitud el altoparlante tambin deja de comportarse
linealmente y la medicin pierde rigurosidad.

- 49 -

Mediante este proceso se logr corroborar una resolucin de hasta 0.1mm en el clculo
de distancia.

5 Trabajo a futuro
Como trabajo a futuro se puede profundizar en varios aspectos del desarrollo, a saber:

Desarrollo con acelermetro de mayor rango de medicin: el rango actual no es


suficiente para medir altoparlantes de gran excursin. El software es totalmente
adaptable a otro dispositivo de medicin.

Obtener mayor funcionalidad del dispositivo MEMS: se puede estudiar la


posibilidad de utilizar el mismo dispositivo para anlisis estructural de gabinetes.
Para esto sera necesario posibilitar la inicializacin en distintos niveles de
sensibilidad.

Desarrollo de ensayos no destructivos para obtener Xmax.

Obtencin de funcin de transferencia entre seal elctrica y aceleracin,


velocidad o desplazamiento.

Desarrollo de sistemas de control de linealidad activos.

Desarrollo de herramientas para control de calidad en lnea de produccin.

Obtencin de parmetros acsticos mediante informacin mecnica.

6 Conclusiones
Se logr construir un dispositivo capaz de medir aceleracin, velocidad y desplazamiento
en el dominio espectral. Cuenta con una resolucin de 0.1mm en un ancho de banda de
500Hz y una resolucin espectral de 0.12Hz.
El sistema se encuentra limitado por el escaso rango de medicin del acelermetro (16
G) y por el peso que este, junto con el cable, adhieren al altoparlante. Esto genera
variaciones en su comportamiento mecnico. Sin embargo, para parlantes mayores a 10
o con masa mecnica mayor a 60g el error no supera el 5%. En parlantes de gran tamao,
con masa mayor a 179g, el efecto del acelermetro es insignificante.

- 50 -

La mxima frecuencia de anlisis es de 500Hz lo cul resulta suficiente para el estudio de


altoparlantes del tipo woofer. El acelermetro es suficientemente sensible para permitir
la visualizacin de alinealidades y distorsin armnica.
Respecto a sistemas pticos cuenta con la ventaja de ser inmune a ruido causado por
desplazamiento. Por otro lado, su utilizacin es simple y verstil puesto que no precisa
una infraestructura especfica ni equipamiento complejo. Esto lo convierte en una
herramienta til para ambientes con elevados niveles de presin sonora y condiciones no
ideales.
Tanto hardware como software quedan abiertos y a disposicin de quien desee utilizar o
mejorar el sistema.

- 51 -

7 Bibliografa
[1] J. F. Christensen, M. H. Olesen, J. S. Kjr. The Industrial Dynamics of Open
InnovationEvidence From The Transformation of Consumer Electronics. Research
Policy. Volumen 34, pp 15331549. Diciembre, 2010.
[2] B. Pueo, M. Rom. Electroacstica. Altavoces y Micrfonos. Pp. 153. Pearson
Educacin. Madrir, Espaa. 2003.
[3] R. H. Small. Assessment of Non-linearity in Loudspeakers Motors. IREE. Australia.
Septiembre, 1979.
[4] AES2-1984 (r2003). Recommended Practice Specification of Loudspeaker Components
Used in Professional Audio and Sound Reinforcement. Nueva York, EEUU. 2003.
[5] IEC 60268-5:2003. Sound System Equipment. Part 5: Loudspeakers. Suiza. 2003.
[6] S. Lipshitz, M. Heal, J. Vanderkooy. An investigation of sound radiation by loudspeaker
cabinets. AES Convencin #90. Paris, 1991.
[7] C. W. Rice, E. W. Kellog. Notes on the Development of a New Type of Hornless
Loudspeaker. Journal of American Institute of Electrical Eengineers, Vol 44.
Septiembre, 1925.
[8] L. L. Beranek, Acoustics. McGraw-Hill. Nueva York, EEUU. 1954.
[9] A. N. Thiele. Loudspeakers in Vented Boxes: Part I and II. JAES. Vol 19, pp. 471-483.
Nueva York, EEUU. June, 1971.
[10] R. H. Small, Vented-box loudspeaker systems part 1: Samll-signal analysis. JAES.
Vol 21, pp. 363-372. New York, EEUU. 1973.
[11] W. Klippel, Tutorial: Loudspeaker Non Linearities symptoms, parameters, causes.
JAES. Vol 54, pp. 907-939. New York, EEUU. 2006.
[12] W. Klippel, Assessment of Voice Coil Peak Displacement Xmax. JAES. Vol 51, pp. 307-
324. New York, 2003.
- 52 -

[13] A. Novak, B. Merit, Magnet-only loudspeaker motors: linear behavior theory Vs.
Nonlinear measurements. Acoustics 2012 Conference, pp 3515-5520. Nantes, Francia,
Abril, 2012.
[14] A. Novak, P. Lotton, L. Simon, Nonlinear Force Factor Measurement of an
Electrodynamic Loudspeaker. Forum Acusticum. Krakw. Septiembre, 2014.
[15] M. E. Engebretson, Low-Frequency Sound Reproduction. JAES .Vol. 32, pp. 340-346.
1984.
[16] R. H. Small, "Vented Box Loudspeaker Systems, Part Il: Large-Signal Analysis," JAES.
Vol. 21, pp. 438-444. 1973.
[17] M. R. Gander, JBL Incorporated. Dynamic Linearity And Power Compression In
Moving-Coil Loudspeakers. AES Convencin #76. New York, 1984.
[18] J. Christophouro. Low Frequency Loudspeaker Measurement with Accelerometer.
JAES. Vol 28, pp. 809-817. Noviembre, 1980.
[19] K. B. Christensen, E. S. Olsen. Nonlinear Modelling of Low Frequency Loudspeakers -
A More Complete Model. AES Convencin #100. 1996
[20] E. S. Olsen. Nonlinear Modelling of Low Frequency Loudspeakers. AES Convencin
#989. 1995.
[21] J. E. Weaver, W. M. Leach Jr. Optimal Measurements of Loudspeaker Driver Large
Signal Displacement. JAES. Vol 26, pp. 145-148. Marzo, 1978.
[22] P. Hariharan. Optical Interferometry. Academic. Sydney, Australia. 1985.
[23] U. Minoni, F. Docchio, and G. Sansoni. Optical interferometer using a high-
birefringence optical fiber. IEEE Trans. Instrum. Meas. Vol. 42, pp. 231233. Abril,
1993.
[24] W. R. Gonnason, J.W. Haslett, F. N. Trofimenkoff. A low cost high resolution optical
position sensor. IEEE Trans. Instrum. Meas. Vol. 39, pp. 658663. Agosto, 1990.

- 53 -

[25] MTI Instruments. Technology Non-contact measurement sensors, solutions and


systems. http://www.mtiinstruments.com/technology/triangulation.aspx.
[26] PRIME Faraday Partnership. An introduction to MEMS. Wolfson School of
Mechanical and Manufacturing Engineering. 2002.
[27] K. Seifert, O. Camacho. Implementing Positioning Algorithms Using Accelerometers.
Freescale Semiconductor. AN3397. 2007.
[28] J. E. Weaver, W. M. Leach Jr. Optical Measurement of Loudspeaker Driver Large
Signal Displacement. School of Electrical Engineering, Georgia Institute of Technology,
Atlanta. 1979.
[29] W. Klippel, J Schlechter. Measurement and Visualization of Loudspeaker Cone
Vibration. Faculty of Computer Science, University of Technology, Dresden, Germany.
[30] C. G. A. Santarine, R. Hessel. Laser interferometric characterization of a vibrating
speaker system. Journal of American Association of Physics Teachers Vol. 71 #11.
Noviembre 2003.
[31] D. S. Hall. Design Considerations for an Accelerometer-Based Dynamic Loudspeaker
Motional Feedback System. AES. Convencin #87. Nueva York. Octuber 1989.





- 54 -

Anexo I
El siguiente cdigo fue escrito en Arduino IDE 1.6.0 y funciona en Arduino UNO con un
sensor MPU6050 conectado segn la librera Wire.h.

//by Facundo Ramon
//2015
#include <Wire.h>
#define MPU 0x68
int ti;
int tf;
unsigned int startTag = 0xDEAD;
byte Acz[2];
uint16_t AcZ;
volatile boolean measure = true, Error = false;
boolean sincro = false, start = false;
void setup() {
int error;
uint8_t c;
Serial.begin(115200);
Wire.begin();
TWBR = ((F_CPU / 400000L) - 16) / 2;
error = MPU_read(0x75, &c, 1);
Serial.print(F("WHO_AM_I : "));
Serial.print(c, HEX);
Serial.print(F(", error = "));
Serial.println(error, DEC);
MPU_write_reg(0x19, B0);
MPU_write_reg(0x1A, B0);
MPU_write_reg(0x1B, B0);
MPU_write_reg(0x1C, B11000);
MPU_write_reg(0x38, B1);
MPU_write_reg(0x6B, 0);
error = MPU_read(0x6B, &c, 1);
Serial.print(F("PWR_MGMT_1 : "));
Serial.print(c, HEX);
Serial.print(F(", error = "));
Serial.println(error, DEC);
MPU_write_reg (0x6B, 0);
delay(100);
cli();
TCCR1A = 0;
TCCR1B = 0;
TCNT1 = 0;
OCR1A = 1999;
TCCR1B |= (1 << WGM12);
TCCR1B |= (1 << CS11);
TIMSK1 |= (1 << OCIE1A);
sei();
}
ISR(TIMER1_COMPA_vect)
{
if (!measure) {
measure = true;

- 55 -

}
else
{
Error = true;
};
}
void loop() {
if (start) {
if (measure) {
byte DR = false; // data ready
while(!DR<<0)
{
MPU_read(0x3A, (uint8_t *) &DR, 1);
}
MPU_read(0x3F, (uint8_t *) &Acz, 2);
Serial.write(Acz, 2);
while ( !( UCSR0A & (1 << UDRE0)) );
measure = false;
}
if (Error)
{
Error = false;
}
}
}
void serialEvent() {
char inChar = (char)Serial.read();
switch (inChar) {
case 'r': //run
while (!sincro)
{
Serial.write((unsigned byte*)&startTag, 2);
if (Serial.available() > 0)
{
char inChar = (char)Serial.read();
if (inChar == '1')
{
sincro = true;
}
}
}
start = true;
break;
case 's':
start = false;
sincro = false;
break;
}
}
int MPU_read(int start, uint8_t *buffer, int size)
{
int i, n, error;
Wire.beginTransmission(MPU);
n = Wire.write(start);
if (n != 1)
return (-10);

- 56 -

n = Wire.endTransmission(false);
if (n != 0)
return (n);
Wire.requestFrom(MPU, size, true);
i = 0;
while(Wire.available() && i<size)
{
buffer[i++]=Wire.read();
}
if ( i != size)
return (-11);
return (0);
}
int MPU_write(int start, const uint8_t *pData, int size)
{
int n, error;
Wire.beginTransmission(MPU);
n = Wire.write(start);
if (n != 1)
return (-20);
n = Wire.write(pData, size);
if (n != size)
return (-21);
error = Wire.endTransmission(true);
if (error != 0)
return (error);
return (0);
}
int MPU_write_reg(int reg, uint8_t data)
{
int error;
error = MPU_write(reg, &data, 1);
return (error);
}

- 57 -

Anexo II
Este cdigo fue escrito en Processing 2 V 2.2.1 en una Macbook Pro con OS X 10.9.5.
Funciona con un Arduino UNO programado con el cdigo superior y conectado al puerto
USB.
Se utilizan las libreras minim para la realizacin de FFT y controlP5 para la interfaz grfica.
NOTA: para usar en Windows se debe reemplazar la siguiente lnea de cdigo
arduino = new Serial(this, "/dev/cu.usbmodem641", 115200, 'N', 8, 1.0);

por esta:
arduino = new Serial(this, Serial.list[0], 115200, 'N', 8, 1.0);

//by Facundo Ramon


//2015
import javax.swing.*;
//libreria para ventana de buscar archivos
import java.io.File;
//libreria para importar archivos
import processing.serial.*; //libreria para comunicacion por USB
import controlP5.*;
//libreria para interfaz grafica
import ddf.minim.analysis.*;//librera para fft
import ddf.minim.*;
Serial arduino;
//SERIAL
Minim minim;
FFT fft1;
PrintWriter output;
//salida para guardar la sesion entera
//fuentes ARIAL de distintos tamaos
PFont f1 = createFont("", 45);
PFont f2 = createFont("", 30);
PFont f3 = createFont("", 15);
PFont f4 = createFont("", 12);
PFont f5 = createFont("", 9);
boolean usb = false; //usb conectado
boolean sincro = false; //sincro con MPU
boolean comp=false; //gravedad compensada
boolean cargado = false; //Sesion nueva o sesion cargada
boolean guardado = false; //Sesion guardada
boolean plotz=true, plotv=false, plotx=false;
int botonx = 80; //tamao estandar de botones
int botony = 20;
int sizex=800, sizey=450; //tamao ventana
int bordeIzq = 40, bordeDer= 100, bordeTecho = 40, bordePiso = 20;
//limites de area grafica
int bordeLateral = bordeIzq+bordeDer;
int bordeVertical = bordeTecho+bordePiso;
int fx = 300; //factor para desplazamiento
int fv = 1; //factor para velocidad
float fz = .01; //factor para aceleracion
color fondo=150; //fondo gris
//BOTON DE PLAY Y PAUSA

- 58 -

PImage[] play = new PImage[3];


PImage[] pause = new PImage[3];
int mps=1000; //muestras por segundo 1kHz
int maxSize=mps*3600*10; //maximo de muestras que se graban (10min)
int winSize=1000; //cantidad de muestras en ancho de ventana (1 seg)
float ds;
float AcZ; //valor reconstruido con los dos bits
float sensitivity=2048; // conversion digital a G
float gravedad=0; //constante para restar
float zoom = 1;
float x0, y0z, y0v, y0x, x1, y1z, y1v, y1x; //valores de fft
float y0zp, y0vp, y0xp, y1zp, y1vp, y1xp; //puntos de linea fft
float AcZg; //valor de aceleracion en g
int idx = 0; //posicion en vector
int bufferSize = 8192; //tamao de buffer para integracion (.5 seg)
int fftPlotSize = bufferSize; //cantidad de muestras que se plotean
int counter=0; //contador para descontar la gravedad con lectura estable
int lim=163;
boolean avg = false;
float[] escalaLog = new float[bufferSize/2+1];
float[] f = new float[fftPlotSize];
int posicionInicial, posicionFinal; //posicion del vector graficado
float maxZ=0; //maximo de aceleracion, velocidad y desplazamiento
float margenZ=16, margenz=-16; //rango de valores para cada parmetro (+16G)
ControlP5 cp5; //inicializacion de libreria
Range range;
//barra para zoom temporal
MultiList menu;
//Menu de ventana principal
MultiListButton m;
//opciones del menu
Textlabel tz;
//texto visible aceleracion
Textlabel tv;
//texto visible velocidad
Textlabel tx;
//texto visible desplazamiento
Textlabel tZ;
//texto visible ACELERACION MAX
Textlabel tf;
//texto visible frecuencia
Textlabel tzf;
//texto visible aceleracin espectral
Textlabel divs; //texto de segundos por division
PVector Posz;
//Posicion del texto para encuadrarlo
PVector Posv; //Posicion del texto para encuadrarlo
PVector Posx;
//Posicion del texto para encuadrarlo
PVector PosZ;
PVector Posf;
PVector Poszf;
cVector z = new cVector(maxSize, winSize);
//vector de
almacenamiento para aceleracion
cGrafico gz = new cGrafico(bordeIzq, bordeTecho, sizex-bordeLateral,
(sizey-bordeVertical)/3);
cGrilla grilla = new cGrilla();
void setup()
{
size(sizex, sizey);
cp5 = new ControlP5(this);
//se crea el objeto cp5 de la libreria
ControlP5
minim = new Minim(this);
fft1 = new FFT(bufferSize, mps);
fft1.logAverages(16, 16);
fPopUps(); //inicializa ventanas de advertencia
fInicio(); //inicializa interfaz grafica
fLogScale(); //genera escala logaritmica para el espectro
}

- 59 -

void draw()
{
background(fondo);
if (!usb) {
try {
arduino = new Serial(this, "/dev/cu.usbmodem641", 115200, 'N', 8,
1.0);
//se crea el objeto Serial
arduino.buffer(2);
usb = true;
}
catch(Exception e) {
usb = false;
}
}
strokeWeight(1.5);
stroke(0, 0, 0);
gz.drawGraphBox();
textSize(10);
fill(255);
text("16", bordeIzq-20, bordeTecho+5+0*((sizey-bordeVertical)/3/8));
text("12", bordeIzq-20, bordeTecho+5+1*((sizey-bordeVertical)/3/8));
text("8", bordeIzq-15, bordeTecho+5+2*((sizey-bordeVertical)/3/8));
text("4", bordeIzq-15, bordeTecho+5+3*((sizey-bordeVertical)/3/8));
text("[G] 0", bordeIzq-35, bordeTecho+5+4*((sizeybordeVertical)/3/8));
text("-4", bordeIzq-20, bordeTecho+5+5*((sizey-bordeVertical)/3/8));
text("-8", bordeIzq-20, bordeTecho+5+6*((sizey-bordeVertical)/3/8));
text("-12", bordeIzq-25, bordeTecho+5+7*((sizey-bordeVertical)/3/8));
text("-16", bordeIzq-25, bordeTecho+5+8*((sizey-bordeVertical)/3/8));
text("Frecuencia [Hz]", bordeIzq+(sizex-bordeLateral)/2-30, sizey-6);
textFont(f4);
text("Facundo Ramn - 2015", 6, sizey-6);
text("Segundos por divisin: ", bordeDer+250, 15);
strokeWeight(1.25);
stroke(150);
grilla.dibujar();
strokeWeight(1.5);
stroke(0, 0, 0);
fill(2, 52, 77);
stroke(1, 108, 158);
strokeWeight(1.5);
rect(Posz.x, Posz.y+2, 50, 17);
rect(PosZ.x, PosZ.y+2, 45, 14);
rect(Posf.x, Posf.y+2, 50, 17);
rect(Posv.x, Posv.y+2, 45, 14);
rect(Posx.x, Posx.y+2, 45, 14);
rect(Poszf.x, Poszf.y+2, 45, 14);
stroke(200);
line(sizex-bordeDer+20, bordeTecho+(sizey-bordeVertical)/3+2, sizex-20,
bordeTecho+(sizey-bordeVertical)/3+2);
fill(255);
stroke(0);
rect(bordeIzq,
bordeTecho+(sizey-bordeVertical)/3+10,
sizex-bordeLateral,
sizey-bordeVertical-(sizey-bordeVertical)/3-10);
gz.drawLine(z, margenz, margenZ);
int curS = z.getCurSize();
if (curS>bufferSize)
{

- 60 -

if (sincro) //si se est recibiendo data nueva


{
if (curS>bufferSize) //chequear si hay datos previos
{
fft1.forward(z.getRange(curS-bufferSize, curS));
}
} else //si se esta analizando data cargada o ya recibida
{
float lv = range.getLowValue();
float hv = range.getHighValue();
float a = (sizex-bordeLateral)*lv/(winSize);
float b = (sizex-bordeLateral)*bufferSize/(hv-lv);
if (a+b>(sizex-bordeLateral)) b = sizex-bordeLateral-a;
int inicio = int(lv+(hv-lv)*a/(sizex-bordeLateral));
if (inicio+bufferSize>curS) inicio = curS-bufferSize;
int fin = inicio + bufferSize;
fft1.forward(z.getRange(inicio, fin));
fill(0, 0, 50, 55);
noStroke();
rect(bordeIzq+a,
bordeTecho,
b,
(sizey-bordeVertical)/3);
}
for (int i = 1; i < fftPlotSize-lim; i++)
{
f[i] = (i-1+lim)*1000.0/bufferSize;
float w = f[i]*2*PI;
x1 = bordeIzq+(sizex-bordeLateral)*escalaLog[i];
if (avg) y1z = fft1.getAvg(i+lim);
else y1z = fft1.getBand(i+lim);
y1v = y1z/w;
y1x = y1v/w;
if (i<2)
{
x0 = bordeIzq+(sizex-bordeLateral)*escalaLog[i-1];
if (avg) y1z = fft1.getAvg(i-1+lim);
else y1z = fft1.getBand(i-1+lim);
y0v = y0z/w;
y0x = y0v/w;
}
if (plotz)
{
stroke(0);
if (i<2) {
if (y0z*fz*zoom>sizey-bordeVertical-(sizey-bordeVertical)/3-10)
y0zp = bordeTecho+(sizey-bordeVertical)/3+10;
else y0zp = sizey-bordePiso-y0z*fz*zoom;
}
if (y1z*fz*zoom>sizey-bordeVertical-(sizey-bordeVertical)/3-10)
y1zp = bordeTecho+(sizey-bordeVertical)/3+10;
else y1zp = sizey-bordePiso-y1z*fz*zoom;
line(x0, y0zp, x1, y1zp);
}
if (plotv)
{
stroke(100, 0, 0);
if (i<2) {
if (y0v*zoom*fv>sizey-bordeVertical-(sizey-bordeVertical)/3-10)
y0vp = bordeTecho+(sizey-bordeVertical)/3+10;

- 61 -

else y0vp = sizey-bordePiso-y0v*zoom*fv;


}
if (y1v*zoom*fv>sizey-bordeVertical-(sizey-bordeVertical)/3-10)
y1vp = bordeTecho+(sizey-bordeVertical)/3+10;
else y1vp = sizey-bordePiso-y1v*zoom*fv;
line(x0, y0vp, x1, y1vp);
}
if (plotx)
{
stroke(0, 0, 100);
if (i<2) {
if (y0x*zoom*fx>sizey-bordeVertical-(sizey-bordeVertical)/3-10)
y0xp = bordeTecho+(sizey-bordeVertical)/3+10;
else y0xp = sizey-bordePiso-y0x*zoom*fx;
}
if (y1x*zoom*fx>sizey-bordeVertical-(sizey-bordeVertical)/3-10)
y1xp = bordeTecho+(sizey-bordeVertical)/3+10;
else y1xp = sizey-bordePiso-y1x*zoom*fx;
line(x0, y0xp, x1, y1xp);
}
x0=x1;
y0z=y1z;
y0v=y1v;
y0x=y1x;
y0zp = y1zp;
y0vp = y1vp;
y0xp = y1xp;
}
}
stroke(0);
strokeWeight(.5);
if (mouseX>bordeIzq && mouseX<sizex-bordeDer &&
mouseY>bordeTecho+(sizey-bordeVertical)/3+10 && mouseY<sizey-bordePiso)
{
line(mouseX, bordeTecho+(sizey-bordeVertical)/3+10,
mouseX, sizey-bordePiso);
float fidx = pow(10, (log10(fftPlotSize-lim))*(mouseX bordeIzq)/(sizex-bordeLateral));
float frec = f[int(fidx)];
float w = frec*2.0*PI;
float acc = fft1.getBand(int(fidx)+lim)/3327.0;
tf.setValue(nf(f[int(fidx)], 3, 1));
tf.draw(this);
if (plotz)
{
tzf.setValue(nf(acc, 2, 0));
tzf.draw(this);
}
if (plotv)
{
float vel = (acc*9.8)/w;
tv.setValue(nf(vel, 2, 0));
tv.draw(this);
}
if (plotx)
{
float disp = 10000*(acc*9.8)/(pow(w, 2));
//println(disp);
tx.setValue(nf(disp/10, 2, 1));
tx.draw(this);

- 62 -

}
}
if (!sincro && mouseX>bordeIzq && mouseX<sizex-bordeDer &&
mouseY>bordeTecho && mouseY<bordeTecho+ (sizey-bordeVertical)/3)
{
fondo=150;
line(mouseX, bordeTecho, mouseX, bordeTecho+(sizey-bordeVertical)/3);
int inf=int(range.getLowValue());
int sup=int(range.getHighValue());
int index=int(map(mouseX, bordeIzq, sizex-bordeDer, inf, sup));
tz.setValue(nf(z.getVal(index), 2, 1));
tZ.setValue(nf(maxZ,2,1));
tz.draw(this);
tZ.draw(this);
}
divs.setValue(nf(ds, 1, 2));
divs.draw(this);
}
void stop()
{
minim.stop();
super.stop();
}
void START()
{
if (!usb) {
cp5.group("USBDESCONECTADO").open();
} else {
if (!sincro)
{
winSize=512;
arduino.write(114);
fSincro();
cp5.getController("START").setImages(pause);
} else
{
arduino.write(115);
sincro = false;
winSize=z.getCurSize();
cp5.getController("START").setImages(play);
}
}
}
void m1()
{
LOAD();
}
void m4()
{
if (!guardado && !cargado)
{
cp5.getGroup("advertenciaSalir").open();
} else
{
exit();
}
}
void advCancelar()

- 63 -

{
cp5.group("advertenciaSalir").close();
}
void advSalir()
{
exit();
}
void advGuardar()
{
m3();
exit();
}
//REINICIAR
void m2()
{
if (!guardado && !cargado)
{
cp5.getGroup("advertenciaReset").open();
} else
{
advReset();
}
}
void advReset()
{
z.reset();
maxZ=0;
tZ.setValue(nf(maxZ, 2, 1));
range.setRange(0, winSize);
range.setRangeValues(0, winSize);
cp5.group("advertenciaReset").close();
if (sincro) START();
}
void advCancel()
{
cp5.group("advertenciaReset").close();
}
void m3()
{
SAVE();
}
void advUsbAceptar()
{
cp5.group("USBDESCONECTADO").close();
}
void zoomG0(float z1)
{
zoom=z1;
}
void Average(boolean theFlag)
{
if (theFlag==true)
{
fftPlotSize = fft1.avgSize();
lim = 10;
} else
{
fftPlotSize = fft1.specSize();

- 64 -

lim = 163;
}
fLogScale();
avg=theFlag;
}
void serialEvent(Serial p)
{
if (sincro)
{
if (!comp)
{
counter++;
if (counter<1000) {
p.clear();
} else
{
while (p.available ()<2);
byte[] inBuf = new byte[2];
p.readBytes(inBuf);
short acz = (short)( ((inBuf[0]&0xFF)<<8)|(inBuf[1]&0xFF));
gravedad = float(acz);
println(gravedad);
comp=true;
}
} else
{
byte[] inBuf = new byte[2];
p.readBytes(inBuf);
short acz = (short)( ((inBuf[0]&0xFF)<<8)|(inBuf[1]&0xFF));
AcZ = float(acz)-gravedad;
AcZg = AcZ/sensitivity;
z.addVal(AcZg);
tz.setValue(nf(int(AcZg), 2, 1)); //temp
fMaximo(1);
tZ.setValue(nf(int(maxZ), 2, 1));
}
}
}
class cGrafico
{
float g_x, g_y;
//posicion inicial de los areas de ploteo
float g_ancho, g_alto; //ancho y alto de los areas de ploteo
cGrafico(float x, float y, float ancho, float alto)
{
g_x = x;
g_y = y;
g_ancho = ancho;
g_alto = alto;
}
void drawGraphBox()
{
stroke(0, 0, 0);
fill(255, 255, 255);
rect(g_x, g_y, g_ancho, g_alto); //se generan las areas de ploteo
}
void setGraf(float X, float Y, float ANCHO, float ALTO)
{
g_x = X;
g_y = Y;
g_ancho = ANCHO;
g_alto = ALTO;

- 65 -

}
void drawLine(cVector data, float minRange, float maxRange)
{
float graphMultX = g_ancho/winSize;
float graphMultY = g_alto/(maxRange-minRange);
if (sincro)
{
ds=(winSize/mps)/11.0;
if (data.getCurSize()<winSize-1)
{
int hh=int(winSize/mps/3600), mm=int(winSize/mps/60-hh*60),
ss=int(winSize/mps-mm*60);
for (int i=0; i<data.getCurSize ()-1; i++)
{
float x0 = i*graphMultX+g_x;
float y0 = g_y+g_alto-((data.getVal(i)-minRange)*graphMultY);
float x1 = (i+1)*graphMultX+g_x;
float y1 = g_y+g_alto-((data.getVal(i+1)-minRange)*graphMultY);
if (y0<g_y || y1<g_y)
{
line(x0, g_y, x1, g_y);
} else if (y0>g_y+g_alto || y1>g_y+g_alto)
{
line(x0, g_y+g_alto, x1, g_y+g_alto);
} else
{
line(x0, y0, x1, y1);
}
}
} else
{
for (int i=data.getCurSize ()-winSize; i<data.getCurSize()-1;
i++)
{
float x0 = (i-data.getCurSize()+winSize)*graphMultX+g_x;
float y0 = g_y+g_alto-((data.getVal(i)-minRange)*graphMultY);
float x1 = (i-data.getCurSize()+winSize+1)*graphMultX+g_x;
float y1 = g_y+g_alto-((data.getVal(i+1)-minRange)*graphMultY);
if (y0<g_y || y1<g_y)
{
line(x0, g_y, x1, g_y);
} else if (y0>g_y+g_alto || y1>g_y+g_alto)
{
line(x0, g_y+g_alto, x1, g_y+g_alto);
} else
{
line(x0, y0, x1, y1);
}
range.setRange(1, data.getCurSize());
range.setRangeValues(data.getCurSize()-winSize,
data.getCurSize());
}
}
} else
{
posicionInicial = int( range.getLowValue() );
posicionFinal = int( range.getHighValue() );
ds=((posicionFinal-posicionInicial)/mps)/11.0;
if (usb) {
try {

- 66 -

arduino.clear();
}
catch (Exception e) {
}
}
float MultX = (posicionFinal-posicionInicial)/(g_ancho);
for (float i=0; i<g_ancho; i++)
{
float x0 = i+bordeIzq;
float y0 = g_y+g_alto((data.getVal(int(MultX*i)+posicionInicial)-minRange)*graphMultY);
float x1 = i+bordeIzq+1;
float y1 = g_y+g_alto((data.getVal(int(MultX*(i+1))+posicionInicial)-minRange)*graphMultY);
if (y0<g_y || y1<g_y)
{
line(x0, g_y, x1, g_y);
} else if (y0>g_y+g_alto || y1>g_y+g_alto)
{
line(x0, g_y+g_alto, x1, g_y+g_alto);
} else
{
line(x0, y0, x1, y1);
}
}
}
}
}
class cGrilla
{
int ancho=sizex-bordeLateral;
int alto=(sizey-bordeVertical)/3;
int gx=16; //divisiones horizontales __
int gy=11; //divisiones verticales ||
cGrilla()
{
}
void dibujar(){
for (int i=1; i<gy; i++)
{
line(bordeIzq+(sizex-bordeLateral)/gy*i, bordeTecho,
bordeIzq+(sizex-bordeLateral)/gy*i, sizey-bordePiso);
}
for (int i=1; i<gx; i++)
{
line(bordeIzq, bordeTecho+i*alto/gx, sizex-bordeDer,
bordeTecho+i*alto/gx);
}
}
}
class cVector
{
float[] m_data;
int m_maxSize;
int m_endIndex = 0;
int m_curSize;
int m_winSize;
cVector(int maxSize, int winSize)
{
m_maxSize = maxSize ;

- 67 -

m_data = new float[maxSize];


m_winSize = winSize;
}
void addVal(float val)
{
m_data[m_endIndex] = val;
m_endIndex = (m_endIndex+1)%m_maxSize;
m_curSize++;
if (m_curSize>m_maxSize)
{
println("Memoria Llena");
}
}
float getVal(int index) //para graficar
{
return m_data[(index)%m_maxSize];
}
float getValue(int index) //para extraer valores del vector
{
return m_data[(index)];
}
int getCurSize()
{
return m_curSize;
}
float[] getRange(int index1, int index2)
{
float [] rango = new float[index2-index1];
arrayCopy(m_data, index1, rango, 0, index2-index1);
return rango;
}
int getMaxSize()
{
return m_maxSize;
}
void reset()
{
m_data = new float[maxSize];
m_endIndex=0;
m_curSize=0;
}
}
void LOAD()
{
if(cargado)
{
advReset();
}
JFileChooser fc = new JFileChooser(sketchPath("datos"));
int returnVal = fc.showOpenDialog(this);
if (returnVal == JFileChooser.APPROVE_OPTION)
{
File file = fc.getSelectedFile();
if (file.getName().endsWith("csv"))
{
String[] sesion = loadStrings(file.getPath());
if (sesion != null)
{

- 68 -

String maximos = sesion[0];


maxZ=float(maximos);
for (int i=1; i < sesion.length; i++)
{
float valores = float(sesion[i]);
z.addVal(valores);
}
winSize=sesion.length-1;
range.setRange(1, winSize-1);
range.setRangeValues(1, winSize-1);
}
cargado=true;
}
}
}
void SAVE()
{
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new File(sketchPath("datos")));
int retrival = chooser.showSaveDialog(null);
if (retrival == JFileChooser.APPROVE_OPTION) {
try {
output=createWriter(chooser.getSelectedFile()+".csv");
output.println(maxZ);
for (int i=0; i<z.getCurSize (); i++)
{
output.println(z.getVal(i));
}
output.flush();
output.close();
println("GUARDADO");
println(z.getCurSize() + "valores");
guardado=true;
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}
void fInicio()
{
//boton PLAY/PAUSE
play [0] = loadImage("data/playoriginal.png");
play [1] = loadImage("data/playoscuro.png");
play [2] = loadImage("data/playnegativo.png");
pause [0] = loadImage("data/pausaoriginal.png");
pause [1] = loadImage("data/pausaoscuro.png");
pause [2] = loadImage("data/pausanegativo.png");
cp5.addButton("START")
.setBroadcast(false)
.setSize(50, 50)
.setImages(play)
.updateSize()
.setPosition(sizex-bordeDer/2-35, 10)
.setBroadcast(true)
.setVisible(true);
range = cp5.addRange("").setVisible(false); //barra de zoom temporal
range.setBroadcast(false)
.setPosition(bordeIzq, bordeTecho-13)
.setSize(sizex-bordeLateral, 12)

- 69 -

.setHandleSize(20)
.setRange(1, winSize-1)
.setRangeValues(1, winSize-1)
.setLabelVisible(false)
.setBroadcast(true)
.setColorForeground(color(200))
.setColorBackground(color(100))
.setVisible(true);
cp5.addSlider("zoomG0")
.setPosition(sizex-bordeDer+2, bordeTecho+(sizey-bordeVertical)/3+10)
.setSize(8, sizey-bordeVertical-(sizey-bordeVertical)/3-10)
.setRange(0, 2)
.setValue(1)
.setLabelVisible(false)
.setVisible(true);
tz = new Textlabel(cp5, "", 0, 0);
tZ = new Textlabel(cp5, "", 0, 0);
tzf = new Textlabel(cp5, "", 0, 0);
tv = new Textlabel(cp5, "", 0, 0);
tx = new Textlabel(cp5, "", 0, 0);
tf = new Textlabel(cp5, "", 0, 0);
divs = new Textlabel(cp5, nf(ds,1,2), bordeDer+382, 2);
tz.setText("00,0").setPosition(sizex-bordeDer+25,
60+bordeTecho+0*(sizey-bordeVertical)/10);
tZ.setText("00,0").setPosition(sizex-bordeDer+28,
60+bordeTecho+1*(sizey-bordeVertical)/10);
tf.setText("0").setPosition(sizex-bordeDer+25, 60+bordeTecho+2*(sizeybordeVertical)/10+20);
tx.setText("000").setPosition(sizex-bordeDer+35, bordeTecho+235);
tv.setText("00,0").setPosition(sizex-bordeDer+35, bordeTecho+305);
tzf.setText("00,0").setPosition(sizex-bordeDer+35, bordeTecho+375);
tz.setFont(f3);
tzf.setFont(f4);
tZ.setFont(f4);
tv.setFont(f4);
tx.setFont(f4);
tf.setFont(f3);
divs.setFont(f4);
Posz = tz.getPosition();
PosZ = tZ.getPosition();
Poszf = tzf.getPosition();
Posv = tv.getPosition();
Posx = tx.getPosition();
Posf = tf.getPosition();
cp5.addTextlabel("textz")
.setPosition(Posz.x-3, Posz.y-17)
.setFont(f4)
.setText("Acc. [G]");
cp5.addTextlabel("textZ")
.setPosition( PosZ.x-3, PosZ.y-15)
.setFont(f5)
.setText("Mx. [G]");

- 70 -

cp5.addTextlabel("textf")
.setPosition( Posf.x-3, Posf.y-17)
.setFont(f4)
.setText("Frec. [Hz]");
cp5.addTextlabel("textv")
.setPosition( Posv.x-15, Posv.y-17)
.setFont(f4)
.setText("Vel. [m/s]");
cp5.addTextlabel("textx")
.setPosition(Posx.x-3, Posx.y-17)
.setFont(f4)
.setText("X [mm]");
cp5.addTextlabel("textzf")
.setPosition(Poszf.x-3, Poszf.y-17)
.setFont(f4)
.setText("Acc. [g]");
cp5.addToggle("plotz")
.setPosition(Poszf.x-15, Poszf.y+5)
.setSize(10, 10)
.setLabelVisible(false);
cp5.addToggle("plotv")
.setPosition(Posv.x-15, Posv.y+5)
.setSize(10, 10)
.setLabelVisible(false);
cp5.addToggle("plotx")
.setPosition(Posx.x-15, Posx.y+5)
.setSize(10, 10)
.setLabelVisible(false);
cp5.addToggle("Average")
.setPosition(Posf.x, Posf.y+25)
.setSize(10, 10)
.setValue(false);
menu = cp5.addMultiList("menu", bordeIzq, 5, bordeIzq+botonx,
15).setVisible(true);
m = menu.add("Menu", 1);
m.setVisible(true);
m.add("m1", 11).setLabel("Cargar...");
m.add("m2", 12).setLabel("Reiniciar");
m.add("m3", 13).setLabel("Guardar como...");
m.add("m4", 14).setLabel("Salir");
}
void fLogScale()
{
for(int i=0; i<fftPlotSize-lim; i++)
{
escalaLog[i]=log10(i+1)/log10(fftPlotSize-lim);
}
}
float log10 (int x) {
return (log(x) / log(10));
}
void fMaximo(int vector)
{
float actual;
int current=z.getCurSize()-1;
switch(vector)
{
case 1:

- 71 -

actual = z.getVal(current);
if (actual>maxZ)
{
maxZ=actual;
}
break;
}
}
void fPopUps()
{
//ADVERTENCIA USB DESCONECTADO
Group USBDESCONECTADO = cp5.addGroup("USBDESCONECTADO")
.setPosition(sizex/2-200, sizey/2-75)
.setBackgroundHeight(150)
.setWidth(400)
.setBackgroundColor(color(150, 255))
.hideBar()
.activateEvent(false)
.close();
cp5.addTextlabel("advUsb")
.setPosition( 10, 20)
.setColor(255)
.setFont(f3)
.setText("El dispositivo USB est desconectado." +"\n"+"\n"+
"Conctelo y vuelva intentarlo")
.setGroup(USBDESCONECTADO);
cp5.addButton("advUsbAceptar")
.setLabel("ACEPTAR")
.setSize(botonx, botony)
.setPosition(300, 100)
.setGroup(USBDESCONECTADO);
//Ventana ADVERTENCIA SALIR SIN GUARDAR
Group advertenciaSalir = cp5.addGroup("advertenciaSalir")
.setPosition(sizex/2-200, sizey/2-75)
.setBackgroundHeight(150)
.setWidth(400)
.setBackgroundColor(color(150, 255))
.hideBar()
.activateEvent(false)
.close();
cp5.addTextlabel("advertencia")
.setPosition( 10, 20)
.setColor(255)
.setFont(f3)
.setText("Advertencia: Se perdern los datos no guardados.")
.setGroup(advertenciaSalir);
cp5.addButton("advSalir")
.setLabel("SALIR")
.setSize(botonx, botony)
.setPosition(300, 100)
.setGroup(advertenciaSalir);
cp5.addButton("advGuardar")
.setLabel("GUARDAR")
.setSize(botonx, botony)
.setPosition(200, 100)
.setGroup(advertenciaSalir);
cp5.addButton("advCancelar")
.setLabel("CANCELAR")

- 72 -

.setSize(botonx, botony)
.setPosition(5, 100)
.setGroup(advertenciaSalir);
//VENTANA ADVERTENCIA REINICIAR SIN GUARDAR
Group advertenciaReset = cp5.addGroup("advertenciaReset")
.setPosition(sizex/2-200, sizey/2-75)
.setBackgroundHeight(150)
.setWidth(400)
.setBackgroundColor(color(150, 255))
.hideBar()
.activateEvent(false)
.close();
cp5.addTextlabel("advert")
.setPosition( 10, 20)
.setColor(255)
.setFont(f3)
.setText("Advertencia: Se perdern los datos no
guardados"+"\n"+"pero se mantendr la configuracin del inicio.")
.setGroup(advertenciaReset);
cp5.addButton("advReset")
.setLabel("REINICIAR")
.setSize(botonx, botony)
.setPosition(300, 100)
.setGroup(advertenciaReset);
cp5.addButton("advCancel")
.setLabel("CANCELAR")
.setSize(botonx, botony)
.setPosition(200, 100)
.setGroup(advertenciaReset);
//Ventana de inicio ADVERTENCIA VOLVER A INICIAR SIN GUARDAR
Group advInicio = cp5.addGroup("advInicio")
.setPosition(sizex/2-200, sizey/2-75)
.setBackgroundHeight(150)
.setWidth(400)
.setBackgroundColor(color(150, 255))
.hideBar()
.activateEvent(false)
.close();
cp5.addTextlabel("advertenciaInicio")
.setPosition( 10, 20)
.setColor(255)
.setFont(f3)
.setText("Advertencia: Se perdern los datos no guardados.")
.setGroup(advInicio);
cp5.addButton("advIniciar")
.setLabel("INICIO")
.setSize(botonx, botony)
.setPosition(300, 100)
.setGroup(advInicio);
cp5.addButton("advGuardarInicio")
.setLabel("GUARDAR")
.setSize(botonx, botony)
.setPosition(200, 100)
.setGroup(advInicio);
cp5.addButton("advCancelarInicio")
.setLabel("CANCELAR")
.setSize(botonx, botony)
.setPosition(5, 100)
.setGroup(advInicio);

- 73 -

void fSincro()
{
int inByte = 0;
int curMatchPos = 0;
int[] intBuf = new int[2];
intBuf[0] = 0xAD;
intBuf[1] = 0xDE;
if (arduino.available () > 0);
{
inByte = arduino.read();
}
//Sincroniza con arduino
while (curMatchPos < 2)
{
if (inByte == intBuf[curMatchPos])
{
++curMatchPos;
if (curMatchPos == 2)
{
sincro=true;
arduino.write(49);
break;
}
if (arduino.available () > 0);
{
inByte = arduino.read();
}
} else
{
if (curMatchPos == 0)
{
if (arduino.available () > 0);
inByte = arduino.read();
} else
{
curMatchPos = 0;
}
}
}
}

- 74 -

S-ar putea să vă placă și