Mostrando entradas con la etiqueta Electrónica. Mostrar todas las entradas
Mostrando entradas con la etiqueta Electrónica. Mostrar todas las entradas

miércoles, 10 de noviembre de 2021

Estetoscopio Electrónico

Tengo dos estetoscopios convencionales que si bien funcionan correctamente, son un poco sorditos. Sirven para tomar la presión y si ausculto el corazón, se puede distinguir sístole de diástole, pero no mucho mas que eso.

¿Qué tal si monto uno electrónico?

Encontré un circuito extremadamente simple...

La Hora de la Verdad

¿Funciona?

Técnicamente funciona, el sensor piezoeléctrico capta las frotaciones de la membrana al tratar de auscultar, el amplificador amplifica y produce un buen sonido, pero ni siquiera se escucha el latido del corazón. Por lo tanto, como estetoscopio es un fracaso. Buscaré un circuito mas elaborado, tal vez con un electret como sensor.

FIN

lunes, 20 de abril de 2020

Restauración de un Multímetro FN Hansen

FN Hansen

Tenía un multímetro FN Hansen sin funcionar, coleccionando polvo en una caja. Se trata de una verdadera pieza de museo, que según Radiomuseum.org es de la década de 1960. Además, tiene un gran valor afectivo porque perteneció a mi padre y recuerdo haber visto el "tester" en muchas oportunidades en distintas partes de la casa. Es que, a pesar de que él trabajaba profesionalmente como Ingeniero en sistemas de control de procesos y luego en electro-medicina e informática, también le gustaba la electrónica como hobby.

La medición de corriente alterna estaba en cortocircuito, no medía corriente continua, tampoco resistencia. Probé el instrumento (aguja y solenoide) y funcionaba perfectamente. Le cambié unos componentes (diodos) y le soldé algunas conexiones... y voilá. Volvió a la vida.

Fig. 1 El interior del multímetro

El círculo rojo que se observa en la Figura anterior, corresponde a la prueba temporaria de los "diodos" de silicio, en realidad, le puse dos transistores que tenían una juntura dañada. El capacitor que se observa en el extremo superior izquierdo estaba mal soldado al terminal positivo, éste, a su vez, tenía una conexión intermitente con el gabinete y, al mismo tiempo, con el borne negativo -a través de la llave selectora-, lo que hacía que entrara en corto al medir CA.

Fig. 2 Prueba de Corriente Alterna

Como puede observarse, el instrumento sobre-estima la tensión de corriente alterna, marca 290V, mientras que el multímetro de al lado, un Micronta 22-2010 que compré hace unos años en un local de RadioShack en Los Angeles, marca correctamente 220V. Como el error es lineal, no me molesta. La resistencia la mide correctamente en la escala x10 y x1K, mientras que la escala de Megohms no la pude probar ya que requiere de una batería de 22V. Cuando termine la cuarentena, voy a comprar un par de minibaterías de 12V, para tener el instrumento con la funcionalidad básica completa (ohms, amperes, vca y vcc). Las mediciones de RF y de Alta Tensión las dejaré para otra ocasión.

FIN

martes, 26 de enero de 2016

Wien Bridge Oscillator en PSPICE

Se trata de aplicar el simulador de Orcad en un circuito concreto, con valores de componentes ya establecidos para comprobar si cumple con alguna de las características que promete. En este caso, el interés está centrado en el comportamiento de los componentes que forman parte de la configuración puente de Wien.

¿Cómo arrancan los osciladores?

En caso de los osciladores con componentes inductivos, el transitorio de HT que provoca la conexión de la batería es suficiente para iniciar la resonancia de manera similar a la que lo hace el roce de una cuerda de guitarra. En el caso de los osciladores no inductivos, como los multi-vibradores, entre otros, el puntapié inicial lo dan las características no lineales de los componentes que, al introducir ruido, dan inicio al ciclo de resonancia. En la práctica, algunos osciladores no inductivos se niegan a oscilar y esto se remedia con el cambio del componente activo, por ejemplo el amplificador operacional o el transistor.

Un aspecto básico de los circuitos resonantes es que la señal producida por el circuito decae en el tiempo por las pérdidas que provocan los componentes, por ejemplo, la inductancia ofrece una cierta resistencia. Este fenómeno es conocido intuitivamente por las experiencias cotidianas, al tañir una cuerda de la guitarra se escucha la resonancia producida por ésta, que va perdiendo intensidad hasta que se pierde. Lo mismo ocurre al columpiar a un niño, el largo de la cuerda establece la frecuencia, pero el ángulo (amplitud) será cada vez menor, a menos que se aporte un pequeño empuje en consonancia con la frecuencia del columpio. Este mecanismo que mantiene la señal resonante con la amplitud adecuada es un amplificador.

Fig. 1 Circuito B1: Morse Code Oscillator

En una entrada anterior del blog, publiqué un circuito muy simple que utiliza la configuración "puente de Wien", ver: Oscilador Puente de Wien Si observamos la Fig. 1, el circuito B1 ("Morse Code Trainning Set"), notamos que se trata de un amplificador con emisor común, en Clase A. La particularidad de estos amplificadores es que producen una señal de salida que está rotada 180º con respecto a la señal de entrada, ver Fig. 2.

