sábado, 22 de enero de 2011

MLOTrainer

A la hora de trabajar con microcontroladores, es bueno tener una herramienta de desarrollo que nos permita tener control sobre las características del PIC a través del PC.

Por ello he desarrollado una tarjeta de desarrollo básica para el PIC18F2550, que permita acceder a los pines de I/O, a dos canales análogos y a un protocolo en particular: I2C.

La idea es hacer un tipo de debbuger para "colgar" periféricos al bus I2C y poder enviar y recibir tramas I2C.

El esquemático de la tarjeta es el siguiente:

Usamos el puerto A para entrada de un nibble con dip-switch, el puerto b para salida con LED y la opción de conectar a módulos externos. Los pines para el I2C llevan sus respectivas resistencias de pull-up y hay dos modos de conexión: RS232 y USB, éste último posee un detector de conexión a través de uno de los pines del PIC.

La PCB es la siguiente:

Para controlar las funciones de la tarjeta contamos con el software correspondiente, el cual posee tres aplicaciones:

La primera es para trabajar con tramas I2C:

En la imagen esta la parte de simulación con proteus ISIS (La parte de recepción aún no la he probado con un dispositivo conectado, por eso aparecen los signos ?).

La segunda aplicación es para trabajar con los pines I/O:




La tercera es para juguetear con los 2 canales análogos:



En la tarjeta MLOTrainer, está el conector de 3 pines para la parte análoga, el cual incluye la alimentación (5V y GND).

DESCARGAS
Esquemático y PCB: Diagrama esquemático y PCB en .pdf.

miércoles, 5 de enero de 2011

Pantallas GLCD

Las pantallas GLCD son muy útiles a la hora de presentar información en nuestros proyectos. A diferencia de las pantallas LCD alfanuméricas, las GLCDs no poseen un registro interno en donde estén las letras y símbolos (algunas si traen) ya definidas, si no que hay que diseñarlas. Esto nos da la ventaja de definir las fuentes a nuestro gusto.

La pantalla que voy a utilizar es la que está aquí (es la que tenía el cliente) la cual usa el controlador TC6963c y hace parte de un controlador PID de temperatura para un horno.


En el siguiente diagrama esquemático se indica como conectar la pantalla a un PIC18F452.


La PCB:

Algunas fotos de la aplicación:



También se pueden dibujar lineas, cargar iconos de 32x32 pixeles y manejar diferentes fuentes a diferentes tamaños.





Un vídeo del sistema completo.
DESCARGAS:
Esquemático y PCB: Diagrama esquemático y Board de ensamble para el proyecto.

martes, 4 de enero de 2011

Turnero Digital

Una de las herramientas que se usan para asignar un orden determinado para la prestación de un servicio, es el turnero, el cual indica el numero de turno a quien le corresponde pasar al servicio. Este sistema debe tener una pantalla lo suficientemente grande para poder ser visualizada a distancia y al mismo tiempo tener los controles necesarios para subir, bajar o resetear el turno correspondiente.

El problema con tener pantallas que necesitan ser controladas a grandes distancias es el cableado. Aprovechando lo visto en la sección Mando Infrarrojo podemos aplicarlo a nuestro turnero, teniendo así un control con muchos botones para su configuración y sin cables!

Para los dígitos de la pantalla he decidido utilizar LEDs en arreglos de 6 LED formando los segmentos y así unirlos y obtener números mas grandes.





El microcontrolador utilizado es el 16F628A. El dispositivo no tiene mayor dificultad, es un contador ascendente y descendente, con algunas modificaciones como lo son:

  • Flasheo de la pantalla en cada cambio de número.
  • Señal sonora en cada cambio de número.
  • Asignación del número con el control Ir.
El diagrama esquemático:


Se han utilizado transistores 2N3904 para drenar la corriente a GND para obtener mayor brillo.


DESCARGAS:
Esquemático y PCB. Diagrama esquemático y board del controlador y el segmento LED.

domingo, 26 de diciembre de 2010

Velocímetro

El velocímetro es un instrumento que mide la rapidez media de un móvil, si se mide en intervalos de tiempo cortos, se aproxima a la rapidez instantánea del móvil.

