miércoles, 19 de marzo de 2014

De pruebas con el robot panorámico XS

Los dias pasaban, y muy a mi pesar no tenia momentos para probar mi nuevo robot panorámico. Entre semana no dispongo actualmente de mucho tiempo libre por lo que siempre toca esperar al fin de semana.

Entre semana voy "corrigiendo" errores de programación y dejando que la visualización en la pantalla sea agradable.

El programa del robot tiene la misma base que en mis otros dos robots panorámicos, pero esta vez le he hecho unas cuantas mejoras:

* Cuando arranca , puedo elejir entre modo Gigapan o modo time-lapse. Aprovechando que tengo dos salidas con unos conectores tipo DB-9 puedo o bién conectar mi slide dolly (actualmente de un sólo eje) o bién dejar las conexiones para el robot panorámico, con esto gano que con un sólo control lo aprovecho para más cosas, total, la electrónica es la misma!

* Si elijo el modo Gigapan puedo elejir el tipo de formato de camara que voy a usar (Full Frame, Nikon DX, Canon DX u Olympus 4/3). Acto seguido puedo elejir el zoom al que quiero trabajar . Con estas dos variables, el Arduino calcula ya el angulo que le corresponde . Finalmente nos deja elejir el solape entre fotos (ideal que no sea inferior al 20%) y con todo esto ya calcula los pasos a realizar entre fotos en los dos ejes. En este punto nada de nuevo.

* Acto seguido , pide si quiero trabajar en modo normal o en modo noche: La diferencia radica en que en el modo normal empieza a hacer las fotos de izquierda a derecha y al final de la linea retrocede el cabezal y sube hacia arriba un fotograma, y asi sucesivamente. Mientras que en el modo noche funciona de izquierda a derecha pero de arriba hacia abajo, con esto quiero conseguir poder fotografiar gigapanes en la hora azul, pero esto ya veremos si lo consigo...

* Finalmente nos pide si queremos implementar un retardo entre fotos. Esto creo que puede ser muy útil  sobretodo cuando hacemos fotos de larga exposición. Debido que el arduino no se entera si ha terminado de realizar una foto o no y se va despues de unos 500 mS, he decidido implementar esta función programable.

* Acto seguido empieza a realizar la rutina hasta llegar a su fín, momento en que el cabezal vuelve a posición origen y reinicia el programa de nuevo por si queremos realizar otra captura. En versiones anteriores se quedaba en el loop haciendo una secuencia sin fín dejando bloqueado el sistema completamente. 

Y si lo veis ? aqui un video 

Nota> Cuando retrocede el cabezal muestra la temperatura de los dos drivers L298N y el voltaje de la bateria, este último valor es erroneo porque falta parte de la electrónica, por eso que marca 2v. en vez de unos 12-14v

Pues bién, este sábado pasado intenté realizar una foto de la Plana de l'Om de Manresa, decidí ir a primera hora de la tarde (aun no eran ni las 3!) y ya me encontré mucha gente (vamos mal...). Empiezo a montar los cacharros y ....

Primer problema: necesito inclinar mucho la camara hacia arriba para que me aparezca completamente el edificio de Can Jorba y el robot no me deja debido a un tope de seguridad que monté. No llevo las llaves allen encima. Intento retroceder el tripode con el robot pero aun me falta angulo, pero ya que estoy decido seguir con la prueba.

Programo limites , le doy al enter y oigo un sólo click, se mueven los motores pero no se oyen mas clicks... si apago la camara y la vuelvo a encender y sólo hace una foto. Empiezo a mirar configuraciones de disparo remoto y está en principio todo bién...WTF !

Para rematar viene un personaje diciendome "me interesa el sitio y me interesas tu..." lo que me faltaba para ponerme más en tensión, una plaza llena de imigrantes y me aparece este de la nada diciendome estas cosas tan bonitas... en 4 minutos logré que se fuera a calentar la cabeza a otra gente.

Desmonté los cacharros y de vuelta a casa...

Empiezo a realizar pruebas y me funciona ahora todo bién ! Su pu...a madre! 

