Watson, un Robot imprimible por menos de 40 €

IMG_8604

Me apetecía mucho tener un robotito con ruedas para cacharrear un poco y que el enano su fuera hiciendo a él, pero los kits robóticos son caros, así que me puse con ello y decidí diseñarme mi propia plataforma. Ahora, aparte de un ahorro considerable, tengo un diseño modular que puedo ir modificando a mi antojo.

Mi diseño no es nada del otro mundo, de hecho me he basado en un diseño de los chinos y le he aplicado mis mejoras (ellos de hecho ya se habrán basado en otro diseño), así que busqué unas cuantas fotos en Google, y empecé a diseñar a partir de ahí.

Previamente, como sí tenía claro los motores y ruedas que iba a llevar, los pedí a una página china, buscando el precio más económico que encontré. Lo encontré en Banggood a unos 10$. ¿Por qué no me imprimí las ruedas? Porque necesitamos que sean de goma o patinan. Ya probé y el robot no agarra al moverse y girar.

Lo siguiente que necesitabamos era una electrónica. En mi caso he usado un Arduino Uno R3 que tenía por casa, pero un clon es barato en ebay. Por 5€ es nuestro.

El Arduino necesita conectarse a un shield para controlar los motores. Un shield no es más que una placa que se conecta al arduino por encima y le proporciona otras funciones. También tenía uno por casa, pero por menos de 6€ lo teneis en ebay.

Ya lo tenemos casi todo y nos hemos gastado 20€, por el momento. En esta primera versión he reciclado una batería que tenía por casa, pero voy a rediseñar alguna cogida para ponerle un portapilas. ¿Por qué? Porque no me gusta que el niño juegue con una lipo. Para vuestras pruebas la lipo es ok y es esta, de Hobbyking. Unos 6€ desde el almacén europeo.

IMG_8582En esta primera versión he instalado en el paragolpes delantero un sensor sharp infrarrojo de proximidad. Este sensor es un poco caro, pero funciona muy bien y es muy fiable. Para la revisión que le estoy haciendo voy a meter sensores de un par de euros, al menos 3, para que «vea» por los lados. Lo tenemos en ebay desde UK a unos 11€.

El resto es irnos a la ferretería y comprar tornillos M3, vamos a usar de 10, 15 y 25 mm. También algunas tuercas y ya estaremos listos para empezar a fabricar el chasis. Yo le añadí un interruptor normal y corriente, de cualquier tienda de electrónica. Es muy comodo para apagarlo y encenderlo.

Todo el proyecto lo he subido para descarga libre desde Thingiverse. Las dos partes del chasis las vais a encontrar en STL y en DXF. STL es para imprimirlo con la 3D, DXF es para cortarlo o fresarlo sobre material de 3mm. En mi caso lo he impreso, si lo cortais en CNC me contáis que tal.

IMG_8571
Imprimiendo el Chasis inferior en PLA
Chasis inferior terminado para prototiparlo
Chasis inferior terminado para prototiparlo

Si os fijais, el chasis tiene muchos menos agujeros que la versión que os podeis bajar. Para ir distribuyendo los distintos elementos parto de una base y luego la voy taladrando, una vez voy colocando cada elemento en su lugar mas idóneo realizo las modificaciones en el software de 3D, por eso entre las fotos que veis y la versión que vais a realizar puede haber algunas diferencias.

Una vez tenemos el chasis imprimimos las cogidas de los motores.

El chasis se llama chasis01.STL o chasis02.DXF, las cogidas de los motores se llaman soporte motor.STL y soporte motor2.STL, tenéis que imprimir 2 de cada uno.

Cogidas colocadas y dispuestas simulando su ubicación final
Cogidas colocadas y dispuestas simulando su ubicación final

 

Motores cogidos al chasis y ruedas colocadas
Motores cogidos al chasis y ruedas colocadas

Colocamos el arduino en el chasis y el shield por encima. Primero tendreis que coger con tornillos el Arduino al shasis y luego colocarle el shield. A los 4 motores tenéis que soldarle un par de cables a cada. Mirad la polaridad en las fotos o el robot andará loco. En los motores poned cable negro arriba y rojo abajo, en el shield los positivos por fuera y los negativos por dentro.

