viernes, 6 de noviembre de 2009

El hombre mecatrónico ya tiene casa nueva

Desde hace un par de días, el hombre mecatrónico tiene casa propia en la dirección www.hombremecatronico.es.

Los artículos publicados hasta ahora y sus escasos comentarios han sido importados correctamente a wordpress.



Así que nada más por aquí. Modificad vuestros bookmarks a la dirección indicada o pinchad en la imagen de arriba.



Cambio y corto.

martes, 3 de noviembre de 2009

eSATA vs USB y a cacharrear, que son dos días.

En muchos de los ordenadores actuales recientes disponemos de una conexión (normalmente en la parte trasera)  un tanto rara y que pone eSATA. Este conector sirve para conectar discos duros SATA de manera Externa.
¿Alguien los ha visto alguna vez?
La principal ventaja que se nos ocurre frente a la de los discos duros USB es la de la velocidad de transferencia del bus. Hay bastante diferencia: 480 Mbps del USB 2.0 frente a los 3Gbps del eSATA. !Aproximadamente un aumento teórico de velocidad DE UNO A SÉIS!

Siendo así, no me explico cómo no los usa todo el mundo, en lugar de esperar al USB 3.0. Éste es un desafío para el hombre mecatrónico.

Aunque contemos con discos SATA, no podemos usarlos directamente con  los mismos cables que se usan internamente porque las distancias son mayores y pueden ser conectados en caliente. Me dispongo a montar un disco STA de 500Gb que me sobraba por ahí en una caja externa de Conceptronic.


Caja eSATA de Conceptronic

Este tipo de cajas suelen ofrecer, además conectividad USB para poder usar el disco en más ordenadores. Es una opción interesante. Ésta además es para discos de 3.5" y requiere de alimentación externa.



Una caja externa SATA y USB 2.0 para mayor flexibilidad


El montaje es supersencillo y cualquier mecatrónico lo hace sin mirar y con el destronillador que lleva de llavero.



Se inserta en el chasis y se fija con sus tornillos

Ya sólo queda conectarlo al ordenador y probarlo. Recordad que probablemente el puerto eSATA esté desactivado por defecto en la BIOS y hay que activarlo antes de poder usarlo. El cable es (y debe ser así) bastante corto (unos 60 cm) y rígido.

Disco externo conectado al PC con el cablecillo ese.

Las pruebas.
Las pruebas de velocidad realizadas consisten en la transferencia de un archivo de 700 Mb hacia el disco mediante USB 2.0 y mediante eSATA en un sistema de archivos NTFS.


  • Tiempo de Escritura eSATA:     14 s.
  • Tiempo de Escritura USB 2.0:   29 s.
  • Tiempo de Lectura eSATA:      19 s.
  • Tiempo de Lectura USB 2.0:     24 s.

Conclusiones


Por contra de lo esperado inicialmente, el rendimiento del disco en modo eSATA es casi el doble que el USB, pero no seis veces. Probablemente las limitaciones vengan dadas por la velocidad de transferencia del disco duro utilizado.

Ventajas

  • Es bastante más rápido.
  • Se integra mejor con el conjunto de las unidades del sistema permitiendo usarlo como disco de arranque o de sistema, pero removible.
  • El alimentador es sencillo de 12V que permitiría usar uno chino de emergencia.
  • Podemos usar una conexión USB
  • El precio no está mal

Inconvenientes

  • No es muchísimo más rápido.
  • Si se transporta hay que llevar el alimentador y un cable raro con nosotros.
  • El precio podría estar mejor.

Los resultados no son tan buenos como se esperaba pero finalmente lo aconsejo a quien aprecie el rendimiento de sus equipos informáticos.

Saludos mecatrónicos.

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.