Fijo la camara al cabezal metálico y vuelve a fallar, momento en que voy moviendo el cable del disparo remoto a ver si "suena la flauta".

Al cabo de unos minutos sonó! el problema es la fijación de la camara al cabezal mediante el tornillo metálico que no se por qué narices (ya que se tratan de baterias totalmente independientes) que me bloqueavan el obturador.

Quito la camara del robot, la dejo encima de la mesa y cojo un trozo de cable , en un extremo al tornillo de 1/4 de fijación de la camara y en el otro al aire, la cosa funciona, toco a la estructura del robot y voilá  ya tenemos el fallo!

(después de 4 dias aun no he encontrado un sistema de fijación que me convenza...)

Acto seguido pongo un poco de cinta aislante para "aislar" el robot de la camara y pataaaaaán ! ya funciona. 

Cargo los trastos de nuevo al coche y a probar de nuevo. Esta vez me desplazo hasta el pont vell de Manresa , lugar dónde se puede fotografiar la catedral de la Seu y La Cova. Lo preparo todo y a la primera.



Un par de videos del momento...



Tras 576 capturas ( 32 columnas x 18 filas ), una cada poco mas de 3 segundos es hora de volver a casa, convertir los RAW's a JPEG (aproximadamente una hora y media) y ensamblarlos en el AutoPano Giga, hasta obtener al cabo de unas 7 horas un archivo en formato PSB/PSD manipulable con el Photoshop . 


Una vez creado este archivo de unos 80GB de peso, sólo tengo que esperar algo mas de media hora para que se me carge en mi iMac 3.6GHz con 16GB de ram... (cuando le doy a grabar aproximadamente una hora y media), y las manipulaciones para borrar matriculas y pequeñas correcciones son muy lentas y con mucho riesgo de que "pete" todo...

Luego fué momento de colgarla en el servidor de Gigapan para que tod@s podamos disfrutar. Esta vez tardo 66056 segundos (poco mas de 18 horas) para subirla a la red la gigapan de 10.31 GPx.


Deseo que os guste, y que os animeis a hacer vuestras panorámicas.


Si la quereis ver en grande...


Por cierto, hoy en twitter he leido un post sobre un suizo que hace Gigafotos macros...os dejo el enlace para que le deis un poco a la cabeza. 

Si a alguién le sobra un robot de 6 ejes que me lo diga. Mas info en la web de Robophot

Saludos!


miércoles, 12 de marzo de 2014

Robot Panoramico XS (diseño mecánico)

Todo empezó un 10 de enero con unos retales de cartón de la caja de cereales, un metro, un boli y poca cosa mas para realizar un esbozo de lo que seria mi nuevo robot panoramico XS.


Queria hacerlo lo mas pequeño posible por lo que tocaria estrujarse la cabeza en cuanto a materiales y diseño. También tocó investigar con el Sr. Google. Este robot se "parecería" al EPIC Pro pero gestionado por Arduino.

La primera medida seria el ancho del robot, por lo que coji la camara de batalla (la Nikon d5200) y medí la distancia que hay entre el centro de la rosca de 1/4" de fijación que hay en la parte inferior y el extremo de la camara más lejano en su plano horizontal (distancia d1). Esta seria la distancia a multiplicar por dos que me marcaria la mínima anchura. El punto dónde esta fijada la rosca tiene que estar en línea con el eje de rotación horizontal.



También busqué la distancia que hay desde la base de la cámara hasta el centro del sensor de la misma, esta distancia d2 corresponderá con el eje de rotación vertical.

Finalmente hay otra distancia que la determiné un poco a lo loco: la profuncidad a la que deberia colocar la camara para que quedase el punto nodal bién centrado. Si soys nuevos en este blog, buscar en post anteriores el tema del punto nodal. Yo lo dejé a la misma distancia d3 del anillo de enfoque del Nikkor 18+200 acoplado al cuerpo.



Ya tenia tres medidas claras, y un diseño del balancín.