Fig. 2 Amplificador Clase A

Para realimentar la señal en la base del transistor, primero debemos rotarla 180º para que coincida con la fase de la señal de oscilación. Esta es precisamente la misión que tiene el conjunto de capacitores y resistencias que se encuentran entre el colector y la base del transistor. De acuerdo con el manual del EE-20 de Phillips (Juguetronic), la frecuencia del oscilador es de 1kHz, y esta frecuencia está determinada por la combinación de la resistencia de 270 Ohms en conjunto con el capacitor de .1uF.

La simulación en PSPICE

La salida del transistor está simulada con una señal de 1kHz entre el nodo 2 y 0. En la Fig. 3, a la izquierda de la línea roja se pueden observar los nodos tomados en cuenta para la simulación.

Fig. 3 El Circuito Simulado

El trazado que se presenta en la Fig. 4, muestra la señal de salida V(2) en contraste con la señal de entrada V(6), bien atenuada como corresponde y con fines gráficos multiplicada por 3 para que se note la sinusoide. Se observa claramente la rotación de 180º de la señal. Además, la respuesta en frecuencia es precisamente 1kHz. ya que si se aplica una señal de otra frecuencia, la entrada presenta un desfasaje que llevaría a fijar la frecuencia en la resonancia correcta.

Fig. 4 Ploteo de las Señales

El Código en PSPICE

NOTA: la salida del transistor, o nodo 2, corresponde a la entrada del puente de Wien, mientras que la entrada al transistor, o nodo 6, corresponde a la salida del puente que está bajo análisis.

FIN

viernes, 13 de febrero de 2015

Inminente Cierre de RadioShack

"1,700 RadioShack stores closing soon, some liquidating stock at 50% off" - Ver artículo.

Luego de casi un siglo de cubrir las necesidades de ingenieros, técnicos y aficionados, RadioShack cerrará sus puertas. Este cierre se suma al de otras compañías, tales como Heathkit, ligadas a la tecnología electrónica como aprendizaje y entretenimiento.

Los "P-Box" educativos

Además de la venta de componentes electrónicos sueltos, RadioShack se interesó en la "educación inicial" de los futuros técnicos, ingenieros y diseñadores. Desde los sencillos P-Box, que consistían de una caja plástica perforada con los componentes y un folleto instructivo, hasta el kit "Learning Lab" que permite realizar una gran variedad de circuitos. Este último, además, cuenta con dos manuales educativos escritos por Forrest Mims, una autoridad en la divulgación de tecnología.

El "Learning Lab"

Buenas Vacaciones!

jueves, 27 de noviembre de 2014

Distribucion Binomial en ASP.NET

CAMBIOS

En un comienzo el código estaba en ASP.NET con señala el título, sin embargo, debido al cambio de servicio de la página que usaba como proveedora de los servicios .NET —que sin aviso previo los limitó a ASP Clásico-, ahora está programado en JavaScript. A pesar de esto, el funcionamiento es el mismo.

El término probabilidad, se refiere a un cálculo, una estimación matemática relativa a la posibilidad de un resultado particular entre un número de diferentes resultados posibles. Sabemos que en una situación determinada (por ejemplo, al arrojar un dado) hay un determinado número de resultados posibles (seis caras del dado son posibles), se puede calcular la probabilidad de un resultado determinado o de una secuencia particular de resultados si se repite el evento n veces.

Distribución Binomial
  n
 x
 %

Nota: Para probar esta aplicación es recomendable que obtenga una tabla binomial para contrastar los resultados.

Tabla 1

Ejemplos

Tomemos por ejemplo una cantidad de n=10 ensayos con un una cantidad de 3 éxitos y una probabilidad de p=0.25 (25%). La aplicación (ver Fig. 1) retorna el resultado:

= 0.250282287597656

Que es precisamente lo que encontramos al consultar la tabla 0.2503 (ver Tabla 1).

Fig. 1

Otro ejemplo: al arrojar una moneda n=10 veces, ¿cuál es la probabilidad de que se obtengan exactamente 6 caras?

Éxito = "La moneda muestra CARA"

p = 0.5

q = 0.5

n = 10

x = 6

R = 0.205078125

¿Qué Es?

En estadística, la distribución binomial es una distribución de probabilidad discreta que cuenta el número de éxitos en una secuencia de n ensayos de Bernoulli independientes entre sí, con una probabilidad fija p de ocurrencia del éxito entre los ensayos. Un experimento de Bernoulli se caracteriza por ser dicotómico, esto es, sólo son posibles dos resultados. A uno de estos se denomina éxito y tiene una probabilidad de ocurrencia p y al otro, fracaso, con una probabilidad q = 1 - p. En la distribución binomial el anterior experimento se repite n veces, de forma independiente, y se trata de calcular la probabilidad de un determinado número de éxitos. Para n = 1, la binomial se convierte, de hecho, en una distribución de Bernoulli.

Para representar que una variable aleatoria "x" sigue una distribución binomial de parámetros n y p, se escribe:

La distribución binomial es la base del test binomial de significación estadística.

