sábado, 29 de noviembre de 2014
MICROPROCESADOR 8829CRNG4VN3
Con el filamento en marcha encendimos el TV y el mismo mostraba la pantalla de inicio correcta (Pantalla azul que se abre como un cortinado hacia los costados y muestra la imagen del canal seleccionado), luego aparecía la imagen del canal con barridos vertical y horizontal correctos y una imagen sin problema alguno. Tras uno o dos segundos, el TV se apagaba solo, como si estuviera auto - protegiéndose o esperando las señales de referencia del barrido vertical u horizontal para colocar en lugar correcto el OSD (On-Screen Display) y demás funciones que el microprocesador necesita saber para un correcto funcionamiento del TV.
Soldaduras frías no había (falsos contactos), semiconductores deteriorados (transistores o diodos) y capacitores electrolíticos secos tampoco. El TV funcionaba, lo habíamos visto con una imagen impecable, pero algo le faltaba al microprocesador ya que enviaba la información a la fuente de que se apague. Al comenzar a buscar en las señales de referencia horizontal y vertical encontramos que todos los diodos estuvieran en estado correcto y luego de esto pasamos a controlar la ESR de los electrolíticos que intervienen en el circuito. Al comenzar la comprobación descubrimos que C251 estaba completamente abierto y no permitía pasar la referencia vertical.
Una vez cambiado este componente el TV funcionó sin problemas. Lo importante, siempre que ocurre este tipo de situaciones de reparación, se resume a poseer tres cosas elementales: 1) La información, el circuito del equipo que estamos analizando, 2) Los instrumentos para verificar el correcto funcionamiento de los componentes y 3) El conocimiento necesario de saber qué es lo que estamos buscando ya que, sin ese conocimiento, podemos dar vueltas durante todo un día sin enterarnos por dónde puede originarse la falla de un equipo; sea TV, Radio, Audio, etc. (dolores de cabeza por los que todos atravezamos cada vez que trabajamos con fallas complejas).
Buena reparación de sábado por la mañana. Ahora a trabajar en la interface de modos digitales.
sábado, 6 de julio de 2013
Rutina Anti-Rebote para Pulsador
Por supuesto, la explicación vale para conmutar el pin a un estado alto o bajo. Nosotros empleamos la técnica de hacerlo a GND, pero sin problemas se puede hacer a Vcc, invirtiendo las resistencias. Esto es: 47K a GND y 4K7 a Vcc intercalando allí el pulsador. La situación de “activo” se presenta entonces como un “1” lógico en la entrada. Debemos tener muy presente de asegurarnos la configuración TRIS del pin para no cometer errores y lograr que todo funcione de manera adecuada, sin errores. Por último, también puedes lograr el mismo resultado utilizando la siguiente combinación:
lunes, 22 de abril de 2013
¿Cómo selecciono un microcontrolador?
La elección del microcontrolador adecuado para un producto, diseño experimental o desarrollo, puede ser una tarea desalentadora y hasta “viciada” si no se inicia con conceptos claros y elementales, desde que lanzamos el primer trazo en una hoja de diseño. No sólo hay una mínima cantidad de características técnicas a tener en cuenta, también hay cuestiones muy diversas y que no a todos pesa por igual. No será lo mismo un aficionado que se lance a construir una pequeña aplicación llamativa con LEDs y servomotores (que quizás nunca termine), respecto a una gran empresa de manufactura, donde los costos y los tiempos de espera, que puedan paralizar un proyecto de millones de unidades, se incrementen una semana. A nivel de aficionado, podemos estar acostumbrados a echar mano del primer microcontrolador que tengamos disponible en una gaveta o de aquel que se venda en la tienda más cercana a nuestro hogar. Ahorrar un dólar para optimizar el costo de la unidad y que luego los gastos de envío nos carguen con 30 dólares nuestro “saldo deudor”, no es una idea muy brillante. Sin embargo, en un millón de unidades (juguetes de cotillón para fiestas, con luces, por ejemplo) ese ahorro de un dólar puede significar una sonrisa muy grande en nuestros jefes.Es decir, sin llegar a la obsesión de la mezquindad absoluta, es bueno aprender a administrar recursos ya que quizás hoy, ése dólar “extra” nos sobre en el bolsillo o en la gaveta, pero si mañana debemos aprender a administrar enormes producciones en masa, de un día para el otro, puede llegar a ser un camino muy empinado y difícil de sortear. Liberarnos del “vicio” (mencionado al inicio) de aprender a seleccionar materiales en el mercado podemos hacerlo desde el principio, durante el aprendizaje. Sin caer en pagar más gastos de transportes que de materiales, nuestro producto final hablará por nosotros y los cazadores de talentos que viven buscándote en la web, sabrán diferenciarte entre la multitud.
En la última parte de esta introducción debemos reconocer que al inicio de un proyecto hay una gran tentación de saltar y empezar a seleccionar el microcontrolador antes de que los detalles del sistema estén terminados de enumerar y plasmar en un sencillo listado de necesidades, esto es, una selección de acciones que deberá ejecutar nuestro desarrollo. Esta tentación es, por supuesto, una muy mala idea. Antes de administrar cualquier pensamiento orientado a la selección del microcontrolador, los ingenieros de hardware y software (es decir, tú) deben trabajar los altos niveles del sistema, con diagramas de bloques esquemáticos y diagramas de flujos operativos. Sólo entonces, existirá suficiente información para empezar a hacer una selección racional y prudente del microcontrolador.
¿Para qué quieres utilizar un 18F14K50 si sólo deseas hacer un esclavo dentro de una red RS-485 que active un PWM para un dimmer? ¿Comprendes lo que intentamos expresar? Tal vez no tengas otra cosa que ese 18F14K50 para sacar adelante ese sistema y entregarlo mañana como trabajo práctico, pero tú sabrás bien que allí podrías haber resuelto la situación con otro microcontrolador mucho más económico y de igual en eficacia operativa. Vale decir entonces que, ante la falta de opciones, cualquier elemento puede ser útil para resolver nuestro hardware, sin embargo, cuando tenemos la posibilidad de seleccionar es bueno conocer las herramientas básicas de las que dispone cualquier diseñador para alcanzar un desarrollo optimizado.
Hacer una lista de las interfaces de hardware requeridas.
Esta es una de las primeras y principales enumeraciones a realizar. Utilizando un diagrama genérico de bloques de hardware, puedes crear una lista de todas las interfaces externas que el microcontrolador tendrá que soportar. Hay dos tipos “importantes” de interfaces que necesitan ser enumeradas. Las primeras son las interfaces de comunicación. Esto incluye los periféricos, tales como USB, I2C, SPI, UART, CAN, LIN y/o todos aquellos sistemas de comunicación que habitualmente llamamos “bus de datos”. Debes poner especial atención, dentro de esta etapa, si la aplicación requiere conectividad USB o alguna forma de Ethernet. Estas interfaces afectan en gran medida a la cantidad de espacio del programa tendrá que llevar adelante el microcontrolador. Además, aquí entra a jugar un papel fundamental el factor económico.
Requisitos de potencia del microcontrolador
En la segunda etapa de organización debemos comenzar a pensar en los requisitos de potencia de procesamiento que necesitará nuestro microcontrolador. Esto equivale a pensar si necesitamos un procesador trabajando a más de 100Mhz, o si un 16F628A a 4Mhz será suficiente para la tarea. Al igual que con el hardware, debemos tomar nota de los requisitos que serán importantes. Por ejemplo, ¿alguno de los algoritmos necesitará utilizar matemáticas en coma flotante? Aquí tendremos que comenzar a plantear los tipos de variables más grandes (mayor cantidad de bytes) que tendremos que manipular. ¿Existen lazos de control de alta frecuencia en sensores (MEMS, ADC, etc.)? Dicho de otro modo, sería estimar los tiempos y la frecuencia en que el microcontrolador ejecutará tareas específicas. La cantidad de potencia de cálculo requerida será uno de los mayores requisitos para determinar la arquitectura y la frecuencia de trabajo del microcontrolador. Como puedes observar, ya tenemos dos puntos de apoyo muy importantes: Saber cuanta estructura externa deberá manejar con comodidad el Microcontrolador y a qué velocidad deberá hacerlo.
Selección de la arquitectura.
Aquí comienza una de las etapas con mayor carga de interrogantes ¿Puede este proyecto llegar a funcionar con arquitectura de 8 bits? ¿De 16 bits? ¿O necesitaré de un núcleo ARM de 32 bits? Entre la comprensión de la aplicación y el hardware a utilizar (saber que tareas hará el micro, en qué orden y con qué periféricos), sumado a las exigencias de los algoritmos de software requeridos, ya podremos comenzar a delinear una orientación hacia la arquitectura definitiva. No debes olvidar nunca que, aunque no los veas, puedes tener media docena de compañeros de trabajo en condiciones de analizar expansiones futuras de Hardware (HW) o de Firmware (FW). Esto es muy común en el mundo Freelance, pero si eres solo y la aplicación es exclusiva para ti, tampoco debes dejar de pensar que otros, al ver tu trabajo puedan opinar: “Yo le hubiera puesto un LED indicador de X”, “A mi entender le faltan servomotores que activen un brazo articulado para una mejor interacción con el usuario”, “¿Cómo no le has incorporado un sistema inteligente de carga de baterías?”, “¿No tiene Bluetooth? ¿Significa que no podrás hacerle una aplicación interactiva a un dispositivo móvil?”
Necesidades de memoria.
La cantidad de Memoria de Programa (OTP o Flash) y la cantidad de RAM disponible, son dos componentes muy importantes en la selección de un microcontrolador. Asegurarte de que no te quedarás sin espacio para todo el programa (líneas de código) o en el espacio destinado a manejar las variables y las operaciones matemáticas que el proceso requiera es, sin duda, una la más altas de todas las prioridades de selección. Siempre será mucho más fácil seleccionar un microcontrolador con abundancia en estas características. Llegar al final de un diseño y descubrir que lo que necesitamos sería sólo un 5% más de espacio en Flash o en RAM puede significar una pérdida de tiempos imperdonables. Después de todo, siempre se puede empezar con un dispositivo bien dotado de espacio de memorias y luego pasar a otro más pequeño, dentro de la misma familia de microcontroladores. Además, la mayoría de los compiladores que se encargan de organizar el programa, hasta llevarlo a un archivo ejecutable por el microcontrolador, pueden calcular el espacio necesario a utilizar a medida que vamos incorporando código a la interfaz de desarrollo (IDE). No te olvides de dejar espacio para la creatividad de terceros y las próximas versiones mejoradas del mismo equipo. Esto puede ahorrarte muchos dolores de cabeza en el futuro y muchos rediseños de HW y FW.
Estamos a mitad de camino. Comienza la selección.
No, no te apures, no estamos refiriéndonos aún al microcontrolador. Hablamos de un proveedor confiable, de buena reputación en lo que respeta a variedad de materiales disponibles, a una mejor referencia sobre responsabilidad en el cumplimiento de los tiempos de entrega, un buen precio final y todo el apoyo logístico que pueda brindar como Servicio de Post-Venta. Esto último equivale a ofrecer los números de seguimiento de los envíos (tracking) a través del tipo de correo seleccionado para la entrega. Arrow, Avnet, Future Electronics, DigiKey, Mouser, Amidata (RS on-line), Elko, Cika o cualquier tienda similar alrededor del planeta que pueda brindarnos calidad, buen precio y confianza.
Ahora sí, para seleccionar el microcontrolador, con todos los datos que tenemos disponibles, podemos hacerlo desde nuestra experiencia y familiarización con una determinada marca, mediante la recomendación de otra persona, realizando una selección de algún modelo genérico dentro de varias marcas y luego decantarnos por el de menor costo o de mayor disponibilidad al momento de la compra. La mayoría de los proveedores de circuitos integrados (sean fábricas o tiendas) tienen un motor de búsqueda que te permitirá introducir los parámetros más importantes del microcontrolador buscado (conjunto de periféricos, pines I/O, cantidad y tipo de memorias, etc.) y a medida que se introducen estas informaciones, la lista comienza a reducirse mostrando las coincidencias de los criterios de la búsqueda. De esa lista, el ingeniero puede avanzar hacia la selección definitiva de un microcontrolador.
Examinar los costos y las limitaciones energéticas
En este punto, el proceso de selección seguramente ya habrá revelado una serie de posibles candidatos. Este es un buen momento para examinar los requisitos de energía y el costo de cada unidad. Respecto a los requerimientos de energía, si nuestro trabajo final se alimentará desde una batería debemos asegurarnos de utilizar sistemas de ultra-bajo consumo energético. Aquí tenemos otro pilar fundamental en la elección. Como mencionamos al principio, la evaluación de costos es elemental, sin embargo, hay un criterio que no puede ser pasado por alto: "la relevancia de la aplicación en sí misma". La aclaración es la siguiente: no será lo mismo un procesador barato para un juguete, que uno sencillo, pero de alta gama y calidad para un equipo de electro-medicina. Quizás hasta este punto, con un microcontrolador de 25 centavos teníamos resulto el sistema, sin embargo, las altas garantías de seguridad de funcionamiento pueden llevarnos a seleccionar otro de 25 dólares. Es decir, la economía y la calidad de la aplicación deben equilibrar el fiel de la balanza.
Verificar la disponibilidad del dispositivo elegido.
Con la lista de partes potenciales en la mano, ahora es un buen momento para empezar a comprobar en qué cantidades se encuentra disponible la pieza que necesitamos. Algunas de las cosas a tener en cuenta son los tiempos de espera (plazos de entrega), la disponibilidad en grandes cantidades (en un mismo distribuidor) para asegurar una producción en masa sin detenciones, ni frenos inesperados. Si no hay en la tienda (no pueden tener millones de unidades de cada componente que exista) quizás su web puede informarte de la disponibilidad que hay en la fábrica y pueden acceder a estos materiales al momento de tu pedido (observa la imagn superior). Por otro lado y más allá de la disponibilidad en grandes volúmenes, es conocer si el producto está en fabricación activa o si ya está discontinuado (no se fabrica más). Todas estas cuestiones eran muy importantes en mis épocas de editor en N+. De hecho, uno de los casos emblemáticos de este problema fue el receptor con el TDA7000. Mucha gente se quedó con el deseo de construirlo. Existió un circuito integrado en una época que era un extraordinario receptor de comunicaciones. Tengo 6 u 8 unidades y podría hacer montajes maravillosos con ellos, pero ¿de qué serviría si nadie podría conseguirlos?
IDE, Compiladores y Herramientas de Depuración.
Esta puede ser una de las etapas de selección que no merece demasiados comentarios. Todos los fabricantes de microcontroladores se esforzarán y brindarán a los usuarios códigos de ejemplos, kit de desarrollos, compiladores de código, herramientas de depuración del mismo y hasta programadores específicos de la marca. Es importante saber que este material estará disponible para la construcción de los prototipos iniciales, de lo contrario, el proceso de desarrollo puede llegar a ser largo, tedioso y costoso.
Simulación en Ordenador.
Si bien esta práctica no es aplicable a muchos casos, podemos crear un entorno de trabajo dentro de un Software de Simulación que sea capaz de soportar nuestro microcontrolador y experimentar allí si el comportamiento del dispositivo es el esperado. No siempre esta práctica es aconsejable para aferrarse a un concepto. Esto es, que allí funcione no significa que en la vida real suceda lo mismo, sin embargo, los resultados siempre serán muy aproximados y usar un simulador específico (recomendado por el fabricante de los microcontroladores) puede ser una herramienta segura y ágil para avanzar durante la fase de desarrollo.
¡Comienza la experimentación!
Llegados a este punto del trabajo, aún no está dicha la última palabra. Si no existe un Kit de Desarrollo donde desplegar las conexiones a los periféricos necesarios y donde poder trabajar el FW con programación ICSP (In Circuit Serial Program), debemos comenzar a realizar un montaje en un protoboard, con los riesgos e impedimentos que muchas veces ello implica. Por citar un ejemplo muy sencillo y cotidiano, podemos mencionar a un 18F4550. (Pero 44 pines y encapsulado QFN). Riesgo de invertir una polaridad, de colocar un puente a Tierra o GND en un pin incorrecto, de cortocircuitar los pines del oscilador con el cuerpo metálico del cristal. Fallar en la construcción del circuito ICSP, olvidarnos de colocar resistencias limitadoras en las salidas a LED o en las entradas con Pull-up. Es decir, aquí es donde se adquiere un relieve significativo y válido de lo importante que es una apropiada simulación y un correcto desarrollo sobre un Kit específico, orientado al microcontrolador a utilizar.
Por supuesto y como mencionamos al principio, esto es el ideal para trabajos en grandes escalas de fabricación. Si sólo quieres divertirte y aprender un poco, estos sencillos consejos te ayudarán a aprender. Si tu objetivo es algún día llegar a la cresta de la ola, esto es un conocimiento básico y elemental que deberás manejar a diario.
Esto fue una interpretación libre de un artículo aparecido en EDN.
domingo, 17 de marzo de 2013
Arduino, Raspberry Pi y una historia de cajas negras.
Existe una nueva tendencia en el mercado electrónico que abarca desde pequeños grupos de emprendedores, hasta las compañías de primera línea que incorporan, como elemento de trabajo, placas que traen los elementos necesarios para hacer funcionar un sistema que antes se construía (muchas veces) de manera anárquica. Es decir, cada investigador electrónico intentaba armar sus prototipos de la mejor forma que podía y no existía un patrón estructural. Con la llegada de Arduino y otros sistemas similares, este problema fue resuelto y el trabajo se centró en saber programar. El hardware comenzó a venir todo hecho, resuelto, económico y listo para ensamblar. Allí nace la gran pregunta: Saber programar, ¿Significa saber de electrónica? ¿Tú que opinas?La llegada de Arduino al mundo de la Electrónica fue una vuelta de página respecto a la actividad tradicional que solía tener cualquier aficionado a la electrónica. Si bien antes tampoco era necesario saber soldar para poner en marcha un sistema basado en un microcontrolador sobre un protoboard, al menos había que saber ensamblar ese hardware y luego había que tener ciertos conocimientos de programación. Muchos, pocos o medios, eso no importaba y en definitiva, de eso dependería hasta dónde llegaría el realizador electrónico con su desarrollo. Cuando entra Arduino en escena, había mucha (pero mucha) gente que sabía programar (en diversos lenguajes) o en su defecto tenía grandes nociones de la actividad ya que en los diferentes niveles educativos, los lenguajes de programación comenzaron a ser una constante. En muchas ocasiones, los alumnos no entendían muy bien lo que estaban estudiando debido a que “eso” que armaban, partiendo de un diagrama de flujo, no lo podían “ver en acción” más que en algún emulador o simulador dentro del ordenador. En el mejor de los casos, la rutina terminaba en algún circuito hecho por otros, puesto a punto por otros y al que se tenía acceso sólo cuando se encontraban con esos “otros”, que terminaban siendo profesores, alumnos avanzados de la carrera o experimentadores solitarios (gente rara).
Hasta que un día apareció una placa económica, con muchas “cositas”, que enarbolaba la bandera del Hardware y Software Libre, pero que para una inmensa mayoría no era más que una “caja negra” que funcionaba con sólo conectarla a un puerto USB del ordenador y por sólo 25 Dólares la podíamos llevar con nosotros, a cualquier lugar y en todo momento. No importaba que tenía dentro, lo que interesaba era que con ella se podía “dar vida útil” a las interminables horas de aburrida programación estudiantil. A partir de allí, todo jugó a favor. La onda expansiva se propagó por Internet como nunca podría haberlo hecho otro fenómeno por otro medio tan masivo y de comunicación realimentada en forma automática como fue la web. De este modo, llegó a personas que no sabían lo que era un FTDI o un ATMEGA y que además, “no les interesaba”. Para ellos, escribir cuatro líneas de código y lograr que un LED encienda y apague, era un acontecimiento único en su vida.
Hasta ese momento (llamémosle “antes”), había una comunidad de trabajadores de la electrónica del hardware, con sus dedos callosos por las quemaduras con el soldador (o cautín). Con sus ropas sucias de salpicaduras con ácido para hacer los PCB. Con los ojos pequeños de “enrutar” vías durante noches enteras hasta descubrir, al día siguiente, que el encapsulado de un capacitor era enorme y no entraba en el espacio que tenía reservado. Más noches escribiendo línea a línea un código en ASM donde la rutina debía saltar si el bit del registro estaba “seteado” o no y donde cada NOP podía significar la pérdida de toda una trama de datos, transmitidos en forma serial. Y más noches peleando con un dudoso programador de microcontroladores que nunca repetía dos veces un mismo mensaje de error y confundía más de lo que programaba.
Aquí, en este punto de la línea de los tiempos, cuando los microcontroladores ya existían e Internet no era más que un puñado de personas alrededor del mundo. Cuando el correo electrónico era toda una rareza. Cuando no existía el puerto USB en los ordenadores. Aquí, en este punto de la historia, ¿Tú crees que Arduino, o un sistema similar con tecnología acorde a sus tiempos, podría haber tenido éxito? En sus comienzos, sin la web, Arduino no hubiera sido más que una bonita placa, funcionando con pequeños ejemplos obtenidos desde un CD de alguna publicación impresa especializada. Pero no nos adelantemos, sigamos en la era del puerto paralelo y puerto serie.
Hasta que en ese momento (llamémosle “presente”), aparece esta caja negra que sólo necesitaba un conector USB hacia un ordenador, algo de hardware periférico y genérico (motores, luces, sensores, llaves) y programación, sólo programación. Los primeros virtuosos del teclado que “vieron” el potencial que encerraba esta caja negra comenzaron a explotarlo, haciendo desde la aplicación más simple hasta la más compleja y combinada. Estructuras formadas por múltiples Arduinos trabajando como esclavos unos de otros y operando desde un simple juego de luces, hasta un robot volador completo. Todo se hacía con Arduino. Los titulares de los artículos eran redundantes. “Luces audio-rítmicas con Arduino”, “Indicador de LED con Arduino”, “Semáforo con Arduino”, “Regador automático con Arduino”, “Zapatófono con Arduino”, “No-sé-qué-cosa con Arduino” y lo más atrapante eran las “Impresoras 3D con Arduino”.
El público en general leía los titulares de las aplicaciones, pero cada tres o cuatro palabras encontraba una coincidencia: “Arduino”. A partir de allí la ola se generó sola. La gente comenzó a agruparse en páginas, foros, comunidades y la web (que ya disfrutaba del ADSL hacía varios años) fue la gran plataforma de lanzamiento de este sistema, que aún sigue tan vigente como al principio y que cada día suma más adeptos. Gente con una notable y admirable creatividad que produce realizaciones que, hasta hace pocos años, eran privativas para los más evolucionados electrónicos. Éstos, al ver esta nueva ventana al público consumidor, comenzó a diseñar y a elaborar lo que se conocen como “Shields” (Escudos) que facilitan la tarea de orientar la “caja negra” hacia aplicaciones específicas. Uno de los más claros ejemplos de esto es el que permite conectividad Ethernet. Sólo se trata de insertar un módulo, tomar ejemplos de código hechos por otros y se produce la magia: en pocas horas un programador puede jactarse de operar las luces de su casa vía web. Más aún si agrega el escudo WiFi. Sus amigos lo admirarán al ver que con su teléfono móvil, vía web y desde una mesa de café, controla las luces, la alarma de su casa y hasta le da de comer al gato. Todo con un Arduino. (“Este sí que de Electrónica sabe mucho…”)
Lo que Arduino despertó o generó (llamémosle “después”) fue una nueva generación de creativos electrónicos que evolucionó como un tsunami, en términos cronológicos, de la noche a la mañana. Con la misma velocidad aparecieron mbed, chipKIT, LPCXpresso, Amicus y muchas otras que ni siquiera fueron conocidas en forma masiva. Y allí no paró esa ola que inundó el mercado con placas que lo contenían todo, que lo hacían todo. La competencia se tornó cada vez más importante porque aprovechando las crecientes tecnologías de miniaturización comenzaron a realizarse arquitecturas diferentes, para realizaciones diferentes y objetivos ídem. Este es el caso del actual sistema Raspberry Pi, por citar un ejemplo. Como mencionamos antes, es otra cosa que nada tiene que ver con Arduino, pero permite el acceso a la gente para que ingrese al mundo electrónico, del diseño y del desarrollo desde el mismo lugar: la programación de una caja negra. Equipos muy económicos, que requieren poco hardware adicional (el poco que necesitan ya viene hecho) y que logra resultados sorprendentes. Como dijimos antes, quizás las arquitecturas y los conceptos no tengan nada que ver entre sí, pero lo digno de remarcar es la ventana que el comercio ha abierto a un nuevo segmento de "consumidores". Los nuevos genios de la electrónica sin soldadura y con la web de su lado, como herramienta base.
Sin embargo, en la mayoría de los casos y como suele ocurrirnos a casi todos los seres humanos, muchos de estos mismos desarrolladores que hace un año no sabían lo que era un transistor, hoy se enfrentan al reto de que la topología de su caja negra, “les queda chica”. Además, con el tiempo, fueron creciendo en el trabajo y ello los llevó a un aprendizaje autodidacta que les enseñó a avanzar más y más. Mañana quizás sean los creadores de nuevas “cajas negras versión 2.0” o comiencen a vivir la experiencia de salir hacia el mundo electrónico “hecho a medida”, desarrollado desde las entrañas de un circuito esquemático hasta cada vía de un PCB y cuando sean exitosos ingenieros realizados empresarialmente, recordarán con cariño aquellos años dorados de los inicios con Arduino.
Visto en perspectiva, podríamos comparar la situación con aprender a conducir, comprar un automóvil y disfrutarlo. Salvando las distancias, los costos y los tamaños, la analogía del ejemplo puede ser válida. Hoy (y desde hace muchos años), la gente no se construye sus propios automóviles, pero el que deciden comprar, no será útil como vehículo de paseo familiar, como transporte de cargas y/o como un barco para 200 personas, es decir, para todas estas aplicaciones. En electrónica sucede algo similar, una solución, no es válida para todos los escenarios y muchas aplicaciones deben ser construidas a medida, porque una bocina en un avión o un timón en un auto, no quedarían muy elegantes y útiles. Regresando al área electrónica, para muchos, Arduino es lo más importante que les sucedió en la vida. Para otros, no es más que un oportunismo comercial que llegó al éxito y muchos están corriendo detrás de una parte del pastel. Es decir, aprovechar el negocio de los “programadores – electrónicos”. Tú, ¿En qué escala de valores lo ubicas? Para ti, saber programar, ¿Significa saber de electrónica?
jueves, 8 de diciembre de 2011
Un acelerómetro en tu pie (Bluetooth + Android)

