sábado, 31 de julio de 2010

Conectando un PIC al Puerto Serie (RS232)

Por muy antiguo que esto pueda parecer, en la actualidad nos encontramos a diario con aplicaciones autónomas que poseen un conector DB9 (o DB25) y que se comunican a cualquier ordenador de mesa mediante el protocolo conocido en forma popular como “comunicación por puerto serie”. El propósito de este artículo es ayudarte a construir un dispositivo autónomo con salida RS232 y que éste sea capaz de comunicarse con un ordenador de mesa. Esto nos permitirá, en un futuro, utilizar el nuevo circuito integrado de Microchip: el MCP2200. ¿Para qué se utiliza ese circuito integrado? Muy sencillo: para adaptar una conexión serie a USB. Dicho de otro modo: para reemplazar a todos esos cables RS232 – USB que has comprado y no te han funcionado. Como decimos siempre, antes de correr debemos aprender a caminar, y éste es el comienzo.



Utilizamos la entrenadora NeoTeo para realizar comunicaciones entre el PIC y un ordenador mediante el uso de su puerto serie. La conexión entre ambos se realiza con un circuito integrado MAX232 que ayuda a adaptar niveles de tensión entre el ordenador y el PIC. Cargamos el firmware del PIC mediante el sistema Bootloader (ya empleado en artículos anteriores), y en el ordenador utilizamos cualquier software de comunicación serial, el que más cómodo nos resulte. Configuramos en el ordenador la misma velocidad de transferencia de datos que en el PIC y comenzamos a experimentar la conectividad por puerto serie. Existen algunos programas dedicados a monitorear de manera profunda la actividad de los puertos del ordenador. Si dispones de alguno de ellos puedes utilizarlo para probar a fondo esta aplicación. Para nuestro propósito, la implementación del MCP2200, podemos considerar que hemos dado el primer paso. Ya estamos caminando. No te pierdas la carrera hacia el USB.

El artículo completo aquí

sábado, 17 de julio de 2010

Datalogger de temperatura con 18F2550 (II)

Luego de varios días de acumular bytes en la memoria EEPROM 24C64, ha llegado la hora de descargar todos esos valiosos datos al ordenador y comprobar si todo ha funcionado según lo esperado. Para descargar la información almacenada en la memoria del datalogger utilizaremos la conectividad USB que nos ofrece el PIC 18F2550 y una sencilla aplicación realizada en VB6 para facilitarnos la tarea. Hasta ahora todo fue un trabajo silencioso de adquisición de datos, aquí comienza la verdadera acción y la obtención de los beneficios que nos brindará el datalogger.

Al sistema que hemos visto en el artículo anterior le hemos suprimido la alimentación mediante la conexión USB al ordenador y le hemos agregado al montaje una pequeña fuente de alimentación construida especialmente para protoboard. Con una entrada de 12Volts a partir de una pequeña fuente de pared y dos reguladores fijos, obtenemos una construcción muy simple y efectiva. Un 7805 (5Volts) y un AZ1117 (3,3Volts) en una pequeña placa de menos de 5 centímetros por lado resumen una fuente de energía pequeña y fácil de incrustar en cualquier zona del protoboard. En nuestro caso, hemos elegido un rincón libre donde no moleste para trabajar con libertad y, por sobre todas las cosas, para que no afecte a las lecturas de temperatura del STCN75. Como mencionamos antes, dos reguladores, algunos capacitores, un par de LEDs indicadores de tensión de funcionamiento y allí tenemos nuestra fuente de alimentación para protoboard. De este modo, con una sencilla fuente de pared y un módulo muy fácil y rápido de instalar en cualquier punto del protoboard, resolvemos el tedioso trabajo de armarle a cada desarrollo una fuente incorporada dentro del experimento para usarlo de modo autónomo y ambulante.

El programa que hemos preparado consta de muy pocas partes, todas muy importantes. En un sector destacado encontramos un cuadro de texto donde se exhibirán los datos recuperados cual si fuera un listado inmediato que podemos analizar allí mismo sin mayores recursos que la observación del texto mostrado. En el sector derecho encontramos tres botones. El primero (superior) se activa al establecer conexión USB entre el ordenador y el datalogger. Este botón, al activarse, nos permitirá obtener los datos almacenados en la EEPROM que, como dijimos en el párrafo anterior, podemos leer y analizar en la misma aplicación.



