sábado, 24 de octubre de 2009

Todo robot que se precie tiene un botón de emergencia

Todo robot de cierto tamaño necesita de un sistema de parada de emergencia. En este caso le hemos colocado un pequeño panel de control con un botón de emergencia (la seta roja) y un interruptor de encendido, al estio de los robots industriales de Staubli ó ABB.


Robot móvil con panel de parada de emergencia y encendido

La funciones de los botones son las siguientes:
  • Botón rojo: Levantado conecta la alimentación de las baterías de potencia a los amplificadores de los motores y a los servos. Pulsado desconecta la alimentación de todos los motores. Evita posibles daños.
  • Interruptor: Posición I para encendido de todos los sistemas de control. Posición II para apagar los circuitos de control. En ésta posición los motores también permanecen detenidos.

Esquema del panel de control
Su funcionamiento es el siguiente:
  • Encendido del robot. Antes hay que asegurarse de que el botón rojo está presionado y bloqueado. Colocar los brazos en su posición de reposo y la cabeza en posición horizontal mirando hacia delante. La puerta delantera puede estar abierta pero habría que asegurarse de que no existen posibles obstáculos. Después de esta comprobación pulsar el interruptor hasta la posición I. Pasados dos segundos dejando tiempo para que se incien los sistemas de control, pueden activarse los motores levantando el botón rojo mediante un giro en el sentido de las agujas del reloj. El sistema debería avisar de su inicialización mediante un sonido (aún no lo hace).
  • Apagado del robot. Pulsar el botón rojo y después el interruptor para ponerlo en posición II.
  • Parada de emergencia. Pulsar botón rojo con fuerza con cuidado de no llevarte por delante la cabeza del robot. Después imagino que querrás apagarlo. El sistema debería ser capaz de detectar la condición de parada de emergencia para poder recuperarse sin apagar el control (aún lo lo hace).
Dado que tanto el interruptor como el pulsador están diseñados para colocarse en un panel metálico, sus fijaciones no pueden adaptarse a una placa de madera de 10 mm como la que tiene el robot por arriba. Por eso decidí tomar la solución del pequeño panel de soporte que no queda mal al final. Así que tomamos una chapa de aluminio de 1,5 mm, dibujamos los huecos para los componentes, los tornillos y el contorno y la recortamos.

Construcción del panel de control

Una vez recortado y limado las rebabas, comprobamos que los componentes caben perfectamente y le quitamos su plástico protector.

Panel de control recortado



Panel terminado

Ahora sólo falta colocarlo en el robot. Se trata de una chapuza de carpintería:


Dibujamos en el lugar elegido, los huecos para la parte interna de los interruptores.


Y lo recortamos (por poco me cargo el servo del hombro).


Se coloca en su hueco y observamos cómo ha cabido de milagro.


Y ya sólo faltan las conexiones eléctricas.

Ahora el robot parece un poco más importante.
Con esto y un abrazome despido por ahora de todos hombre (y mujeres) mecatrónicos.

miércoles, 21 de octubre de 2009

Radio Activa FM: Los años locos de la radio.

Érase una vez ...
.... anda, Andrés o Luis, poned algo aquí

domingo, 18 de octubre de 2009

Control inalámbrico con Arduino y un mando de la Play.

En esta entrada voy a comentar uno de las adquisiciones más interesantes que he hecho últimamente. Se trata de un sistema de desarrollo de microcontroladores denominado Arduino, junto con una aplicación muy curiosa que permite controlarlo con un joystick sin cables. Esto no lo estaría contando aquí, si no fuera porque se trata de una aplicación muy económica y fácil de programar.

Ya sé que este blog que se actualiza muy frecuentemente, pero preferimos ser fieles al estilo original de mostrar contenidos propios con pruebas realizadas por nosotros mismos, en lugar de limitarnos a comentar trabajos ajenos.

Quiero aprovechar para agradecer su dedicatoria a Juan Antonio a través de su estupendo a la vez que inclasificable blog (Lithographica), que recomiendo a todos aquellos que tengan algo más que tornillos y cables en la cabeza.

¿Qué es un Arduino?

Se trata de un sistema de desarrollo para microcontroladores muy fácil de programar, y de bajo coste, con un  compilador de C con un IDE (de código abierto) en java que permite su programación desde Windows, Linux ó MacOSX (¿!¿). Existen varios tipos de Arduino basados en diferentes modelos de microcontroladores de la familia AVR de Atmel (que a mí ya me gustaban mucho), por lo que podemos elegir  el que mejor se ajuste a nuestra aplicación.


