improved README

This commit is contained in:
Ronald Schaten 2022-02-22 17:25:52 +01:00
parent 449338d7ca
commit 348bad19fe

View File

@ -2,37 +2,100 @@
A stepper motor controller for use in photography. 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 ## 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: This is the ideal case for the build:
https://www.thingiverse.com/thing:142282/files 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. - [ArduinoMenu 4](https://www.arduino.cc/reference/en/libraries/arduinomenu-library/) (v4.21.4) for the menu structure
- Focus time: how long to focus before triggering. - [StepperDriver](https://www.arduino.cc/reference/en/libraries/stepperdriver/) (v1.3.1) for motor control
- Shutter time: how long to press the trigger. - [AnalogKeypad by Makuna](https://www.arduino.cc/reference/en/libraries/analogkeypad/) (v1.1.1) for reading input keys
- Return after scene: return to starting point after shooting.
- LCD blackout: turn off LCD backlight while shutter is open.
### Scene configuration ## Menu structure
- Steps: number of steps for this scene. The main menu offers the following features:
- Distance per step: how far to move between the steps.
### 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 ## Example results
This is the first image that was made using this project: 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 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 composed from 30 different shots, each 1mm apart. Here's an animation of the
non-fused images: 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 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 things with my full size images, so I reduced them in size first -- it's only a