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 »


Accediendo al mundo real: así fueron los talleres del puerto paralelo

3 de Junio de 2009 por cogollo

Bueno, los talleres de Obsoletos en Medialab Prado tocaron ayer a su fin con la magistral lección de Sprite sobre microcontroladores. Mientras recopilamos fotos, software y documentación varia sobre este último taller, vamos a repasar lo que sucedió en la anteriores sesiones, con Carlos Rey como artista invitado. Como recordarás de otras películas, Carlos y sus 30 años de experiencia en IBM venían a desvelar todos los secretos del puerto paralelo. Y la verdad es que se desvelaron muchos secretos para tratarse de un taller de 8 horas. Incluso apareció por ahí la tele.

talleres-puerto-paralelo-1

La charla introductoria fue magnífica (ingenieril, le dijimos luego cuando lo comentábamos tomando cañas). Carlos Rey dejó clara su personal relación con el puerto paralelo y estructuró magistralmente los conocimientos, de lo básico a lo útil.

talleres-puerto-paralelo-2

Vino menos gente de la que esperábamos, pero así estaba todo el mundo ancho. Se pudieron hacer muchas más cosas que en el primer taller gracias al kit de módulos que se curró Carlos. Sin soldadores, era todo cuestión de pinchar cables de colorines, algo así como electrónica para niños.

Lo primero fue ver cómo se pueden meter y sacar datos a través del puerto. Una vez sabes hacer eso todo un mundo de posibilidades se hace accesible. Intentamos explorar algunas de esas posibilidades. Entre ellas vimos como controlar un servo, encender una bombilla de “tamaño real”, convertir el puerto en un pequeño osciloscopio, o como usarlo para comunicarse con un par de conversores, analógico/digital y digital/analógico, que hicimos nosotros mismos.

talleres-puerto-paralelo-3

Cómo ya habrás supuesto, el objetivo de este taller no era la producción de un objeto acabado sino proporcionar a los asistentes una serie de herramientas que puedan usar en sus propios proyectos. Es muy importante pues, para nosotros, que se puedan reproducir fácilmente todos los resultados que se obtuvieron durante el taller. Así que aquí tienes una lista de todo lo que hace falta para empezar a trastear:

  • Ordenador: Casi cualquiera te vale. El único requisito es que tenga un puerto paralelo, claro. Nosotros usamos unos viejos ordenadores rescatados de la enorme pila de desechos de la Universidad Complutense. Si no recuerdo mal son todos Pentium 3 a 600 MHz con 256 MB de RAM.
  • Sistema operativo: Cualquier distribución de Linux, configurada adecuadamente debería dejarte ejecutar y modificar los ejemplos que vimos durante el taller. Nosotros, concretamente, usamos Xubuntu 9.04 porque es suficientemente ligera para caber en los viejos ordenadores que teníamos disponibles, pero tambien es suficientemente completa como para que no haga falta instalarle ningun paquete para poder empezar a compilar.
  • Compilador: Para compilar usamos gcc. Viene por defecto con Xubuntu, así que no tivimos que hacer nada, pero si por alguna razón no lo instalaste en su momento puedes hacerlo ahora escribiendo “apt-get install gcc” en la consola.
  • Entorno de desarrollo: En realidad, lo único que necesitas para escribir cualquier programa es un editor de texto. Cualquiera vale, desde el notepad al vim. En el taller usamos Geany, que aún siendo muy ligero permite abrir múltiples ficheros a la vez, autocompleta los nombre de variables y funciones y nos permite compilar y ejecutar nuestros programas con solo pulsar una tecla.

Para que los programas de ejemplo funcionen necesitaras ejecutarlos con permisos de administrador, por lo que antes de poder ejecutarlos directamente desde Geany tienes que ir a “Construir->Seleccionar inclusiones y argumentos” y en el campo “Ejecución” añade sudo al principio, de manera que te quede sudo “./%e”. Por otro lado, algunos programas de ejemplo utilizan funciones de la libreria de tiempo real “rt” así que para poder compilarlos tienes que ir de nuevo a “Construir->Seleccionar inclusiones y argumentos” y añadir -lrt, esta vez al final del campo “Construir”, de manera que tengas gcc -Wall -o “%e” “%f” -lrt.