Sistema de desarrollo Arduino Duemilianove

Un modelo medio (duemilianove) cuesta unos 24 € + iva (en BricoGeek.com) y el microcontrolador suelto lo podemos comprar por poco más de 5 € (con un cuarzo y dos condensadores va que arde). Llevan programado un bootloader que permite programarlos desde su puerto serie sin necesidad de adquirir un programador ICSP aparte. Si compráis una versión con USB, tenéis resuelta la alimentación para las pruebas durante el desarrollo.

El software es gratuito y lo podemos descargar desde la web oficial de Arduino. No requiere de instalación y viene con las librerías más comunes. Para cosas más raras podéis descargar librerías adicionales. !Gracias!

La verdad es que no se trata de nada nuevo y ya existen miles de sitios con recursos y vídeos de proyectos realizados con estos microcontroladores, por lo que seguro que encontramos alguien que ha resuelto antes, al menos en parte lo que nos planteamos realizar. Lo mejor es hacer una búsqueda en el google, de "Arduino+lo-que-queramos-construir" para ahorrarnos esfuerzos.

El control inalámbrico

La aplicación elegida para demostrar el funcionamiento de este sistema ha sido la de controlar (o al menos enviarle consignas) un Arduino mediante un Joystick joypad inalámbrico. En este caso se ha usado uno fácil de encontrar (y barato) como el de la Playstation (PSX).


Arduino Duemilianove conectado a un receptor de un controlador PSX inalámbrico

La demostración no tiene ningún mérito porque ya hay muchas cosas parecidas en la red, pero me pareció mas digno que la típica de hacer parpadear el led. La lectura de un joystick de psx no es inmediata y hace falta algo de información obtenida mediante ingeniería inversa, que podéis encontrar en muchas páginas. De hecho ya hay disponible una librería oficial Psx para para su lectura mediante cuatro lineas digitales. El cableado no tiene mucho misterio, ya que en la llamada a la función de inicialización se indican los pines a los que se han conectado las señales:
Psx.setupPins(dataPin, cmndPin, attPin, clockPin, 10);
La programación

Una vez descargada la última versión del software de desarrollo (la 0017 en mi caso), descargáis la librería PSX y la copiáis en la carpeta arduino0017\hardware\libraries. A partir de ahora al ejecutar el IDE, la librería se encuentra perfectamente integrada, inluyendo los ejemplos de uso.
Cargamos el ejemplo de PSX, comprobamos que las lineas digitales usadas son las mismas que hemos usado nosotros y le damos a compilar. Lo que pasa con las versiones alfa es que suelen fallar cosas, pero nada que no tenga solución con una buena chapuza. Insertamos dos lineas antes de incluir la librería PSX y solucionado:
#include (stdio.h)
#include (math.h) // Cambiad los paréntesis por los símbolos correspondientes.
Después le damos a "Upload" para cargar el ejecutable en el microcontrolador pero no funciona. Ésto ya no es culpa de la versión, sino del tipo de mando. Al tratarse de un mando inalámbrico de origen desconocido (china) no se comporta exactamente como el de Sony (que también vendrá de China). Se me ocurrió que podría ser un problema de temporicación y se resolvió insertando lo siguiente dentro del bucle principal del programa de ejemplo:
delay(50);
Se ve que el controlador clónico no tiene capacidad para responder tan rápido como el original. Puede que funcione con retardos algo menores, pero para mí es suficiente.

... ¿Y?

El resultado del funcionamiento lo podéis apreciar en el vídeo siguiente. La señal de radio, de 2.4GHz, tiene un rango de hasta unos 10 metros, dependiendo del entorno. Lo que se muestra es nada espectacular, pero abre la puerta a una gran cantidad de aplicaciones y de horas perdidas en cacharreo.



Un saludo a todos y espero que la poca especial periodicidad de este blog no os haga olvidaros de El Hombre Mecatrónico.

miércoles, 7 de octubre de 2009

Uso de dispositivos I2C desde un PC con LabVIEW

