diff --git a/README.md b/README.md index 83e7919..8637a9c 100644 --- a/README.md +++ b/README.md @@ -2,37 +2,100 @@ A stepper motor controller for use in photography. +This is a device that can be used to control a stepper motor and a camera, to +make a defined number of photos with a defined movement in between. A stepper +motor can be attached to a rotating platform or to a linear drive, so either +the object or the camera can be moved between the pictures. + ## Hardware +The device consists of the following components: + +- Arduino Uno, the brains of the operation +- LCD & keypad shield, as the user interface +- an A4988 stepper motor driver +- a 100uF capacitor +- two PC817 opto-isolators +- two 1k resistors + +The circuit is pretty simple: + +![Circuit](circuit/photostepper_bb.jpg) + +Atop of that, I used an M13 connector for the stepper motor and a 2.5mm stereo +phone connector for the camera. To interface my camera, I had a ready made +cable from a remot camera controller (Ayex AX-5). The whole thing is powered by +a 12V power supply, connected directly to the Arduino. + This is the ideal case for the build: https://www.thingiverse.com/thing:142282/files -## Configurable values +## Software -### General configuration +This project makes heavy use of the following libraries: -- Settle time: pause between camera move and shutter trigger. -- Focus time: how long to focus before triggering. -- Shutter time: how long to press the trigger. -- Return after scene: return to starting point after shooting. -- LCD blackout: turn off LCD backlight while shutter is open. +- [ArduinoMenu 4](https://www.arduino.cc/reference/en/libraries/arduinomenu-library/) (v4.21.4) for the menu structure +- [StepperDriver](https://www.arduino.cc/reference/en/libraries/stepperdriver/) (v1.3.1) for motor control +- [AnalogKeypad by Makuna](https://www.arduino.cc/reference/en/libraries/analogkeypad/) (v1.1.1) for reading input keys -### Scene configuration +## Menu structure -- Steps: number of steps for this scene. -- Distance per step: how far to move between the steps. +The main menu offers the following features: + +### Jog + +Up and down buttons move the motor manually, pressing the buttons for more than +a second doubles the speed. + +### Configuration + +General settings for the device: + +#### Settle time (tSettle, default 1000ms) + +Pause between motor movement and camera triggers, to avoid shaking. + +#### Focus time (tFocus, default 1000ms) + +Half-press of the shutter button, time to let the camera focus. + +#### Shutter time (tShutter, default 1000ms) + +How long to press the trigger. + +#### Return (default: On) + +Reverse any movement to starting point after shooting the whole scene. + +#### DarkenLCD (default: Off) + +Turn off LCD backlight while shutter is open. + +### Scene + +#### Steps (nSteps, default 10) + +Number of steps for this scene. + +#### Distance per step (distance, default 0.5mm) + +How far to move between the steps. + +### Run + +Run the whole setup. ## Example results This is the first image that was made using this project: -![](example_images/220213_macro_cent.jpg) +![Extreme closeup of a coin](example_images/220213_macro_cent.jpg) Depth of field for my setup is a little more than 1mm, so this image is composed from 30 different shots, each 1mm apart. Here's an animation of the non-fused images: -![](example_images/220213_macro_cent_-_animation.gif) +![Animated focus stack](example_images/220213_macro_cent_-_animation.gif) The images were taken as JPG. For some reason the align-program did strange things with my full size images, so I reduced them in size first -- it's only a