En la tienda en línea de Android existen decenas de aplicaciones dedicadas a los ciclistas que salen por las calles, o rutas de la región, a entrenar o en búsqueda de esparcimiento. Las bondades del uso del GPS, en un móvil con SO Android, hacen todo el trabajo necesario para brindar la información detallada y útil de la jornada sobre dos ruedas y al aire libre. Pero, ¿Y en un gimnasio?, ¿En una bicicleta fija sin indicadores? ¿Cómo sabemos el tiempo que estuvimos realizando la actividad física? ¿Cuánta distancia equivalente transitamos? ¿Cómo sabe Android cuánto pedal hemos metido? Descubre en este artículo una aplicación especial donde se combina el uso de un acelerómetro, un microcontrolador y un módulo Bluetooth HC-06, unidos para obtener toda la información necesaria que estará volcada sobre nuestro dispositivo móvil. Un artículo para cerrar el año con Android en una aplicación que despertará tu imaginación para múltiples proyectos.
En la aplicación que veremos hoy utilizaremos muchas cosas que ya hemos visto en entregas anteriores, pero combinadas para una aplicación muy útil y que se puede adaptar a otros usos como veremos más adelante. Los elementos activos que forman este desarrollo son cuatro: un acelerómetro de salidas analógicas, un doble amplificador operacional, un microcontrolador y un módulo Bluetooth HC-06 con entrada de datos serie, operado por el microcontrolador. El acelerómetro que he utilizado en este trabajo es un MMA7260Q que, a pesar de que no se fabrica más, puedes encontrarlo en el mercado fácilmente en forma simple o en módulos pre-ensamblados listos para usar en un protoboard. En el caso de que no puedas encontrar este mismo modelo de acelerómetro en el mercado, pues adaptar cualquier otro que posea salidas analógicas en uno, dos o tres ejes de desplazamiento. La idea es que aprovechemos los materiales que ya tenemos en nuestros cajones y sin uso. En mi caso, el MMA7260Q fue el acelerómetro seleccionado, además, al igual que el resto de los elementos activos que dan forma a este desarrollo, utiliza una alimentación de 3,3Volts, que en mi aplicación, lo he probado hasta con 2,7Volts y aún continúa funcionando, entregando buena señal en sus salidas. Recuerda que sólo utilizaremos la salida de un eje.
¿Te interesa el desafío? ¿Te atrapa la programación para Android? Continúa leyendo aquí ...
sábado, 14 de agosto de 2010
Amicus: Software libre para PIC 18F25K20
Proton es uno de los mejores lenguajes BASIC (considerado de alto nivel) que se encuentra en el mercado. Fácil de usar y muy potente, es una herramienta muy codiciada por los programadores que comienzan a transitar el apasionante mundo de los microcontroladores. Su costo resultaba muy elevado para muchas personas pero ahora, con Amicus IDE, ese problema se resuelve. Desarrollado en forma específica para el PIC 18F25K20, Amicus IDE es la versión libre y gratuita del popular software Proton. En realidad, Amicus es mucho más que un simple software. Es toda una plataforma de desarrollo que te permite comenzar a crear desde el primer día. Toda la potencia de Proton disponible en tu ordenador para trabajar libremente con un PIC muy veloz y robusto como es el 18F25K20.Crownhill ha dado un paso muy importante en la competencia con Arduino. Utilizando un PIC con mayor cantidad de entradas y salidas, la misma velocidad de proceso (Arduino tuvo que apelar al AVR ATmega328 para no perder esta carrera) y un software libre basado en el popular lenguaje BASIC, la apuesta es muy fuerte y tentadora. Si a esto le agregamos que los módulos (accesorios) existentes de Arduino son compatibles en su mayoría con Amicus 18, la propuesta aparenta ser más interesante aún. Por supuesto, el precio de venta al público de ambas plataformas es el mismo: 25 Euros. La competencia se abre ahora en muchos frentes, con la disponibilidad de muestras gratis de los microcontroladores, con los precios de los módulos adicionales, con la facilidad para usar los programas de aplicación, con los ejemplos disponibles en la Web para adaptar nuestros proyectos y hasta con la posibilidad de NO depender de un hardware duro e imposible de adaptar. Amicus 18 no aparece en el mercado como una copia de Arduino. Es otra cosa. Es un sistema de desarrollo donde las ataduras al hardware desaparecen y el usuario puede hacer y deshacer a discreción.
Si quieres saber más sobre Amicus, continúa leyendo aquí.
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, 17 de abril de 2010
Medidor de Resistencias y Capacitores
Las aplicaciones electrónicas son tan diversas que no podrían enumerarse de principio a fin. Siempre habrá una aplicación específica para resolver un desarrollo particular. Es muy raro encontrar una aplicación genérica que resuelva múltiples necesidades. Al igual que con el Voltímetro USB publicado en Neo Teo, con el circuito propuesto hoy no pretendemos construir un medidor universal que sea capaz de reemplazar a los instrumentos de banco que se utilizan para evaluar capacitores y resistencias. Esto es otra cosa. Esto es razonar, esto es aprender. Esto es analizar un abanico de posibilidades para adaptar la mejor solución a nuestro diseño. Y por supuesto, si lo deseas, también lo puedes utilizar para medir capacitores y resistencias.Estoy convencido de que muchos de ustedes han atravesado momentos durante el desarrollo de un complejo circuito electrónico en los cuales han dicho frases como “Aquí me haría falta un circuito que pueda medir capacidad”. Por ejemplo, cuando han realizado algún oscilador o un filtro pasabandas de audio. Armar un medidor de capacitores (capacímetro) tal vez sea un emprendimiento importante que poco aprovecharemos en el futuro. Y comprarlo sería un gasto que no vale la pena para una aplicación tan pequeña. ¿Qué hacemos entonces cuando nos encontramos con ese frasco lleno de capacitores que no sabemos su valor y al menos desearíamos tener una idea aproximada de él? No lo necesitamos para reparar un marcapasos o para desarrollar un compás electrónico encargado de guiar misiles con ojivas nucleares. Hay situaciones y desarrollos específicos donde las tolerancias no requieren exactitud absoluta. A diario nos enfrentamos a diseños en los que es igual de útil y efectivo un capacitor de 100 nanofaradios que de 94 o 108 nanofaradios.
Lo mismo ocurre con las resistencias (o resistores). “¿El naranja que era?” “¿Dónde habrá quedado esa tabla de colores que…?” Hay que tener mucha experiencia y práctica en el manejo del código de colores de las resistencias para leer su valor e interpretar las bandas de colores con un simple pasaje visual. Por otro lado, dentro del diseño de circuitos complejos que aglutinan muchas secciones de sub-circuitos simples, puede hacer falta un medidor de resistencias. Un control de volumen necesita de un medidor de resistencias. Una fotocélula está acoplada por obligación a un medidor de resistencias. Y aquí nuevamente se hace presente el interrogante de la precisión y la exactitud. Subir un poco el volumen de nuestro flamante amplificador no discrimina entre 10K2, 12K u 8K7. Lo mismo si necesitamos un poco más de luz diurna para que actúe la fotocélula resistiva y se apaguen las luces del patio. No necesitamos 4 decimales. Con sólo saber una medida aproximada, muchas veces es suficiente.
Para estos casos que aparentan ser muy complejos encontramos soluciones fáciles y confiables en los microcontroladores PIC y en especial en el lenguaje de programación BASIC. Utilizando el mismo circuito que empleamos en la construcción del Voltímetro USB y agregándole un display alfanumérico convencional, resolveremos nuestra necesidad de disponer de un instrumento útil para medir capacitores y resistencias. Además, la técnica que hoy veremos nos será útil para muchos circuitos basados en PIC que necesiten dentro de su rutina de trabajo medir resistencias o capacidades aplicadas a algunos de sus pines. Con un poco de habilidad y razonamiento será muy sencillo adaptar estas rutinas y variantes en el circuito para agregarlas al Voltímetro USB NeoTeo y transformarlo en un instrumento múltiple. Si además le sumamos el amperímetro 0-5Amper que publicamos durante 2009, estaríamos muy próximos a delinear nuestro propio multímetro personal. Tal vez no resulte ser el más exacto al final de la construcción, pero estoy seguro que será el mejor del mundo porque lo habremos construido nosotros mismos. Llevará nuestra marca, nuestro sello, el reflejo de nuestra personalidad y eso es algo que no se compra con la tarjeta de los dos globitos.Si te interesa este sistema de medición, continúa leyendo aquí.
sábado, 29 de agosto de 2009
LMP8601: Amperímetro 0-5A
Si estabas buscando la manera de construir un amperímetro en la menor cantidad de pasos posibles y con la menor cantidad de componentes críticos, el LMP8601 y un microcontrolador son un buen punto de partida para comenzar a experimentar con instrumentos de medición. Gracias a este amplificador de precisión de National Semiconductor puedes construir en una tarde este instrumento que será muy útil para tu taller y que está orientado para incorporarlo a fuentes variables de alimentación. La adopción de este sencillo circuito nos servirá para controlar que el consumo de nuestros experimentos sea el adecuado y correcto.Este circuito integrado puede ser solicitado como “sample” o muestra gratis a la compañía y con él armaremos un amperímetro muy simple pero muy preciso a la vez. Observarás en los videos que componen este artículo que las pruebas realizadas y los resultados obtenidos con cargas resistivas, tienen una exactitud de 2 milésimas de Amper (0,2 %) en los consumos que rondan los 500 miliamperes y de hasta un 2% en corrientes que superan los 2 Amperes. Otra de las cosas a destacar inicialmente, es que el sistema se basa en la utilización de una resistencia SHUNT colocada entre sus terminales de entrada para medir la diferencia de potencial inducida en ella por la circulación de corriente a través de la misma.
Sigue leyendo ...
sábado, 22 de agosto de 2009
Monitor cardíaco: Escucha tu corazón
También llamado “pletismógrafo” (del griego “plethysmos”, aumentar tamaño o volumen), el monitor cardíaco es ampliamente utilizado en la actualidad por la ciencia médica para ayudar a controlar, y muchas veces para diagnosticar, enfermedades cardiovasculares. El instrumento mencionado posee un funcionamiento muy sencillo y fácil de comprender. Además, veremos el modo de construir uno que, a pesar de no poseer las cualidades de un equipo profesional, nos servirá para descubrir fenómenos muy interesantes y seguramente desconocidos para muchos.
sábado, 1 de agosto de 2009
Domótica: Iluminación optimizada
Cuando nos ausentamos de casa siempre es bueno poseer un sistema que se encargue de administrar el encendido de las luminarias. Construir un interruptor crepuscular es bastante sencillo: a partir de fotocélulas y relés, o comprando los módulos que ya vienen preparados para tal fin. Hoy sumaremos una nueva aplicación a nuestra red Domótica vía RS-485 que habíamos presentado en artículos anteriores.Cuando comenzamos a trabajar con Domótica, realizamos la construcción de un termómetro remoto con el que podíamos monitorear la temperatura de lugares alejados (hasta más de 1000 metros desde nuestro ordenador). Hoy veremos la forma de controlar diversos tipos de iluminación y trataremos de incluir los tipos de luminarias más frecuentes, las formas de encendido y apagado más usuales, y también veremos la posibilidad de permitirle a nuestro sistema trabajar de manera autónoma. Todo un desafío, ¿verdad? Ven y aprende a optimizar tus consumos.
sábado, 18 de julio de 2009
Servomotores: El primer paso hacia tu Robot
Estos dispositivos son considerados una de las materias primas en el diseño y la construcción de los robots. Si combinamos y administramos los movimientos en un montaje mecánico adecuado, un grupo variable de servomotores puede dar motricidad y locomoción a sistemas controlados de manera local o remota. Desde pequeñas aplicaciones didácticas hasta el más complejo diseño robótico. Los límites son tu imaginación y tus ganas de aprender.“Dadme un punto de apoyo y moveré al mundo” habría dicho Arquímedes de Siracusa, arrastrado quizá por un entusiasmo desmedido ante su descubrimiento de la ley de la palanca. A partir de allí comienza la historia de las máquinas simples, y el dispositivo que veremos y aplicaremos hoy en este artículo es un buen ejemplo de ello.
Un servomotor es básicamente un actuador mecánico basado en un motor y un conjunto de engranajes que permiten multiplicar el torque del sistema final, el cual posee elementos de control para monitorear de manera constante la posición de un elemento mecánico que será el enlace con el mundo exterior. Es decir, ante una acción inducida electrónicamente a un servomotor, obtendremos por resultado una respuesta mecánica controlada. Por ejemplo, los motores que forman parte de una impresora, junto a los sistemas de control de avance o retroceso del papel, forman un servomotor.
Continúa leyendo aquí ...
sábado, 11 de julio de 2009
Radiocontrol: Módulos comerciales en UHF
Uno de los mejores ejemplos respecto al dominio de la técnica por parte del hombre se encuentra en la capacidad de transmitir órdenes de acción a un dispositivo remoto, sin contacto físico alguno. Poder realizar una operación a distancia sin cables de unión supone una ventaja muy grande si pensamos en ubicaciones físicas alejadas, objetos con movilidad impredecible y/o zonas a las que un ser humano no puede acceder. Aprende con nosotros a manejar esta técnica y explora las infinitas posibilidades que te brinda el radiocontrol.Los medios físicos de enlace entre los comandos de control y los sistemas electromecánicos diseñados para realizar trabajos específicos son cosa del pasado. En la práctica, todo lo que signifique un ahorro de costos y una mayor rapidez de montaje triunfa por sobre cualquier metodología tradicional. Los sistemas inalámbricos o wireless son una muestra cabal de ello. Más aún cuando se habla de grandes instalaciones industriales que utilizan kilómetros interminables de cableado, el cual puede reemplazarse por sencillos mandos despojados de estructuras físicas. La comodidad de trasladar y/o rediseñar una sala de control industrial sin intervención de personal especializado y sin necesidad de replantear un tendido de cables por cada simple movimiento de una máquina consolida el atractivo y el vuelco de los diseñadores y usuarios hacia los modernos sistemas inalámbricos.
Continúa en el siguiente artículo ...
sábado, 27 de junio de 2009
POV: Escribe con luz en el aire
El POV (Persistence Of Vision) es un fenómeno visual descubierto por el científico belga Joseph Plateau que demuestra cómo una imagen permanece en la retina humana una décima de segundo antes de desaparecer completamente. Esto permite que veamos la realidad como una secuencia de imágenes que el cerebro "enlaza" como una sola imagen visual móvil y continua. El cine aprovecha este efecto y provoca ese "enlace" proyectando más de diez imágenes por segundo (generalmente 24), lo que genera en nuestro cerebro la ilusión de movimiento.Si a un LED o a un conjunto de ellos los activamos de manera apropiada en tiempo y forma, obtendremos, gracias a la persistencia de nuestra visión, imágenes que parecen estar flotando en el aire. En el mundo de los juguetes y/o gadgets es muy común encontrar relojes, despertadores, indicadores de saludos navideños, mensajes de amor y cuantas cosas se nos puedan imaginar que sean mensajes transmisibles mediante la palabra o las imágenes. Esta clase de productos basan su principio en los scroll-texts o pasa-mensajes que podemos ver en los autobuses, en las entradas del metro, en los comercios y en cada vez más lugares. En el caso de los carteles, una línea (o columna) se enciende a la vez y su traslación rápida y continua, con el encendido apropiado, van formando el mensaje que vemos y leemos.
Te invitamos a que construyas uno tú mismo. Aquí está toda la descripción. Diviértete !
Saludos!
Mario!





