Por ejemplo, con un dado balanceado, en una tirada, existe la posibilidad de 1 entre 6 de que un valor particular de los seis posibles aparezca en la parte superior (puesto que hay seis superficies en el cubo); en el juego de cara o cruz con una moneda correctamente balanceada hay una posibilidad de 1 entre 2 de que una cara aparezca en la parte superior, y la posibilidad de 1 entre 2 de que una cruz aparezca en la parte superior; asimismo, hay una posibilidad de 2 entre 2 de que una cara o una cruz aparezca en la parte superior.

FIN

jueves, 20 de marzo de 2014

Experimentos en 850nm (Infra Rojos)

La longitud de onda correspondiente a las frecuencias del espectro infrarrojo son tan pequeñas que se miden en Nanómetros. Nanómetro es la unidad de longitud que equivale a mil millonésima partes de un metro.

Un estándar muy difundido tanto para foto transistores como así también para diodos y receptores IR, es la longitud de onda de 850nm.

  

Fig. 1 Un Puñado de Componentes

Basico, Basico...

El experimento más simple e indudablemente PRÁCTICO que podemos realizar con las señales infrarrojas, es un detector o receptor IR, y la manera que aportará más aprendizaje es la realización del circuito que se observa en la Fig. 2.

  

Fig. 2 Circuito del Detector IR

Efectivamente, con un puñado de componentes, en unos pocos minutos podremos disponer de nuestro receptor funcionando.

Este detector nos permitirá, entre otras cosas, verificar el funcionamiento de un control remoto con problemas (por ejemplo cuando alguno de los botones se queda "pegado" y el remoto parece estar averiado).

  

Videos del Ensayo

Los siguientes videos muestran dos secuencias de prueba, una en la que se ve en primer plano el "maltrecho" control remoto ya reparado y otra que muestra un acercamiento a los componentes.

  

Control Remoto en Primer Plano

  

Componentes en Primer Plano

FIN

martes, 11 de diciembre de 2012

Torres de Hanoi en ET-3400

miércoles, 31 de octubre de 2012

Programming the MEK-6800

sábado, 20 de octubre de 2012

Robot-Eyes: Circuito Sensor de Proximidad

En este caso, los "ojos de robot" eran justamente eso, los ojos de un pequeño robot analógico bicelular que replicaba la función de arco relejo con una "neurona" sensitiva y una "neurona" motora. La operación que realizaba era la de deambular por los ambientes en forma continua y, al encontrar un obstáculo, giraba a la izquierda y continuaba su derrotero.

El robot sufrió la caida desde una biblioteca relativamente alta y recibió politraumatismos severos que condujeron a su disección. Pienso rearmar el robot pero con otra motorización (los motores en uso provenían del sistema de arrastre de rollos de cajas registradoras), si bien son de excelente calidad, consumen bastante energía.

Modo de Funcionamiento

El circuito opera por medio de la emisión de ráfagas de señales infrarrojas que salen del LED y rebotan contra un objeto cercano para ser recibidas por un fototransistor debidamente enfocado. En el ejemplo de el video, la distancia es de unos 35 cm. (la regla de navegación mide 31 cm.), una distancia poco adecuada para un robot diminuto que esquiva obstáculos, debería ser menor. Esta distancia se ajusta al cambiar el ángulo en el que apuntan los "ojos". Si se utilizará en sitios con mucha luz ambiente, habrá que ponerles anteojos para sol, uno de esos anteojos baratos cortados a la medida. También es útil rodear los "ojos" con un cilindro de papel oscuro (a cada uno) con el fin de evitar activaciones aleatorias.

El Circuito

En la Fig. 1 se puede obaservar el circuito del detector de proximidad, los componentes no son críticos y son fáciles de hallar en comercios de electrónica.

Fig. 1 Detector de Proximidad


El LM567 Phase Lock Loop

El LM567 es otro componente que utilicé en muchos proyectos porque tiene una gran variedad de aplicaciones, además, provee una salida compatible con TTl de manera que se puede emplear en circuitos digitales. Se trata de un PLL (phase lock loop) que produce una frecuencia determinada (por los componentes de soporte) y detecta esa misma frecuencia. En este caso se usan esas dos características ya que emite y detecta su propia señal solo que esta señal está mediatizada por el rebote en un obstáculo.

Si observan el video, notarán que la señal verde (lógica 0) se enciende, pero no la roja (lógica 1). Esto se debe a que el pul-up a 5 volts estaba en el control de motores (un simple bridge hecho con TIP41 y TIP42). Con un motor pequeño podría usar transistores BC327 BC337 mas baratos y pequeños.


¡Será hasta la próxima!

Sergio Otaño

domingo, 14 de octubre de 2012

Lenguaje de Maquina

Desde el nacimiento de la "Ciencia del Computador", que ha  dado paso a la "Informática" como se la conoce en la actualidad en todo el mundo, se desarrollaron una miríada de lenguajes de programación. No cabe duda que aguellos "programadores" que implementaban sus cálculos en la ENIAC interconectando enormes cables entre los paneles tuvieron la motivación suficiente para buscar un mecanismo mas simple y eficiente.

