sábado, 17 de mayo de 2008

Farola.



En realidad este post lo debería hacer Luisa, ya que fue ella la que hizo la farola y a la que se le ocurrió la idea, pero como no está muy por la labor últimamente, pues lo pongo yo. (A ver si en verano la lío para que haga estas cosas ella misma)

Así que empezamos. En general hacemos fiesta en Halloween, y preparamos decoración casera, ya he puesto más posts sobre el tema en el blog, por ejemplo, el del Cortador de hilo caliente que usamos para hacer las lápidas, o el de la Lámpara candelabro.

Esta vez, Luisa, que es muy aficcionada a los libros (y pelis) de fantasía, se inspiró en las Crónicas de Narnia y decidió que una farola del estilo del de la película quedaría estupenda, y se puso manos a la obra..... y como ya teníamos idea de ir poniendo estas cosas en el blog, fue sacando fotografías del proceso.

Así que empezamos. Antes de nada, los ingredientes.

Necesitaremos un tubo y un cubo para hacer el cuerpo y la base. Otro cubo, más pequeño y transparente para la parte de la luz, platos de plástico, listones de madera, un par de pelotas pequeñas de goma, algo para hacer un pequeño tejadito, cinta aislante negra, y pintura negra también.



El tubo es de un rollo de mantel. A lo mejor no caeis en un principio, pero os explico. Es típico encontrar en las tiendas de todo a 100 un tipo de manteles con acabado plástico, suelen tenerlos en rollos y se compran por metro, os cortan la medida que querais. Suelen tenerlos con distintos acabados, y suelen tener distintos rollos.
Este tubo de cartón es en el que van enrollados los manteles, y cuando se termina el mantel, pues tiran con él. Luisa aprovechó y se quedó con uno. Son largos (sobre metro y medio) y bastante sólidos, además de muy ligeros.
Si no encontrais este tipo de tubos, cualquier tubo de plástico o de cartón de unas medidas similares y que sea sólido os servirá. No os recomiendo usar tubos metálicos, pesan mucho y cuesta mucho trabajar con ellos, y esta farola es un adorno de interior, por lo que no vale la pena el esfuerzo.

El cubo transparente no recuerdo exactamente de qué era, pero era una de estas dos: Un cubo de palomitas (los tienen en algunos lados, en plan cubo con tapa y asa llenos de palomitas hasta arriba, para los muy palomiteros en el cine, o que no se comen todas las palomitas de golpe y quieren guardarlas) o si no, un cubo en el que vienen las gominolas. Las tiendas de chucherías compran las gominolas en tarros grandes, y en ocasiones esos tarros tienen esa forma de cubo transparente.
Así que, o bien os comprais uno de esos cubos de palomitas, y os veis un par de pelis, o vais a la tienda de chucherías más cercana y le pedís que os guarden uno de esos cubos. Como depende de tiendas y de marcas, a lo mejor os cuesta encontrar un cubo de estas características. Más abajo pondré otro método para hacer la parte de arriba de la farola, que utiliza materiales más comunes (aunque lleva un poco más de trabajo)

También se ve en la foto una especie de cono negro. Será el tejado de la parte de la luz de la farola. Luisa encontró una tapa de chimenea metálica, que además de estar ya pintada de negro era justo del tamaño que necesitaba, así que ya utilizó esa. Vosotros podeis hacer un cono con cartón, acetato, o lo que tengais a mano, y luego lo pintais de negro.




Los cubos. Son cubos de los normales de toda la vida, a los que se ha quitado el asa. Luisa cogió dos, para dar estabilidad, pero en realidad con uno es suficiente; eso sí, la farola no se aguantará únicamente con el cubo, pero eso ya lo explicaré luego.




Cuatro palitos, del alto del cubo que vayamos a utilizar para la parte de la luz, y un poco gordos, para que se vean. Da igual que sean redondos, cuadrados... podeis buscar un listón largo, y cortar cuatro trozos de la misma longitud.



Otro listón, este más largo, sobre 40 o 50 centímetros, y dos bolas de goma o espuma, de las pequeñitas. Considero que este listón queda más bonito si es redondo.
Luisa consiguió uno largo, y cortó trozos para hacer esto, y para la parte de la luz.



Unos platos de plástico de los normaluchos de toda la vida, uno grande y otro pequeño. Posiblemente con el grande sea suficiente, pero con los dos quedará más estable la cosa.

Supongo que ya se habrá fijado casi todo el mundo que muchas de las piezas ya estaban pintadas de negro cuando se sacaron las fotos... excepto el cubo transparente, que debe ser transparente, el resto de las piezas van de negro.

Pues bien, empezamos por el montaje, vamos a ir de abajo hacia arriba.

