Osciloscopio laser II (Figuras de Lissajous)
21 de Septiembre de 2008 por cogolloAhora que tengo una fuente de alimentación apropiada para el puntero láser de mi osciloscopio y ya he cogido algo de confianza usando Processing no podía pasar mucho tiempo antes de ponerme a fardar.
Para empezar poco a poco he pensado que podríamos hacer unas buenas, viejas, figuras de Lissajous. Son fáciles de implementar, agradables a la vista y nunca pasan de moda.
Proyectando sobre la pared del salón
A continuación te pego el código fuente que mueve esto. Es bastante sencillo y lo he comentado a conciencia, así que espero que, aparte de masajear mi ego, tenga algún valor didáctico. Considérate libre de retorcerlo y mutilarlo como te venga en gana. Tendrás que bajarte la librería de sonido Ess r2 para que funcione, pero por lo demás solo tienes que pulsar play y sentarte a disfrutar.
//Lissajous.pde //Programa para generar figuras de Lissajous en movimiento //en un osciloscopio conectado a la salida de audio del PC. import krister.Ess.*; //Este objeto se encargará de manejar el canal izquierdo AudioStream chanel1; //Idem con el canal derecho AudioStream chanel2; //Onda sinusoidal asociada al canal izquierdo SineWave Wave1; //Onda sinusoidal asociada al canal derecho SineWave Wave2; //Relacion entre la frecuencia de Wave1 y Wave2 int bucles=0; //Contador con el numero de frames que llevamos int cont = 0; void setup() { // Inicializa Ess (la libreria de audio) Ess.start(this); //Creamos dos nuevos streams de audio chanel1=new AudioStream(); chanel2=new AudioStream(); // y dos nuevas ondas a 60 y 61 Hz y rellenamos el buffer de cada //canal con una de ellas- Wave1=new SineWave(61 ,1); Wave1.generate(chanel1); Wave2=new SineWave(60,1); Wave2.generate(chanel2); //Comienza a reproducir las ondas a traves de la salida de audio chanel1.start(); chanel2.start(); //Estableciendo el pan del canal uno a 0.3333 conseguimos que //su sonido solo salga por el canal izquierdo. chanel1.pan(0.3333); //Para el canal2 el -0.3333 hace que el sonido salga por el canal derecho. chanel2.pan(-0.3333); } void draw() { cont++; if(cont > 300) //Cada 300 frames (10 sg) disminuimos { //la frecuencia de Wave2 para obtener la cont = 0; // siguiente figura bucles++; if(bucles >2) //Cuando hemos hecho esto tres veces volvemos a empezar bucles = 0; //La nueva frecuewncia sale de dividir por un entero la frecuencia inicial //menos un Hz. Ese Hz de diferencia es lo que hace que las figuras giren. Wave2.frequency = (Wave1.frequency-1)/(bucles+1); //Para un mismo volumen la amplitud de la onda es inversamente proporcional //al cuadrado de la frecuencia. Así que para mantener las proporciones de //la figura tenemos que cambiar el volumen de Wave2 en consecuencia Wave2.volume = Wave1.volume / ((bucles+1)*(bucles+1)); } } //Esta funcion se llama automagicamente cuando hay que rellenar algún buffer de audio void audioStreamWrite(AudioStream theStream) { SineWave myWave; if(theStream==chanel1){ myWave=Wave1; } else{ myWave= Wave2; } //Genera más onda de sonido myWave.generate(theStream); // Ajustamos la fase para que no se produzcan saltos myWave.phase+=theStream.size; myWave.phase%=theStream.sampleRate; } //Al cerrar, para Ess public void stop() { Ess.stop(); super.stop(); }
Publicado en Nuestros hacks |
2 Comentarios »
22 de Noviembre de 2008 a las 7:06
hola, he visto videos de curvas de lissajous en internet y hay unos muy buenos, ponen letras en un osciloscopio, letras ke giran, etc… sabes como puedo hacerlo?? solo me interesa tener el programa y tal vez un archivo de muestra para poder entender como lo crean y cambiarle de poco en poco hasta formar uno diferente mio, te agradezco si me sacas de mi duda
25 de Noviembre de 2008 a las 13:43
Pax, supongo que te refieres a esto:
http://www.youtube.com/watch?v=s1eNjUgaB-g&eurl=http://waxy.org/2008/02/oscilloscope_fu/
Básicamente, funciona conectando el osciloscopio en modo x-y a la salida de sonido del ordenador, de modo que el canal derecho controle la posición x del punto luminoso y el canal izquierdo la posición y. El principio es el mismo que el que usamos nosotros para manejar nuestro osciloscópio laser, pero con formas de onda mucho más complejas.
El creador del video también ha colgado el archivo wav que ha utilizado.
http://mirror.kapsi.fi/koodaa.mine.nu/tvt/youscope-wave.wav
Para ver esos efectos solo tienes que reproducir el archivo y conectar tu osciloscópio a la toma de auriculares.
Necesitarás un osciloscópio “de verdad” ,eso sí, porque el nuestro, como tiene que mover físicamente los espejos, no puede responder con la rapidez suficiente.