IMG_8585
Placa colocada y cableada

En paralelo imprimimos los separadores de 30mm, los pilares centrales y el paragolpes delantero y trasero y los atornillamos. Debemos colocar también el cable de alimentación en el conector lateral del shield.

Paragolpes
Paragolpes delantero

 

Paragolpes trasero
Paragolpes trasero
Pilar central
Pilar central

El sensor sharp lo podeis colocar con un poco de cola caliente en el paragolpes delantero. Ahora debeis conectarlo al Arduino. Se trata de un sensor analógico, en el caso del código que yo he subido debeis soldarlo al pin A5 (cable amarillo), de un pin de encima tomais la masa y de otro superior tomais el positivo. Si mirais 4 fotos más arriba se aprecia el conexionado.

Antes de cerrarlo vamos a programarlo. Hay que descargar la última versión del IDE de Arduino, conectamos, configuramos placa y puerto, abrimos el fichero .ino y lo subimos a la placa.
Es posible que os de un error al subirlo, se porque teneis que instalar la librería que nos va a permitir usar el shield. La podeis descargar aquí.

El código que podeis usar de partida es el siguiente:

#include <AFMotor.h>

AF_DCMotor motor1(1, MOTOR12_64KHZ); // create motor #1, 64KHz pwm
AF_DCMotor motor2(2, MOTOR12_64KHZ); // create motor #2, 64KHz pwm
AF_DCMotor motor3(3, MOTOR12_64KHZ); // create motor #1, 64KHz pwm
AF_DCMotor motor4(4, MOTOR12_64KHZ); // create motor #2, 64KHz pwm

int sensorPin = 5;    // pin del sensor
double sensorValue = 0;  // variable para almacenar los valores del sensor
int iTurnTime = 100; // milisegindos de cada giro
int c = 0;

void setup() {
Serial.begin (115200);
Serial.println («WatsonBot v1»);

motor1.setSpeed(120);     // set the speed to 255/255
motor2.setSpeed(120);     // set the speed to 255/255
motor3.setSpeed(120);     // set the speed to 255/255
motor4.setSpeed(120);     // set the speed to 255/255

}

void loop() {
if (iReadSensor() > 550) // a mayor valor menos distancia de deteccion
vBack();
else if (iReadSensor() < 550 && iReadSensor() > 250)
vTurnLeft();
else
vMoveFwd();

c = analogRead(sensorPin);       // lee valor del sensor
Serial.println(c);            // manda valor del sensor al serie
delay(100);                    // esperas y sigue

}

int iReadSensor() {
sensorValue = analogRead(sensorPin);
if (sensorValue != 0)
{
return sensorValue;
}
}

void vMoveFwd() {
motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
}

void vTurnLeft() {
motor1.run(BACKWARD);
motor2.run(FORWARD);
motor3.run(FORWARD);
motor4.run(BACKWARD);
delay(iTurnTime);
}

void vStop() {
motor1.run(RELEASE);
motor2.run(RELEASE);
motor3.run(RELEASE);
motor4.run(RELEASE);
}

void vBack() {
motor1.run(BACKWARD);
motor2.run(BACKWARD);
motor3.run(BACKWARD);
motor4.run(BACKWARD);
}

El código se entiende con facilidad. Lo mejor es que lo trasteeis y modifiqueis a vuestro gusto, le cambieis los valores de detección del sensor y las velocidades de los motores, y defináis nuevos comportamientos.

Una vez lo programeis y veáis que funciona bien lo podeis cerrar, dejando la batería por fuera. En el paragolpes trasero hay un hueco, os servira para conectar el USB del arduino, por si lo programais de nuevo.

En un futuro próximo está montarle un sensor sigue líneas y sensores de detección más económicos. Iré actualizando tanto este post como el repositorio en Thingiverse con las modificaciones.

Update 01/04/2015

El medio 3dprint.com ha publicado un artículo acerca de Watson (Ver artículo). Es una gran alegría que esté gustando el robot de esta manera.