Fig. 1 Codificadoras "cargando" un Programa.

Pero primero tuvo que desarrollarse en la computadora la capacidad de almacenar un programa, el modelo de Von Newman cubrió esa necesidad. A partir de allí ya hizo su aparición el primer lenguaje: el Lenguaje de Máquina.

Programa en 8086

El siguiente es el código completo, en lenguaje de máquina 8086 del algoritmo "Torre de Hanoi".

       0000000000000000B81100B91200BA13
00BB0400E80500B84C00CD2183FB0074
52525150534B8916060189CA8B0E0601
E8E9FF5B58595AA30201890E04018916
0601E82F004B891E00018B1E0201E823
008B1E0601E81C008B1E0001A102018B
0E04018B160601A3020189C88B0E0201
E8A9FFC3B40289DA83C230CD21BA2000
CD21C3

El código fuente puede verse aquí

El lenguaje de máquina se programa por medio de señales eléctricas, a través de interruptores o botones diréctamente en posiciones de memoria de la computadora. Aún hoy se programa en este lenguaje, en proyectos con microcontroladores o microprocesadores.   

Programación en MS-DOS Debug (Video)

Programación de Mircrocontrolador (Video)

sábado, 13 de octubre de 2012

Hanoi en Assembler A86

El punto de partida del peregrinaje de Hanoi fue la implementación del algoritmo de las Torres de Hanoi en lenguaje de máquina del microprocesador 6800 de Motorola. Para "programarlo", tuve que escribir un pseudo código, pasarlo a lenguaje ensamblador de 6800, posteriormente “ensamblarlo” en el papel, instrucción por instrucción, para luego ingresarlo por medio de un teclado hexadecimal, directamente en la memoria del MEK-6800.

Fig. 1 Teclado del MEK-6800

En memoria de ese acontecimiento, hace unos años repetí la experiencia, pero en esa ocasión, con una PC y por medio del Debug de DOS. Hoy, tanto el código fuente de la versión "light" como la versión "de Luxe" se perdieron en alguna de las tantas migraciones de PC. Pero, el artículo que publiqué en este blog aun permanece, de manera que es lo que usaré como punto de partida para la realizar esta nueva versión en A86.

Vean el Proceso Completo

El video muestra el código fuente en A86, el proceso de compilación y su puesta en funcionamiento.

El A86 es un Macroassembler, de manera que el código que usé para ensamblar con Debug requerirá varias modificaciones para que el A86 lo acepte y me genere un ejecutable.

El Código Original

El siguiente listado corresponde al código tal como está publicado en este blog: Reursion and Machine Language.

            

Listado 1

Si observamos en detalle el Listado 1, notaremos la aparente ausencia de "variables", tampoco se observan "procedimientos" o "subrutinas". En realidad, tanto las variables como las subrutinas están ahí, solo que no tienen nombre, son solo posiciones en la memoria.

La primera tarea consiste en asignar nombres "simbólicos" a esas posiciones de memoria, para convencer al A86 de que se trata de un programa en lenguaje ensamblador y no de una lista de compras. Para eso, primero vamos a ensamblar el código (con Debug), para determinar donde están las posiciones de memoria a las que hacemos referencia.

Compilación con Debug

E:\TC\A86>debug <hanoi.txt

El Debug genera un archivo ejecutable .COM

Pruebo el Funcionamiento

E:\TC\A86>hanoi
1 A B 2 A C 1 B C 3 A B 1 C A 2 C B 1 A B 4 A C 1 B C 2 B A 1 C A 3 B C 1 A B 2 A C 1 B C

Funciona!

Para ahorrar tiempo

  • Genero un listado con el debug
  • E:\TC\A86>debug hanoi.com >prog.txt
  • Luego escribo cinco veces u y luego q.

Obtengo el siguiente listado

            

Listado 2

Procesamiento con Excel

Esta es una de las aplicaciones prácticas de Excel, nos permite trabajar con texto en forma tabular y aplicar funciones para agregarle o quitarle elementos (también es muy útil para trabajar con páginas web).

  • Separamos las direcciones de las instrucciones (B y D).
  • Insertamos una columna (C).
  • Asignamos Nombres a las direcciones representativas.
  • Copiamos las columas C y D en un archivo de texto con la extensión .8 que es la extensión de los programas fuentes en A86.

Listado A86 Coompleto

            

Listado 3 Programa Completo en A86

Compilación y Prueba

E:\TC\A86>A86 HANOI.8
A86 macro assembler, V3.72 Copyright 1994 Eric Isaacson
Source:
HANOI.8
Object: HANOI.COM
Symbols: HANOI.SYM

E:\TC\A86>HANOI
1 A C
2 A B
1 C B
3 A C
1 B A
2 B C
1 A C

El código funciona perfectamente e incluye la generación del carácter "\n" o (0D0A) provisto por la subrutina NL, para mejorar la salida por pantalla. El A86 genera un archivo .COM y no requiere enlazarlo. Este A86 en particular lo bajé del sitio de su autor. Cuando vivía en USA, yo había comprado un A86 (shareware) que generaba .OBJ además de .COM, pero es posible que su autor haya modificado su esquema de distribución.

