Have you ever wanted to make a nice timelapse where you have some camera motion? If you look in the market, there’s some (rather expensive) motorized sliders that you can buy. These usually go for $300-$600, but they don’t have much travel. For example, this model has a 31.5″ (0.8m) travel and costs $258. This one is $369 and has a travel of 47″ (1.2m). I’m sure they’ve got much better construction and much nicer features than what I’ll present here.
But truth of the matter is – we are makers and we like to make our own equipment! So I came up with this while discussing with my friend how to make a timelapse where the camera circles around a subject. Since the radius is usually large, we would need ludicrously large equipment, and obviously it wouldn’t fit in our car. So the obvious alternative is to “loosen up” the requirement of rigidity of the setup and let the camera shake as it moves. Because at the end of the day, we’re in the computing era and we can fix the footage later, right? Well, see the video below for yourself! (Also in the end there’s a little compilation of a few timelapses I was able to take with this rig)
Also, if you look at the BOM; I’ve spent about $50 (plus the tripod) for what is effectively infinite travel – as long as there’s no obstacles in the way and the terrain is smooth enough. A much better deal in my opinion! I’ve tested this design only on pavement and stone sidewalks, and it works “okay”. It is wonderful in cement pavement. But it will fail in gravel, grass or anything too rough – the wheels I designed are simply too small. But perhaps this can prompt you to make a similar design for your own application!
So you can watch the video below or just follow the instructable images. The system is pretty straightforward. Enjoy!
- 1x NEMA 17 Stepper motor (Link) [$5 ea]
- 6x 625zz (5x16x5 mm) bearings (Link) [$6.28 /10pcs]
- 1x 5mm shaft (Link) [$6.89]
- 1x Bluetooth HC-05 Serial module (Link) [$5 ea]
- 1x NEMA 17 to 5mm shaft coupling (Link) [$2.58 ea]
- Lots of M3 screws (Link) [$11/box]
- 2x 18650 cells (Scrap from laptop)
- 1x Arduino Nano (Link) [$5.33 ea]
- 1x A4988 stepper driver (Link) [$1.20 ea]
- ~0.2kg of ABS filament [$4] – DON’T USE PLA if you intend to leave this in your car!
- [Optional] 3.5mm female jack (Link) [$4 ea] for shutter release
- [Optional] Shutter release cable (Link) [$7 ea] – MAKE SURE YOU BUY THE CORRECT CABLE FOR YOUR CAMERA!
So total estimated cost, without random materials like PCB, wires, solder, etc is about $47 (without the optionals). Might not be the cheapest project, but considering there’s not really any options to do this on the cheap (to my knowledge), this is quite decent!
Print the Parts!
Alright – So the first step is to print the design. I published the design in Thingiverse, both STL files and STEP files if you perhaps want to modify the design for your own necessity. The design I came up with is a clamp mechanism that simply adds wheels to each leg of the tripod. The front “driver” wheel has a stepper motor and the board that controls everything.
Make the Driven Wheels
he driven wheels are actually quite straightforward to assemble. Screw the clamps to the main part and hammer the 5mm pin for the wheel in place. The wheel is bolted together for increased contact surface. Put the bearings on it and stick it to the shaft! If you want, you can use an end cap to prevent the wheel from falling off. My bearings were well-stuck to the shaft, so I skipped that part, but the caps are in the Thingiverse design.
Make the Driver Assembly
The top part of the driver assembly is the same as the other wheels. The “foot” mounts on the swivel plate, which has two arc-shaped slots for the driver assembly. The first two pictures show the first iteration of the driver, but I ended up revising it (last picture) to improve stability. The second version is the one published on Thingiverse.
Tripod Is Fully Converted! Now to the Brain:
So I’m using an Arduino Nano for this project. The first iteration used the paintbrush schematic in the latter pictures, but I finally found some time to make a PCB design of it. Link to the EasyEDA project below:
As you can see, we just connect the components together. The arduino serves 2 purposes: Step the stepper and enable an interface with the Bluetooth. The interface will be done with an app, which saves us the trouble of building the buttons/etc that goes into making an interface. It also gives us a lot of freedom to change what the system does!
I added in a revision a feature for connecting a shutter release cable to your camera, which usually converts your camera connector into a microphone 3.5mm jack. With this cable, the Arduino will be able to trigger the camera. This can be used for night timelapses, so we are not driving the tripod while the camera is exposing. It’s an optional feature, though.
Download the App to Configure the Timelapse Parameters
So I built a little app with MIT app inventor (see file attached, I had to “hack” the upload due to file extension restrictions in the Instructables website. Change the extension from txt to zip). You can upload the *.aia file to MIT app inventor to see how the app is built now, and you can install the *.apk file on your phone if you want to use it [the interface might be a little jagged in your phone because I’m not a professional app developer!]. If you’re afraid of installing outside apps on your phone (which you should be), then you can compile the MIT app inventor project and get a QR code, which you can use to install the app on your phone instead.
The app basically builds a string of 4 bytes that is sent to the Bluetooth HC05 device through the Serial interface. This 4-byte string has encoded in it the 5 parameters of the system, as follows:
VVVVVVVV VVVVVVVV MDDDDDDD SWWWWWWW
Where VVVVVVVV VVVVVVVV is a 16 bit integer that encodes the 10*velocity inputted by the user in the app, M is a bit encoding whether the motor is on or off, DDDDDDD is a 7 bit integer with a time (in seconds) for driving the system in stop-and-go mode, S is the bit that turns on the stop-and-go mode, and WWWWWWW is the 7 bit integer with the wait time of the stop-and-go mode.
I encoded it like that because the MIT app inventor has a built-in function that sends this 4-byte string. This means I can send one command only, without having to handle a pipeline or anything like that. Then the Arduino just needs to decode this and set the parameters for the stepper, as we’ll see in the next step!
Program the Arduino
Well, there’s not much here. The firmware is attached. It’s basically the byte manipulation I discussed in the last step! I also implemented the shutter release. This should be able to trigger the camera for beautiful long exposure photos and eliminates the need for an intervalometer (as the Arduino itself can serve as an intervalometer).
Post-processing for Stabilization of the Footage
As discussed, we can’t really do much mechanically to prevent shaking. Perhaps larger wheels with a softer material will shake a little less, but they become unwieldy when storing the parts and I don’t think they would stabilize the footage to the point of no need for post-processing. If you do build a variant with larger wheels, I’d like to hear from you if you could skip the post-processing step!
I used Adobe Lightroom to convert the pictures and then Adobe Premiere to post-process the footage. Warp Stabilizer does the job incredibly well – I was stunned! If you use a large value for smoothness (like 100% or more), the stabilization is really decent. Since the warp stabilizer filter in Premiere is quite simple to use, I believe I can’t really add much here. Just apply it to your footage and enjoy the result!
Thanks for reading this – please let me know if you found this useful and if you build one for yourself! I would love to see footage you generated with this idea!!
(Optional) Adapt for a 3D Printer
Another thing that this timelapse system can do is a camera circling around a 3D printer. You need to use a connection to the 3D printer, in this case. Just connect the printer trigger signal to the D6 pin in the Arduino and use the code attached instead. Now, when the printer is done with the layer and parked somewhere, you can usually add a custom M42 G code for toggling a pin in the printer board that will acknowledge the Arduino to move the camera and take a picture.
See below what can be done!