Introducción
El I2C se ha convertido en un bus muy popular para la conexión de periféricos a microcontroladores, sobre todo en robótica doméstica por la aparición de numerosos sensores y actuadores que usan este tipo de comunicación.
Se trata de un bus donde un maestro (un PC ó microcontrolador principal) controla los accesos a los diferentes dispositivos esclavos que se pueden conectar al mismo bus. El maestro selecciona el dispositivo, la dirección del registro base dentro del dispositivo y el número de bytes que se desean escribir o leer. Los dispositivos esclavos deben poseer diferentes direcciones y se pueden conectar hasta 128 por bus.
El bus normalmente funciona con señales de 0 y 5V y la velocidad de trasferencia la marca el maestro, que puede tener una frecuencia entre 100 y 400 KHz.


Montaje chapucero del adaptador i2C y un SFR02

Para utilizar dispositivos I2C desde un PC necesitamos un adaptador de USB a I2C maestro. El que usa todo el mundo es el "Devantech USB I2C module". Es bastante económico ( veintitantos €) y fácil de usar, ya que implementa un puerto serie sobre USB (con drivers de FTDI) con un protocolo sencillo y además proporciona una salida de 5V que puede usarse para alimental ciertos dispositivos.
La conexión maestro-esclavos es muy fácil:

  • GND con GND
  • SCL con SCL
  • SDA con SDA
  • +5V ... depende
La entrada adicional que tiene el módulo adaptador sirve para otras cosas. Yo no la uso.
La salida de 5V se puede enviar por el bus, quedando entonces una conexión de cuatro líneas.
En la figura siguiente se muestra un ejemplo de conexionado, en la que el último dispositivo posee su propia alimentación y le basta con 3 hilos del bus (SCL-SDA-GND).


Ejemplo de uso:
Medida de distancias con un sensor sónar Devantech SFR02. La conexión es totalmente directa y no se ve el bus como tal.


Panel del programa de lectura

El programa de toma de medidas por sónar requiere de las inicialización del puerto serie con los parámetros adecuados para el adaptador concreto. En el bucle principal se realiza la lectura del registro lsb de distancia y se inicia una nueva medida mediante la escritura en el registro de comandos del SFR02.

Programa principal de lectura de sonar.


Librería de funciones I2C creada por El Hombre Mecatrónico para LabVIEW:
El programa anterior está basado en la siguiente librería de funciones para uso del bus I2C en labVIEW y que está incluida para descarga en el ejemplo anterior.




Función de Inicialización: I2CInit.vi



Función de Escritura: I2CWrite.vi



Función de Lectura: I2CRead.vi

Espero que este ejemplo le sirva a alguien.
Un saludo a todos los mecatrónicos.

domingo, 4 de octubre de 2009

Mod para apagado de discos duros externos USB

Si estáis hartos de tener que apagar y encender a mano los discos duros externos USB cada vez que encendéis vuestro ordenador o los reproductores multimedia, ésta modificación es para vosotros.
Este mod es aplicable a la mayoría de los discos USB de 3.5" (por tanto con su propia fuente de alimentación externa) con interfaz ATA, siempre que el host dispositivo al que estén enchufados desconecte la alimentación del bus USB al apagarse. Ésto puede no suceder en vuestro ordenador ,en los estados de suspensión, y en los portátiles cuando están en carga. En algunos casos habrá que cambiar algunos parámetros de la BIOS para que sea así. En los reproductores/grabadores multimedia, según mi experiencia suele ser así.

Materiales:

  • Relé de 5V de dos circuitos dos posiciones (DPDT).
Herramientas
  • Soldador (con estaño y termoretráctil)
  • Alicates
  • destornillador

Comenzamos describiendo el esquema de la modificación. Se trata de permitir la alimentación del disco sólo cuando en la entrada USB hay unos 5V de alimentación. Para ello cortamos los cables rojo y amarillo (+5 y +12V) del cable de alimentación que va de la placa del adaptador al disco ATA.
La bobina del relé se conecta a los 5v del USB (sin polaridad) que habrá que localizar con cuidado soldando un par de cablecillos a la placa de circuito impreso (a unas malas sobre las soldaduras de los contactos 1 y 4 del conector). Una parte de los cables se conectan al contacto común (tened cuidado y que no se os cruzen los cables) y la otra parte a la parte que se conecta en la posición en la que la bobina está alimentada. La otra se deja.
Es importante que las soldaduras estén protegidas con funda termorretráctil que aisla los contactos y les da resistencia mecánica también, o si nó con cinta aislante de esa pegajosa.