¡Que tengan un gran día!

Sergio Otaño

martes, 25 de septiembre de 2012

Electronic Time Switch (E3)

El proyecto E3 del Kit EE-20 de Phillips se denomina Relój Electrónico y se trata de un temporizador RC como se lo conoce tecnicamente. La sigla RC deriva de Resistencia y Capacitor por el hecho de que, por medio de la descarga del capacitor a través de una resistencia es que se establece la constante de tiempo.

Fig. 1 Temporizador en Funcionamiento

Funcionamiento

Si observa la Fig. 2, notará que la llave de la izquierda conecta los capacitores con la línea positiva de la batería, y al hacerlo, el capacitor se carga y muy poca corriente circula por la base del transistor de la izquierda por lo que estará "apagado". Asimismo, el transistor de la derecha conducirá y la lámpara estará encendida. Cuando los capacitores estén plenamente cargados, el transistor de la izquierda se "prenderá" y el el transistor de la derecha dejará de conducir por lo que la lámpara se apagará.

Fig. 2 Circuito del Relój Electrónico

Algunos Detalles

El circuito es bastante simple y no tiene elementos críticos, sin embargo, en lugar del potenciómetro logarítmico que contenía el kit, conviene utilizar uno lineal de 10K. La precisión no es la de un dispositivo de cuarzo, pero es interesante para experimentar con las constantes de tiempo, incluso contrastar la RC teórica obtenida con una hoja de Excel por ejemplo, contra la observación real del temporizador.

Para incrementar el tiempo de apagado del temporizador se puede agregar una resistencia de 10k entre el colector del segundo transistor y la base del primero (Ver Fig. 2). Por este medio, se mantiene "encendido" por mas tiempo el primer transistor.

Otros Proyectos del Kit Phillips



Esto es todo por hoy,

Sergio Otaño

martes, 13 de marzo de 2012

Programemos ese PIC

Bien amigos, ya armamos el Programador de Pics, obtuvimos el PonyProg para controlar el programador con nuestra PC, lo probamos y funcionó correctamente… ahora llegó el momento de la verdad: vamos a insertar un microcontrolador en el zócalo y lo vamos a programar.

Fig. 1 A Programar

El PIC 16F628

Si bien existen una gran variedad de microcontroladores PIC, vamos a utilizar uno que nos permita realizar una multiplicidad de pruebas experimentales: el PIC 16F628. Este microcontrolador cuesta aproximadamente 3 dólares y, tal como indica la F (flash), se programa eléctricamente, a diferencia de otros que pueden ser OTP (se programan una sola vez) y los que se borran por medio de luz ultravioleta.

Fig. 2 Cargar el Ledblog.hex

El PIC 16F628 se puede programar unas mil veces o más de modo que se usa como plataforma para probar los programas, y cuando estamos conformes con su funcionamiento compramos un PIC OTP muy barato y lo destinamos al producto definitivo. Claro está que si nuestro interés en el trabajo con PICs es meramente como hobby, entonces podemos emplear el PIC versión flash ya que no necesitaremos decenas o cientos de ellos para los pequeños proyectos.

IMPORTANTE

Si van a emplear el PonyProg para programar el microcontrolador, el PIC debe ser 16F628 (a secas) y no 16F628A, puesto que a este último no lo programa.

El código HEX

Los microcontroladores PIC se programan en código hexadecimal que se produce con un ensamblador o compilador apropiado (más adelante nos ocuparemos de esta cuestión). En nuestro ejemplo emplearemos el siguiente código:

:020000040000FA
:1000000007309F008316003086008312FF30860081
:10001000000000000F20003086000F200628FA3074
:10002000A000C730A1000130A200A10B1828A20B2C
:080030001528A00B1128003473
:02400E00383D3B
:00000001FF

Si lo desean pueden copiar el código en Notepad y grabarlo con el nombre ledblog.hex o descargar Ledblog.hex AQUI

El programa ledblog.hex convierte al PIC 16F628 en un destellador por medio de una rutina que envía alternativamente unos y ceros al puerto B, es decir que cualquiera de los 8 pines correspondientes al puerto B puede ser empleado para destellar el LED.

A Programar se ha Dicho

1) Enchufar el programador en el puerto serie de la PC y conectar la fuente de alimentación (LED verde encendido). Seleccionar con los cuadros combinados Dispositivo "PIC 16 micro" y "PIC16F628"
2) Insertar el PIC 16F628 en el zócalo
3) Abrir el PonyProg y seleccionar File/Open Device File
4) Seleccionar el archivo "ledblog.hex" (ver Fig. 2)
5) Seleccionar del menú la opción Command/Write All

Et Voilà!

El Circuito

Debido a la configuración que programamos (por medio de ledblog.hex) en el PIC, el circuito requerido es extremadamente simple (usa el oscilador interno de 4 MHz.), consiste de dos resistencias de 1K que pueden ser de 220 ohms (mínimo absoluto) y un LED. Debe ser alimentado por 5Volts (4.5V, 3 pilas de 1.5V o 4.8V, 4 pilas de 1.2V).

Fig. 3 Circuito con 16F628