En primer lugar hacemos un agujero en el centro del culo del cubo, del diámetro del tubo que tengamos. La idea es que el tubo encaje ahí. El cubo boca abajo será la base de la farola, y el tubo será el cuerpo.
Si lo probais vereis que sí, se aguanta en pie, pero es muy inestable, así que hay que hacer algo más para que eso aguante bien.
En nuestro caso, aprovechamos una plancha de poliestireno y cortamos un círculo, del tamaño de la boca del cubo, y se lo encajamos a modo de tapa. Luego, en ese círculo de poliestireno hicimos un agujero del tamaño del tubo, y por último encajamos todo junto. De ese modo, el tubo va sujeto en dos puntos, uno en el culo del cubo, y otro en el disco de poliestireno encajado en la boca del cubo.

Seguimos subiendo.
En la parte superior de la farola, como un palmo por debajo del extremo superior, hacemos un agujero en el tubo, y atravesamos el listón largo, procurando que quede horizontal y centrado.
Clavamos las bolas en las puntas del listón, y listo, ya tenemos terminada la parte de abajo de la farola, solo queda la parte de la luz.

La parte de la luz tiene un poco más de chicha, y además voy a explicar dos formas de prepararla.

Vamos a seguir de abajo hacia arriba, así que empezamos por la parte que se junta con el tubo.

Primero hacemos un agujero en el centro de los platos, del tamaño de un rollo vacío de papel higiénico, y pintamos los platos, y el rollo vacío de negro.


Después los pegamos como se ve en esta foto:


El plato pequeño está pegado sobre el grande, boca abajo, el rollo de papel higiénico los atraviesa, y está cortado en lenguetas en la punta, para pegar el rollo al plato y que no se mueva.

La idea es que esta base irá encajada en el hueco del tubo principal. En nuestro caso el rollo de papel higiénico era justo del tamaño apropiado. Si vuestro tubo tiene otras medidas quizás tengais que improvisar algo.

Ahora, sobre esta base irá lo que en una farola de verdad sería la parte de cristal
Para eso vamos a utilizar el cubo transparente.
El cubo llevará colocados los palos cortos, a modo de soportes. Los podeis pegar con cinta aislante negra, y usarla no solo para fijar, si no también para decorar.
La cosa queda más o menos así:


Esto va colocado encima de la base hecha con platos:


Se fija bien, usando pegamento, cola térmica o cinta aislante, se adorna un poco con la propia cinta, ponemos dentro la vela o la bombilla y se le coloca el tejado.
Una cosa muy importante si vais a poner una vela dentro. Las velas (las llamas en general) arden quemando oxígeno, si las poneis en un sitio cerrado, en muy poco tiempo consumen todo el oxígeno y se apagan. Esto significa que el tejado tiene que estar un poco separado de los bordes, para que pueda entrar aire.

Por último, toda esta parte se encaja en el tubo, y listo, ya tenemos nuestra farola preparada.



Sencilla, barata, rápida de hacer, y muy vistosa. Por supuesto, se podría adornar con más cosas, pero eso ya queda a gusto de cada uno dependiendo de sus ganas, su tiempo libre, y su habilidad artística.



Y ahora en plan post-data, otro modo de hacer la parte de arriba.
Esta parte no la llegamos a hacer, con lo que no hay fotos, pero pondré dibujitos para que se entienda.



La idea es hacer una farola más cuadrada en vez de esta redonda, que da el pego y queda bien.
Para eso, vamos a utilizar para los lados, planchas de acetato. Es muy fácil conseguirlas en algún sitio donde enmarquen fotos. En general los marcos llevan un cristal, pero para según qué cosas, en vez de cristal usan acetato, que lo podeis cortar en casa, con mayor o menor dificultad.

No hace falta que el acetato sea muy gordo con tal de que os de suficiente rigidez para montarlo. Con 1 milímetro de espesor ya os sobra.

En total harán falta 9 piezas, podeis hacerlas todas con el mismo acetato, o hacer de acetato solo las paredes, y la base y el tejado hacerlas con cartón o con lo que sea; esas partes van pintadas, así que da igual qué material utiliceis.

Las plantillas serían estas más o menos. Probad a recortar en un folio o en una cartulina antes de meteros con el acetato para buscar las proporciones que os gusten.


Tendreis que hacer cuatro de cada. Cuatro paredes y las cuatro partes del tejado.

Para cortar el acetato, buscad algo sólido y recto que podais utilizar como regla. Un listón o algo parecido sirve perfectamente. Ahora lo colocais por donde querais hacer el corte, y con un cuchillo o navaja marcais. No intenteis cortar hasta el fondo, ya que es muy complicado, pero sí que tiene que quedar un surco visible.
Una vez marcada la línea, partís el acetato, como si fuese una tableta de chocolate. O sea, apoyais el acetato en una mesa, con la raya marcada un poco por el exterior de la mesa, fijais con una mano a la mesa, y con la otra tirais hacia abajo de la parte que quereis cortar, hasta que hace clack, y se rompe por la línea.

Los bordes irán tapados, así que no pasa nada si no quedan demasiado bonitos. Eso sí, procurad que queden rectos.