Si te interesa realizar este proyecto, continúa leyendo aquí.

sábado, 10 de julio de 2010

Datalogger: Adquisición de datos con 18F2550

Un “datalogger” es un equipo electrónico encargado de obtener mediciones de magnitudes diversas ordenadas en el tiempo. La toma o adquisición de datos puede realizarse desde diversas fuentes de información o sensores. Dichos datos son almacenados en memorias para luego ser estudiados en forma textual o estadística mediante cartas gráficas. Los campos de aplicación de un datalogger son ilimitados en procesos de monitoreo de variables ya sea en el ámbito industrial, doméstico o como simple ensayo de laboratorio a nivel educacional. Si existe una magnitud que experimenta cambios en el tiempo y deseamos estudiar las características de esa variación, necesitamos un registrador y acumulador de datos: un datalogger.

Un sistema de adquisición de datos puede recibir información desde los más diversos tipos de sensores: de temperatura, de humedad, de tensión, de corriente, de peso, de aceleración, de velocidad, de caudal de líquidos, de fuerzas mecánicas, de movimientos y un etcétera interminable. En nuestra aplicación utilizaremos una única información de entrada, un único tipo de datos ya que no estaremos desarrollando un producto comercial o un equipo dedicado a una aplicación específica. Bastará con un ejemplo para que puedas comprender el funcionamiento de este tipo de equipos y luego adaptarlo al uso que tú necesites. Sería inútil construir un sistema cerrado, sin posibilidades de ampliación. Si así fuera, sólo estaríamos mostrándote un desarrollo propio que te sería de muy poca utilidad en el futuro y aquí lo que se trata de lograr es que obtengas el concepto para luego aplicarlo a tus desarrollos y expandirlos hasta donde las necesidades te lo exijan.



Si te interesa construir un datalogger de temperatura, continúa leyendo aquí

sábado, 19 de junio de 2010

DS1307: Reloj en tiempo real con 18F2550

El DS1307 de Dallas Semiconductor (Maxim) es una solución muy interesante cuando necesitamos trabajar con eventos que requieren puntualidad y exactitud a lo largo del tiempo. Este pequeño circuito integrado es uno de los más populares relojes RTC (Real Time Clock) del mercado por su sencillez de uso y por su confiabilidad a largo plazo. Preparado para ofrecerte la hora hasta el año 2100. El DS1307 a fondo en este artículo.

La flexibilidad de trabajo que nos ofrece el bus I2C hoy nos trae una aplicación muy útil e importante para los momentos en que necesitamos controlar dispositivos o aplicaciones en las que la exactitud horaria es un factor fundamental. El DS1307 de Dallas Semiconductor (Maxim) es un dispositivo que se conoce como “Reloj de Tiempo Real” (Real Time Clock – RTC) que opera a través del bus I2C y que, además de brindarnos la hora con minutos y segundos, posee un calendario que contempla los años bisiestos hasta fin de siglo, es decir, hasta el año 2100.

Entre las características destacadas, posee una salida (configurable por software) que, en nuestro caso, la utilizamos como “segundero luminoso”, y la posibilidad de trabajar con una pequeña batería para almacenar los datos mientras el sistema se encuentra desconectado de la alimentación. Además, esta pequeña alimentación de respaldo permite mantener funcionando el oscilador maestro del reloj con un consumo ínfimo de 300nA, según su hoja de datos. Una simple batería de Litio CR2032 puede brindarnos un funcionamiento satisfactorio durante 10 años. ¿Te parece poco? Conectar un artefacto que construimos hace tres años y que siga estando siempre ajustado en fecha y hora es algo muy interesante de experimentar.



Si te interesa construir un verdadero sistema de Real Time Clock, continúa leyendo este artículo.

sábado, 12 de junio de 2010

BootLoader para 18F2550

Un BootLoader es un pequeño conjunto de instrucciones que forman un programa y se graban, en este caso en un microcontrolador, para permitir un posterior manejo y actualización de sus programas internos (firmware) sin necesidad de utilizar programadores (hardware) específicos. Es decir, utilizas un programador (o quemador) de microcontroladores una única vez para cargarle el mencionado BootLoader al microcontrolador y luego te bastará con una sencilla aplicación en tu ordenador para cambiar a tu antojo el funcionamiento de tus sistemas. Todo mediante una vulgar conexión al puerto USB. Las plataformas modernas que se asemejan a Arduino (incluida ésta) utilizan este sistema de programación y nosotros no podíamos quedar afuera. Ahora la programación está al alcance de todos.