Funcionamiento

El siguiente video muestra el funcionamiento del circuito correspondiente al programa "Ledblog.hex"

Con el material estudiado hasta aquí ya estan en condiciones cargar programas en un PIC y armar un circuito de soporte. Esto es muy auspicioso debido a la abundancia de proyectos disponibles en libros de texto y en Internet en los que sus autores ofrecen los archivos .HEX y los circuitos. Por lo tanto: ¡YA pueden realizar esos proyectos!

Pero para aquellos que quieran ahondar un poco más, en artículos futuros vamos a analizar el programa ledblog.asm y estudiar algunas técnicas de programación para que puedan crear sus propios programas y compilarlos.

¡Hasta la Próxima!

Sergio Otaño

jueves, 16 de febrero de 2012

Pony Prog 2000

Iniciarse en la programación de PICs, como vimos en la nota Programador PIC de este blog, requiere un programador que puede ser comprado o armado por nosotros mismos. El programador cuyo circuito les presenté en esa nota no es el único disponible, ni el más simple, pero es bastante completo y permite programar una gran variedad de microcontroladores PIC, Atmel y memorias seriales.

Fig. 1 Inicio del Pony Prog

Este programador trabaja con un software gratuito denominado Pony Prog que es ideal para iniciarse en esta actividad. El Pony Prog tampoco es el único software gratuito disponible; sin embargo, junto con el Icprog es uno de los más fáciles de usar y es muy recomendables para trabajar con las plataformas de Windows (el Icprog levanta alertas al usarlo en plataformas Windows Vista y 7).

En la Fig. 1 se observa el saludo inicial del Pony que incluye un relincho muy "gauchesco" (como si Inodoro Pereyra se asomara en la compu), aunque parece simpático al principio, luego de iniciar el programa algunas veces se torna irritante (por eso está marcado "Disable sound").

El SetUp

Antes de programar nuestro PIC, debemos configurar el Pony indicando el tipo de programador que usaremos y la interface con nuestra PC, el proceso es muy simple:

1) Conectar el programador en el puerto serie/paralelo (en nuestro caso serie) de la PC.

2) Enchufar la fuente de 12V (15V) y verificar que el LED Verde esté encendido, lo que indica que el programador dispone de los 13V para programar (observe el Zener de 13V en la base del BC548 del circuito): Ver circuito.

3) Seleccionar el menú Setup/Calibration

Fig. 2 Menú de Calibración

Fig. 3 Calibrar el Puerto

4) Seleccionar el menú Setup/Interface Setup

Fig. 4 Selección del Puerto

5) Prueba en Vacío - Sin Microcontrolador

Por medio de los cuadros combinados, seleccionar el Dispositivo “PIC 16 micro” y 16X84 (en esta selección, nos permite verificar el programador en Vacío, es decir, sin el microcontrolador enchufado).

Fig. 5 El proceso de lectura

El PonyProg muestra una barra de estado (Fig. 5) que se desplaza a medida que lee Bytes del microcontrolador a través de la interface que provee el programador. El siguiente video muestra el efecto en el programador: a medida que Pony lee los Bytes, el LED rojo se enciende.

Video del Proceso

El Resultado

El resultado es una pantalla que muestra la lectura de 2116 Bytes con FF (255) como se observa en la Fig. 6

Fig. 6 Ventana de lectura

Conclusión

La prueba exitosa indica que nuestro programador (el Hardware) se comunica correctamente con el Pony (nuestra PC) y podemos comenzar a cargar programas en nuestro PIC.

En la próxima entrega les mostraré cómo programar un PIC 16F628 con un código en assembler muy simple.


¡Que tengan un gran día!

Sergio Otaño

martes, 7 de febrero de 2012

Programador PIC

Este es un circuito interesante que armé hace más de una década y que tenía abandonado en una caja. A pesar del olvido y los años, el programador de PICs funcionó perfectamente ni bien le conecté la alimentación y las señales del puerto serie.

Fig. 1 Programador de PICs

Descripción

El circuito es bastante simple, consiste de 6 transistores convencionales de baja señal, 3 diodos 4148, 3 diodos Zener de 5.1V y 2 Zener de 13V, un LED rojo, un LED verde y un puñado de componentes más. En mi caso lo armé en una plaqueta estándar de 75mm x 40mm y aproveché todos los elementos que tenía a mano, por ejemplo, un mouse fuera de uso (los ratones tienen numerosas partes útiles para extraer) que me proveyó de un largo y elegante cable con ficha DB9 en un extremo y ficha plana en el otro.

El artículo original en el que encontré el circuito del programador ya no está disponible en Internet, pero recuerdo que recomendaba incluir en la plaqueta los zócalos para programar los PIC. Si bien en mi plaqueta (ver Fig. 1) puse tres zócalos (de 8 pines, de 16 pines y 2 de 14, es decir 28 pines) y en el circuito muestro la conexión de uno de estos zócalos, creo que la mejor forma de programar los PICs es en una plaqueta de desarrollo o breadboard y llevar las señales y las tensiones desde el programador hacia la plaqueta.

Fig. 2 Circuito del Programador

