TLA – Changes
Some major changes to the time-lapse automaton project.
Unfortunately, the best I could get out of the servo was 0.35 degree movements by reading the potentiometer directly from the micro-controller. This made time-lapse video very choppy and generally poor looking. After some time spent thinking about how I had approached the project, I realized that the assumption that the micro-controller would not manage the camera made it much more difficult of a project than I had imagined. So, with some thought, I put my existing intervalometer aside, and decided to make it part of the TLA programming. Gone are the DC geared and servo motors, replaced by steppers w/ 200 steps per rotation, controlled via easydriver motor controllers. The easydrivers are chopping micro-step drivers, resulting in 1600 steps per rotation.
The key role that getting rid of the external intervalometer played in changing the nature of the TLA was that, now that I know when the camera is taking shots I can make any position changes between those shots. That is, before I had to guarantee slow, even movement that was minimal enough to never move more than one pixel on any axis during a shot. This made it nearly impossible to build a working system that would allow varying speed of movement. By changing the software to move a certain amount (or not) between shots, I could move as much or as little as I want, at a very high rate of speed if chose, giving me a lot of latitude for programming.
I split the motor/camera controls and UI functions into two different micro-controllers, and use two-wire interface for bi-directional communication. This allows me to add necessary delays to the UI and allows me to modify the next program to execute while one is running. It also doubles the EEPROM space for saved programs later.
The motor/camera control is designed such that a shot is taken at a timed interval (the allowed time is from less than a second up to 49 days between shots), and after the shot is taken, any motors are moved. The camera exposure time can be pre-programmed to any number of milliseconds, seconds, minutes, hours, or days, or can be set in the camera. The input to the camera is opto-isolated from the circuit to prevent damage. The camera will not fire is the motors are currently moving (to prevent blur should the camera delay time not allow for complete motor movement to next position). Each pan or tilt motor can move as little as 0.07 degrees in a single movement, or as much as 17.85 degrees. The truck motion can move as little as 0.01 inches, or as much as 2.55 inches between shots. You can also set each motor to only move once every n shots, up to 255. Meaning you could have as much as 34 years between movements (49 maximum days between shots * 255 possible shots skipped per movement), but that would just be absurd. =)
I went ahead and boxed up most of the UI, you’ll see photos below. The only things missing are the buttons for manual control of the motors, they will go in the area to the right of the keypad. The UI is connected to the motor control unit and power input via an ethernet cable.
Also below are pictures of a new cart built around the stepper motor. It’s made of 5/16th acrylic painted black, and aluminum brackets. The gear ratio is 3:1, meaning it takes 4800 total steps to turn the camera around a full 360 degrees. The final drive gear is attached to a 3/8″ shaft that runs through a lubricated bushing. An acrylic plate is attached to the same hub as the gear, and a giotto’s quick release plate is attached to that. Holes are counter-sunk on either side to prevent bolt heads from interfering with the plate or the gear movement. I still need to attach a piece of threaded rod that will slide in the attachment arm from the truck drive gear. It will also need a bit more re-enforcement from some metal plates before the tilt mechanism can be attached.