Si os fijais, con este método hacer las muescas que tienen las paredes en la parte de arriba es muy complicado. No pasa nada. Esas muescas tienen la única función de separar el tejado para que haya ventilación. Podeis recortar la pieza con el borde recto, y luego pegarle las muescas, o buscar otro sistema para levantar el tejado.

Con el tejado hacemos una pirámide. La pegamos como queramos, y luego le pasamos la mano de pintura para que quede homogénea.

Para la parte de abajo, montamos más o menos así:


Usamos cinta aislante o pintura en los bordes, de modo que todas las aristas queden en negro

Ahora solo nos queda hacer la base, que será cuadrada. Apoyamos las paredes en la base, el techo en las paredes, y todo el conjunto en el tubo principal. Lo mejor es improvisar algún sistema como el del rollo de papel higiénico para que todo quede bien fijado, o utilizar mucho pegamento o cinta aislante.


Y con esto terminamos la farola, ahora sí, definitivamente. Espero que os sirva para esas fiestas que a partir de ahora estarán un poco más decoradas.

miércoles, 14 de mayo de 2008

Robot Xilófono - Parte 4: Programación e interfaz.

Bueno, con este post termino ya el tutorial del robot. Este en vez de fotografías llevará código, así que me temo que para quien no le guste la programación, pues será un post un rato pesado.

Antes de ponerme a explicar lo que yo hice, voy a explicar qué opciones tenemos para controlar el robot.

Lo único que necesita el robot es que le mandemos números por el puerto paralelo, si tenemos un programa que ya hace eso, pues ya nos sirve. Ahora bien, como es un robot musical, es importante cuándo mandar los valores. Por ejemplo: Es posible que haya algún modo de mandarle valores mediante algún tipo de impresora, de modo que simplemente tendríamos que darle a imprimir un documento con los valores, y el propio sistema operativo se encargaría de enviar los datos al robot. Pero ¿Cuánto tardaría en empezar? ¿Y si mete el trabajo en cola para imprimirlo un poco más tarde? ¿Manda todos los datos igualmente espaciados en el tiempo? ¿Cuánto tiempo pasa entre un dato y otro?
Hay demasiadas cosas que no controlamos, y que sería interesante controlar.

Lo mejor en este caso es conseguir acceso directo al puerto paralelo, y meter los datos directamente cuando nosotros queramos.

¿Cómo se consigue acceso al puerto paralelo?
En Linux, hay que ejecutar el programa como superusuario, y usar sus funciones para pedir permisos de acceso.
En Windows no existen esas funciones, así que hay que buscar librerías que suplan esa carencia, y den acceso al puerto de la impresora.

Aparte de las consideraciones del sistema operativo, tenemos que tener en cuenta el lenguaje que vamos a utilizar. Algunos lenguajes tienen funciones del tipo outb(valor, puerto). Si conseguimos usarlas, es un modo directo y efectivo de mandar datos al puerto paralelo. Otros lenguajes tienen librerías para acceder al puerto paralelo. Buscando información me encontré con pyParallel, que es una librería para acceder al puerto paralelo desde Python.
Dependiendo de qué lenguaje querais usar, tendreis que buscar librerías y similares.

En mi caso me decanté por lo conocido y sencillo, que fue lenguaje C en sistema Linux. La limitación de esta elección fue que el programa debe ejecutarse como superUsuario, pero por el resto, da acceso directo al puerto paralelo, y el C es un lenguaje con el que estoy muy familiarizado.

Así que lo primero es explicar cómo accedemos al puerto paralelo.
Jairo me pasó este archivo:
/***************************************************************************
* parport.c
*
* Wed Dec 27 03:22:16 2006
* Copyright 2006 Jairo Chapela Martínez
* jairochapela@gmail.com
****************************************************************************/

/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/

#include <stdio.h>
#include <unistd.h> /* needed for ioperm() */
#include <sys/ioctl.h>
#include <sys/io.h>
#include <fcntl.h>
#include <linux/parport.h> /* for outb() and inb() */
#include <linux/ppdev.h>

#define BASE_PORT 0x378

int fd;
const char* parport_path = "/dev/parport0";

int init_parport (void)
{
fd = open (parport_path, O_RDWR);
if (fd < 0)
{
printf ("Sorry, you were not able to gain access to the ports\n");
exit (1);
}

return 0;
}


void parport_write (unsigned char byte)
{
int value = byte;

if(ioperm(BASE_PORT, 3, 1))
{
perror("ioperm");
exit(1);
}

outb(value, BASE_PORT);
}

Podemos compilar el fichero c y hacer una librería, podemos incluirlo como si de un fichero .h se tratase, o podemos copiar las funciones y pegarlas en nuestro código. init_parport() inicializa el puerto y parport_write(byte) manda un byte al puerto paralelo.

Con estas dos funciones ya podemos comunicarnos perfectamente con nuestro robot. Cómo programe cada uno su interfaz ya es otra cosa.

Mi interfaz tenía esta pinta.


