Sobre entrada de datos y circuitos eléctricos (Puerto paralelo II)

8 de Septiembre de 2009 por cogollo

Hace unos meses ya hablamos de la salida de datos a través del puerto paralelo, pero dejé para más tarde hablar de la entrada. Bien, supongo que ya es lo bastante tarde.

Para que quede claro, veremos qué hay que hacer para poder leer datos digitales a través del puerto paralelo del PC, mediante un programa en C y en un entorno Linux (aunque los circuitos que usaremos son validos para cualquier entorno).

Recapitulemos: el conector del puerto paralelo tiene 25 pines, que se corresponden con tres lineas de datos diferentes (Data, Control y Status) según este esquema:

Valor de los pines del puerto. Extraido de CodeProject

Valor de los pines del puerto. Extraido de CodeProject

Además tenemos que Data es de entrada/salida, Control es sólo de salida y Status sólo de entrada. Y que en un determinado pin 0V representan un 0 lógico y 5V un 1 lógico, salvo en los pines que están invertidos (Y este puede ser un buen momento para repasar el primer artículo).

Vimos también que para sacar un byte a través de un puerto hay que usar la función:

outb(Byte,Puerto);

donde Byte es el byte de datos que queremos mostrar y Puerto es el numero del puerto que queremos usar y que en la mayoría de los casos es 0x378 para el puerto de datos, 0x379 para el puerto de status y 0x380 para el puerto de control.

Pues bien, para la entrada de datos tenemos una función similar:

inb(Puerto);

que devuelve un byte de datos leidos a traves de Puerto. Por ejemplo, para leer desde el puerto de status y guardarlo en la variable input pondríamos:

short int input = inb(0x379);

Y eso es todo amigos, pero antes de ponernos con un programa de ejemplo deja que aclare una cosilla sobre circuitos eléctricos.


Leer el resto… »

Publicado en Hackeos e ideas, Nuestros hacks, Open Source | 11 Comentarios »


Lo que aprendimos en el taller de microcontroladores

26 de Junio de 2009 por cogollo

Bueno, demos cuenta del último de los talleres en Medialab que celebramos el mes pasado. Como recordarás el tercer y último taller corrió a cargo de Jeroen Domburg y se trataba de introducir al personal en el fascinante y misterioso mundo de los microcontroladores.

taller-micros-1

Porque, verás, además de fascinantes y misteriosos los microcontroladores son tremendamente útiles. Con uno de estos pequeños circuitos integrados y un poco de práctica uno puede comunicarse con todo tipo de elementos electrónicos devolviéndoles su utilidad o incluso dándoles una totalmente nueva. Como ejemplo, durante el taller empezamos haciendo parpadear un LED, pero terminamos interactuando con un display LCD (como los que se pueden encontrar en las típicas impresoras multifunción) y un viejo ratón PS/2.

taller-micros-3

Estos trastos son tan molones… pero taaan molones, que cualquiera con el culo un poco inquieto y un soldador acabará, tarde o temprano, tonteando con la idea de usarlos en sus proyectos. El mayor problema, como en casi todo, está en el primer paso. Porque vale que uno sabe programar. Ningún problema. Pero, ¿cómo demonios se hace para meter un programa ahí dentro? Con lo chiquitico que es eso.

Eso es lo que me pasaba a mí al menos. Y por lo que pude oír durante el taller, le pasa a bastante gente. Así que tanto si viniste al taller como si no, atiende, que te voy a contar todo lo que hace falta para programar un microcontrolador.


Leer el resto… »

Publicado en Talleres | 1 Comentario »


Accediendo al mundo real: El puerto paralelo

16 de Febrero de 2009 por cogollo

Si hay una tecnología que se está extinguiendo ahora mismo, que se va desechando lenta pero inexorablemente, esa es la del puerto paralelo. Y es una lástima. No sólo porque este conector ya estuviera presente en el primer PC que fabricó IBM en 1981, también porque el puerto paralelo ha sido uno de los mayores aliados del hacking. Con sus 25 pines, no es precisamente el conector más discreto que puedes encontrar en un ordenador . Ni el más rápido. Pero tiene una cosa que lo hace muy atractivo para el aficionado: Es muy fácil de usar. Casi trivial.

El puerto paralelo según Wikipedia

El puerto paralelo según Wikipedia

Básicamente, lo que podemos hacer con estos pines es ponerlos a 0 o 5 voltios. A voluntad. Puede que esto no parezca gran cosa, pero es suficiente para activar un relé que, a su vez, active una radio, una bombilla, una lavadora, etc. Así que  va a permitir, de una manera muy directa, que nuestro ordenador manipule el mundo exterior.

O sea, lo mismo que un microcontrolador como Arduino. Sólo que, claro, no tienes que gastarte 30 pavos en el dichoso Arduino y la potencia y la memoria del PortatilQueTeRegalóTuTíoPorqueEstáViejoYDeTodasFormasIbaATirarlo siguen siendo cientos de veces mayores que las de cualquier micro que puedas comprar con dinero. Cierto que un Arduino cabe en la palma de la mano, pero para “aplicaciones estáticas” (esto es, para chismes que no tengan que ir cosidos a la ropa o bajo el sillín de una bici) yo diría que usar directamente el puerto paralelo es bastante más práctico.