La medición se hace de manera indirecta relacionando el movimiento circular del eje de transmisión con la distancia recorrida por el móvil, para ello se usa un imán aferrado al eje y sensores magnéticos (Sensores Hall) los cuales entregan una serie de pulsos a cada "encuentro" con el imán.

Al tener una medida de la frecuencia (ciclos en un segundo) con la distancia recorrida (metros) se puede calcular la velocidad del móvil con cada lectura que se haga de la frecuencia de rotación del eje.

Para medir esa frecuencia he usado un PIC16F628A el cual posee un modulo CCP y tiene los pines justos para manejar los dos display de 7 segmentos y un Buzzer para dar una alerta cuando se sobrepase el valor límite de velocidad permitido.






La tarjeta de ensamble con la ubicación de los componentes:











Un vídeo del funcionamiento del velocímetro. El imán esta sujeto a las aspas del ventilador.





DESCARGAS:

domingo, 21 de noviembre de 2010

Programador PICs

Una de las herramientas indispensables en nuestro banco de trabajo es un programador para PICs. En este caso vamos a montar el famoso PicKit2 Clone del cual hay muchisimas versiones en la red. El modelo que propongo es un poco mas sencillo, ya que quite la parte para PICs de 3.3v. Aunque ya tengo un ICD2, me pareció muy interesante por las herramientas extra que trae: Logic y UART
Tool's.

Si alguien esta interesado en montar el programador completo, puede visitar TodoPic o la página del amigo Felixls que son las que he tomado como base para la construcción de mi programador.

El esquema que he utilizado es el siguiente:


Decidí montarlo sobre una baquelita con corte circular (para que quede similar a mi ICD2 :P)


Los transistores y algunas resistencias son en SMD para ahorrar espacio, también quité el LED que indica la alimentación Vcc. El conector para programación ICSP lo he dejado de 10 pines, por lo que he quitado el pin AUX.

La PCB queda de la siguiente manera (6cm de diámetro):

Ya en su carcasa:


DESCARGAS:
PCB's : Esquemático y PCBs

lunes, 15 de noviembre de 2010

Emisor - Receptor RF para Laboratorios de Fisica

Para muchas practicas de laboratorio, resulta muy útil tomar los datos de manera automática para que sean mas confiables y tener la opción de guardarlos y poder trabajar con ellos usando software de análisis de datos, además, se necesita solo un equipo para adquirir los datos, a diferencia de los laboratorios tradicionales, en los cuales se necesitan varios equipos para un mismo fin.

He diseñado un dispositivo para demostrar la ley de enfriamiento de Newton, de tal manera que la medición de las variables de temperatura y tiempo se hagan de manera automática. Este dispositivo se puede usar en los laboratorios de Física de grados 10 y 11 de educación media secundaria demostrando el uso de las TIC en la educación.

Aprovechando la dotación del colegio en el que trabajo, se distribuirán los datos obtenidos por el dispositivo a la red de PC's que usan los estudiantes, para ello se necesita enviar los datos de temperatura y tiempo a los computadores.

Modulo Transmisor

El modulo transmisor tiene como base al microcontrolador 16F628A el cual se encarga de tomar los datos de temperatura del sensor DS18S20, el cual posee una resolución de 0,5°C @9bits, tiempo de conversión de 750mS y se comunica con el protocolo 1-wire (lo cual simplifica el diseño), llevar el conteo interno de toma de datos (cada 5 segundos), controlar la lampara incandescente (fuente de calentamiento) y enviar los datos vía RF hacia el receptor que se encuentra fuera del Laboratorio(hasta 100 metros de alcance).






Modulo Receptor

El modulo receptor tiene como base al PIC18F2550 el cual se encarga de recibir la información RF y la reenvía al computador vía USB.





Las tarjetas de ensamble para los equipos:





Para graficar los datos, se ha diseñado una plataforma software: CtrlTEMP, la cual se encarga de recibir los datos vía USB y se grafican en un plano cartesiano Temperatura vs. Tiempo, además posee la opción de exportar los datos a Excel de Office, archivo en el cual se mostrarán los datos y las gráficas correspondientes (para anexarlos al informe de laboratorio :) ).