Como era para el día de la ciencia en la calle, quería que fuese una cosa que llamase la atención, y que fuese fácil de utilizar. Opté por el OpenGL por que ya lo había usado antes, y las cosas en 3D quedan muy bonitasy resultonas.

La interfaz funciona de la siguiente manera:
Al pulsar en las teclas de abajo, se envía directamente el dato al puerto paralelo, y se toca la nota al momento. De ese modo, es como un teclado, al pulsar una tecla, suena la nota.
En la partitura se pueden poner notas, y al darle a play (El botón con la flecha azul) se tocan todas seguidas.
Las flechas rojas son para cambiar de página, para poder hacer canciones un poco largas, ya que en esa partitura solo caben 24 notas. La página actual se puede ver encima de la partitura, hay un total de 10 páginas.
Hay unos botones de siguiente y anterior (botones con la flecha y un cuadro azules), que sirven para cambiar de canción entre las que hay guardadas en disco.
El botón de stop (el del cuadrado azul) para de reproducir la canción en curso.
Por último, el botón de grabar (círculo rojo) guarda en disco la partitura actual.

Un detalle que ya tenía pensado, pero que consideré imprescindible una vez que me dijeron que nos iban a poner una pantalla táctil, es el de las animaciones. Por un lado, está bien tener algún tipo de animación continua de fondo. En mi caso, el toroide de la esquina superior derecha.
Su única función es que se vea que está funcionando, un poco a modo de los salvapantallas, es algo que se mueve, y por lo tanto el ordenador está haciendo algo. También sirve para tener una referencia de la fluidez de las animaciones, y saber si se nos ha colgado el programa.
Por otro lado, los botones y "entes pulsables" deberían tener todos algún tipo de animación, y más en una pantalla táctil. En general la gente espera de los ordenadores respuestas inmediatas. Si pulsas un botón, tiene que pasar algo, y si el programa es lento, la partitura tiene silencios al principio, o el xilófono tarda un poco en dar la primera nota, la gente se impacienta, así que tienes que dejar bien claro que sí que han pulsado el botón. Lo normal es animar el botón. La gente pulsa el botón, ve que el botón se hunde, y sabe que lo ha pulsado. En una interfaz con un ratón o similar, tenemos el propio botón del ratón para convencernos, pero de una pantalla táctil no solemos fiarnos, por que no hay mecanismo físico tangible, así que tenemos que hacer un mecanismo software tangible.

Lo siguiente que queda ya es programar en C usando las librerías de OpenGL. En este caso utilicé también las librerías GLU y GLUT, que facilitan muchísimo el uso de ventanas, ratón, teclado, timer, etc. Y que además son portables entre plataformas, con lo que el mismo código OpenGL se puede compilar en Windows y en Linux sin mucho problema.

En principio no voy a comentar aquí cómo se utiliza el OpenGL, por que para eso hay tutoriales, cursillos, ejemplos, etc. Pero si alguien está muy interesado, puedo pasarle el código, o comentarle algunos truquillos, o darle alguna página de referencia.

Y bueno, aquí se acaba el tutorial del robot que toca el xilófono.... ya tengo ideas para los siguientes experimentos, ahora solo necesito tiempo libre, y una excusa para fabricarlos ^__^

Pd. Perdón por el código sin indentar ni nada, pero no encuentro un modo sencillo de ponerlo con sus tabulaciones, espacios y demás... tendré que investigar al respecto.

Robot Xilófono - Parte 3: El montaje.

Bien, ahora que ya sabemos cómo va la electrónica, vamos a ver cómo se monta el resto del aparato. Este ya va a ser el típico post de inventos que se hacen con lo que se encuentra por casa.

Lo primero fue buscar un sistema eficaz para golpear las notas del xilófono.

En un primer momento pensé en electroimanes. Pondría los palos elevados con muelles y atados a una chapa, que sería atraída por el electroimán.
Me fue completamente imposible encontrar electroimanes, con lo que no pude hacer pruebas, y no sé qué tal funcionaría el invento así.

Descartados los electroimanes por la imposibilidad de conseguirlos, la siguiente opción eran los motores eléctricos.

La primera idea con los motores fue hacer lo mismo que con los electroimanes. Palos con muelle, motor debajo, y un cordel atando el palo al motor, cuando el motor gira, recoge la cuerda y el palo baja.
La idea no funcionó demasiado bien cuando la probé, así que pasé al plan B. Buscar palos gordos, y encajarlos directamente en los ejes de los motores.

En casa tenía palillos chinos (de los de comer) que eran perfectos para el invento.


Como estos palillos tenían que golpear en las notas del xilófono, necesitaban algún tipo de bola en las puntas, así que me pasé por una tienda de abalorios, y me compré estas.


Ya vienen perforadas, por que se utilizan en collares y similares. Lo único que tenía que hacer, era encajar el palillo en el agujero de las bolas.

Además, hacían falta motores. Cogí de los motores cutres típicos. Los que funcionan con una pila cualquiera. De los que tenía en casa cuando era pequeño de haber desmontado algún juguete.


