This arduino sketch uses the ptp-usb protocol to control a digital camera. The Camera is connected via a vinculum Host-Controller. The prototyp consists out of
Arduino Pro mini (5V Version with ATMEL 168)
VDIP1 from FTDI (connected via newsoftserial)
an optional SRF02 sensor for measuring the distance of an object in front of the sensor
The user interface is implemented via 3 Buttons, two LEDs and an on/off switch with integrated red status led.
I have implemented the following functions
a) Remote trigger (one short press on button C)
b) Bracketed trigger (long press on button C)
You can setup the starting exposure time with Button A and B. A short press on button A displays the starting exposure time in the camera display. A long press reads the exposure time from the camera. Use Button B to setup and display the ending exposure time.
c) Timelapse (extra long press on button C for over 3 seconds). The duration of the button press is the time between the shoots.
d) Fokus-Trap: The fokus-trap is activated with an extra long press on button B. The distance to the object is measured with the SRF02 sensor. To setup the nearest and
longest distance use button A and button B.
There are some restrictions for the moment.
Today only nikon cameras are supported. I have tested it with a D50. There are great chances that other nikon cameras will work. I have used some nikon extension to the ptp-protocol. So there are great chances that non Nikon cameras will not work.
PIN-Assignments
2 RX-Port of Vinculum
3 TX-Port of Vinculum
4 BUTTON_C
5 BUTTON_B
6 BUTTON_A
11 SRF02_SELECT
12 ERROR_LED
13 STATUS_LED
The optional SRF02 is connected via I2C (A4/A5).
I will post some pictures and the link to the code repository later.
This is not bulb mode bracketing. The exposure time is controlled via the usb-ptp protocol.
Use it the following way:
**Bracking:**Put the camera into manual-mode. The controller can read out and set the exposure time. First you have to set the starting bracketing time. Press Button A to display (or set in the camera) the time the controller has actually saved in his eeprom. Change the time you want to start the bracketing and then press Button A for more than a half second. The controller reads out the exposure time from the camera and saves it to the eeprom. The ending time is controlled analog with Button B.
To start bracketing press Button C for more than 0.5s but less than 3 s. The controller starts bracketing. The first time will be set in the camera and a picure will be captured. After capturing is finished the exposure time will be adapted by 2 stops (divided through 4) and capturing will proceed until ending exposure time will be reached. The number of picture will be automatically calculated.
**Timelapse:**To start timelapse press and hold Button C for more than 3 seconds. The time until you release the button will be measured. The controller captures an image and waits the time from the initial press of the button. This will be repeated forever until you switch off the controller.
**Focus Trap:**If you have connected a SRF02 Sensor you can use it as a focus trap. Activate the focus trap with an extra long (>3s) push of Button B. The SRF02 will be activated and measures the distance from the object in front of the sensor. If the object is in an intervall between shortest and longest distance the capture is initiated. To setup the shortest and longest distance use Button 1 or Button 2: Put an object in front of the sensor. The distance of the object will be signalled by the the "red" led (PIN13). The higher the frequency the shorter the distance. Press Button 1 for more than 0,5s so measure the shortest distance or press Button 2 to measure the longest distance. Both values will be store in the eeprom.
If have further comments or ideas please let me know!
Next step is to improve the documentation a little bit. A circuit diagram is no bad idea.
I have replaced the vdip1 with a vdrive2. This part has less pins ;-). The arduino pro mini is replaced by an arduino mini. I have not found a footprint of the arduino pro mini for eagle.