I have always been an avid photographer and cinematographer. The one thing i was missing was a unit to help me with smooth shots in little movies that I made. So, I presumed to by this Camera Slider from amazon. From the time that I starting searching for the right slider I knew I wanted a motorized one to be able to do time lapses and other shots without having to push the slider myself. The big problem was that almost all manufactured motorized sliders run for over $500. I settled with the slider I have now. Luckily for me I had a project pop up in a college course where I needed to use an Arduino to make something. A motorized camera slider is the first item that came to my head and it stuck.
If you are looking for a low budget motorized slider that you get to customize to your liking, this instructable may be perfect for you.
Step 1: List of Components
To make the motorized camera slider exactly as I did you will need the following parts:
- Arduino Mega (1x)
- LCD 16x2 (1x)
- Rotary Encoder (1x)
- 12v Battery pack (1x)
- small breadboard (1x)
- Motor Drive Shield (1x)
- Stepper Motor (1x)
- Pack of Male and Female wires (1x)
- Belt and Pulley
- 330k Resistor(1x)
- LED(1x your color choice)
- Material to build your brackets that hold the motor and pulleys
- Slider (1x)
An alternate route to buying mass amounts of everything would be to buy a arduino package that comes with lots of these materials as a bundle. Buy accordingly...
Step 2: Putting Together Your Support for the Motor
For assembling my mounts for either end of the slider I used balsa wood and glue. Being that it is a prototype that is what I decided to do first, I hope to replace everything with 3D brackets as soon as possible. Really, this means that I do not have a organized way on how to make supports, it is up to your creativity.
Tips on making brackets:
- good support beams
- ethical engineering
- use of basic physics concepts
- understand where there will be a lot of force from the tension in the belt
- finding a good medium for the tension of the belt
Step 3: Code and Wiring
In this area I will put the code and describe how I went about wiring everything.
First off here is a schematic:
The first step I will discuss is how I went about wiring and coding the motor.
- When connecting your motor to the motor driver, you can look at the photo I have of the M2 slot. In this slot you are able to connect 5 wires, for me it was the ground in the middle where you see the two browns connected. For the other wires on either side of the ground, those wires are what control each coil in the motor and you will have to buy a motor where there is a schematic for what wires do what or you will have to use a voltage reader to understand which ones work together and which ones dont. Attach to your M2 slot accordingly. For the commands, I used the AFMotor.h library. All that you have to do is declare the amount of steps the stepper can take in a revolution and what port on the motor driver it is gonna be sending power to. When caluclating the steps per revolution just take 360/size of steppers steps, mine was 1.8 degrees. The other two commands that I used were motor.setSpeed(x) and motor.step(x,y,z). Motor.setSpeed(x) gives you the capabibily to tell how fast the stepper motor will go through the assigned amount of steps. The other command motor.step(x,y,z) allows you to choose how many steps the motor will do before it stops, y will let you choose if the motor moves forward or backward, and z allows you to power both coils at the same for more torque.
The next thing Id like to talk about is the lcd.
- First off start by downloading the LiquidCrystal_I2C library. This allows you to communicate with the lcd using only the four wires on the back of the lcd. The basic commands are setting the back light, clearing the screen, setting cursors, and text to display. All of this is shown in the code which is downloadable at the bottom of the instructable. A big tip also for using the lcd is to locate your adjustable screen brightness and display on the back of the screen. You can use a screw driver to adjust it to whatever suites you best.
The encoder is the next guy to talk about.
- The main thing to understand is the clk does not mean click. I suffered not knowing this for awhile. Start by setting your 2 pins for reading the pulses to your desired spot as well as the button pin. After you have done that the code says it all and has it explained.
The led does not have to much explanation to go along with it. It just blinks before the slider moves across and has a solid glow when its running. This coding is simple using digitalWrites to the led. Do not forget your resistor.
You may see in a lot of the coding that I have many functions. I did this because it keeps the code much cleaner and organized. I highly recommend this technique to keep things tidy. You simply call a function when you need it and do not have to copy and paste huge amounts of code.
The battery pack that is connected is 12v and the reason it is being used over any other source is because of its ability to be carried places easily. The main reason for its use is the fact that the motor requires 12v to have enough torque to pull the camera.
PROBLEMS THE I HAVE NOT FIGURED OUT
- I was not able to get the arduino to multitask. I find this to be very frustrating. I had a goal of making a timer countdown on the lcd as the motor is actually running and moving the slider across. Problem is that you cannot have a for loop run at the same time as the motor unless the motor movement is inside the loop. The arduino wants to complete each task before moving onto the next. You experience very small amounts of lag in the slider every time that the slider restarts. I decided to separate them and to not have a timer countdown for the running time. I think there may be a way to use the millis() commands, but was not able to understand it.
THE WHOLE PROGRAM IS DOWN BELOW FEEL FREE TO DOWNLOAD. EVERYTHING IS COMMENTED FOR BETTER UNDERSTANDING.
Step 4: Schematics
Step 5: Final Assessment
I am quite satisfied for how this project has turned out. It may be made of partially wood and easily breakable, but it gives the person reading this the capability to change it how they would like. The project is easily manipulable and can be edited in your own eyes. I personally have lots more I am wanting to add to this project and think the possibilities are endless. The slider can handle larger cameras already with the motor being used which is awesome. You can upgrade it or make it smaller it is all dependent on what you desire. I have a short video of the slider in action. The camera slider has proven even with what limitations it has, how fun and useful it is. This motorized camera slider will cost you a lot less then buying a manufactured one from amazon, etc. Also it gives you the opportunity to make it exactly how you like.