Algunos Detalles

Si observan la Fig. 2, notarán tres diodos sin denominación, son los 1N4148. Otro detalle importante a tomar en cuenta es que deben incluir un capacitor de bypass (100nF) entre VCC (+5V) y tierra próximo al pin del microcontrolador PIC. Con respecto a la fuente de alimentación, que en el diagrama indica 15V, cualquier fuente económica de pared de 12V provee 15V con baja corriente, de modo que se puede emplear perfectamente. El circuito original, también proponía el uso de un puente de diodos en la entrada del circuito. Esta es una muy buena idea, ya que hacer el circuito puede ser interesante y entretenido, pero tener que repararlo es una molestia. En mi caso opté por incorporarle el puente de diodos y esto me permite enchufar cualquier fuente ya sea de CA o de CC y con cualquier polaridad.

El Software

Este programador requiere para funcionar del programa PonyProg, que pueden bajar de aquí: Download PonyProg

Una vez construido el programador, verificar que al enchufarle la fuente de alimentación se enciende el LED verde.

Para probar el funcionamiento correcto de nuestro programador deberán realizar una prueba en Vacío, es decir, sin el microcontrolador inserto en el programador. Ver aquí, cómo se hace.

¡Que tengan un gran día!

Sergio Otaño

jueves, 2 de febrero de 2012

Destellador a 1.5 Volts

Para el Hobbista, un destellador es siempre bienvenido. Ya sea para incluir en la señalización de barreras de tren, para localizar un modelo de cohete o avión, para usarlo como baliza, para alertar sobre un tanque que superó cierto nivel, avisar del ingreso de una persona a una oficina determinada o, incluso, como un ring visual de un teléfono.

Video del destellador funcionando con una pila AA bastante descargada (0.90V). En el video (capturado con cámara web), la velocidad de destello aparece aproximadamente a la mitad de la frecuencia real.

Fig. 1 Circuito del destellador

El circuito que observamos en la Fig. 1 es un destellador que funciona con 1.5 Volts, lo que lo convierte en un artículo muy interesante. Este circuito lo monté sobre un trozo de plaqueta de descarte, junto con 5 LEDs rojos de alta intensidad mas un CD descartado me permitieron hacer un Destellador para la bicicleta muy eficiente y económico. Con una pila C (mediana) puede funcionar durante varios meses.

¡Que tengan un gran día!

Sergio Otaño

domingo, 4 de diciembre de 2011

Yet Another Resistor Calculator

Aquellos que incursionaron en el diseño de compiladores, aunque sea en calidad de estudiantes de la homónima asignatura de la universidad, recordarán el YACC, Yet Another Compiler Compiler, un generador de sintaxis que venía en el sistema operativo Unix.

Fig. 1 Calculadora de Resistencias

En este caso se trata de YARC (otra calculadora de resistencias mas, en castellano) una versión en Java de la calculadora de resistencias en JavaScript que aparece en el artículo Calculadora de Resistencias de este blog.


¡Que tengan un gran día!

Sergio Otaño

jueves, 17 de noviembre de 2011

Applet de Códigos de Barra

Tenía ganas de incluir una Applet de Java en el Blog y de paso, retomar el tema de los Códigos de Barra sobre los que ya publiqué varias notas y muchos lectores (especialmente los amigos de México) me consultaron. Para acceder a la Applet haga Clic en la imágen o en el subtítulo.


Fig. 1 Applet Java


El comienzo

Tiempo atrás había desarrollado una pequeña Applet de Java que permitía generar Códigos EAN, pero desafortunadamente no me quedó ni el código virtual de máquina “class” (el ejecutable en la universo Java) ni el fuente. La verdad es que ese programa antiguo, si bien generaba códigos EAN válidos, también era capaz de generar códigos que no cumplían con la norma, y por ende, eran irreconocibles para los lectores de código de barras. De manera que, si no encontraba el código fuente para adecuarlo a las normas, tampoco lo hubiera subido al Blog, por el simple hecho de que si se titula código de barras, debe cumplir con las normas.

En realidad, sobre la cuestión de códigos de barra hice numerosas incursiones en una variedad de lenguajes de programación, además de Java, C++ y VisualBasic; por ejemplo, el programa Regi para Puntos de Venta permite generar etiquetas con códigos de barra (ver Fig. 2), aunque en ese caso se trata de Código 39. Sin embargo, la colección más completa de fuentes que tengo es la que programé laboriosamente en VisualBasic, línea por línea, en base a las especificaciones de las organizaciones de estándares en la materia.



Fig. 2 Listado de Códigos 39


La implementación

Finalmente lo que hice fue tomar el código de un módulo de VB 6 y lo traduje a Java con algunos resultados interesantes en cuanto a las diferencias, pero también en cuanto a las similitudes. Claro, sacando de lado el leitmotiv principal de Java, que es su propio modelo estructural de diseño. Esa es una cuestión por completo diferente. Pero, línea a línea, código a código, tomando en cuenta algunas salvedades, se puede traducir en forma bastante directa, partiendo de las estructuras de control que son semejantes y muchas operaciones básicas que son similares también. Sorprende un poco lo permisivo que es Java en algunos aspectos y lo severo que es en otros. De esta forma, hay operaciones que en C o en Pascal hubiesen sido consideradas sacrílegas, y sin embargo Java las acepta lo más campante.