Siguiendo en la soportación del balancín sólo faltaba determinar la altura del eje de rotación, cuanto más arriba mejor, pero eso va en contra de optimizar el tamaño. Mediante los cartones iva proyectando como quedaria todo y calculando las posibilidades. Acabé determinando una altura del eje de rotación a unos 200 mm de la base con lo que conseguiria en el peor de los casos unos 45º de inclinación verticales que deberian servir para la mayoria de los proyectos fotográficos.

Ahora queria hacer que basculara todo al estilo balancín desde el eje de rotación vertical, por lo que tenia claro que la anchura de la soportación del balancín sería algun centimetro mas de ancho, por lo que ya tendria otra cota: el ancho teorico del robot, y ya puestos si el robot tiene que girar, esta cota también deberia ser el largo del mismo. Lo friki-ideal sería una caja redonda para ganar unos grados, pero a dia de hoy aun no existen pantallas del tipo oLed que pudiera acoplar en el Arduino, por lo que pasemos a la opción basica: caja cuadrada!

Llegado este punto empecé a buscar cajas metalicas...que odisea! en las tiendas de electrónica de mi ciudad no me convencian las que tenian. De vuelta a casa y a googlear hasta encontrar cajas eléctricas por lo que luego se me pasó por la cabeza en ir a una tienda de material eléctrico pensando encontrar una caja de mi gusto cuando faltaban pocos minutos para que cerraran la misma un sábado al mediodia. Después de plantear mis exigencias al vendedor y enseñarme varios catalogos (dónde este un catalogo en papel que se quiten los buscadores de internet!) me dijo "calla...tengo el catalogo de RS!" , este me suena muuucho. Alli busquemos la caja y me apunté la referencia para luego buscarla ya filtrada en su web, y así es como elejí la caja.

En la misma web de RS-amidata pude descargar los planos mecánicos, parecia bonita, de fundición de aluminio por lo que seria fácil de mecanizar. La busco y la encuentro por eBay, ya sólo faltaba esperar. Seria una Hammond 1590HFB (en la siguiente foto aparece un poco "distorsionada" ya que es cuadrada en dos de sus ejes).


Como que me habia lanzado , también adquirí gran parte del material restante y tras unos dias de "paro"  esperando la caja fuí mecanizando el balancín.

Una vez llegó la caja y los rodamientos de bolas ya podia empezar a agujerear. Para hacer estos agujeros utilicé una broca piramidal adquirida también en eBay.


Con estas brocas es dificil provocar enganchadas , cosa que con las brocas típicas cuando hacemos agujeros en planchas con poco espesor es muy fácil que se nos enganchen los labios de esta y nos provoque unos agujeros que no sean redondos (y cuando lo haces encima del marmol de la cocina aun mas!).

Primero llegaron los rodamientos de bola, muy utiles para no cargar el peso y fricción de todo el mecanismo sobre el motor. Tras marcar el centro de la caja y realizar una circunferencia con centro a este punto ya podia empezar a agujererar la caja para colocar a estos.


En la siguiente imagen se observa el "colador" , la caja con su infinidad de agujeros.


Luego llegó un motor que tenia que servir para hacer la rotación horizontal pero tras agujerear la caja y empezar a hacer pruebas me di cuenta que no tendria fuerza suficiente, por lo que deberia pasar a buscar otro motor...problemón !


Los motores NEMA-17 suelen medir unos 42 mm de alto, y la caja tiene una altura de unos 60 mm. Habia espacio suficiente para alojarlo, lástima que yo queria un motor con reductora. Despues de buscar en stepperonline y varias webs semejantes me encontré que ninguno de ellospodia alojarlos por su altura, hasta que un dia acabé encontrando unos que me entrarian (ver el post anterior de la lista de la compra).

Luego llegó la pantalla...más bricolaje! esta vez con la caladora y con la ayuda de mi madre! La pantalla hacia la misma altura que el interior de la caja. Poco a poco , agujereando todo y quedando bastante compacto.

Llegados este punto tuve que cargarme con un "disco" (la mola) el nervio central que hay en la mitad de cada costado en su interior ya que molestaba a la hora de colocar la pantalla . Por cierto , la pantalla hace la misma altura que el interior de la caja. Hay que calcular bien para que nos quede bien centrada.