Adjunto también fotos de cómo queda el mod en un iomega que hice hace un par de años, donde se muestra cómo queda. Una vez cerrada la caja no se nota la diferencia con un disco original.





Ventajas:

  • Bajo coste y complejidad del mod.
  • Menos ruídos, consumo y gasto de vída últil del disco.

Inconvenientes:

  • Ninguno


Por supuesto, no nos hacemos responsables de los posibles daños que pueda sufrir el disco, el ordenador o las personas como consecuencia de la puesta en práctica de cualquiera de las técnicas que se describen en ésta web.

En un próximo artículo hablaremos del los discos externos eSATA.
Cualquier sugerencia y/o colaboración será bienvenida.


Saludos a todos.
El hombre mecatrónico.


jueves, 1 de octubre de 2009

El robot animatrónico ya mueve su puerta delantera.

Tras algún inconveniente causado por los servos de bajo coste, ya está de nuevo montado por completo el robot sin nombre (!se admiten sugerencias!).
En el vídeo siguiente se muestran dos pruebas de la puerta: sin la carcasa exterior y después con la carcasa de los sensores colocada.
La electrónica y el software usados para estos experimentos son los mismos que los de la entrada anterior llamada "Control de Servos con PC y LabVIEW".




En Cuanto tenga más vídeos del funcionamiento de otras partes del robot los iré poniendo.
Mientras tanto podéis curiosear en los vídeos del usuario "roboticario" en YouTube.

Paz mecatrónica a todos.

En 10 minutos: Casa de madera para muñecas

No leáis esto si no tenéis hijos/sobrinos/niños-de-otro-tipo.
Si un sábado por la tarde os dicen algo así como "quiero una casa para mi Polly Pocket, pero que sea de madera para poner cosas dentro..." podéis salir del paso por muy poco con unos 10 minutos de trabajo. Sin machar nada y sin  llenar la casa de serrín o virutas.

Materiales:
  • Tablero de ocume (chapón) de 3 ó 4 mm de unos 50x60 cm de los que os sobran de construir robots. Si no, los podéis encontrar por 4 euros en muchos sitios (incluso en Málaga).
  • Cúter de los buenos (no de los de papelería, sino de los del Leroy Merlin, por lo menos).
  • Cola de madera.
  • Cinta de carrocero o en su defecto cinta adhesiva de cualquier tipo .
No sé si es que la tecnologia del cúter ha avanzado mucho últimamente o que los chapones son tienen cada vez menos madera, pero la ventaja de esto es que como son todo cortes rectos y largos, se pueden cortar todas las piezas necesarias en 5 minutos.


Y como os doy los planos de una casa sencilla sólo tenéis que trasladar el diseño a vuestros retales de chapa.











El corte de la chapa se hace mediante un cúter teniendo los niños lejos, ya que tienen cierta tendencia a tocar todo aquello que es peligroso y meter los dedos. La técnica consiste en realizar una pasada inicial lenta utilizando una regla y luego entre 3 y cuatro pasadas más, dependiendo de la fuerza que apliquéis. Los resultados son fantásticos: cortes limpios, sin residuos. Cuando terminéis guardad el cúter fuera de la vista de los niños.
Los recortes de los huecos de la puerta y de la ventana se aprovechan como tales.


Por si alguien, que por supuesto no es el caso de ninguno de los lectores de este blog, no sabe cómo montarlos, adjunto imágen donde se observa la disposición de las piezas.
Es importante no pegar el tejado al resto de la casa para así poder dejar acceso al interior.

Algo muy importante es que los niños pueden participar en la segunda fase de la construcción: El pegado. Así se entretienen un poco y te dan un respiro. Como se usa cola blanca o de carpintero no hay peligro. Necesitarán que les eches una mano y podrías necesitar algo de cinta adhesiva o de carrocero, para mantener las piezas unidas mientras que se secan.

Lo último que la hagan los niños. Pueden pintarla y añadirle todo tipo de accesorios. Se puede pintar con témpera y así que echen el resto del fin de semana mientras que tú te puedes dedicar a as cosas propias de los hombres mecatrónicos (sean las que sean).
Os adujnto los modelos 3D en formato Sketchup versión 6 (acaba de salir la 7 en Español), del que hablaremos en otra ocasión.


Saludos mecatrónicos.