He aprovechado y le he hecho el soporte de la batería lipo y una tapa para tapar el compartimento de acceso al USB y los cables. Los STL están el repositorio de thingiverse.

image
Algunos usuarios de impresoras tipo prusa, con camas de 20×20 o algo inferiores me han pedido que adaptara el diseño a sus máquinas. He subido los dos chasis partidos en 2 con una pieza de union con tornillos M3.

El Nozzle. Imprimiendo con 0,30

El nozzle es la última parte de la impresora que nos separa de la pieza que estamos creando. Es la punta por la que sale el plástico derretido. La regla es sencilla, a mayor diametro del agujero del nozzle, mayor velocidad y menor calidad.

La gran mayoría de impresoras monta un nozzle de 0,40. Esta medida nos ofrece un buen compromiso entre calidad y tiempo de ejecución. Yo, hasta ahora, la gran mayoría de impresiones las he hecho con 0,40, pero me apetecía probar un nozzle menor de forma intensiva, y sobre todo, aclarar la relación entre la calidad y el tiempo.

En mi máquina monto un fusor de E3D, en concreto una mezcla de piezas entre la v5 y la v6. Ellos venden Nozzles que empiezan en 0,25 y terminan en 0,80. Por defecto, con cada kit mandan el 0,40 y, de forma adicional, puedes pedir otras medidas. Mi decisión fue el 0,30 por saltar dos pasos desde el 0,40 y no acercarme demasiado a los límites. También es cierto que trato de no imprimir por encima del 75% de la capacidad del nozzle, con lo que un 0,25 me complicaría mucho las impresiones a 0,20 de altura de capa*

* La Calidad de la impresión se trabaja en alturas de capa, una altura de 0,10 son 10 capas por milímetro, 0,20 serán 5. El nozzle nos va a definir mejor o peor estas capas, según su diámetro.

Una vez pedido y montado el 0,30, me decidí por el modelo de Groot en Thingiverse, el personaje árbol de Guardianes de la Galaxia, por tener muchos detalles y relieves.

Groot de frende 3d printerLa figura resultante ha medido unos 10 centímetros de alto, y he usado una altura de capa de 0,10 mm. El tiempo empleado ha sido de 14 horas y 50 minutos y el material PLA barato, con mucho brillo.

El Software de impresión me daba un tiempo de ejecución de 11,7 horas (11 horas y 42 minutos), con lo que, de la estimación a la realidad, la deferencia ha sido de un 26% más, aproximadamente.

¿Cuánto habría tardado esta misma impresión con un Nozzle de 0,40 y la misma altura de capa (0,10)?

Tenemos que imagina el nozzle como un lápiz afilado y un lápiz sin afilar, con el afilado tardaremos más en hacer un relleno, pero contamos con una mayor precisión a la hora de hacer los trazos.

La estimación de la misma figura, para 0,10 de capa, pero con nozzle de 0,40, habrá sido de 9,3 horas. Aplicamos la desviación del 26% y nos da 11,71, lo cual son 11 horas y 45 minutos. Por tanto, se puede concluir que para la impresión del Groot hemos tardado unas 3 horas más usando un nozzle de 0,30.

Y, realmente, ¿Se nota mucho el cambio de calidad con el nozzle de 0,30?. Sí, se nota. Si merece la pena es otra historia, ya entra dentro de la valoración de cada uno, pero la figura sale mucho más definida.
Se siguen notando las capas, lógicamente, pero si os fijais en las fotos, se ve que la resolución de los detalles es muy alta para una impresora de deposición de plástico. Para personas que hagan figuras, joyas, o cualquier tipo de impresión con detalle puede ser un cambio a tener en cuenta. A mi, particularmente, no me importan esas 3 horas de más en una impresión tan larga.

¿Y qué hay de imprimir a 0,20?

Pues ahí esta lo interesante del asunto, que 0,20 es una resolución que está muy bien (si la impresora está fina y bien calibrada) y los tiempos se acortan.

Para esta misma figura, los tiempos quedan así:

Nozzle 0,30 > Capa 0,20 > 4,7 horas estimadas > 5,92 horas reales
Nozzle 0,40 > Capa 0,20 > 3,86 horas estimadas > 4,86 horas reales

En este caso la diferencia es de 1,06 horas (1 hora y 4 minutos), y 0,20 de altura de capa, nos da una calidad muy óptima para muchas impresiones.

Por ejemplo, El Dragón Adalinda lo estoy imprimiendo a 0,20 de capa con el nozzle de 0,30 y está quedando muy bien. También hay que decir que ese PLA es bueno, y con un color mate muy llamativo.


…. 10 horas y 20 minutos…

drago03
drago02
drago01

Sherlock, mi OpenRov

OpenRov

Explorar y llegar a donde no llega nadie (o llegan muy pocos) es un sueño. Al menos es el mio y pienso que el de muchas personas.

Si a esto le añadimos una gran pasión por el mar, llegamos a los ROV, esos Robots submarinos de las películas que se adentran en las profundidades, en donde no llega ni la luz, en donde pensamos que encontraremos misterios por explorar.

Un ROV es, o era, algo inalcanzable, solo accesible a los cazatesoros, gobiernos o James Cameron. Decidido a construirme «algo» que me permitiera ver el fondo marino y tras leer acerca de ROVs caseros llegue al proyecto OpenRov.

Se trata de un ROV abierto, una plataforma colaborativa, donde unos auténticos cracks de la electrónica y la ingeniería han desarrollado un modelo accesible,y que permite profundidades totalmente imposibles para una persona con oxígeno, mezclas o apnea. OpenRov cuenta con una web, OpenExplorer, a través de la cual podemos planificar una misión e ir desarrollándola y así, por OpenExplorer fué como les conocí.

A través de un programa de ayudas de La Fundación Moore, la cual colabora estrechamente con David Lang y OpenRov, accedí a un kit de Robot. Esto fué en Agosto’14 y unos meses después recibí lo prometido, un kit versión 2.6. Mi parte del trato, explorar y compartir.

Sherlock, como le he llamado, está al 90%. Queda poco para el agua!

Form1+ de Formlabs en Fab Lab Sevilla

Hola a todos,

tras varias semanas de espera, ayer llegaron varias cajas de Formlabs, era la ansiada Form1+ que llegaba para el Fablab Sevilla, en la ETSA (Escuela Técnica Superior de Arquitectura).

Los Fablab son espacios Maker. Lugares creados para crear. Yo no soy, ni he sido, estudiante de la ETSA, de hecho ni me aproximo al gremio, pero desde la primera vez que pasé por allí las puertas siempre han estado abiertas, aquellos que han visitado el Fablab saben de lo que hablo, y aquellos que todavía no lo habeis hecho estais tardando.

El Fablab de Sevilla apoya fuertemente la impresión 3D. Cuenta con un clásica Cupcake, una Makerbot Original, una Ultimaker Original y una Voladora V2 (Aparte de una antigua Alaris ya en el dique seco). Hoy, a esta gran familia de impresoras se ha unido la Form1+, y yo he tenido la suerte de vivirlo, y digo suerte porque la impresora es una maravilla, como vais a ver.

Form1+ a punto de ser instalada

«El cartón es bueno»

Eso me dijo Juan Carlos, responsable del Fablab, y ¡vaya si lo es!, un empaquetado duro y resistente, de los «buenos, buenos». Bromas aparte, la impresora viene muy bien empaquetada. Dobles cajas, soportes por todas partes y un sinfín de instrucciones, guiando absolutamente todos los pasos de la puesta en marcha.

En nuestro caso hemos empezado por la resina Gris. Nos ha llegado ya la resina de segunda generación. Hemos dispuesto también de bandejas y tanques de soporte, para poder alternar impresiones y colores sin tiempos muertos intermedios.

Viene ya con un tanque preinstalado. El tanque trae una tapa, lo cual facilita dejarlo con resina. Entre la cubierta ambar y la tapa negra la resina no cura y puede aguantar de unos días a otros en el tanque.