En el lateral un par de agujeros mas para colocar los conectores tipo DB-9 (los míticos del puerto série).


Luego fué hora de fijar el resto de componentes electronicos , y de hacer un agujero para que saliera la cabeza del Joystick, este lo desmonté de un nunchuck de la wii que no utilizaba, al fín y al cabo es un doble potenciometro de 10Kohms.


Otro agujero mas para el pulsador , y otros mas y la base-caja ya estaba mecanicamente lista.


Ya sólo quedaba fijar los componentes electrónicos.


Mecanicamente sólo faltaba hacer la soportación del balancín que seria igual de ancho que la caja , creo que viendo alguna imagen será más fácil que no explicarlo.



En el balancín , al igual que el soporte, tienen unos agujeros de 8mm. que es realmente el eje de rotación. En el lado del motor, hay un tornillo de M8 fijado al balancín bien estampado de manera que si en el extremo del tornillo lo movemos, también levantamos el balancín. En el otro lado del balancín el eje es un simple tornillo pasante que hace la funcion de guia. Lo ideal seria poner unos rodamientos en los ejes del soporte de balancín pero por temas de medidas acabé montando unos pasamuros de fontaneria de latón asi ganaba rigídez y precisión. Al ser de latón se pueden gastar con facilidad debido al rozamiento, pero creo que va a durar una buena temporada, y cuando den problemas, se va a por otros a la tienda de fontaneria!

Una vez tenia la soportación del balancín realizada y tras sus dobles a 90º y haber pasado la caladora para "regatear" algo de peso y darle un poco de forma más bonita fué la hora de adaptar el otro motor encargado del movimiento vertical del balancín. Para realizar la transmisión utilizaría una correa tipo GT2 (las que usan en las impresoras Prusa 3-D) , y unas poleas de 36 dientes serán las encargadas de transmitir el movimiento. Como que los ejes del motor son de 8mm al igual que el eje de rotación vertical (tornillos de M8) , las poleas tienen que ser con un diametro interior de 8.


La correa venia abierta, con una longitud de 2 metros y yo apenas necesitaba 300mm. Siempre hay la opción de comprarla cerrada y evitarnos algun problema, pero salia mucho mas cara. Yo opté por recortarla y cerrarla mediante el amigo loctite invertiendo un trozo de correa de unos 5 cms. De momento aguanta...

Finalmente habia que montar un soporte para fijar el soporte del balancín al eje del motor horizontal. Este puede ser un "redondo" al que deberiamos montar un sistema roscado a ser preferible que atacara sobre el eje del motor.


Una vez llegado a este punto, ya sólo faltaba soldar y programar, pero para ello intentaré otro dia realizar el esquema simple...eso sí , me repito: esto no es un tutorial paso a paso, podeis "copiar" pero el ingenio de cada uno hará que quede y funcione vuestro invento mejor o más bonito.


DIY !





lunes, 3 de marzo de 2014

Robot panorámico XS (la lista de la compra)

Muchas veces me da pereza transportar mi robot panorámico hasta según que paraje posiblemente porque junto a el hay que transportar las baterías, la cámara, el objetivo y un sinfín de cosas mas. Tampoco creo necesario contratar un sherpa!

A raíz de aquí me empecé a plantear la construcción de un robot más pequeño y ligero con la finalidad de poder realizar fotografías panorámicas automáticamente utilizando un zoom estandard , en mi caso la intención inicial es usar un Nikkor 18-200mm unido a la Nikon D5200. Como que no tiene nada que ver con el otro objetivo que utilizo para hacer Gigapan's (el Sigma 150-500 + teleconversor 1.4x), acaba produciéndose que el numero de fotos para realizar la toma se reduce considerablemente, el peso del objetivo y finalmente la resolución conseguida será muy inferior pero no debería tener desperdicio frente a una panorámica normal. De aqui viene su etiqueta XS.

