Disparador para cámara de fotos con Arduino

Jueves, 25 de junio de 2009 por

Uno de los proyectos que tengo entre manos es hacer un disparador temporizado para mi Olympus E-510, De manera que pueda configurar un número de fotos, la duración de exposición y el intervalo entre ellas. Es lo que se conoce como time-lapse y permite crear vídeos como éste o este (impresionantes).

Lo quiero hacer con un PIC y un display LCD conectándolo a la cámara mediante el cable que tiene como disparador remoto. Mientras leía sobre proyectos parecidos me he encontrado alguien que ha hecho algo parecido con un Arduino, aunque en su caso no tenía posibilidad de un disparador por cable y ha hecho uno más artesanal, es un gran trabajo.

Hay algún dato más aquí.

Artículos relacionados:

Arduino con Makefile

Jueves, 12 de febrero de 2009 por

Para todos los que no estén familiarizados con lo que es Arduino, intentaré resumirlo: Arduino es un proyecto de hardware y software libre, parecido a Pinguino, pero con un microcontrolador Atmega168. El proyecto ha sido un éxito y está bastante avanzado, con multitud de documentación y ejemplos, especialmente útiles para principiantes y enfocados a la enseñanza. De hecho, las librerías de C que utilizan facilitan mucho el uso, ocultando los aspectos más oscuros de programar un Atmega a pelo. Hay varios modelos, un Arduino Diecimila, anda por los 24 €, ya montado.

Para programar Arduino existe un IDE gratuito para Windows, Linux y Mac, pero yo soy fan de los Makefiles en linux, y de usar mi editor, manías... Además, con algo de entrenamiento, entiendes mejor lo que estás haciendo y la localización de los errores si los hubiera. Arduino tiene un Makefile incorporado en arduino_home/hardware/cores/arduino.

El Makefile incluye en los comentarios unas instrucciones maravillosas que lo dejan listo para usarse. Al principio hay que cambiar algunos parámetros para nuestro programa en particular:

TARGET = $(notdir $(CURDIR))
INSTALL_DIR = /opt/arduino
PORT = /dev/ttyUSB0
UPLOAD_RATE = 19200
AVRDUDE_PROGRAMMER = stk500v1
MCU = atmega168
F_CPU = 16000000

Básicamente, aquí el target sería el nombre del directorio (así funciona el IDE, qué casualidad, mismo nombre en directorio y .hex,  pero puedes llamarlo como quieras, programa, por ejemplo), dónde hemos instalado arduino, el puerto que usaremos para subir el programa, baud rate y características de la placa: procesador atmega168 (arduinos viejos atmega8), 16MHz.

Si se quiere añadir una librería, habrá que meter su código fuente en SRC (si es .c) o en SRCXX (si es .cpp) y de la misma forma poner los directorios en que se encuentran las cabeceras (.h) en CINCS o CXXINCS. Para mi gusto, el otro día me dí cuenta de que falta una importantísima: hay que añadir Print.cpp a SRCXX para que funcione el puerto serie, dado que la clase de manejo del puerto de serie, HardwareSerial, hereda directamente de la clase Print.

Y se escribe en un terminal:

make para obtener el programa.hex

make upload para subir programa.hex al arduino.

Por cierto que echando un vistazo a arduino_home/hardware/cores/arduino se puede entender bastante sobre como funcionan algunas cosas, crearte tus propias librerías o sencillamente ir avanzando en el uso de Arduino.