Disparar una cámara Canon EOS desde un Arduino

Publicado el jue 30 junio 2011

Hace ya un tiempo enseñé cómo hacer un cable para disparar una Canon EOS remotamente. El cable podría ser adosado a un interruptor, pulsador o similares. Esta vez conectaré el mismo cable a un Arduino, de esta forma podremos disparar la cámara bajo las condiciones que nos podamos imaginar: cambios de luz, ruidos, movimiento, temperatura, vibraciones, etc.
Para poder hacer las conexiones, necesitaremos:

  • el cable de disparo remoto (entrada previa)
  • dos transistores PN2222
  • dos pines digitales del arduino

Realizaremos las conexiones como aparecen en el esquema:

Una vez hecho ésto podemos realizar algunas pruebas usando el siguiente código:

/* Disparar Canon EOS
via cable remoto
*/
const int f_pin = 6; // pin para enfoque
const int s_pin = 7; // pin para disparo

/* Recordar que la EOS no disparara si esta
en enfoque automatico y no esta enfocada
correctamente.

Si se desea disparar a cualquier costo, se
debe definir enfoque manual.
*/
void setup() {
  //defino los pines como salidas
  pinMode(focusPin, OUTPUT);
  pinMode(shutterPin, OUTPUT);
  //dejo las salidas en LOW
  digitalWrite(focusPin, LOW);
  digitalWrite(shutterPin, LOW);
}

void loop(){
  /* Este bloque tal cual como esta
  actuaria como un intervalometro y
  serviria para hacer time-lapses
  */
  digitalWrite(focusPin, HIGH); //enfoco
  /* El delay es para que enfoque adecuadamente
  Se debe ajustar segun la dificultad que haya
  para enfocar*/
  delay(2000);
  digitalWrite(shutterPin, HIGH); //disparo
  /* Dejo un tiempo antes de terminar el proceso
  Este valor debe ser adecuado segun el tiempo de
  disparo. El tiempo de exposicion se define en la
  camara. Este delay definira el tiempo de obturacion
  en modo bulb.
  */
  delay(1000);
  digitalWrite(shutterPin, LOW); //dejo de enfocar
  digitalWrite(focusPin, LOW); //dejo de disparar
  delay(10000); //espero 10 segundos hasta sgte ciclo
}

Ahora a jugar.