Para ello y basándome en mis anteriores experiencias empecé con unos bocetos para ir preparando el tema. Hoy de momento dejo la lista de la compra por si alguien se anima a fabricarse uno. Deciros que no sale "regalao" y si contamos las horas dedicadas más vale que os compréis uno nuevo. Si sois amantes de la electrónica , arduino y un poco manitas os lo podréis hacer con algunas pequeñas dificultades.

Antes de comprar nada , mirad la evolución de todo el proyecto en siguientes posts para ver si estais capacitados para realizarlo sin tener grandes dificultades.  

* Plancha de 1-1.5 mm : Aproximadamente necesitamos dos retales cuya area será de aproximadamente 800 x 200 mm. Lo más complicado es doblarla.

* Caja metálica . Yo he utilizado la Hammond 1590FBK que es la misma de la foto pero pintada de negro . Es de fundición de aluminio por lo que es fácil trabajar con ella. Os dejo un plano muy útil en formato PDF. Creo recordar que en RS-amidata estaba disponible , aunque yo la acabé comprando por eBay a Italia por unos 30 euros.

* Dos motores tipo NEMA-17 con reductor. Cuidadín que me costó mucho dar con ellos! El problema es la altura de la caja que hay que buscar un motor que sea bajito, a mi me sobran pocos milímetros! Yo utilicé unos Kysan 1040222 comprados por eBay . Os dejo el link actual. Otra opción que podéis hacer es buscarlos a través del fabricante en la siguiente web de Kysan. También el plano del motor en PDF. Si soys nuevos comprando este tipo de motores os recomiendo que leais otros posts o otras webs  para que luego no tengais problemas de voltajes...Comprado en eBay por unos 50 euros cada motor.


* Un arduino MEGA, con el UNO nos quedamos justos de salidas y de memoria. El programa actual me ocupa unos 26 kb, y el UNO soporta unos 32 kb. En cuanto a salidas, necesitamos al menos 8 salidas hacia los drivers de motores y como mínimo una para el disparo remoto de la camara. También podemos utilizar un ChipKit , pero luego tendremos que tener en cuenta que las salidas son a 3.3 v en vez de los 5v. proporcionados por el Arduino clásico. Comprado un clon por menos de 15 euros en eBay.


* Una pantalla LCD i2c de 20x4 caracteres que entra justa en la altura de la caja. Cuanto más grande...más información que podremos mostrar. Si no la teneis tipo i2c necesitareis más salidas libres en vuestro Arduino. Unos 11 euros en eBay.



* Dos drivers L298N , en eBay tienen un coste de unos 3 euros la unidad si vienen de Oriente.

* Step down con entrada 12/24v y salida 5v 10A , otros 5 euros en eBay.


* Dos metros de correa tipo GT2 y dos poleas de 36 dientes por menos de 14 euros en RepRap. Son las que usa la gente para hacer sus impresoras tipo Prusa-3D.



* Bolas rodamiento , que aproximadamente salen a 1 euro el rodamiento sobre el cual se deslizará la mesa sin hacer sufrir el motor y evitando de poner unos cojinetes/rodamientos enormes. Como el resto...comprado en eBay, para variar! Otros 10 euros menos en nuestro bolsillo.



Y luego un sinfín de pequeño material como pilaretes, tornillos de M3. un pulsador, un "joystick" sacado de un nunchuck de una wii...

Ya llevamos unos doscientos euros invertidos soló en eBay y un mes de espera en recibir estos componentes fotografiados.

Como herramientas : un taladro, la caladora, juego de brocas (yo utilizo unas piramidales que van muy bién con el aluminio de la caja para hacer agujeros grandes). Con la plancha ya es más peligroso, os lo digo por experiencia.

También necesitariamos un buen lugar para hacer bricolage, yo lo hago como puedo, pero ojalá tuviera un sitio como Dios manda y no como muchas veces agujereando en el suelo de la cocina...jiji.

En siguientes posts lo dedicaré a explicar pequeños detalles de la construcción mecánica y luego la parte de electrónica, pero en ningun caso será un tutorial paso a paso.

Como dijo alguien: "Si tu sueñas que puedes hacerlo, es que tu puedes". 

DIY ! Do-It-Yourselve!