Proyecto mano articulada
Este proyecto de mano articulada no pretende ser una fiel reproducción de la mano humana, pero sí una aproximación que reproduce con cierta similitud, las funcionalidades de esta.
La idea del proyecto surgió a raíz de este vídeo:
Donde es posible ver la enorme semejanza de la reproducción de las posibilidades de una mano real.
El presente proyecto se compone de dos partes:
- – La primera, Mecánica, de cómo se ha construido la mano con la mecánica, articulaciones y movimiento.
- – La segunda con la parte electrónica. .[/fancy-ul] [/three-fourth]
1ª parte: La mecánica.
La construcción mecánica del conjunto lleva su tiempo, pero pienso que vale la pena.
Se ha confeccionado con los materiales y elementos que figuran a continuación, pero evidentemente es susceptible de ser adaptados, tanto los unos como los otros, a la inventiva de cada uno y a los elementos disponibles.
1 | Varilla de madera, mínimo de 12 mm Ø (es posible utilizar espigas de madera de las utilizadas en la construcción de muebles, que ya vienen cortadas, y adaptarlas a nuestras necesidades) | |
14 | 14 Articulaciones/bisagras cilíndricas 4x15mm (http://www.aliexpress.com/snapshot/7149930408.html?orderId=71399652358380) | |
18 | Cáncamos pequeños para madera | |
1 | Pieza de madera plana, para la mano propiamente dicha, más larga para instalar los servos, a la que se dará forma en su momento | |
1 | Rollo de hilo de pescar trenzado Lure Braid 20/100
). Con unos pocos metros servirá. |
|
6 | Servos SG90 9g mini micro servo, con las bielas correspondiente (*) | |
1 | Cinta elástica de mercería de 10mm | |
Tornillería variada |
(*) Hemos utilizado estos servos porque era los que teníamos. Pero debe advertirse que al ser económicos, de baja potencia y calidad, el resultado final no es el que podría esperase después de tanto trabajo. Si se pretenden conseguir unos resultados más aceptables, será conveniente reemplazarlos por otros de mejor calidad, más eficientes, pero también más caros.
En primer lugar haremos una plantilla de la mano dibujada en un papel, para tener claras las articulaciones y las medidas aproximadas de los dedos con las que trabajaremos:
Cortaremos la varilla a las medidas aproximadas de la longitud de cada falange.
Una vez tengamos todas las piezas cortadas, habrá que hacer los agujeros centrales en cada una de ellas. Para hacerlo con ciertas garantías, utilizaremos un soporte específico, que mantendrá los cilindros perfectamente rectos y sujetos.
Si la varilla que estamos utilizando es de 12 mm, en un bloque de madera haremos un agujero con una broca de 12 mm, lo más recto posible, en el que se insertará cada una de los cilindros, hasta que haga tope al fondo (para ello será necesario haber calculado la profundidad del orificio, de manera que permita que sobresalga una buena parte de la pieza.
- Nosotros hemos utilizado una máquina manual de perforar fija. Con una taladradora montada en su soporte y la plantilla anterior, será fácil hacer los agujeros centrados en los extremos de cada cilindro.[/fancy-ul] [/three-fourth]
Posteriormente se colocaran las bisagras.
Previamente al montaje definitivo, habrá que tener en cuenta algunos detalles.
- Para que al montar los dedos a la mano, las gomas posteriores no obliguen a flexionarlos hacia atrás, cosa que dificultaría o impediría la articulación natural de cada uno de ellos, antes de encolar las bisagras, nos fijaremos en que queden bien empotradas, de manera que con los dedos estirados las dos partes traseras tengan contacto (A).
- Habrá que limar las extremidades en el ángulo apropiado (B) (unos 45º), de manera que permita la flexión de las dos partes a 90º (C).
- Recordad que la articulación inferior de cada dedo, que se unirá a la mano, también deberá disponer del agujero correspondiente para insertar la bisagra. .[/fancy-ul] [/three-fourth]
Vamos, ahora, a por la mano. De un pedazo de madera plana que tengamos (nosotros hemos utilizado una franja de un palé, encolando y dando forma a dos piezas), haremos una pieza aproximadamente como esta, procurando mantener una cierta proporción con la largada y anchura de los dedos (hay que dejar espacio suficiente al final, para colocar los servos con comodidad).
Acabaremos la parte superior, limando un poco para darle la forma aproximada de una mano natural.
Se procederá a realizar los 4 agujeros, de los dedos meñique, anular, corazón e índice, en los que se insertarán las bisagras, en la parte superior.
Una vez montado el sistema, quedará más o menos como las siguientes imágenes:
Para el dedo pulgar, el sistema de montaje es diferente, porque el movimiento natura es diferente al resto de dedos. La parte inferior irá atornillada al rebaje de la mano, permitiendo el libre movimiento. Habrá que pensar el ponerle algún tope para que el movimiento (hacia arriba y hacia abajo) no sobrepase los límites de una articulación natural.
De la misma manera que hicimos individualmente con los dedos, para que no flexionen hacia atrás, habrá que hacer algo para evitar dicha flexión con respecto a la mano y el conjunto “digital”.
En este caso hemos colocado un tope (D) detrás del sistema “digital”. Con esta solución se evita que los dedos flexionen para atrás de manera antinatural.
Procederemos a colocar los cáncamos que servirán de guía a los cables de cada unidad.
- Para evitar que los pequeños cilindros se abran e inutilicen al colocar los cáncamos, será conveniente hacer unos agujeros preliminares de menor diámetro, antes de roscar los tornillos.
- Antes de encolar definitivamente los dedos al cuerpo de la mano y unirlo todo, será conveniente mecanizar todo el conjunto, ya que dificulta mucho el trabajar con los dedos montados. [/fancy-ul] [/three-fourth]
Llegados a este punto, ya es posible sujetar las bandas elástica por la parte posterior de los dedos. Recordar que es mejor hacerlo sin que estén estos pegados al cuerpo, dejando una buena tira por debajo, para asegurarse que se pueda colocar bien en el cuerpo de la mano.
- La banda elástica es conveniente que sea ancha para que coja una buena superficie del cilindro. Si es demasiado estrecha, al flexionar se desplazará hacia los lados y el movimiento de la articulación fallará.
- La tensión de la banda elástica ha de ser suficiente para mantener los dedos hacia atrás, pero que no exija una fuerza excesiva a las levas de los servos en la flexión. [/fancy-ul] [/three-fourth]
Una vez los cáncamos colocados y hechos los ajustes para ver que funcionen correctamente todas las articulaciones, ya se puede proceder a pegar las bisagras al cuerpo de la mano, y a sujetar las bandas elásticas a esta.
El conjunto tendrá un aspecto similar a la imagen anterior en el reverso, y uno parecido a esto en el anverso:
Se colocan los cables, de manera provisional, para comprobar el funcionamiento general de todo el conjunto, y hacer los ajustes necesarios si fuera preciso.
Una vez se vea que está todo correcto, ya se puede pensar en la colocación de los servos. Pero antes, hay que ampliar un poco la explicación. El lector atento se habrá dado cuenta que hay algo que no cuadra; ¿6 servos, si hay 5 dedos?
La respuesta es que mientras los otros 4 dedos se gobiernan con un solos servo por dedo, el pulgar está gobernado por dos servos: uno realiza el movimiento de flexión-extensión, igual que los otros (en este caso concreto, izquierda-derecha), y el segundo, el movimiento sobre la primera falange (adelante atrás). Más adelante se comprenderán con más claridad estos dos movimientos.
- Durante la construcción de la mano, se hablaba de dejar espacio suficiente en la parte a atrás para la colocación de los servos. Estos deberán tener una colocación especial y será necesario algo de espacio para poder manipular los ajustes.
- A demás, si al final de todo, se pretende colocar un guante para darle más realismo al montaje (cosa que no hemos hecho nosotros), el espacio entre la punta de la mano (no de los dedos), y la colocación de los servos, deberá ser mayor, para evitar que los servos queden dentro del guante y este estorbe las flexiones. [/fancy-ul] [/three-fourth]
Como se puede observar en la imagen superior y en el diagrama inferior, cada servo tiene una posición definida y diferente del resto.
Hay que tener en cuenta los movimientos de las levas, que no se estorben entre ellas ni tampoco que se estrellen contra los servos, así como también el recorrido de los cables. En posiciones similares a las de las imágenes, se sortean estos problemas.
Pero surge otro problema. Al tener montados los servos, las levas resultan demasiado cortas para que las articulaciones de los dedos hagan la totalidad del recorrido correctamente. Entonces será necesario pegarles unos alargos para aumentar el brazo de palanca y, por tanto, el recorrido útil de los cables.
- Sirven pedacitos de palo de helado, pegados con cola termofusible, asegurándose que queden bien unidos. Lo hemos hecho de esta manera, porque será posible recuperar las levas si al terminar el proyecto necesitamos reutilizarlas. [/fancy-ul] [/three-fourth]
Una vez colocadas las levas en cada uno de los servos, sin atornillarlos aún, se procederá a calibrarlos, de manera que cada leva haga el recorrido justo para realizar la flexión y extensión completa de cada dedo, sin tensar en exceso los cables.
- Lo que hace referencia al movimiento de los servos con los joysticks, se verá en el capítulo de programación, pero será necesario tener en cuenta algunos aspectos básicos a tener en cuenta durante el montaje mecánico.
- En primer lugar, hay que recordar que el servo tiene un recorrido de barrido que va desde 0º a 180º. Hará falta tenerlo en cuenta para el montaje de las levas.
- Cada servo, incluso siendo de la misma marca, acostumbran a tener parámetros de calibrado diferentes, por lo que será necesario calibrarlos independientemente. Esto se verá en la programación, pero para seguir con el montaje, será necesario tenerlo en cuenta.
- Para empezar, hará falta colocar las levas de los servos en una determinada posición, sea de reposo (0º) o en flexión (180º), para poder colocar los cables (si es en reposo, 0º, el cable estará tensado justo para que quede el dedo ligeramente flexionado. Si está en flexión, el cable deberá estar tensado, de manera que la punta del dedo toque la parte interna de la mano).
- Se tendrá en cuenta que, los servos S0, S1 y S2, se sitúan a la izquierda, mientras que los S3, S4 y S5 lo hacen a la derecha. Estas posiciones influirán, también, en la programación, tal y como se verá en su momento, ya que las levas se moverán en sentidos contrarios con respecto al cuerpo del servo.[/fancy-ul] [/three-fourth]
Es aconsejable realizar las pruebas de calibrado de los servos, con las levas montadas (sin tornillo central de sujeción), y sin los cables sujetos, ya que estorbaran continuamente durante el reglaje.
Una vez se tengan los servos calibrados, ya se puede proceder a sujetar los cables a las levas. En este punto se trabajará mejor si se puede retirar la leva y hacer los nudos fuera, que si hubiera de desenroscar los tornillos de sujeción.
La solución que hemos encontrado para sujetar el otro extremo del cable a la punta del dedo, ha sido colocarle un tornillo en lugar del primer cáncamo, de manera que enrollando el cable al tornillo y apretando este, el cable queda sujeto con seguridad. Otra ventaja, es que será posible dar más o menos largada al cable, para completar el reglaje de cada dedo.
La tensión de los cables, en reposo (posición 0º), será la justa y necesaria para proporcionarle una pequeña tensión a la falange distal del dedo, de manera que quede ligeramente levantada la punta. Esto facilitará el inicio del movimiento de flexión, evitando que el servo deba hacer fuerzas excesivas y/o que la estructura del dedo adopte posturas extrañas a causa de tensiones inapropiadas.
Una vez todos los servos calibrados, levas sujetas con tornillos y cables en su sitio, el proyecto quedará un conjunto similar a la siguiente imagen:
2ª parte: La electrónica.
No se trata de un montaje complicado, pero tiene sus trucos y prioridades. La mayor dificultad se encuentra en el calibrado de los servos. Ya se ha hecho mención de algunos aspectos en la parte 1ª de La mecánica, pero a riesgo de repetirnos, volveremos a insistir en ellos más adelante.
Pero vayamos por partes.
Material electrónica:
1 | Arduino MEGA | |
1 | Módulo controlador de servos PCA9685 PWM o bien servo shield
|
|
6 | Joysticks | |
1 | Fuente alimentación externa (1) | |
1 | Protoboard | |
Cables protoboard |
En este proyecto será necesario utilizar una placa Arduino MEGA, porque nos quedaríamos cortos con una UNO, que tiene menos pins de entrada para conectar los joysticks.
El problema que presenta la Arduino MEGA, es que únicamente suministra un máximo de 50mA, y los 6 servos consumen bastante más.
Para solucionar esta escasez, disponemos del módulo controlador de servos PCA9685, que permite el gobierno de hasta 15 servos y que permite la alimentación externa exclusiva para los servos.
En primera instancia hemos utilizado un cargador de móvil de 5V-2Ah (1), pero se queda un poco corto. Lo sustituimos por una fuente de alimentación ATX de 5V-20Ah, y se percibe una ligera mejoría, pero sigue dando alguna disfunción en los movimientos, que pensamos que es a causa de poca calidad de los servos utilizados.
Por lo tanto, la fuente de alimentación externa habrá que adaptarla a la potencia de los servos que se utilicen. Más vale sobredimensionar la intensidad, que quedarse cortos.
En primer lugar se fijan los joysticks en alguna base, de manera que, por una parte se tengan controlados por orden y, por otra, permitan los movimientos sin tener que estar pendientes de que se muevan anárquicamente.
Ahora pasemos al conexionado del módulo controlador de servos PCA9685.
Sin entrar en detalles del funcionamiento del módulo, las conexiones de los servos van a los pines de colores, que van debidamente rotulados: de izquierda a derecha, se conecta el servo 0, servo 1, servo 2… hasta el servo 5 en nuestro caso, pero podrían conectarse hasta 15 servos si fuera necesario.
Y los colores corresponden, amarillo a PWM, rojo a Vcc y Negro a GND.
En la parte superior va la entrada de la alimentación externa de 5V, VCC y GND
A la izquierda el conexionado que unirá el módulo con la MEGA, según el siguiente esquema:
Modulo PCA9685 | Arduino Mega |
---|---|
GND | GND |
OE | GND |
SCL | 21 |
SDA | 20 |
VCC | 5V |
V+ | No connectado |
El conexionado completo, en Firtzting, será como sigue:
- La placa PCA9685 (en rojo en la imagen), no se corresponde con la que se utiliza, pero el conexionado sí que es correcto. [/fancy-ul] [/three-fourth]
Una vez realizado el cableado asegurándonos que es correcto, para evitar futuros fallos, empezaremos con el programa.
Este programa hay que agradecerlo a Jesús Sánchez Medina, sin cuya colaboración y aliento, el proyecto no hubiera sido posible.
Programa de control
En primer lugar habrá que descargar e instalar la librería de Adafruit, desde Adafruit_PWMServoDriver.h, que gestionará el Modulo PCA9685. Y finalmente solo hará falta cargar el siguiente sketch:
Hay que insistir en que cada servo tiene sus propios parámetros de giro, por lo que será necesario adaptar los valores de los ángulos a cada uno de ellos, en función de donde queramos que esté en la posición 0º (extensión o reposo) y la posición 180º (extensión).
Os dejamos un vídeo del resultado final. Evidentemente cada uno puede adaptarlo a sus necesidades y a su particular inventiva para mejorar cada paso.
Las posibilidades de programar diferentes grupos de movimiento de las articulaciones son infinitas, desde hacer un programa que contenga determinados movimientos predefinidos, eliminando los joysticks, hasta programarlos mediante pulsadores. Esto queda a gusto e inventiva del usuario.