TEMARIO  FOTOGRAFÍA Y CÓMPUTO FÍSICO
apuntes para las sesiones de trabajoy referencias                                                 rev     oct.  2013


El objetivo de este taller de es familiarizar a los fotógrafos y a los artistas visuales en general, sobre algunas posibilidades expresivas que se pueden obtener aplicando el cómputo físico a la fotografía.

El atrapar el instante significativo para nuestro proyecto fotográfico, puede requerir del apoyo de tecnologías de cómputo físico. Estos proyectos pueden ser de utilidad para la creación de animaciones a partir de fotografías, para autorretrato, para captar la vida de los animales, bitácora de realización de obras, y muchas otras aplicaciones.

A través de este taller los asistentes desarrollarán proyectos  fotográficos, tanto prácticos como expresivos, apoyados con el uso de microprocesadores, sensores y actuadores.



LAS CÁMARAS DE FOTO Y DE VIDEO QUE SE PUEDEN CONTROLAR.

El control remoto de una cámara puede ser por control eléctrico (alámbrico) o por infrarrojo (inalámbrico).
Las que tienen un cable para su control requieren construir uno (o adaptar uno existente) para poder conectarlo a la tarjeta Arduino.
Para las cámaras que se controlan por infrarrojo, se copia  el código del control remoto a la tarjeta Arduino. (ver más adelante)

Control remoto para Nikon DSLR. (D200, D300, D700, D800, D3, D4)

Tanto en las cámaras de Nikon como en las de Canon el funcionamiento del control remoto se basa en tres cables. Los cables originales son muy caros, pero se pueden obtener a partir de controles remotos de otras marcas que inclusive permiten convertir el modo alámbrico a inalámbrico por medio de un transmisor - receptor infrarrojo (IR).

Control remoto para Canon (entrada miniplug)

Algunas cámaras como la serie Powershot y las de la serie Rebel se controlan a través de este miniplug.
Las cámaras profesional de Canon se controlan también con tres cables, pero el conector es diferente

Control remoto para Canon (infrarrojo)
Control remoto para Nikon (infrarrojo)
Adafruit code para control remoto de Nikon.
Adaptadores de controles remotos para modelos profesionales de Nikon y Canon


ARDUINO



Descripción de la tarjeta
Funcionamiento / Conexión computadora / Carga de programas
Puertos analógicos
Puertos digitales

Materiales / Protoboard
Ejercicios básicos


SENSORES

Los sensores que se pueden aplicar a la fotografía y al video:

de movimiento
de proximidad
de distancia
de movimiento sobre un plano
de sonido
de luz
cruzando una línea


Foto disparada gracias a un sensor de ultrasonido. Nikon D700, 28-300 mm f   1/25".

ACTUADORES

La secuencia de trabajo generalmente es:

sensado del mundo físico ----> respuesta del microprocesador
disparo del relay ----> disparo de la cámara



El relay es el principal actuador utilizado en estos proyectos.

Funcionamiento de un relay.

TIEMPO

El manejo del tiempo (time lapse o toma de fotos a ciertas horas determinadas) se puede lograr con una tarjeta Arduino y un "shield" del tipo ChronoDot, que permiten programar diversos eventos temporales, ya que la tarjeta mantiene con precisión no sólo la hora del día sino también el año, el mes, y el día de la semana.
La técnica de programación con el ChronoDot permite activar y desactivar dispositivos con entradas y salidas de eventos muy precisas. La combinación ideal para este dispositivo es un arreglo de relays.

Detalles

En esta tarjeta vemos como los disparos digitales (digitalWrite) de la tarjeta Arduino activan unos relays.  Esta
tarjeta también cuenta con una conexión a una pantalla LCD que permite ver la hora y la fecha.


Ejemplo de programación.
Esta combinación electrónica permite realizar funciones avanzadas que no son posibles con los intervalómetros incorporados en las cámaras. Por ejemplo realizar una secuencia de este tipo:
1.- estado de reposo se termina (después de x segundos/minutos/horas)
2.- encender la iluminación      digital write high
3.- despertar la cámara (de ser necesario)           
4.- tomar la foto                        digital write high / low
5.- apagar la iluminación          digital write low
6.- entrar en estado de reposo, la cámara lo hará en el tiempo indicado en su menu.

regresa al paso 1 después de x segundos/minutos/horas/días ...


RECOMENDACIONES

Para ciclos muy largos es indispensable que:

- la cámara tenga la opción de ser alimentada externamente
- contar con un no-breake
- tener presente el consumo (A) de la iluminación (relay)



SENSOR PIR CONECTADO A UN RELAY

La primera parte de este dispositivo consiste en conectar un sensor PIR a la tarjeta Arduino, para obtener una lectura.
Materiales:
- tarjeta Arduino
- sensor PIR
- resistencia de 10K

Información del sensor (Sparkfun) Tutorial

