One of our goals with AISOS is to make complicated imaging tasks as easy and repeatable as possible. We want to be able to rapidly produce high quality products, and we want the process to be accessible to folks with a minimal amount of training.
One of the ways we’ve done that for photogrammetric imaging is by building an automated turntable capture setup. Conceptually, this is a pretty straightforward solution. A small turntable rotates an object a fixed number of degrees, then triggers a camera to take a photo. That process is repeated until the object has made a full 360 degree rotation. Then the camera can be adjusted to a different angle, and the process can be repeated.
As much as we like doing cool hardware hacking, we also don’t want to suffer from “not built here” syndrome. We investigated a variety of options for off-the-shelf solutions in this space. There are a handful of very high end products, which also handle all the camera movement. These are amazing, but they’re both expensive (nearly $100,000) and, more crucially, massive. None of those solutions would physically work in our space.
There are also some smaller standalone turntable options that we explored. However, they’re all essentially small volume homemade products, and rely on proprietary software. We were concerned about being stuck with an expensive (still thousands of dollars) product of questionable quality.
We then began to look at building our own. We’re not the first ones to have this idea, and fortunately there are a variety of great build plans out there. Our favorite was the Spin project from MIT. Spin is an automated turntable setup designed for photogrammetry with an iPhone. We knew we’d need to modify the setup to work with our camera, but the fundamentals of Spin are excellent.
For our turntable, we completely replicated the physical design of the Spin, using their laser cutter templates and their 3d printed gear. We used the same stepper motor as well, in order to utilize their mount. Where we differed was in the electronics.
In this post, we’ll outline the basics of our design and share our Arduino code. We don’t currently have a full wiring schematic (Sparkfun doesn’t have a fritzing diagram for our chosen stepper driver, and none of us know Eagle – get in touch if you want to help).
Our design is based around a Sparkfun Autodriver. The autodriver is relatively expensive for a stepper driver, but it’s really easy to work with, and is a little more resilient to being abused. Our implementation is actually based on the “getting started with the autodriver” document published by Sparkfun. We use an Arduino Redboard as our controller, along with a protoshield for making reliable connections.
The additions we’ve made to the basic Sparkfun diagram include the camera trigger control and the ability to adjust the degrees of rotation per interval. We’re working with a Canon digital SLR, which can be triggered via a simple contact-closure trigger. The Canon camera trigger uses three wires – one for focus, one for firing the photo, and a ground. Connecting either of the first two to ground is all you need to do to trigger an action. To control that from an Arduino, you just need to use a transistor attached to a digital pin on the Arduino. Turning on the pin closes the transistor and triggers the camera.
To control the number of degrees per interval, we added a simple rotary selector. A rotary selector is basically just a bunch of different switches – only one can be on at a time. We use five of the analog pins on our Arduino (set to operate as digital pins) to read the value of the switch.
So far, we’ve been very happy with the build. We’ve taken many thousands of photos with it, and it hasn’t missed a beat. We expect that over time, the 3d-printed gear will wear down and need to be replaced. Beyond that, we expect it to have a lengthy service life.
This is an abbreviated build blog. We’ll endeavor to provide complete wiring diagrams for any future builds. For now, just get in touch if you’re interested in learning more about our build.