DESCARGAS:
CtrlTEMP : Software de visualización de datos.
PCB's: Tarjetas de ensamble.

Ley de enfriamiento de Newton




Cuando un cuerpo que ha sido calentado previamente se deja al aire para que se enfríe, la función de Temperatura respecto al tiempo del cuerpo no es una linea recta, es decir, el enfriamiento no es linealmente proporcional.

La ley que sigue el proceso de transferencia de calor del cuerpo caliente hacia el medio circundante se conoce como Ley de enfriamiento de Newton la cual nos dice:


La temperatura de un cuerpo cambia a una velocidad que es proporcional a la diferencia de las temperaturas entre el medio externo y el cuerpo.


Matemáticamente, se puede expresar de la siguiente manera:



En donde:

dT : Cambio de Temperatura
dt : Cambio de Tiempo
k : Constante de proporcionalidad
T : Temperatura del cuerpo

Si se halla la constante de proporcionalidad k es posible predecir los cambios de temperatura del cuerpo a un tiempo determinado, para hacerlo, se deben tomar los datos de Temperatura a tiempos determinados y realizar la gráfica de Temperatura vs Tiempo.

Para tal fin he diseñado un dispositivo el cual se encarga de medir la temperatura y el tiempo de un cuerpo, lo visualiza en una pantalla LCD y además lo transmite por vía RF a un receptor (fuera del laboratorio) el cual esta conectado a un PC vía USB.





En el PC se ha instalado el software CtrlTEMP el cual se encarga de recibir los datos del receptor RF y los grafica en un plano cartesiano Temperatura vs. Tiempo, además indica el tiempo y temperatura actuales y el tiempo total del proceso.







Para tomar los datos de enfriamiento, se conecta el dispositivo transmisor y se presiona el pulsador de inicio, con lo cual se encenderá la lampara, la cual se encarga de calentar el aire circundante al sensor de temperatura, el calentamiento se hará por un tiempo de 1 minuto, pasado ese tiempo el dispositivo comenzará a visualizar y a transmitir los datos de temperatura y tiempo.

Lo primero que se hará evidente es que la función de relación entre Temperatura y tiempo no es una linea recta (con lo que se demuestra que el cambio no es linealmente proporcional).



Podemos observar que la función que describe la relación entre Temperatura y Tiempo, se asemeja mucho a la función exponencial, la cual es solución para la ecuación que describe la rapidez de enfriamiento del cuerpo.

Si el cuerpo se enfría a partir de una temperatura inicial Ti hasta una temperatura final Tf, la función que describe el enfriamiento del cuerpo es:




Para poder hallar el valor de la constante de proporcionalidad k se debe linealizar la ecuación anterior, para ello la reescribimos de la siguiente manera:





Aplicamos la función logaritmo natural a ambos lados de la igualdad, con lo que obtenemos:





Para trabajar los datos de la gráfica, damos click al botón que nos permite exportar los datos a Excel, el cual nos hará la gráfica de Temperatura vs Tiempo y nos entrega dos columnas con los datos de Tiempo y Temperatura.

Restamos a los datos de la columna de Temperatura el valor de Tf que sería el valor de la temperatura ambiente y luego calculamos el logaritmo natural; el valor de Ti corresponde al primer valor obtenido por el sensor de temperatura. Se traza la mejor recta posible entre los puntos obtenidos y calculamos la pendiente, la cual corresponde al valor de la constante de proporcionalidad k.

Al invertir el valor de k obtenemos un valor en segundos, el cual nos da una idea de la rapidez de enfriamiento.

Se puede usar software de análisis de datos para calcular el valor de las constantes de la ecuación, por ejemplo EUREGA.


Una aplicación de este tipo de sistemas es los hornos, a los cuales se les debe controlar la temperatura para garantizar un buen producto final. AQUI puedes encontrar (página 0x1c) una descripción mas detallada del control de un horno.

DESCARGAS
CtrlTEMP - Software para la adquisición de datos de Temperatura y Tiempo