Ahora la duda era ¿Cómo enganchar los palillos al motor?
En un primer momento uno puede pensar en hacer un pequeño agujero en la punta del palillo, y encajar ahí el motor, pero esto tiene dos problemas.
En primer lugar, la distancia desde el motor hasta la punta del palillo es muy grande, y obliga a colocar los motores más alejados del xilófono, cuando lo mejor sería un diseño más compacto.
Por otro lado, la fuerza que tiene que hacer el motor para mover una cosa depende de la masa de esa cosa, y de la distancia de esa masa al centro de giro. Esto suena raro, pero es fácil de entender. Cuesta mucho menos girar algo por su centro que por una esquina. Si colocaba el motor hacia el centro del palillo, recortaba la distancia a la punta, y el motor necesitaba menos potencia para mover el palo.

El siguiente problema era cómo hacer que los palillos volviesen a levantarse una vez que el motor estuviese en reposo.
Al tener un trozo de palillo sobrante por la parte de atrás, se me ocurrió que si ese trozo pesaba más que el otro, caería siempre, y el palillo volvería a su posición erguida en el momento en el que el motor dejase de funcionar, así que me puse a hacer los agujeros en los palillos; uno para encajar el eje del motor, y otro para colgar un peso.

Los palillos agujereados quedaron así:


Ahora solo había que colocarles la bola en la punta, y encajarlos en los motores.

Un poco de cola térmica ayudó a que las piezas quedasen bien unidas.

Ahora tocaba buscar pesos. En un primer momento pensé en colgar algún tipo de saquito con arena, así podría ajustar el peso que quería. Pero eso era mucha complicación, quedaba feo, y ocupaba mucho espacio en el montaje final, así que opté por esto:



Plomos de pesca. Muy pequeños, fáciles de colocar y como los hay en muchos pesos, no me costó encontrar el que más me convenía.

Para continuar el montaje ya necesitaba empezar a cuadrar las cosas, así que saqué el xilófono de su bolsa.


Una vez montado todo el sistema de los motores y con el xilófono delante, me di cuenta de una cosa. En total, motores, palillos, pesos y bolas, eran más anchos que las notas del xilófono, lo que significaba que no podía poner los 8 juntos y seguidos, así que decidí hacer dos grupos de 4 motores, uno a cada lado del xilófono.

Para colocar los motores en su sitio necesitaba una base.
La base debería:
Tener sitio para el xilófono
Tener sitio para el circuito
Elevar los motores por encima del xilófono, para que los palos golpeen desde arriba
Limitar en cierto modo el movimiento de los palos.

Así que cogí unos trozos de contrachapado que había en casa, y preparé esto:


Un hueco para el xilófono, unas plataformas elevadas a los lados, y un hueco lateral donde colocar la circuitería.
El hueco lateral para la circuitería me quedó muy escaso.... es lo que pasa por cortar la madera sin tener todas las medidas. Sirvió igualmente, pero parte del circuito está en el aire.

Ahora solo había que colocar los motores en su sitio. Para esto utilicé cola térmica. Es cómoda, fácil de usar y rápida.
De modo que pegué los motores en sus plataformas, con cuidado de que al caer diesen exactamente en su nota del xilófono.
Quedaron así:


Una de las ventajas de la plataforma para los motores es que los palillos no podían subir hasta la vertical, y al reducir el ángulo que suben, se reduce también el tiempo que tarda el motor en bajarlo hasta que golpea, además de que queda más bonito.

Un detalle más de cerca de la colocación de los motores y de los plomos:


Bien, de modo que ya tenemos una estructura con el xilófono, y los 8 motores colocados, con sus palillos con bolas en una punta, y plomos en la otra.

Ahora solo quedaba conectar todo para que funcionase. Para eso, había que colocar la circuitería.


La coloqué para que se viese bien. Al fin y al cabo, el chisme fue diseñado para el Día de la Ciencia en la Calle, y debería verse cuanto más mejor del mecanismo de funcionamiento.
Como no tenía tornillos, y de todos modos el contrachapado era un poco fino para ellos, simplemente pegué las placas con los circuitos a la madera con cinta adhesiva por las dos caras. Esta cinta pega mucho, y tiene un poco de acolchado entre las dos caras con pegamento, lo que viene bien ya que la placa, por la parte de abajo también tiene soldaduras y similares, que evitan que se pueda pegar directamente y de forma contundente.

El cableado es un poco tedioso, por que hay muchos cables. Para empezar, del cable de la impresora llegan 9 hilos, uno de los cuales hay que replicarlo 7 veces. Los circuitos necesitan alimentación. Y por último, los motores deben ir conectados a los relés.
En total, unas 60 terminaciones de cables que hay que colocar, pero con seguir las instrucciones e ir poco a poco no hay problema.