Ya obteniendo una lectura del sensor,  podemos proceder a programar un disparo del relay cuando existe la condición de presencia. Esta señal digital (digital write) es aprovechada para alimentar la bobina del relay, que a su vez cierra el circuito y la cámara toma la foto.



Esta configuración en el protoboard, una vez que ha sido comprobada, se puede pasar a un shield, en donde los componentes están soldados.
Aquí vemos un shield que contiene terminales de tornillo para conectar el sensor PIR y al lado la salida del relay, al centro el común y a los lados la conexión de "normalmente abierto" y "normalmente cerrado".
También tiene un LED infrarrojo, lo que permite controlar cámaras con control inalámbrico.
Esta tarjeta se puede programar también como intervalómetro, con la función delay.
Ejemplos de programación:

- intervalómetro, toma una foto cada 30 segundos, envía disparo por cable. (sketch 1)
- intervalómetro, toma una foto cada 30 segundos, envía disparo por secuencia IR.
- detección de movimiento, disparo por cable (sketch 2)
- detección de movimiento, disparo por secuencia IR
         
                        Cámara Nikon conectada al relay a través del cable MC-22.


Consideraciones electrónicas:

- Alimentación de la cámara (AC)
- Alimentación de los dispositicos  (procesadores y sensores)

Consideraciones fotográficas:

- ¿Cámara en exposición automática o manual?
- Autofocus
- Sonido del disparo de la cámara (ver más adelante)


USO DE CONTROLES REMOTOS INFRARROJOS

Copiado de un código de control remoto infrarrojo

Tutorial de Adafruit

IMPORTANTE - DISPARO DEL LED IR.

El LED IR llega a tener un consumo elevado de corriente cuando parpadea, por lo que es necesario alimentarlo a través de un transistor.
Si usamos la alimentación de 5 V. de la Arduino, pensando en forward voltage de 2.2 voltios y con corriente de 800 mA (es decir usándo un 80% de la potencia), deberíamos poner una resistencia de 3.6 ohms. Notar en las especificaciones técnicas de los LED IR que el consumo varía entre 100mA cuando está encendido en aplicaciones tipo iluminación nocturna (IR) para cámaras de video, pero cuando se usa con pulsos cortos su consumo se eleva hasta 1000 mA. Por esta razón, la corriente del pin digital asignado no es suficiente (40mA) para su disparo directo y lo tenemos que mandar  a través de la base de un transistor NPN, como se muestra a continuación.

     
Materiales:
- tarjeta Arduino
- transistor PN2222A o TIP 102, TIP 120, etc.
- resistencia de 3.6 ohms
- resistencia de 1K
- LED IR 333A


             
                                     LED infrarrojo montado en el shield.

Nota: para poder ver el parpadeo del LED IR es necesario utilizar una cámara de foto digital, como por ejemplo las que hay en los celulares, ya que a simple vista no es visible.

Calibración de los pulsos enviados con los pulsos  leídos.

Ejemplos de control de IR:

Adafruit, intervalómetro para Nikon
Sony EX1 XDCAM camcorder  (rec y pausa)

Sony DVD Recorder (rec, pausa, resume rec)
Sony DVCAM portable recorder
Canon PowerShot IR remote control



MOVIMIENTO DE UN PLANO

El movimiento de un plano puede ser detectado con un acelerómetro.


De esta manera es posible disparar la cámara cuando, por ejemplo, un pájaro se
recarga en un alambre.

Para este prototipo vamos a añadir el módulo del acelerómetro sobre el shield del
ejercicio anterior. Usaremos los puertos analógicos para alimentarlo.



Programa y aplicación.



Cámara Canon G12, controlada a través del shield.


CONSIDERACIONES SOBRE EL RUÍDO DEL DISPARO DE LA CÁMARA

Tomar en cuenta el ruído del disparo del relay y del disparo de la cámara. Este ruído puede ser muy problemático para retratar algunos animales, que se asustan.
En cuanto al relay, si sólo se usa para disparar la cámara, se puede sustituir por un reed o por un opto
El problema del ruído de la cámara réflex.
Con algunos animales puede ser problemático el uso de estas cámaras por el ruído que producen. 

Nuevas cámaras de alta resolución silenciosas (mirrorless)





DISPARO DE CÁMARA POR NIVEL SONORO
Podemos disparar una cámara cuando el sonido del ambiente llega a cierto nivel. Para ello utilizamos, en este caso, un módulo de micrófono / amplificador, cuya señal leeremos en el puerto analógico 0. Ajustamos el disparo según el valor de la lectura. Podemos mandar la señal al relay, para cámaras alámbricas, o al LED IR para las que dispongan de este tipo de control remoto.
Para este prototipo vamos a añadir el módulo del micrófono / amplificador sobre el shield del ejercicio anterior. Usaremos los puertos analógicos para alimentarlo. 



INTEGRACIÓN DE UNA PANTALLA SERIAL LCD Y POTENCIÓMETRO


