Jump to content

Proyecto StackBlackBox X. Controladora doble carril.


dsteodoro
 Compartir

Publicaciones recomendadas

(Actualizado 23/01/2020) - v4.21

(https://foromacrosmuymacros.com/viewtopic.php?f=14&t=867)


Introducción.

Tras el desarrollo del StackBlackBox® (Enlace proyecto), un compañero del foro de Nikonistas (Taver) me dio la idea de ampliar las capacidades del equipo para que pudiera manejar dos carriles a la vez y de esa forma poder hacer macro panoramas (How to Make Gigapixel Macro Images | GIGAmacro).

Para stacking o apilado simple, con un carril se consigue el movimiento “Z” o “profundidad” y con dos carriles se conseguiría otro movimiento: X o Y según nuestras necesidades. Para simplificar las explicaciones, voy a suponer que el eje que se va a mover es el horizontal o eje X.


StackBlackBox® X.

Para el que no haya visto el proyecto, StackBlackBox® es un dispositivo que permite controlar de forma precisa un motor paso a paso disparando la cámara una o varias veces entre cada movimiento. Esto hace que podamos controlar cualquier tipo de carril: carril macro/micrométrico, de varios cm para timelapses dinámicos, una plataforma giratoria, etc.

StackBlackBox ® X es la evolución natural del StackBlackBox®. La nueva versión permite controlar dos carriles de forma independiente o conjunta en movimientos tipo “Zigzag”, es decir, primero haría la secuencia de fotos del eje Z, luego movería el eje X y de nuevo empezaría hacer la secuencia del eje Z. Así hasta completar el movimiento programado para el eje X.

Se puede programar cualquier parámetro relacionado con los movimientos y numero de fotos.

Para el movimiento Z del carril, usando un husillo de 1mm/vuelta y un motor de 400 pasos se obtiene una precisión nativa de 2.5 micras (0,0025 mm). Si usamos el driver TMC2208 con conexion por UART y ajustamos los micropasos a 256 y la precisión mediante menú a x256, obtenemos un movimiento teorico de 0,009 micras. El ajuste de este parametro permite usar husillos de paso más grande y aun así obtener precisiones muy pequeñas.


Software de stacking o apilado.

El software de apilado que yo uso y que soporta macro panoramas es Helicon Focus (Intelligent Software For Photographers - Helicon Soft). Es un software muy bueno y asequible si te gusta la macrofotografía y piensas hacer muchas tomas. Soporta archivos raw y los convierte a dng mediante el convertidor gratuito de adobe (Conversor DNG de Adobe) antes de procesarlos. Tiene una versión de prueba de 30 días para que veas sus bondades. Para uso normal, la versión “Lite” es suficiente y es la que yo adquirí.

Otro software muy conocido y usado es Zerene Stacker, pero de momento no soporta panoramas.


Hardware necesario.

El proyecto se ha diseñado tomando como base un Arduino mega pro porque es muy pequeño y potente.

Todos los componentes se pueden encontrar en Aliexpress, Banggood o en Amazon.

El hardware necesario es el siguiente:

  • 1 Arduino mega pro: Mega 2560 PRO (Embed) CH340G/ATmega2560-16AU (Arduino-compatible board)

    arduin12.jpg

  • 2 controladoras de motor TMC2208 (16 micropasos en modo heredado o 256 micropasos - comunicacion UART) o A8825 (32 micropasos)

    tmc22012.jpga882511.jpg

  • 3 condensadores 100uF 16V

  • 1 diodo 1N4001 o 1N4007

  • 2 resistencias de 150 ohm y 1/4W

  • 5 resistencias de 1k ohm y 1/4W

  • 2 optoacopladores PC817 o equivalente.


    descar10.jpg

     

  • 1 pantalla LCD 2004 I2C

    a200410.jpg

     

  • 1 joystick para Arduino. Sirve para manejar todas las funciones.

    arduin11.jpg

  • 1 modulo HM-10 bluetooth (opcional – futuras ampliaciones)

  • 1 modulo HC-12 433 MHz (opcional – futuras ampliaciones)

  • 5 pares de conectores macho – hembra para baterías lipo 3s (4 pines)

  • 2 pares de conectores macho – hembra para barrerías lipo 4s (5 pines)

  • 1 par de conectores macho – hembra para baterías lipo 5s (6 pines)

    Banggood - enlace de compra

    cable_10.jpg

  • 2 pares de conectores de aviación de 12mm macho – hembra de 4 pines para los motores. Banggood - Juego conectores motor

    conect10.jpg

  • 2 conectores Jack hembra 2.5” para la salida para disparar las cámaras de fotos.

    https://www.ebay.es/itm/10-Un-DIP-PCB-Montaje-5-Pins-Hembra-2-5mm-Stereo-Audio-Jack-Enchufe-/381762433395

    jack2510.png

  • 3 conectores RCA hembra para los sensores de final de carrera y disparador directo externo.

  • 1 caja para colocarlo todo. Yo uso el modelo de 158x90x60 de: Banggood - Caja

    caja10.jpg

 

 

Esquema EasyEDA para proyecto con TMC2208.

He migrado el proyecto Fritzing a EasyEDA, una herramienta excelente que he "descubierto" hace poco y la verdad me ha encantado para hacer proyectos electrónicos. Tanto el esquema como el PCB están actualizados para poder usar los drivers A8825 y TMC2208. En el código fuente se puede ver claramente la asignación de las entradas/salidas digitales a los distintos elementos del hardware.

Proyecto StackBlackBox X - EasyEDA

sbbx_p12.png

 

Esquema fritzing.

Debido a que el montaje puede ser algo complejo, en el esquema fritzing también tenéis el diseño del PCB que yo he usado y que se puede enviar a fabricar (AISLER - Powerful Prototyping for your electronics project made in Germany.). Simplifica enormemente el proceso del montaje del hardware.

Fritzing - StackBlackBox X

pcb10.jpg

12/03/2019 - Modificación para uso de TMC2208

tmc22010.png

Controlador Motor 1 - TX -> Patilla D50 en Arduino Mega
Controlador Motor 1 - RX -> Patilla D51 en Arduino Mega

Controlador Motor 2 - TX -> Patilla D52 en Arduino Mega
Controlador Motor 2 - RX -> Patilla D53 en Arduino Mega

Las patillas MS1, MS2, NC, CLK no se conectan.

img_2018.jpg

arduin10.png
 


Código fuente.

23/02/2020 - Código arduino - StackBlackBox X v4.21

IMPORTANTE: 

Ajustar los siguientes #define antes antes de programar el arduino:

#define UsaTMC2208_UART     1     // 0: Usa A8825             //   1: Usa TMC2208 por UART
#define JOYREVES                   0     // 0: Usa el joystick con las conexiones hacia abajo           1: conexiones hacia arriba


Librería necesaria para la pantalla 20x4 I2C.

Librería LCD 2004 - I2C

Librería necesaria para el driver TMC2208.

Libreria TMC2208

Este driver se puede usar en modo heredado, donde se debe configurar por hardware la intensidad del motor y los micropulsos para 1 paso o en modo UART que permite configurar desde el menu ambas cosas.
 

Manual de actualización del codigo fuente.

Para la gente que ha trabajado poco o nada con Arduino, he preparado este manual que explica la forma de actualizar nuestro código fuente. Es un documento word que he dejado abierto para que podais modificarlo con vuestras propias anotaciones.

https://1drv.ms/w/s!AsjC_7oRY5wujS7U31nAeuVeSff1



Uso de dos carriles.

El carril “Z + X/Y” está pendiente de desarrollo. Para mi, lo mas "coñazo" siempre ha sido la fabricación de los carriles pero por suerte en tiendas online chinas (aliexpress, bangood) ya venden carriles buenos bastante baratos (unos 40€).

Una opción es usar un carril para el movimiento "Z" del objeto a fotografiar y otro para el movimiento "X" o "Y" de la cámara según nuestras necesidades.

Aquí teneis el enlace de un carril ya montado y que sirve perfectamente para realizar sesiones de apilados normales. Es muy robusto. El lead es un poco alto (8mm/vuelta = paso de 40 micras) y el motor es de 200 pasos. Programando la intensidad del TMC2208 a 300mA funciona bien. Si pongo 256 uPulsos y la precision x4 obtengo un "lead" de 2mm/vuelta. Subiendo la precisión tengo de sobra para usar objetivos de microscopio x4 y x10.

Carril - Eje Z (Aliexpress)

ejez10.jpg


También se puede montar dos carriles fijos, uno que mueva el objeto el sentido Y (derecha-izquierda) y otro que mueva la camara en el eje Z.

 

Opciones del menu.

      Iniciar ciclo   - Iniciar el ciclo de trabajo con los parámatros programados

      Fijar recorrido

        ..                      - Vuelve al menu raiz
        Fijar posicion ZX   - Establece la posición inicial del ciclo macro (modos 2 y 4) o la final (modos 1, 3 y 5)
        |------|              - Establece la posición inicial del carril 1 (modos 1, 3 y 5). Indica la distancia total y el numero de fotos
        |------|              - Establece la posición inicial del carril 2 (modos 1, 3 y 5). Indica la distancia total y el numero de fotos
        Reset carriles     - Borra de memoria la posición fijada para los carriles

      Modo Trabajo 1 - 5

        Modo 1 - Funciona un carril indicando el recorrido de principio a fin.
        Modo 2 - Funciona un carril indicando el numero de fotos a realizar.
        Modo 3 - Funcionan dos carriles indicando el recorrido de principio a fin de cada uno.
        Modo 4 - Funcionan dos carriles indicando el numero de fotos a realizar por cada uno.
        Modo 5 - Funcionan los dos carriles en forma de zigzag: carril 1 de inicio a fin -> desplaza carril 2 -> carril 1 de inicio a fin -> desplaza carril 2 ...


      Motor principal - Indica si en los modos 1 y 2 se trabajará con el carril 1 + cámara 1 o con el carril 2 + cámara 2

      Ajustes Camara 1

        ..                 - Vuelve al menu raiz
        Num.Fotos    - Numero de fotos ha hacer: calculadas o fijadas
        Fot.Ciclo       - Numero de fotos por ciclo. Para modo Mup, HDR, timelapses, ...
        Tp.Espera     - Tiempo de espera desde que se dispara la camara 1 hasta que se mueve el motor 1

        Tp.Estab       - Tiempo de espera desde que termina de moverse el motor 1 hasta que dispara la camara 1
        Tp.Disparo    - Tiempo durante el que se acciona el optoacoplador para disparar la camara 1
        Copiar a Camara 2  - Copia los ajustes actuales a la camara 2
        Test Camara 1        - Hace un disparo de prueba de la camara 1

        Led On         - Indica el tiempo que debe esperar desde que se activa la camara hasta que se activa la salida para el led/flash
        Led Dur        - Indica el tiempo que está activa la salida para el led/flash

      Ajustes Camara 2

        ..                  - Vuelve al menu raiz
        Num.Fotos     - Numero de fotos ha hacer: calculadas o fijadas
        Fot.Ciclo       - Numero de fotos por ciclo. Para modo Mup, HDR, timelapses, ...
        Tp.Espera     - Tiempo de espera desde que se dispara la camara 2 hasta que se mueve el motor

        Tp.Estab       - Tiempo de espera desde que termina de moverse el motor 2 hasta que dispara la camara 2
        Tp.Disparo    - Tiempo durante el que se acciona el optoacoplador para disparar la camara 2 (0.00 - 0.99 seg)
        Copiar a Camara 1   - Copia los ajustes actuales a la camara 1
        Test Camara 2         - Hace un disparo de prueba de la camara 2

        Led On         - Indica el tiempo que debe esperar desde que se activa la camara hasta que se activa la salida para el led/flash
        Led Dur        - Indica el tiempo que está activa la salida para el led/flash


      Ajustes Carril 1

        ..                       - Vuelve al menu raiz
        Ajustar posicion  - Ajustar la posicion del carril 1.
        Dis.Paso             - Distancia de avance entre foto y foto en micras.
        Movimiento lento, medio, rapido - Ajusta el tipo de movimiento del motor (antes uPxPaso)

        Precision      - x1, x2, x4,... X256- Se envían al motor (uPxPaso / Precision) para moverlo. Al cambiar este valor la distancia de paso se establece en su valor más pequeño.
        Sentido         - A->B o B->A. Sirve para invertir el sentido del movimiento del motor.
        TpMotor        - Establece los pasos necesarios para dar una vuelta completa
        mm/giro       - Lead o paso del husillo o correa. Distancia (1 a 50 mm) que se desplaza la base en una vuelta completa del motor.

        Volver 0        - Indica si el motor vuelve a su posicion inicial al terminar el ciclo de trabajo.
        Tipo Mov      - movimiento lineal o rotativo.
        An.Rotac      - Angulo de rotación del carril en movimientos rotativos. 
        Int1rms        - Intensidad RMS (1 a 999 mA) - SOLO comunicacion UART TMC2208.

        Copiar a Carril 2 - Copia los ajustes actuales al carril 2.
        Test Carril 1       - Envia al motor del carril 1 los pasos necesarios para dar un giro completo (TpMotor)


      Ajustes Carril 2

        ..                       - Vuelve al menu raiz
        Ajustar posicion  - Ajustar la posicion del carril 2.
        Dis.Paso             - Distancia de avance entre foto y foto en micras.
        Movimiento lento, medio, rapido - Ajusta el tipo de movimiento del motor (antes uPxPaso)

        Precision      - x1, x2, x4,... X256- Se envían al motor (uPxPaso / Precision) para moverlo. Al cambiar este valor la distancia de paso se establece en su valor más pequeño.
        Sentido         - A->B o B->A. Sirve para invertir el sentido del movimiento del motor.
        TpMotor        - Establece los pasos necesarios para dar una vuelta completa
        mm/giro       - Lead o paso del husillo o correa. Distancia (1 a 50 mm) que se desplaza la base en una vuelta completa del motor.

        Volver 0        - Indica si el motor vuelve a su posicion inicial al terminar el ciclo de trabajo.
        Tipo Mov      - movimiento lineal o rotativo.
        An.Rotac      - Angulo de rotación del carril en movimientos rotativos. 
        Int1rms        - Intensidad RMS (1 a 999 mA) - SOLO comunicacion UART TMC2208.

        Copiar a Carril 2 - Copia los ajustes actuales al carril 1.
        Test Carril 1       - Envia al motor del carril 2 los pasos necesarios para dar un giro completo (TpMotor)

      Reset Restaura todas las opciones a sus valores por defecto

Ciclo de disparo y tiempos.

Aqui se ve gráficamente como afectan los tiempos que se programan y el número de fotos por ciclo.

ciclo_10.png

ciclo_11.png

 

Editado por dsteodoro
Actualizado
Enlace al comentario
Compartir en otros sitios web

Código fuente actualizado a la ultima version a fecha de hoy (v3.10). Mejoras internas en el codigo, en la gestion del driver TMC2208 y aumentada la opcion "Precision" que ahora admite como máximo el nº de micropulsos que se programen (máximo x256 con TMC2208 a 256 micropulsos).

Saludos,
Daniel

Enlace al comentario
Compartir en otros sitios web

  • 1 month later...

Actualizada la version 3.52 con correcciones para el correcto funcionamiento de los carriles tras la simplificación de las opciones del menu. Tambien he actualizado y corregido el manual ya que el tiempo de disparo es entre 0.01 y 0.99 seguntos (y no entre 0.1 y 9.9 segundos).

Felices fiestas,
Daniel

Enlace al comentario
Compartir en otros sitios web

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Responder a este tema...

×   Pegar como texto enriquecido.   Pegar como texto sin formato

  Only 75 emoji are allowed.

×   Tu enlace se ha incrustado automáticamente..   Mostrar como un enlace en su lugar

×   Se ha restaurado el contenido anterior.   Limpiar editor

×   No se pueden pegar imágenes directamente. Carga o inserta imágenes desde la URL.

 Compartir

  • Explorando recientemente

    • No hay usuarios registrados viendo esta página.
×
×
  • Crear nuevo...