INSTRUMENTO FINALIZADO
LIRA
EC-3882 LABORATORIO DE PROYECTOS II.- SECCIÓN 2 .- MÓNICA Y VICTOR
viernes, 30 de marzo de 2012
LIRA
Su elaboración electrónica, es utilizando
dos sensores de interrupción infrarojo, colocado de manera vertical en cada una
de las columnas donde se encuentran las notas. Estos se activarán al tocar con
la baqueta, midiendo la distancia donde fue tocada hasta el receptor. Este
trabaja por reflexión. En donde cada nota tiene un rango de distancia especifica.
El sensor es INFRARED
PROXIMITY SHARP GP2Y0D21YK.
Asimismo se utiliza dos sensores
láseres que
al interrumpir su emisión cuando se toque con la baqueta, este me informa cual
fue la columna la cual tuvo contacto. Una vez hecho esto, y con la distancia
obtenida por el sensor de infrarojo se puede ubicar la nota que se toca, para asegurar que suene la que se desea.
Etapas
experimentales:
1.- Inicialmente, se
experimentó con el módulo “MC9S08QE128”, reconociendo su estructura y modelo,
asi como también las características
básicas de esta tarjeta (tales como corriente máxima de salida, voltaje máximo
de alimentación, entre otros), y su microprocesador incorporado el cual
permitió implementar la lógica y
procesamiento de las señales sensadas para el envío, mediante puerto serial, al
sintetizador elaborado. Con la implementación de una cdificacion se puede
condicionar lo que se espera en el instrumneto al momento de sonar, que luego
haría el funcionamiento sin problemas del mismo. Esta estructura programática
requiere de varios días de trabajo que se tuvieron que considerar.
2.- Al terminar con el reconocimiento
del micro, se pasó a caracterizar y comprobar cada uno de los sensores
utilizados para el desarrollo del instrumento que se propuso.
2.1.- Para los sensores de proximidad infrarojo
Sharp se estudiaron ciertas características.
2.1.1.- Características
·
Menos influencia en el color del objeto a detectar.
·
Detecta distancias de 10 a 80 cms.
·
Esta distancia es ajustable.
·
Un circuito de control externo es innecesario.
·
Supply voltaje (voltaje de alimentación): -0,3V a
+7V.
·
Voltaje del terminal de salida: -0,3V a 0,3 V.
·
Temperatura de operación: -10°C a +60 °C.
·
Voltaje de alimentación para operar: es de 4,55V a
5,5V.
·
El voltaje del terminal de salida, en alto: debe ser
mayor que 0,6V y menor que 1,9V.
·
El voltaje del terminal de salida, en bajo: es 0,6V
como valor máximo.
·
Diferencia del voltaje de salida: min: 1,65 V.
tipica: 1,9V. Y la máxima es de 2,15V
·
Características de la distancia de salida: min:
21cm; típica: 24 cm. Max:27 cm.
·
Corriente media: típica 30 mA., Max:40 mA.
·
Tiempo para detectar el objeto a medir.
La manera de
operar del sensor es que el aproximarse un objeto( en este caso la baqueta), en
el área de 12 cm de diámetro del haz de luz, este es detectado. Sin ser
necesario tocar la superficie donde se refleja. Entonces es a partir de la
aproximación que empieza a correr el tiempo de medición.
2.1.2.-Teoría
de Operación
Con la línea de detectores de GP2DXX SHARP, además
de detectar objetos a una distancia, se cuenta con nuevos rangos que ofrece mejor inmunidad a las condiciones
de iluminación en el ambiente.
Estos rangos todos usan triangulación y una matriz
lineal para calcular la presencia de objetos en el campo de visión. La idea
básica es:
Un pulso de luz infrarroja es emitida por el
emisor. Esta luz viaja en el campo de
visión, que bien golpea un objeto o sigue hasta el reflector.
EN el caso que se refleje un objeto, la luz
devuelve al detector y crea un triangulo entre el punto de la reflexión, el
emisor y el detector.
Los ángulos en
este triángulo varían en función de la distancia al objeto. La porción de
receptor de estos nuevos detectores es en realidad un lente de precisión que
transmite la luz reflejada en varias porciones de la matriz adjunta. Los
ángulos en este triángulo varían en función de la distancia al objeto. La
porción de receptor de estos nuevos detectores es en realidad un lente de
precisión que transmite la luz reflejada en varias porciones de la matriz
adjunta lineal basado en el ángulo del triángulo descrito anteriormente. La
matriz puede entonces determinar qué ángulo la luz reflejada vino de vuelta y
por lo tanto, se puede calcular la distancia al objeto.
Este nuevo método
de rango es casi inmune a la interferencia de la luz ambiente y ofrece una
increíble indiferencia al color del objeto a detectar. La detección de un muro
negro en plena luz del sol es ahora posible basado en el ángulo del triángulo
descrito anteriormente. La matriz puede entonces determinar qué ángulo de
la luz reflejada vino de vuelta y por lo
tanto, se puede calcular la distancia al objeto.
Este nuevo método de rango es casi inmune a la interferencia de la luz ambiente y ofrece una increíble indiferencia al color del objeto a detectar.
Este nuevo método de rango es casi inmune a la interferencia de la luz ambiente y ofrece una increíble indiferencia al color del objeto a detectar.
La
detección de un muro negro en plena luz del sol es ahora posible Hay que tener en cuenta la
resolución del sensor es en centímetros.
Así como también que hay una
región de operación a utilizar, pues el sensor debe estar a una distancia de
6cm de separación al área en donde es detectado el objeto, que en el caso del
instrumento es la baqueta. Pues al obtener un ángulo de incidencia muy grande
que llega al receptor, la tensión de salida toma su máximo valor, saturándose e
impidiendo así una medición correcta.
Igualmente se tiene que utilizar
un circuito de filtraje RC, en la salida del sensor Sharp, pues la misma viene
con pulsos en su señal, con un alto contenido frecuencial. Que para obtener una
señal aproximada a DC se debe de filtrar ciertos de ellos a una frecuencia de
10Hz.
Este circuito es un Filtro Pasa
Bajo de aproximadamente una frecuencia
de corte de 10Hz, que experimentalmente es de 9,94Hz.
2.1.4.-Estudio de los tiempos en la implementación del sensor.
Asimismo, la duración mínima que es relevante para el sensor, que permanezca el objeto en ese sitio es de 4,8ms. Luego de esto, para que en el terminal de voltaje de salida sea mostrado un nivel alto, hay una duración de 1,9ms como medida mínima. Igualmente esto ocurre, cada vez que se toque con la baqueta.
Ahora haciendo una totalización de los tiempos tenemos:
Duración de medida mínima: 4,8ms. (Tiempo que dura el objeto en el área de detección)+ 1,9ms. Para que se muestre en la salida+ 3us. (Tiempo del conversor ADC) +40us.(Tiempo de simulación)+30us(Tiempo de Labview en abrir el .wav)=6,77ms.
Obteniéndose así un tiempo de latencia menor a 10 ms. Que es lo que se desea.
La frecuencias de muestreo debe ser igual: f. muestreo = 2 f. máxima, siendo igual 295,29 Hz. Para asi satisfacer el teorema de muestreo de Nyquist.
La familia de Sharp de infrarrojos detectores de distancias son muy populares para la robótica y la automática de aplicaciones de medición de distancias. Un inconveniente de estos sensores es que su respuesta no es del todo lineal. En otras palabras se produce en la señal de salida cuando esta está en alto, unos picos de gran potencial, que deben ser filtrados con un filtro pasa bajo con una frecuencia de corte de 10Hz.
Es importante resaltar que para acceder al micro controlador para trabajar con su conversor ADC y enviar lo medido, es necesario limitar el voltaje de 0V a 3V, en lo que respecta a la salida del sensor este no sobrepasa los 2,8V. Siendo este su Voltaje máximo.
2.1.5.
Mediciones de voltajes de cada nota.
Se pudo observar que la variación fue alrededor de
99mV. Por cada nota.
La medición se realizo con el Oscloscopio por mas
precisión.
2.1.6. Data que condiciona cada nota en la codificación
SENSOR LÁSER
La señal es digital, que mientras haya emisión
de luz estará en alto, es decir en Vo=3V y al haber una interrupción esta
cambiara a 0,19V-0,2V.
El
potenciómetro me permite medir el valor de la resistencia que debe colocarse
para obtener el voltaje de comparación experimental asi como también me permite
calibrar mis voltajes a la salida.
Adicionalmente
en el emisor de luz se colocaron resistencias de protección de 100 ohms. Y un
switch que encenderá en paralelo a todos los láseres y es alimentado a 4V.
Igualmente
se utilizo un adaptador que envía mis salidas Vo al microcontrolador.
Y Para
garantizar la correcta alimentación del circuito se utilizo un regulador de 5V.LM7805CV
con la siguiente configuración.
Materiales a utilizar:
·
6 diodos laser.
·
6 foto resistencias como sensor laser.
·
6 LM311, comparadores.
·
9 Resistencias de 220 ohms.
·
6 Resistencias de 510 ohms.
·
6 Resistencias de 1Kohms.
·
6 Resistencias de 100ohms.
·
1 switch
·
2 Adaptadores de cables prolongados
·
LM7805CV
·
Capacitor 0.1uF
·
Capacitor 0.33uF.
visión general de la programación del instrumento.
Lira
Para
la lira se usara lasers y sensores de
proximidad los cuales emiten los datos referentes a la distancia ubicados en la
lira vía serial, mientras que los lasers
dirán en que sección de la lira se esta, izquierda o derecha.
La
información de los laser es adquirida por un circuito lógico de 6 entradas a 2 salidas
(dos laser por lugar de la lira) y las
salidas son ubicación de izquierda o derecha.
La
compuerta lógica a usar fue T4LS04 (OR).
Cada región de la
lira (izquierda o derecha) tendrá 3 lasers
los cuales dirán que se toco una tecla con esa región, luego con el
sensor de proximidad se determina en que parte teniendo entonces como
trasmisión al chip 2 pines de comunicación serial y dos pines de lugar. Esta información que llegara al puerto
c por comunicación serial una parte y por lectura de puerto la otra si se
tiene, será usada para emitir los datos de memoria de las octavas ya
previamente guardados, es decir si se tiene que se toco la parte izquierda a y
la tecla mas baja. La lógica binaria de lugar será 10 y se tendrá por puerto
serial la distancia a la que se y si el
rango del valor de la distancia está entre x y W valor, se escoge un pack de
memoria que contiene el numero del tono que se está tocando lo cual será
procesado por labview. Se necesitaría 2 byte del protocolo midi . El de
estatus y el dato del número de tono.
domingo, 11 de marzo de 2012
Interfaz de Procesamiento de Datos
Adquisición de datos :
Se usa los drivers VISA para recibir los datos serial . ajustando los baudios de transmisión, cantidad de bits ,bits de paridad etc . Para este caso se transmite a 115200 baudios 8 bits sin bit de paridad por lo que la configuración de visa se puede usar la de por defecto y solo cambiar la velocidad de transmisión y escoger por cual puerto se esta transmitiendo .
Como protocolo simple de practica se usa " 0xF0--Dato1---Dato2--0xFE " por lo que se hace un ciclo de espera del primer byte que seria 0xF0 . una vez obtenido este valor se sale del siclo while realizado para leer los 3 bytes siguientes . De los 3 bytes se espera que el ultimo sea 0xFE asi se procede a graficar los datos ( usado como muestra que se esta recibiendo bien la información ) y teniendo la adquisición esperada.
Procesamiento de datos y reproducción de sonido: Los datos obtenidos por lo general serán referentes a la nota que se quiere tocar y en el caso del theremin el volumen de esta, que controlaran los datos de un .wav del sonido esperado. Por lo que primero se realizaron pruebas de un sintetizador .
Construcción del sintetizador :
Se comenzó primero que la reproducción de un tono continuo en labview
Diagrama Completo |
Configuración de la tarjeta de sonido |
Reproducción de la onda |
"Superado el sonido continuo , ahora a realizar sonidos con un .wav y modifiar la frecuencia para generar distintos tonos "
Apertura de un .wav en labview :
De izquierda a derecha : los tres primeros iconos son usados para genererar un enlace de dodne esta el .wav a abrir , asi no se esta colocando cada vez que se quiera usar el proyecto . Esto genera un path que va al subvi (cajita con signo de pregunta) y que transmite la información del .wav usado ,es decir,tasa de muestreo , nuemero de muestras asi como numero de bits por muestra . de acá se extrae del cluster de información creado mediante un "unbundle by name " la tasa de muestreo que se pasa de un double a un int para asi tener las muestras que necesita la tarjeta de sonido y reproducir . Al mismo tiempo se abre el archivo .wav y con el subvi de "sound file read" pasando previamente por el vi de "sound file read format" , se obtienen los datos que se quiere reproducir en un cluster que contiene los dos canales por lo que se des-indexa y se saca la información de un canal y ya se tiene la data a transmitir . configurando la tarjeta de sonido como se hizo con la onda continua y escribiendo la data obtenida del .wav en la tarjeta de sonido se logra la reproducción del .wav
Ideas de sintetizacion :
Mediante Modulacion SSB ( Single side band ) :
una vez ya obtenido el sonido a reproducir lo que faltaría seria escalarlo en el tono que se desee( Como se tiene una lira no se necesita mantener el sonido sino que sera como la pulsacion de una tecla y el theremin son ondas senoidales variando en frecuencia por lo que no se piensa en el sostenido para estos instrumentos pese a que el theremin es un sonido sostenido pero se puede realizar con el generador de ondas ) . Escalar un tono seria mover en frecuencia un tono base a la frecuencia requerida . Si se hace una modulación de banda lateral se obtendria el escalado del sonido
Modulacion SSB :
http://cnx.org/content/m15467/latest/
Ahora bien, la modulacion SSb se necesita transformar en hilbert el tono a modular por una via y modularlo con un seno . de la misma manera modularlo con un Coseno y luego sumar ambas señales y se obtiene la señal modulada en SSB . Esto en labview se tendría que hacer , o todo en el dominio del tiempo o todo en el dominio de la frecuencia por lo que se pensó en una modulacion DSB y luego aplicar un filtro pasa alto o pasa banda con frecuencia de corte en la portadora .
En labview :
Se agarran los datos de audio obtenidos del .wav y se multiplican por una onda senoidal y luego se pasan por un filtro pasabanda y asi se obtiene la señal de salida modulada SSB (se hace lo del boceto) ,se tienen espectros de cada señal en cada una de las etapas para ir viendo el proceso
Subvi de filtro :
Se usa un filtro de respuesta de pulsos finitos FIR con uan ventana de tipo Hamming y se le aplica un numero de coeficientes igual a 1000 ( a partir de 300 queda bien ) . Con una cantidad alta de coeficientes el filtro se aproxima mucho a un filtro ideal . El subvi consta de el generador de coeficientes del filtro fir y luego la modalidad de uso que en este caso seria cascada . De esta forma se tiene un buen filtrado de cualquier señal.Para el caso de filtro de SSB la frecuencia de corte debe ser la misma que la de la portadora proporcionando un filtro movible y generando el efecto de la SSB esperado . La frecuencia de muestreo debe ser la mitad de la del .wav
Subvi Generador de espectros para graficacion :
Para ir viendo los cambios en frecuencia se uso este Vi , así al conectar con indicador tipo onda se tiene el espectro ya escalado de la señal
Puesta en marcha de la SSB :
Se realizo la corrida del sistema y funciono correctamente , el sonido se escalo como se deseaba pero, a medida que se aumentaba la frecuencia a la que se quería escalar la señal de salida se iba atenuando , al punto que se perdia del todo . Se pararon las pruebas por esta via y se comenzaron a realizar variaciones de tono mediante la velocidad de muestras . El problema se cree que puede estar en la forma de los filtros uqe hacen que la onda se atenue . con mayor manejo de labview y haciendo un filtro ideal con un string de valores 8 tipo como si fuese Matlab ) puede que se acomode el desperfecto y pueda funcionar
:
Mediante la velocidad de muestra :
Mediante Modulacion SSB ( Single side band ) :
una vez ya obtenido el sonido a reproducir lo que faltaría seria escalarlo en el tono que se desee( Como se tiene una lira no se necesita mantener el sonido sino que sera como la pulsacion de una tecla y el theremin son ondas senoidales variando en frecuencia por lo que no se piensa en el sostenido para estos instrumentos pese a que el theremin es un sonido sostenido pero se puede realizar con el generador de ondas ) . Escalar un tono seria mover en frecuencia un tono base a la frecuencia requerida . Si se hace una modulación de banda lateral se obtendria el escalado del sonido
Modulacion SSB :
http://cnx.org/content/m15467/latest/
Ahora bien, la modulacion SSb se necesita transformar en hilbert el tono a modular por una via y modularlo con un seno . de la misma manera modularlo con un Coseno y luego sumar ambas señales y se obtiene la señal modulada en SSB . Esto en labview se tendría que hacer , o todo en el dominio del tiempo o todo en el dominio de la frecuencia por lo que se pensó en una modulacion DSB y luego aplicar un filtro pasa alto o pasa banda con frecuencia de corte en la portadora .
Boceto de la SSB
En labview :
Se agarran los datos de audio obtenidos del .wav y se multiplican por una onda senoidal y luego se pasan por un filtro pasabanda y asi se obtiene la señal de salida modulada SSB (se hace lo del boceto) ,se tienen espectros de cada señal en cada una de las etapas para ir viendo el proceso
Subvi de filtro :
Se usa un filtro de respuesta de pulsos finitos FIR con uan ventana de tipo Hamming y se le aplica un numero de coeficientes igual a 1000 ( a partir de 300 queda bien ) . Con una cantidad alta de coeficientes el filtro se aproxima mucho a un filtro ideal . El subvi consta de el generador de coeficientes del filtro fir y luego la modalidad de uso que en este caso seria cascada . De esta forma se tiene un buen filtrado de cualquier señal.Para el caso de filtro de SSB la frecuencia de corte debe ser la misma que la de la portadora proporcionando un filtro movible y generando el efecto de la SSB esperado . La frecuencia de muestreo debe ser la mitad de la del .wav
Subvi Generador de espectros para graficacion :
Para ir viendo los cambios en frecuencia se uso este Vi , así al conectar con indicador tipo onda se tiene el espectro ya escalado de la señal
Se realizo la corrida del sistema y funciono correctamente , el sonido se escalo como se deseaba pero, a medida que se aumentaba la frecuencia a la que se quería escalar la señal de salida se iba atenuando , al punto que se perdia del todo . Se pararon las pruebas por esta via y se comenzaron a realizar variaciones de tono mediante la velocidad de muestras . El problema se cree que puede estar en la forma de los filtros uqe hacen que la onda se atenue . con mayor manejo de labview y haciendo un filtro ideal con un string de valores 8 tipo como si fuese Matlab ) puede que se acomode el desperfecto y pueda funcionar
Señal modulada 10Hz Efecto tremolo y espectro correcto |
señal escalada con mas frecuencia , se comienza a atenuar la salida |
:
escalando con 500Hz mas ,ya el espectro casi se pierde |
Mediante la velocidad de muestra :
Aplicando la apertura del .wav y luego modificando su velocidad de muestreo se acelera o se desacelera el sonido que, para intervalos pequeños es similar a escuchar que el sonido varia en frecuencia por lo que es una buena aproximación y que sera usada para generar las variaciones de sonido de la lira . El theremin se realizara mediante ondas senoidales pero con una cantidad de muestras pequeñas así se aproxima a lo que seria una variación de frecuencia real de este instrumento
sábado, 10 de marzo de 2012
II.-Theremin: Aplicación de circuito Físico
Se aplico el circuito de la universidad de glasglow con una simulación , utilizando un condensador variable como simulación de la antena , ya que esta lo que hace es variar la capacitancia del condensador que sirve como oscilador . Se tuvo la respuesta esperada una onda cuadrada de 15v con variación de frecuencia a medida que se varia el oscilador. No se toma directamente la variacion de frecuencia del oscilador , debido a que oscila en el orden de los Mhz por lo que las variaciones son mínimas al alterar la capacitancia y hay el uso de otro oscilador de referencia para obtener una onda que muestra en frecuencia la diferencia entre los dos osciladores
Circuito Fisico :
Vista superior
Vista Lateral
Al implementar el circuito se realizo una primera prueba con un cableado desordenado y la antena conectada a un cable que se unía al circuito ,lo cual hizo que las variaciones de frecuencia al acercar o alejar las manos ( varia la capacitancia del condensador ) no fueran evidentes . La causa de sensibilidad era por el cableado que hacia antenas en el circuito por lo que se tuvo que realizar un cableado lo suficientemente pegado al protoboard y conectar la antena justo en el terminal del condensador ( se logra mas variación de esta forma y es la manera en que mejor funciona ).Se logro tener una variación que va de 20Khz a 50 khz con una distancia de la antena que va desde su contacto directo a una distancia de 20 cm de radio . Para tener mayor distancia depende del diseño de la antena y se calibra el potenciometro del oscilador de referencia para hacer el circuito mas sensible .
Del circuito de glasglow para que la señal que que tiene como frecuencia la diferencia de los dos osciladores no tenga ruido se le debe agregar un circuito pasabajo ( Con un condensador y una resistencia se puede hacer ) que permite quitar el ruido que se genera que es mayor a los 200Khz asi se evita distorsión en la señal cuadrada a la salida de la compuerta nand trigger que genera la señal cuadrada de salida
Con la creación de la tarjeta del circuito y colocandolo en una caja de plástico se espera obtener un mejor resultado para el sistema
Adquisición de datos con el microcontrolador :
Una vez ya obtenida la onda cuadrada del circuito y previamente escalada con un valor maximo no superior a 3V pero mayor a 2.5V ( rango de voltaje que cubre lo que el microcontrolador interpreta como 1 logico )
se piensa utilizar el sistema de interrupciones externas para medir periodo de la onda y posteriormente enviar como un dato de frecuencia del protocolo serial a usar que va dirigido a la interfaz labview para reproducir el sonido
Explicación del procedimiento :
Con un flanco de bajada de la onda se activa la interrupción del KVi, y se activa el contador . El contador es una variable de 8Bits que se incrementa a un paso pautado por la interrupción de un timer del micro ( interrupciones del tipo TBM) . al llegar el próximo flanco de bajada , se para el conteo y se desactiva las interrupciones KVI así como también la interrupción por tiempo . Este valor es pasado vía serial a la computadora y puede ser usado para asignar una nota ( se tendrá un valor que va entre 0 a 255 ) ya que no se requiere hacer el calculo de la frecuencia de dicho tiempo debido a que sera fuera del rango de auditivo
Suscribirse a:
Entradas (Atom)