pantallazo-selecciona-inclusiones-y-argumentos

Al final te tiene que quedar algo como esto

Con esto podrás compilar los ejemplos y cualquier programa que hagas simplemente pulsando F9 y podrás ejecutar el programa recién compilado pulsando F5.

Eso por lo que respecta al software. En cuanto a la electrónica, bueno, si vas a andar usando una placa de prototipado quizá quieras construirte un conector como el que usamos en el taller.

Por último, como material de documentación, te ofrecemos el PDF con la presentación inicial corregida y ampliada (una estupenda introducción al mundo del puerto paralelo) y con los esquemas de todos los circuitos que utilizamos durante el taller. También tenemos para descargar todos los programas que se usaron como ejemplos en el taller.

Y creo que eso es todo. Espero que sea baste para desarrollar eso que tienes en mente. En cualquier caso, si echas algo en falta o te queda alguna duda solo tienes que preguntarnos. Ya sabes donde encontrarnos.

Publicado en Talleres | 4 Comentarios »


Accediendo al mundo real con Carlos Rey, segundo taller de Circuitos rescatados

21 de Mayo de 2009 por skotperez

Circuitos rescatados -- Taller Carlos Rey

Carlos Rey tiene la costumbre desde hace mucho tiempo de recolectar y destripar todo lo que tenga un circuito dentro, y con minuciosidad clasificarlo dentro de un sistema de decenas de cajones de un gran mueble de madera. El mueble es de los años veinte, y salió de una de las  limpiezas que hicieron en la Escuela de Industriales de la UPM. Mientras tanto Carlos ha sido ingeniero de sistemas en IBM durante treinta años, y ha impartido clases en la Escuela de Industriales de la Universidad Politécnica de Madrid, donde estudió y donde actualmente colabora en el desarrollo de proyectos de domótica.

A nivel profesional Carlos Rey vivió y fue partícipe de la entrada del ordenador personal en España, a principios de los ochenta. Durante aquella década se dedicó en IBM a desarrollar periféricos para aquel nuevo ordenador que empezaba a invadir los hogares, adaptando los sistemas que IBM tenía para grandes computadoras.

Guitarra eléctrica construida por Carlos Rey

Carlos Rey con la guitarra eléctrica que construyó en los años sesenta.

En los felices años sesenta, según los denomina él mismo, cuando no tenía más de veinte años construyó una guitarra eléctrica. Modeló la carcasa en madera, hizo las pastillas con bobinas de cable enrollado, el control de volumen y tono con dos potenciómetros, y reutilizó el mástil de una guitarra española que encontró en la calle.

En el taller que empieza hoy y continuará el próximo martes 26, Accediendo al mundo real. El puerto paralelo, nos contará cómo utilizar el puerto paralelo para diversos propósitos. A las 16.30 relatará con una pequeña charla cómo usaban el puerto paralelo en IBM a nivel profesional, por ejemplo para transferir información de ordenador a ordenador; y también cómo sigue siendo útil hoy día.

Mini-taller Accediendo al mundo real. El puerto paralelo, impartido por Carlos Rey.
Medialab Prado. C/ Alameda, 15. Atocha
De 16:30h a 20:30h. Jueves 21 y martes 26 de mayo.
Más información

Publicado en Talleres | 1 Comentario »


Calentando motores | 17 de Abril de 2009 por cogollo

Calentando motores

Mira tu por donde, estaba yo buscando información para hacer un post sobre como controlar motores paso a paso con el puerto paralelo cuando me encuentro con que se me han adelantado. Hackaday y Hackedgadgets se las han arreglado para reseñar el mismo día este instructable sobre como controlar los dichosos motores. El autor, un chaval de 13 años del Canadá, dice que quiere construir su propia máquina de control numérico. También dice que ha hecho la caja del circuito de cartón para reducir el impacto ecológico del cacharro, y está usando los motores de un viejo escaner.

Y la verdad es que promete.

Etiquetas:    | 2 Comentarios »


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 »