En los casos anteriores es posible leer los datos que arroja el sensor o el micrófono cuando estamos leyendo los resultados en el serial monitor. Esto implica que estamos conectados a la computadora. Sin embargo, cuando no es posible estar con la computadora cerca de la instalación electrónica de detección, puede ser de utilidad conectar un potenciómetro al circuito que permite cambiar el valor del umbral.


INTEGRACIÓN DE TRES PROGRAMAS EN UNA SOLA TARJETA



Ajustados los valores de los componentes y después de probar la programación y el hardware, se puede proceder a juntar los tres proyectos en una sola tarjeta, seleccionando el programa a usar por medio de un botón.

También se puede integrar un potenciómetro para ajustar algunos valores sin tener que conectar la tarjeta lógica a la computadora.

Finalmente una pantalla serial de LCD nos podría dar información, por ejemplo, sobre el programa utilizado y los valores de las variables controladas por el potenciómetro.

Ejemplo:

PROGRAMA FUNCIÓN DEL POTENCIÓMETRO
Botón 1
Botón 2
Botón 3
Botón 4
- PIR
- Acelerómetro
- Detección de audio
- Intervalómetro
tiempo de disparo
sensibilidad
nivel de disparo audio
tiempo transcurrido

Materiales:
- potenciómetro de 10K
- LCD serial display
- 4 botones

- 4 resistencias de 10K

LASER Y LDR - CRUZANDO UNA RAYA

El primer paso es familiarizarse con las lecturas de una fotorresistencia.

Materiales:
Tarjeta Arduino
LDR
Resistencia de 1K


Arduino ----> cargar el ejemplo Analog Serial Read.

Observar en el monitor del serial el cambio de valores que se obtienen dependiendo de la incidencia de la luz sobre el LDR.

El segundo paso es integrar un rayo laser que va a dar a la fotorresistencia.

Como la distancia entre el laser y LDR puede ser grande, hay que montar la foto resistencia en una tableta separada y con suficiente cable. En la foto los cables rojo y negro van a la alimentación (+5 y tierra respectivamente), y el cable verde va a la entrada analógica 0.

La interrupción del rayo provoca un cambio de lectura en el LDR.



Ejemplo para fotografía de alta velocidad. Acoplamiento a un flash.


El ajuste del valor del  delay  permite controlar que tanto tiempo (en milisegundos) pasa entre que el objeto cruza la línea del laser y se dispara el flash. La duración del destello de luz varía en función de la potencia del flash utilizado. En este caso la duración fue de 1/8000 de segundo con un flash Nikon Speedlight SB900.


MOVIMIENTOS DE CÁMARA Y DE OBJETOS

El control de la secuencia de movimiento, disparo de cámara, movimiento, es muy fácil de obtener con el uso de motores a pasos (stepper), una tarjeta Arduino y con un controlador adecuado.

Los motores a pasos tienen una especificación que se refiere al ángulo de avance por cada paso. La mayoría de los motores tienen un ángulo de avance de 1.8 grados, algunos puedentener de 0.9 grados.

Si utilizamos un motor de 1.8 grados por paso, que es más fácil de obtener y controlar, podemos utilizar en la programación una función que permita el avance de medio paso, lo que quiere decir que para una rotación de 360 grados de la cámara o del objeto, se requieren de 400 fotografías, lo que permite obtener un movimiento bastante uniforme. Un avance de 0.9º por foto es lo mínimo aceptable para animaciones en HD, especialmente si serán presentadas en pantallas grandes.


Integración de dos potenciometros para variar el delay y el número de pasos.

Con esta técnica es posible mover algunas variables del programa sin tener que  compilarlo.





Adafruit Motor Stepper Shield

Para motores de mayor consumo de corriente (que permiten mover cámaras u objetos más pesados) es necesario utilizar un puente 298 en lugar del 293 que viene en shield del tipo de Adafruit.
Aquí hay un prototipo casero que funciona muy bien y tiene algunas ventajas sobre otras soluciones comerciales.

El principal problema en estos motores el la fuente de alimentación.

Prototipo de la fuente y versión en circuito impreso.

Este sistema (fuente / controlador / Arduino) mueve un motor de gran torque

   

Anaheim Automation tiene diversos tipos de motores especializados.


Ejemplo de animación, cuadro por cuadro, ensamblada en AFX.




MOVIMIENTOS DE  CÁMARA  SOBRE RIELES.

Utilizando motores a pasos y rieles es posible desplazar una cámara en el espacio con movimiento controlado en forma muy precisa.
La configuración de Arduino es muy parecida al ejemplo anterior.




Esta investigación  se realizó gracias al apoyo del Sistema Nacional de Creadores de Arte, FONCA 2011 y a la colaboración de Abel Arellano, Alfredo Martínez, Carolina Villanueva de la ENPEG "La Esmeralda". México 2012.