Es imposible resumir en un sumario de pocas palabras las infinitas ventajas que posee un BootLoader. Sólo debes imaginarte la situación: tu hardware, tu ordenador y un cable de conexión USB entre ambos. Eso es todo lo que necesitas para transformar al entrenador NeoTeo en un voltímetro, en un videojuego, en un operador de servomotores y en miles de cosas más. A pesar de que el conector ICSP es una de las herramientas maestras de las que dispone una persona que se dedica a experimentar con microcontroladores, la utilización de un BootLoader te ahorra el uso de un hardware adicional de trabajo como es el programador (o quemador).

Un ejemplo de las miles de ventajas que puedes tener sería este: Tú le has vendido a Max una aplicación y luego de un tiempo de uso él te expresa su lamento y pesar sobre algunas deficiencias del producto, mientras te comenta que desearía que hagas algunas mejoras para lograr un funcionamiento óptimo y acorde a sus necesidades. ¿Qué deberías hacer en esa situación? ¿Pedirle a Max que desarme todo el equipo y te lo envíe? Imposible. ¿Viajar tú de un país a otro para cambiar dos líneas de programa, conectar el hardware programador y demorar menos de cinco minutos en resolver el problema? ¡De locos! En cambio, si el sistema inicial posee la sencilla carga previa de un BootLoader, le envías a Max un pequeño archivo por correo electrónico y él mismo podrá actualizar la versión de firmware con un elemental cable USB conectado a su ordenador. Así trabajan Arduino, Amicus y todas las plataformas similares que compiten en la web. Así de sencillo y tentador. ¿Quieres verlo? Observa como se cambia de una aplicación a otra diferente en apenas algunos segundos.



Este extenso artículo continúa aquí.

sábado, 8 de mayo de 2010

Construye tu propio videojuego (DIY)

Realizar un videojuego no es una tarea sencilla pero en NeoTeo estamos empeñados en revertir ese concepto. Requiere de algunos conocimientos de programación, algunos materiales sencillos de conseguir y, por supuesto, muchas ganas de alcanzar la meta de realización. En este artículo te guiaremos para que puedas construir tú mismo un apasionante videojuego con naves espaciales y alienígenas por doquier que sólo buscarán tu aniquilación. El destino del planeta está en tus manos. Con esta construcción tienes la posibilidad de entrar en la historia de los videojuegos. Descubre de qué modo una nación entera puede cambiar sus hábitos económicos a partir de un videojuego. Sigue leyendo, sigue descubriendo este icono que nació para cambiar el mundo.

Lo primero que encontramos fueron versiones de PONG y luego de TETRIS en la Web de un mismo autor. Interesantes juegos, muy sencillos, muy fáciles de construir en una tarde de domingo y, por sobre todas las cosas, nos brindan la posibilidad de sentir orgullo por un trabajo ensamblado por nosotros mismos. Luego de buscar un poco más, por fin llegué a encontrar un videojuego atrapante, con la posibilidad de verlo en un TV color y con toda la historia que tiene esta verdadera leyenda del mundo de los videojuegos: Space Invaders. No había mucho que pensar, sólo juntar los materiales, ensamblar las partes y disfrutar.

Basaremos la realización de esta máquina recreativa en un PIC16F628A para el cual sólo tenemos el archivo HEX que llevará cargado y el diagrama esquemático para ayudarte en el montaje de los componentes. Descarga el software necesario (HEX) desde la web del autor, indicada al final del artículo referido y utiliza el grabador de microcontroladores para cargar el PIC con el software mencionado. En mis pruebas realizadas sobre un protoboard hice dos ensayos que me permitieron comprobar su funcionamiento y el gran trabajo del realizador del código. En este programa se destacan los movimientos suaves y precisos de la nave intergaláctica que manejaremos, la gran posibilidad de marcar el HI-SCORE y dejar inscriptas nuestras iniciales en la EEPROM del PIC hasta que alguien pueda superar esa marca, dificultades que se incrementarán a medida que avanza el juego y muchos aspectos que harán que sientas la verdadera emoción de estar frente a un videojuego de salón.

¿Te interesa la propuesta? Continúa leyendo aquí.