El llenado es como el de los líquidos de un coche, hasta unas marcas de máximo. Luego veremos que la propia máquina mueve la cubeta hacia un lado para nivelarla, repartir la resina y eliminar burbujas. El olor es como a pintura, es agradable, pero el Fablab es grande, quizás en una habitación pequeña o un sitio muy cerrado pueda llegar a agobiar más que la laca nelly el 10 de agosto con el aire acondicionado roto.

La puesta en marcha no puede ser más sencilla, quitas 4 o 5 plásticos, conectas alimentador y listo, un bonito logo de Formlabs nos da la bienvenida.

Yo uso un Macbook, tengo arranque doble con Bootcamp, pero decidimos montar el soft de Mac por probar, ya que luego irá sobre un PC. El soft es realmente simple, tienen un asistente que nos pregunta el color de la resina, la versión de la misma y a que calidad queremos imprimir. A partir de ahí 4 opciones básicas, escalados, soportes, orientaciones y poco más…. Nada de las mil cosas a las que estamos acostumbrados del tipo velocidades, temperaturas, rellenos….

Al conectarla al equipo nos ha avisado de que había una versión más reciente de firmware, le hemos dado a ok, ha actualizado ella sola y se ha reiniciado. El proceso no ha durado más de un minuto o minuto y medio.

Al arrancar te carga un modelo, es un clip con el logo de formlabs. Como no teniamos mucho tiempo y eran muchas cosas que probar lo hemos reducido mucho y lo hemos sacado a 0,10. Las 3 resoluciones que nos ha dado por defecto han sido 0,10, 0,05 y 0,025. He echado en falta una resolución rápida de 0,20, más tarde he leido que esa resolución está incorporada en la versión PC y no está todavía en la OSX. La sacarón a final de 2014.

La estimación de tiempo que hace es totalmente exacta, ni un segundo más. Cuando lanzas la impresión manda todo el código a la máquina y te deja desconectarla del equipo. Si el modelo es muy grande manda las primeras capas y mientras imprime va mandando el resto. Es muy práctico para no depender del equipo.

Las calidades y terminaciones de la máquina son geniales, es bonita y grandota. En fotos parece más pequeña. Es muy rollo Apple, con aluminio y led en blanco. El diseño es impecable, la verdad. La primera vez que vi una Makerbot 2 me parece muy bonita, hoy he sentido esa misma sensación al ver esta máquina.

Recomiendan bañar las piezas en alcohol isotropílico al terminarla, unos diez minutos. La pieza sale todavía húmeda, con resina que no ha curado pringando un poco la pieza. El alcohol lo que hace es limpiar esa resina sobrante. En nuestro caso no teniamos isotropilico y, por seguir los consejos de formlabs, la hemos limpiado con alcohol normal. A mi personalmente no me ha gustado. Los detalles finos se han reblandecito y se han quedado con aspecto gomoso, no se si habrá sido el alcohol usado o que es así, la cosa es que nos ha fastidiado un poco la prueba. También es cierto que era muy, muy pequeña, esa pieza que veis tiene en el lado más grande 20 mm.

Teníamos ganas de darla caña, asi que hemos lanzado una estructura de José Sánchez que nos arrojado un modelo de 70 mm de alto con «tubos» de 1mm de diámetro. Algo imposible para las FDM que solemos usar

El resultado es mucho más increible en directo que como se ve en las fotos, pero los tubos eran tan finos que funcionalmente no nos valía. Volveremos a la carga con este modelo con un grosor mayor de tubos. Así se podrá montar una maqueta funcional.

Por últimos nos apetecía algo más «macizo» con mas relleno, asi que hemos lanzado una figurita. La altura de capa, como las otras, a 0,10…. y viendo esto a 0,10 estoy deseando verla funcionando a 0,025….

En resumen, una máquina increible, algo a un nivel muy pro. Sus 125x125x165 harán que nos tengamos que romper un poco el coco en algunas ocasiones, pero si con esta hicieron todas las naves de la película Interestelar, nosotros no vamos a quejarnos 😉

Espero que lo hayais disfrutado, ya iremos subiendo más cosas.

Saludos!