Pero empecemos por el principio. Para ir cogiéndole el tranquillo a esto te propongo empezar con unos sencillos juegos de luces como estos:


Controlando 8 leds con el puerto paralelo on Vimeo.

Aprenderemos para qué sirven los distintos pines del puerto paralelo y cómo sacar datos a traves de ellos (leer datos es ligeramente más complicado y lo dejaremos para futuras entregas) . Todo ello en un estupendo entorno linux, pero si tienes Windows puedes ver cómo hacer esto mismo aquí. Si tienes un Mac…  Bueno, no creo que los Mac sigan montando de éstos. No son lo bastante bonitos, supongo.


Leer el resto… »

Publicado en Hackeos e ideas, Nuestros hacks | 38 Comentarios »


El tesoro de los relés

9 de Noviembre de 2008 por cogollo

Hace como un par de semanas, Paaq y yo nos tropezamos con un trofeo inesperado. Encontramos tirado un gran armario metálico al lado de Cuatro Caminos. No tenía puertas y, como se veían cositas brillantes dentro, no pudimos dejar de acercarnos a aldraguear un rato.

Resultó ser una especie de centralita electrómecanica. O eso nos gusta pensar, porque, fuera lo que fuera, estaba demasiado destruido como para sacar conclusiones. Lo que si está claro es que ya había sido saqueado antes de que llegáramos. Pese a todo pudimos “rescatar” una docenita de relés con bastante buena pinta.

Citando la Wikipedia:

[El relé] Fue inventado por Joseph Henry en 1835. Ya que el relé es capaz de controlar un circuito de salida de mayor potencia que el de entrada, puede considerarse, en un amplio sentido, una forma de amplificador eléctrico. Como tal se emplearon en telegrafía, haciendo la función de repetidores que generaban una nueva señal con corriente procedente de pilas locales a partir de la señal débil recibida por la línea.

Vamos, que lleva ya un tiempo entre nosotros.

El funcionamiento del relé es realmente sencillo. A un nivel muy básico un relé es un interruptor. Un interruptor metálico que cuando está pulsado deja pasar la corriente y cuando se suelta, no (o viceversa). La magia surgió cuando el bueno de Henry puso un electroiman al lado del interruptor. Cuando una corriente pasa por el electroimán éste atrae hacia sí la placa que hace de interruptor cerrando el circuito. Exactamente igual que si lo hubieramos pulsado físicamente. Así que con una corriente relativamente pequeña (la que pasa por el electroimán), se puede controlar una corriente relativamente grande (la que pasa por el interruptor).

En este animado gif el bloque rosa de la izquierda es el electroimán. La pieza metálica de la derecha, con sus patitas metálicas y sus contactos hace de interruptor. Lo que hay encima son mis dedos, ignorémoslos por el momento. El muelle mantiene el “interruptor” alejado del electroimán, pero cuando una corriente suficientemente grande pasa por el electroimán este atrae magneticamente al “interruptor” y la posición de los contactos cambia.

Esos 48V 31mA que se ven en lo rosa indican que, para que produzca el cambio de estado, por el electroimán debe pasa una corriente de 31 miliamperios, que se consigue conectandolo a un voltaje de 48 voltios. En la caja protectora del relé podemos ver que por el interruptor pueden pasar corrientes de hasta 6 amperios a 220 voltios.

En esa misma caja hay un esquema bastante chulo de las diferentes conexiones. 1 y 4 son los pines del electroimán. En reposo, el interruptor está como en la figura y conecta eléctricamente el pin 6 con el 5, el 9 con el 8 y el 11 con el 12. Cuando pasan 31 mA entre 1 y 4 el estado del relé cambia y pasan a estar conectados 6 con 7, 9 con 10 y 12 con 13.

Los relés se utilizaron en los albures de la informática para construir puertas lógicas por eso de que pueden alternar entre dos estados. Sin embargo, por su naturaleza mecánica, existe un límite (bastante bajo) en la velocidad con que pueden cambiar de estado, aparte de que el movimiento acaba desgastando los contactos. Así que no hubo nada que hacer cuando llegó el transistor allá por 1947, que venía sin partes moviles y sin los problemas que éstas causan.

Hoy en día nuestros heroes evitan al fantasma de la obsolescencia en el terreno de las aplicaciones de potencia porque permiten regular el paso de corrientes muy grandes mediante corrientes de control muy pequeñas. Además, al contrario de lo que pasa con la mayoría de dispositivos semiconductores, los circuitos de potencia (el “interruptor”) y control (el electroimán) estan eléctricamente separados, impidiendo que una posible sobrecarga pueda pasar de uno a otro, con lo que son más seguros.

Publicado en Así va Obsoletos | 4 Comentarios »