Un detalle con respecto a los cables y a la alimentación. Los relés del circuito son interruptores, y están preparados para ser interruptores de aparatos que funcionen prácticamente a cualquier voltaje. Eso significa que los motores pueden funcionar al voltaje que nos de la gana.
Estos motores funcionan normalmente entre 3 y 6 voltios. A más voltaje, más velocidad del motor.
Buscar otro transformador de 5 o 6 voltios para los motores era un rollo, además de que así necesitaríamos 2 enchufes. Estos motores pueden funcionar a 12 voltios siempre que no se los tenga activos demasiado tiempo (En una de las pruebas uno se quedó atascado funcionando a 12 voltios, y casi se quema. Lo desenchufamos en cuanto pudimos, pero ya estaba echando humo)
En este robot, los motores funcionan durante una décima de segundo más o menos; lo suficiente para que le de tiempo a bajar al palo para golpear el xilófono. Con menos tiempo el golpe sonará más suave, con menos tiempo aún, el palo no llegará a tocar el xilófono. Con más tiempo, la nota sonará más fuerte, con más tiempo aún, el motor estará haciendo fuerza aunque el palo ya esté abajo.
Como la mayoría del tiempo los motores estarán parados, y hay que esperar a que el palo vuelva a su posición antes de tocar otra vez la misma nota, los motores no suelen sufrir mucho, aunque estén conectados a 12 voltios, y como con 12 voltios funcionan más rápido, y eso significa menos tiempo entre nota y nota, y además, el circuito ya funciona con 12 voltios, pues aprovechamos el mismo transformador para todo, y hacemos que todo funcione con 12 voltios.

Por cierto, el transformador era este:


Como tenía que mover 8 motores además de dar corriente al circuito, el de la tienda de electrónica me dijo que me llevase uno de 2 amperios, y es probable que le hagan falta. Si haceis pruebas con el típico adaptador de pilas, sabed que esos tienen entre 300 y 500 miliamperios, y probablemente los esteis forzando y podais estropearlos, o quizás sencillamente no tengan potencia para mover bien los motores, así que sed cuidadosos con las pruebas, y para la versión final comprad uno de estos, que total solo son 15 euros.

Bueno, pues ya tenemos base, xilófono, mecanismos de golpear, circuitería y alimentación. Y el resultado final fue este:


Quizás un poco tedioso de explicar, pero en realidad es un mecanismo muy sencillo.

A mucha gente le llamó la atención que usase plomos de pesca, palillos chinos, o los típicos motores con los que jugaban de pequeños. Una cosa es plantear la ciencia de modo sencillo para que lo pueda entender todo el mundo, y otra es montar los robots con piezas que tenemos en casa, o en la tienda de la esquina.
No me lo esperaba, pero mucha gente se fijó en eso, y les pareció muy simpático.

Y bueno, dentro de poco, la cuarta y última parte, la que trata del software que controla este robot desde el ordenador.

martes, 13 de mayo de 2008

Robot Xilófono - Parte 2: El circuito.

Hoy toca hablar de la circuitería que hace posible la comunicación entre el ordenador y el robot. Es una parte muy importante del robot, en general la que más asusta, pero se puede tratar como una caja negra. O sea, es un circuito, que por un lado se conecta al puerto paralelo, y por el otro activa cosas. No es necesario saber cómo lo hace si no queremos, así que en realidad no es necesario controlar de electrónica para montarlo o para usarlo, simplemente lo montamos como dicen las instrucciones, y nos creemos que funciona.


Vamos a empezar por el puerto paralelo.
¿Por qué el puerto paralelo? ¿Por qué no un puerto USB, o el puerto serie? La respuesta es bien sencilla. Por que es más fácil.
Que un puerto sea Paralelo, significa que manda los datos a la vez. El puerto paralelo estándar del ordenador puede mandar 8 bits de información (ocho unos o ceros) de golpe. Un puerto serie, o USB, por el contrario, mandan los datos uno a uno con un tiempo determinado entre uno y otro. La diferencia a la hora de trabajar con ellos es que con el paralelo, recibes los 8 datos separados, con el serie, recibes uno, esperas un tiempo, recibes otro, esperas un tiempo, recibes otro, esperas un tiempo.....
Imaginaos que yo os voy a pasar un número de teléfono escrito en un papel, para que llameis. Tengo dos opciones, puedo escribir todo el número en un único papel, y os lo doy, o puedo escribir cada número del teléfono en un papel distinto, y os voy pasando los papeles uno por uno.
En el primer caso es muy fácil llamar, cogeis el papel, marcais el número, y punto.
En el segundo caso, teneis que ir guardando los números que os voy pasando, bien ordenaditos, y cuando ya están todos, juntarlos y llamar.
El primer caso sería el puerto paralelo, el segundo el puerto USB o serie. No es demasiado difícil darse cuenta de que es más fácil el primer método.

