viernes, 30 de marzo de 2012

INSTRUMENTO FINALIZADO

LIRA




CARPINTERÍA
 UBICACIÓN DE SENSORES
 ALINEACIÓN DE LASERS

FOTOS DEL INSTRUMENTO EN ETAPAS.

1.- CIRCUITO IMPLEMENTADO PARA ADQUISICIÓN EN SENSORES LASERS.







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. 


La detección de un muro negro en plena luz del sol es ahora posibleHay 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
Asimismo, se utiliza sensores laser, 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 prevenir que suene la que se desea.





 Al producirse la emisión de luz de laser, esta es interrumpida al tocar con la baqueta, esto produce un cambio del valor de la impedancia de la fotoresistencia, produciéndose a su vez una variación de voltaje. Luego esto entra a un comparador de 5V que me permitirá saber si hubo una variación de voltaje y finalmente pasa a un divisor de tensión limitándome mi voltaje de 0v a 3V, permitiéndose la adquisición al  micro-controlador y así poder proteger al mismo de variantes de voltaje.
 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

los datos generados por los instrumentos serán enviados a la computadora mediante comunicación serial , Para luego ser procesados en labview y así, generar los sonidos correspondientes .La interfaz en labview estará delimitada por dos procesos : Adquisición de datos y Reproducción de sonidos a partir de los 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

Se configura la tarjeta de sonido para que opere a cierta cantidad de muestras por segundo que se dividen en 4 para colocarlos que la tarjeta opere de esta forma . A su vez se le aplica el formato del sonido que seria la tasa de muestreo( sample rate)   los canales del sonido y el numero de bits por muestreo . Una vez ya configurada la tarjeta se usa el vi de generador de ondas senoidales del labview que requiere que se le envié la tasa de sampling a la que se esta trabajando para generar la onda y la frecuencia de forma normalizada a partir de la tasa de muestreo . Una vez ya configurado el generado , este envia datos a la tarjeta de sonido para que se escriban y se reproduzcan , generando el sonido de un tono que, dentro de una estructura de while como la que se tiene reproduce continuamente 

"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 .


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



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
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