Saludos a todos. Antes que nada lamento no haber podido postear mas seguido pero he estado con mucho trabajo y ademas me mude de casa, no tenia internet etc etc.
En esta ocasion, les traigo un pequeño proyecto en el que he estado trabajando, y viendo que a pesar de que hay otros temas relacionados en el foro, no habia nada en concreto, aun...
Funciona con cualquier LCD alfanumerico. Esta es la version 1, la version 2, incluira un control remoto para el winamp y se podra ver el nombre de la cancion en el display
Se trata de un pequeño analizador de espectro de audio realizado con un PIC18F4525, aunque bien se puede usar el PIC18F4620 sin ningun problema.
Para tener las caracteristicas necesarias, fue necesario hacerlo en la serie 18, ya que todo el programa esta en assembler y la FFT requiere del uso del multiplicador, hacerlo en serie 16, haria interminable la FFT debido a las multiplicaciones en las operaciones mariposa.
Otra razon sumamente importante, es el manejo y tamaño de la RAM, en la serie 16, es muy dificil implementar la FFT debido a la necesidad de apuntadores para los vectores de muestras real e imaginario, de hecho, la serie 16 solo cuenta con un solo INDF.
Por ultimo, esta hecho en un 4525 ya que tiene casi 4kb de RAM, ademas, el ADC puede samplear hasta unos 110khz, en este proyecto, sampleo a 80khz, dos canales, asi, cada canal tiene efectivamente unos 40khz de sampleo, con lo cual el ancho de banda de audio se cubre (0 a 20 khz)
Esta hecho en un LCD 16 x 2. modelo ADM1602K-NSW-FBS, el cual lo pueden conseguir en México
en este sitio o en sparkfun
En especial, a este display que tiene un backlight blanco, le he cambiado el led por un LED RGB, de tal manera, que es posible obtener cualquier color que se desee, 8 bits por color = 16 millones de colores.
Caracteristicas:
Corre en un PIC18f4525, o PIC18F4620
12 mhz xtal en modo PLL para correr a 12 mips reales
FFT de 32 puntos en tiempo real
80k samples/seg, para tener dos canales (stereo) a 40k samples/seg cada uno.
el refresco de la pantalla es a 60FPS, de hecho, durante este tiempo, se realizan 10 FFTs completas y se obtienen sus picos
Picos de señal de audio o FFT para no perder detalles del audio
Modo lineal o logaritmico base (100) para graficacion de las muestras.
Les adjunto los diagramas, uno, es el basico, con el LCD sin modificar y el otro, viene con los pines asignados al LED RGB
El archivo *.hex lo pueden descargar mas abajo.
No importa que LCD usen, cualquier marca funciona. Si no tienen la version RGB simplemente coloquen una resistencia a positivo en el
backlight
Espero que les guste, saludos.
PD. En la medida que les agrade este post, y su participacion, subire el codigo de la FFT, en assebler puro, esta puede ser de 2 4 8 16 32 64 128 o 256 muestras, no importa, el algoritmo es universal y solo toma en cuenta el tamaño que se le especifique
Victor.
Diagrama para el modelo con modificacion del LED RGB
Mayor tamaño:
http://a.imageshack.us/img691/5106/spectrumanalizerversionh.jpgDiagrama para el modelo de LCD original
Mayor tamaño:
http://a.imageshack.us/img691/5716/spectrumanalizerk.jpg