Ahora se preguntará alguien ¿Por qué se usa tanto el USB entonces? pues por que es mucho más versátil. Siguiendo con el ejemplo del teléfono. Imaginemos que en el papel caben 9 números, ni uno más, ni uno menos, siempre hay 9 números. ¿Qué pasa si queremos llamar al extranjero, que hay que pulsar unos 12 números? No nos caben... ¿Qué pasa si queremos llamar a un teléfono de información? Eso son solo 5 números a lo mejor, nos sobran. Un puerto paralelo está muy limitado.
En cambio si os voy pasando los números uno a uno, os puedo mandar un número de teléfono tan grande o tan pequeño como quiera. Esa versatilidad es lo que hace que hoy en día se utilice tanto el USB.

Bien, que me estoy liando con cosas que poco tienen que ver con el robot.
Vamos a usar el puerto paralelo, así que hay que saber para qué vale cada cosa. Esta es la pinta del enchufe del puerto paralelo.

Si pinchais en la fotografía y la veis en grande, pueden distinguirse los números de los pines, empiezan en 1 y acaban en 25, de izquierda a derecha, primero la fila de arriba y luego la de abajo.

Para este invento vamos a usar 9 pines únicamente.

Los pines del 2 al 9 son los que transportan los 8 bits de datos. El pin 2 es el bit de menor peso, y el 9 el de mayor peso.
El noveno cable es el cable de tierra. Todas estas cosas de electricidad funcionan con 2 cables, bueno, este es el segundo, para todos los otros. Este lo podemos enchufar en cualquier pin entre el 18 y el 25, ya que tienen todos la misma función.

Así que ahora ya tenemos nuestro enchufe paralelo macho, y ya sabemos qué pines vamos a usar..... pues toca coger el soldador de estaño, y soldar los cables a donde tocan.
Yo compré cable de 10 hilos.... me sobró uno, pero es mejor que comprar los hilos sueltos y que luego queden por ahí.
Si no habeis soldado mucho, esto puede ser un suplicio, así que, paciencia, y practicad un poco antes, son soldaduras pequeñitas y se pueden hacer difíciles. Despacito y con buena letra, que se suele decir.
Esta fue la pinta que le quedó a mi enchufe.

Como podeis ver, hay estaño en el pin 1.... nos confundimos al soldar, y tuvimos que "des-soldar" después para poner el cable donde tocaba, también hay estaño en el pin 25, por que el cable de tierra iba ahí enchufado en un principio, pero no me fiaba y lo cambié de sitio.
También se puede ver, por los goterones de estaño, que no estoy muy habituado a soldar estas cosas. Necesité a alguien que me sujetase los cables para que no se moviesen mientras los soldaba.
Cuando soldeis, apuntad los colores de los cables, y a qué pin van.
En mi caso eran: 2-Lila 3-amarillo 4-marrón 5-verde 6-rosa 7-gris 8-azul 9-rojo 24-negro

Bueno, una vez soldado esto, le colocamos la caja, y listo, ya tenemos nuestro cable de puerto parelelo listo para usar.


Ahora toca la parte del circuito.

El circuito en sí no es un circuito, son 8 circuitos iguales, enchufado cada uno a uno de los cables de datos.
El circuito es este:

Si llevais este dibujo a una tienda de electrónica, os pueden dar las piezas sin problema, luego solo teneis que soldarlas según el dibujo (recordad que los diodos y los transistores tienen que ir con su orientación, si los colocais al revés pueden explotar)
Vcc es la corriente que necesita el circuito para funcionar, 12 voltios.

¿Y qué hace este circuito? La señal que llega del puerto paralelo tiene 5 voltios, y muy pocos amperios. Si intentais mover un motor o activar un relé con eso, os encontrareis con que no tiene potencia suficiente. Además, los motores, relés y electroimanes, tienen bobinas, que pueden devolver corriente por el cable, y fastidiaros algo en el ordenador.

Este circuito hace 2 cosas:
Protege el puerto paralelo de los posibles problemas que puedan dar las bobinas.
Aumenta la potencia de la señal a 12 voltios, con una corriente decente.

O sea, a la pieza K1 del circuito (en este caso es un relé) le llegarán 12 Voltios cuando entre una señal por el puerto paralelo.

El relé funciona como un interruptor. Se le enchufa algo, y ese algo se enciende o se apaga según llegue señal o no por el puerto paralelo.
Así que la idea es sencilla.... tenemos una entrada del puerto paralelo, un circuito que amplifica la señal, y un relé que enciende el mecanismo que golpea el xilófono cuando queremos, solo tenemos que repetir esto 8 veces, y ya podemos manejar 8 notas.

Para quienes quieran meterse con rollos de electrónica lo menos posible, estos circuitos ya vienen montados (yo no lo sabía, me lo dijeron en la tienda de electrónica cuando fui a por los componentes)
Como esto lo costeaba la universidad, y preferíamos soldar lo menos posible, compramos los circuitos ya hechos.
Esta es la pinta que tienen:

Ya le había colocado el cable de tierra común en las señales cuando saqué la foto.
Un detalle interesante es que tiene leds, que se encienden cuando llega la señal, y claro, con lucecitas estas cosas siempre quedan más chulas.
Como la placa venía con 4 circuitos, tuvimos que comprar 2.

