Camera Dolly

October 14, 2021

One of my hobbies outside of engineering projects is photography. A particularly interesting photography technique is time-lapse. In time-lapse photography, a video is produced by taking hundreds of still images at regular intervals (usually a few seconds) over the course of hours or even days. The photos are then compiled into a video. When played back at a standard 24 or 30 frames per second. The video shows the subject greatly sped up, leading to an interesting effect. This technique leads to a great opportunity to combine photography and engineering. Some sort of device is often required to automate taking the still images. Additionally, there exists an advanced variant in which the camera is moved during the time-lapse. Because everything is sped up by hundreds or even thousands of times, the movement of the camera will also be amplified. There exists products that solve this issue by very precisely, but very slowly moving a camera along a linear rail during the course of recording the time-lapse. This leads to a wonderful effect once sped up. The mixture of smooth gentle camera movement and the rapid motion of the time-lapse subject creates a very pleasant, professional looking video. I made a very crude version of one of these linear rails many years ago. It worked ok. Because I didn’t have access to professional tools such as mills and water-jets, it was constructed from wood and aluminum from the hardware store. Although crude, I did record some good videos that show fantastic effects these linear rails produce. The first timelapse video that I ever made can be seen below

Although it certainly worked. I wanted to have a better linear rail that performed well, and was easier to use. Additionally, most linear rails can only move in one direction. When thinking about the design of a new rail, I wanted the additional ability of the device to rotate the camera in 3 full axes. This would create a whole world of amazing possibilities such as allowing the camera to stay pointed at a specific subject as it moves, or even track the stars during star photography. Preliminary CAD can be seen below of the design. The linear rail portion of the device is achieved by Nylon coated bearings rolling in the groove of aluminum extrusions. The carriage contains a geared DC motor with a GT2 timing belt pulley. A length of timing belt runs the full length of the rail that engages the motor. Flags at each end of the rail interrupt an optical endstop next to the motor. This allows the device to be homed after power up. The carriage also contains a 3 axis gimbal. Each axis contains its own geared motor to drive that axis. The design allows all electronics to be all housed on the carriage, without any wires needing to be run off the device. The electronics consist of a custom PCB that contains a low power microcontroller, four low level motor drivers, a small OLED display, and a bluetooth adapter. The PCB has connectors for serial, USB, and wireless communication. Additionally, a power control circuit was added to allow the entire system to be run from a three cell lithium battery. A photo of an early prototype PCB can be seen below. Since the device needs to be very still during use, the bluetooth connection was included instead of physical buttons or controls. An android app communicates to the microcontroller via the bluetooth link to manually control the camera, gimbal, linear rail, as well as program in timelapse settings and see status information The short video below shows a few clips I recorded while testing the mechanical function of the rotation and linear axes.
The microcontroller on board handles the positioning calculations, interpolating between the start and end quaternions, converting them to euler angles (the positions for each of the drive motors). This produces an effect known as slerp (spherical linear interpolation). Slerp is a movement about the surface of a sphere in a single plane that includes both the movement arc, as well as the sphere center. Unfortunately the great chip shortage of 2021 is delaying progress on this project. Early designs used a fairly small STM32F103 that was cheap and ubiquitous. However I am in progress of upgrading the design to use a larger, more powerful processor. This will allow better, smoother movement and faster response, as well as a number of other fancy software features such as jerk limiting, multiple path chaining, and acceleration and jerk limiting, and possibly even object tracking or other dynamically generated movement.