Fig. 3 El Código 39 en el programa WinBarCode


En la Fig. 3 podemos observar la ventana del programa WinBarCode desarrollado por el autor para generar una gran variedad de códigos de barra. Si lo desea, puede bajar una copia del programa Aquí: Baje el Programa WinBarCode

Algunos detalles

La Clase String de Java es muy amplia en comparación con la humilde variable string de VB6, además sus elementos se indexan en forma similar a un vector, comenzando por el elemento 0. Esto es muy práctico cuando, como en el caso de los Códigos de Barra, se trabaja con Strings y con Matrices. En VB6 eso es una molestia.

De modo que los Mid(string,start[, length]), Left(string, length) , Right(string, length) se redujeron a string.substring(from, to) con el detalle que el from de Java comienza en 0 y no en 1 como ocurre en el start de VB. Cuando el código se ponía un tanto freaky (aunque hermoso para los ojos de un Javista fanático), decidí replicar las funciones VB en Java, por ejemplo IsNumeric(expression) que es bastante transparente, veamos los siguientes ejemplos

Esto


Se convirtió en esto


Esto


Se convirtió en esto


Los Val(string), al tratarse de enteros, los trabajé con el método integer.parseInt(string s), veamos este ejemplo sobre matrices en VB6 y en Java:

Esto


Se convirtió en esto


Conclusión

Dejo para la próxima el comentario sobre las matrices que se pueden traducir en forma bastante directa entre ambos lenguajes, aunque hay quienes sostienen que el VisualBasic no es un lenguaje… ejem!

Más sobre códigos de Barra en este Blog

1 Introduccón a los Códigos de Barra
2 El Código 39
3 Download CodBarra.exe

¡Que tengan un gran día!

Sergio Otaño

miércoles, 5 de octubre de 2011

Libro: Fundamentals of Radio

Gracias nuevamente a los lectores por los saludos y también por avisarme sobre los links para bajar documentos o programas que no funcionan. Paulatinamente los voy a migrar todos a Google Sites para tener un mejor control de ellos.

En este caso, se trata de un librito en PDF que ocupa solamente 5Mb y es ideal para comprender algunos fundamentos de la radio y electrónica. Debido a que es muy básico se adecúa a aquellos lectores que desean comenzar a experimentar en electrónica. Este libro fue desarrollado para acompañar uno de los Kits Phillis.


Fundamentals of Radio



Que tengan un gran día,

Sergio Otaño

jueves, 21 de julio de 2011

Amplificador de dos Canales

El proyecto A4 del Kit EE-20 de Phillips se denomina Bi-Ampli en inglés y se trata de un amplificador de dos canales, uno de los canales amplifica los agudos y otro los graves. En la Fig. 1 podemos observar el circuito terminado, en funcionamiento. Asimismo, también se observa que el parlante de la izquierda es un componente reciclado.

Fig. 1 Implementación del Circuito en Breadboard


Funcionamiento

La señal de audiofrecuencia entra al transistor AF116 (ver Fig. 2) por medio de la resistencia variable de 10K Ohms (logarítmica), es amplificada y sale a través del colector por medio de un capacitor electrolítico de 100uF. La señal se bifurca, una parte a través de un capacitor de 47.000pF, hacia el transistor AC128 de la izquierda y la otra, a través de una resistencia de 680 Ohms hacia el transistor AC128 de la derecha.

Fig. 2 Circuito del Amplificador

El capacitor de 47.000pF hace las veces de un rudimentario filtro pasa altos, por lo tanto, el parlante de la izquierda reproducirá los agudos, mientras que el de la derecha, reproducirá los graves. La resistencia de 680 Ohms sirve para compensar la impedancia del capacitor y mantener los canales equilibrados. Hay que tener en cuenta que el propósito del circuito es educativo solamente, no se debe juzgar la calidad del audio.

Para apreciar la diferencia de notas entre los parlantes es conveniente separarlos entre sí y no como en la imagen que los muestra juntos.

Lista de materiales:

1 transistor AF116 o equivalente.
2 transistor AC128 (AC188)
1 potenciómetro miniatura 10K logarítmico *
1 resistencia 680 Ohms
1 resistencia 1.5K Ohms
2 resistencia 27K Ohms
1 resistencia 100K Ohms
1 resistencia 330K Ohms
1 capacitor 47.000pF (47nF)
1 capacitor 3.3uF electrolítico
1 capacitor 10uF electrolítico
2 capacitor 100uF electrolítico
2 parlante 8-16 Ohms *
1 batería 9V

* ver texto

Otros Proyectos del Kit Phillips

A1 Amplificador para Gramófono
A4 Amplificador de 2 Canales
A5 Organo Electrónico
B1 Oscilador Puente de Wien
D1 Detector de Luz
D2 Luz Destellante
D3 Relé Acústico
E1 Luz Nocturna Automática
E2 Detector de Lluvia y Humedad




Esto es todo por hoy,

Sergio Otaño