Estas placas vienen con instrucciones, para que sepais dónde poner cada cable.



Así que lo único que quedaría por hacer, es poner todos los cables.
El resultado, en mi caso, quedó así:


Y listo, ya está terminada la parte electrónica del robot.

Posiblemente existan placas de este estilo que funcionen por USB, todo es cuestión de buscarlas, o de desmontar un ratón o un joystick y aprovechar el chip controlador USB que llevan dentro. Como es algo que me interesa, cuando tenga tiempo buscaré información, y el siguiente robot irá por USB.

lunes, 12 de mayo de 2008

Robot Xilófono - Parte 1: Idea General.

Bueno, aquí empezamos las explicaciones de cómo se hace el robot que toca el xilófono. Jairo me convenció para que lo ponga en partes y así sea más digerible, así que en este post explicaré la idea, el "¿Cómo se te ocurrió hacer eso?"

Empezamos por el principio. Todos los años en la ciudad de A Coruña se celebra el llamado Día de la Ciencia en la Calle. Durante ese día los museos (especialmente los museos científicos) tienen las puertas abiertas y entrada libre, y en el parque de Santa Margarita (que es donde está el Museo de las Ciencias de Coruña) los colegios, institutos, facultades, organizaciones y grupos varios, montan sus stands, intentando acercar un poco la ciencia a la gente de la calle, sobre todo a los niños, que sin duda son los que más disfrutan con todo esto.

Podeis ver más información sobre los museos aquí.

Este año, la Facultad de Informática también participaba con un stand propio, y la gente que organiza todo el cotarro, puso carteles por la facultad, y no me pude resistir a echar una mano, y participar en un evento al que suelo asistir como público y que me parece una idea genial.

Así que llegamos a la primera reunión. Ya había una idea básica de qué grupos se iban a hacer y de qué temas se iban a tratar, entre ellos: Software Libre, Internet, Historia de la informática, Reciclaje o Robótica.

Y pensando en qué podríamos hacer y buscando por internet, encontré cosas como estas:

En primer lugar, os presento a Lev y a Thumbpot. Unos robots cantidad de simpáticos de los que se encuentran navegando por YouTube:



Por otro lado, tenemos el "Prototipo", creado por Jairo para la fiesta de fin de año de 2005 para controlar la iluminación según el sonido de la música.

Este aparato recibe datos por el puerto paralelo del ordenador, y activa los relés según qué reciba. Las luces iban conectadas a los relés, y Jairo había hecho un programa que las activaba según la frecuencia de la música, el ritmo, etc...
Está medio desmontado, por que tuve que comprobar cosas como dónde van los cables y similares. Tengo que darle las gracias a Jairo por prestármelo y explicarme cómo funcionaba.



Una vez vistas estas dos cosas, el cómo se llega a un robot que toca el xilófono mediante señales del puerto paralelo de un ordenador es sencillo.

Hacer un robot como Lev, que toca el Theremin habría sido cuando menos complicado, necesita motores paso a paso para controlar los ángulos, y además, conseguir un Theremin no es tarea fácil.... ahora bien, Thumbpot, que es el robot percusionista, es otra cosa, solo necesita unos palos conectados a unos electroimanes, que golpeen cuando les llegue una señal. Y bueno, una vez que se decide hacer un robot percusionista, solo había que escoger un instrumento de percusión fácil de usar, barato, y sencillo. ¿Qué mejor que un xilófono de niños? Solo tienen 8 notas y son muy sencillos y baratos, pero aún así suenan muy bien, y como son para niños, tienen un tamaño muy manejable.

Este fue el xilófono que encontré en Toys'R'Us, y que me pareció perfecto para el robot.



Y bueno, el restultado, el robot que estuvo en el stand de informática todo el día tocando notas en el xilófono, y que milagrosamente aguantó el trajín de cientos de personas que venían a probar cómo funcionaba (Eso sí, hubo que hacer unos cuantos arreglos en el momento de alguna pieza que se soltaba, o del motor que se despegó en un frenazo del autobús mientras iba hacia el parque.




Y aquí lo dejo, pronto, la segunda parte, explicando cómo funciona el circuito.

domingo, 11 de mayo de 2008

Robot que toca el Xilófono

Este sábado fue el día de la Ciencia en la Calle en Coruña, y la facultad de Informática tenía un stand, y en ese stand había una parte sobre robótica, y en esa parte de robótica, estaba yo con mi robot que toca el xilófono controlado por ordenador.
Tuvimos suerte, y nos pusieron los de la universidad un ordenador con pantalla táctil, que fue todo un exitazo, y bueno, aquí va el video del aparato en funcionamiento:

video

El proceso de creación lo podeis encontrar aquí:
Parte 1: Idea general
Parte 2: El circuito
Parte 3: El montaje
Parte 4: Programación

Pd. Con esta entrada, de paso, pruebo lo de subir vídeos al blog.
Pd 2. Gracias a Óscar, que me dejó su cámara de fotos para grabar el video.