jueves, 9 de agosto de 2012

Contro Remoto por RF con módulos TLP434A - RLP434 y MC9S08QG8


Todos alguna vez hemos querido o necesitado activar o controlar algún dispositivo a distancia y para ello requerimos de un "Control Remoto". Suelen utilizarse mucho los que trabajan a través de IR (infrarrojo) pero a veces necesitamos utilizar un Control Remoto a través de Radio Frecuencia para mejorar el alcance y tener obstáculos en linea de vista.

Se utilizaron dos módulos RF de bajo costo y fácil integración. Uno es el modulo TLP434A  que es un transmisor RF sintonizado en la frecuencia de 433.92MHz. El modulo receptor es el RLP434 que también esta sintonizado a la misma frecuencia. Estos módulos trabajan enviando y recibiendo datos de manera serial usando niveles TTL 5V-3V, la velocidad de transmisión recomendada es 4800bps.

Descarga la Hoja de Datos






Para este caso, (que es un control remoto), solo se va a transmitir una cadena de caracteres fija que identifique la acción que se quiere realizar, dado que también podemos enviar información con datos que nos interesen (por ejemplo un texto para ser mostrado en un LCD escrito remotamente). 



EL diseño se realizo de manera que el transmisor no consuma corriente cuando no este siendo utilizado, para esto se utilizó un MOSFET que entra en modo de conducción al presionar cualquiera de los pulsadores. Los diodos son para evitar que la corriente se devuelva y poder identificar con el microcontrolador cual de los pulsadores fue activado.

El IDE utilizado para compilar y programar el firmware es el Freescale Codewarrior 10.2



Descargar Codigo Fuente





viernes, 9 de diciembre de 2011

LED VU METER en un HCS08 de Freescale

Al igual que en el desarrollo anterior, en estre trabajamos una parte analoga
(muy sencilla) y una digital.
Consiste en realizar el famoso VU METER o visualizador de nivel de audio usando un arreglo de LEDS.

Aqui esta el diagrama esquemático del circuito utilizado:






El firmware Se divide en dos partes:

1. Muestreo
2. Visualización

1. Muestreo

Utilizando un microcontrolador Freescale de la familia HCS08 (8bits) y lenguaje ANSI C, se configura el conversor ADC (10Bits) interno para que tome una muestra cada 14uS. Se toman 10 muestras y se calcula el promedio, se guarda este resultado como un dato de ADC válido para ser procesado por la función de visualización que se encarga de ajustar el valor matemático en un formato coherente para ser mostrado en los LEDS.

2. Visualización

La visualización se hace realizando un calculo matemático en donde se escoge un valor constante que va a ser la sensibilidad del nivel mostrado según el valor máximo del ADC.


num = ((float)8 / (float)512);
num = (num * (float)valor);
nument = (unsigned int)num; 



El cálculo es 8 LEDS dividido la constante de sensibilidad multiplicado por el valor leído del ADC. Esto da como resultado un valor entre 0 y 8 para ser visualizado. Pero para que se muestre como una barra de progreso, es necesario cambiar el valor del byte de la siguiente forma:


martes, 6 de septiembre de 2011

Analizador de Espectro de Audio con LCD 8Bit Freescale GT60

 Este es un desarrollo el cuál incluye una parte análoga y una digital.
Básicamente consiste en representar la potencia de la señal de audio separada en frecuencias, para esto necesitamos hacer un muestreo de la señal cumpliendo con el teorema del muestreo Teorema de muestreo de Nyquist-Shannon. Una señal de audio "audible"  para el oído humano se encuentra en la banda de 20Hz a 20Khz, en nuestro caso vamos a realizar un muestreo completo de dicha banda. Para esto la frecuencia mínima de muestreo debe ser 40KHz.

Utilizando un microcontrolador Freescale de la familia HCS08 (8bits) y lenguaje ANSI C, configuramos el conversor ADC interno para que tome una muestra cada 25uS (40KHz) y asi aplicar una FFT de 64 puntos en tiempo real (gracias a que el bus interno del microcontrolador corre a 20MHz), dando como resultado 32 niveles que representan las frecuencias desde 20Hz hasta 20KHz con un intervalo de 312.5Hz cada nivel. Como tenemos un display de caracteres de 16 x 2, realizamos un promedio del valor de los niveles contiguos para así obtener como resultado 16 niveles y poder representarlos como barras (caracteres personalizados en LCD de caracteres ver Tutorial).

Demos agradecimientos a Tom Roberts y Malcolm Slaney que publicaron este código de FFT en tiempo real en C el cual he ajustado para ser ejecutado en este microcontrolador.

Esquematico: (Click para agrandar)



 Video Funcionando:
Archivo S19 para grabar en el microcontrolador aqui

Archivo ZIP del código fuente del proyecto aquí
Pueden compartirlo y referenciarlo.