loading

In this project I will show you how I repurposed two old camera tripods in order to create a motorized camera slider. The mechanical system consist mostly of aluminium and stainless steel which makes the slider sturdy and pretty decent looking. The electrical system consists of an Arduino Nano with LCD, rotary encoder, limit switches and stepper motor. Let's get started!

Step 1: Watch the Videos!

Both video parts will give you a good overview on how to create such a camera slider. But the following steps will still contain some extra useful information.

Step 2: Order Your Parts!

Here you can find a parts list with example seller for the mechanical and electrical parts of the project:

Mechanical:

Amazon.com:
4x Ball Bearing Slide Bushing: http://amzn.to/2bPalMg

2x Flanged Ball Bearing: http://amzn.to/2bPalMg

Timing Belt: http://amzn.to/2bPalMg

1x Pulley: http://amzn.to/2bPalMg

2x 1/4" to 3/8" Convert Screw Adapter: http://amzn.to/2bPalMg

1x Tripod Ball Head: http://amzn.to/2bPalMg

Ebay:

4x Ball Bearing Slide Bushing: http://amzn.to/2bPalMg

2x Flanged Ball Bearing: http://amzn.to/2bPalMg

Timing Belt: http://amzn.to/2bPalMg

1x Pulley: http://amzn.to/2bPalMg

2x 1/4" to 3/8" Convert Screw Adapter: http://amzn.to/2bPalMg

1x Tripod Ball Head: http://amzn.to/2bPalMg

Amazon.de:

4x Ball Bearing Slide Bushing: http://amzn.to/2bPalMg

2x Flanged Ball Bearing: http://amzn.to/2bPalMg

Timing Belt: http://amzn.to/2bPalMg

1x Pulley: http://amzn.to/2bPalMg

2x 1/4" to 3/8" Convert Screw Adapter: http://amzn.to/2bPalMg

1x Tripod Ball Head: http://amzn.to/2bPalMg + http://amzn.to/2bPalMg

Crossbar Holder: http://amzn.to/2bPalMg

Home Improvement Store:

6mm Aluminium, 4mm Aluminium, 8mm 2m stainless steel pipe, 8mm 2m stainless steel rod, bolt+nuts+washers

Electronics:

Amazon.com:
1x Arduino Nano: http://amzn.to/2cHpj7Q

1x A4988 Stepper Motor IC: http://amzn.to/2cHpj7Q

1x 74HC14N Schmitt trigger IC: http://amzn.to/2cHpj7Q

1x 16x2 I2C LCD: http://amzn.to/2cHpj7Q

1x Stepper Motor: http://amzn.to/2cHpj7Q

1x Rotary Encoder: http://amzn.to/2cHpj7Q

2x Limit Switches: http://amzn.to/2cHpj7Q

Ebay:

1x Arduino Nano: http://amzn.to/2cHpj7Q

1x A4988 Stepper Motor IC: http://amzn.to/2cHpj7Q

1x 74HC14N Schmitt trigger IC: http://amzn.to/2cHpj7Q

1x 16x2 I2C LCD: http://amzn.to/2cHpj7Q

1x Stepper Motor: http://amzn.to/2cHpj7Q

1x Rotary Encoder: http://amzn.to/2cHpj7Q

2x Limit Switches: http://amzn.to/2cHpj7Q

Amazon.de:

1x Arduino Nano: http://amzn.to/2cHpj7Q

1x A4988 Stepper Motor IC: http://amzn.to/2cHpj7Q

1x 74HC14N Schmitt trigger IC: http://amzn.to/2cHpj7Q

1x 16x2 I2C LCD: http://amzn.to/2cHpj7Q

1x Stepper Motor: http://amzn.to/2cHpj7Q

1x Rotary Encoder: http://amzn.to/2cHpj7Q

2x Limit Switches: http://amzn.to/2cHpj7Q

Step 3: Create the Mechanical Parts!

Here you can download the .svg files and the 123D Design file that I created for my design. Feel free to use them or modify them.

Step 4: Create the Circuit!

Here you can find the schematic that I created for this project. You can also find it on the EasyEDA website:

https://easyeda.com/GreatScott/MotorizedCameraSlid...

Step 5: Upload the Code!

Here you can download the Arduino sketch that I created for this project. But make sure to download and include this stepper motor library: https://github.com/laurb9/StepperDriver

Step 6: Success!

Awesome! You did it! You just created your own motorized camera slider!


Feel free to check out my YouTube channel for more awesome projects:

http://www.youtube.com/user/greatscottlab

You can also follow me on Facebook, Twitter and Google+ for news about upcoming projects and behind the scenes information:

https://twitter.com/GreatScottLab

https://www.facebook.com/greatscottlab

<p>Hi, my LCD doesn't shows anything, the motor (6 wires) hold torso and can't move. Rotary encoder doesn't seem to do anything.</p>
<p>HELP PLEASE</p><p>Arduino:1.6.10 (Windows 10), Plošča:&quot;Arduino Nano, ATmega328&quot;</p><p>In file included from C:\Program Files (x86)\Arduino\libraries\CameraSlider\CameraSlider.ino:4:0:</p><p>C:\Program Files (x86)\Arduino\libraries\LiquidCrystal/LiquidCrystal_I2C.h: In function 'void setup()':</p><p>LiquidCrystal_I2C.h:154: error: 'int LiquidCrystal_I2C::init()' is private</p><p> int init();</p><p> ^</p><p>CameraSlider:54: error: within this context</p><p> lcd.init();</p><p> ^</p><p>Multiple libraries were found for &quot;LiquidCrystal_I2C.h&quot;</p><p> Used: C:\Program Files (x86)\Arduino\libraries\LiquidCrystal</p><p> Not used: C:\Program Files (x86)\Arduino\libraries\CameraSlider</p><p> Not used: C:\Program Files (x86)\Arduino\libraries\CameraSlider</p><p> Not used: C:\Program Files (x86)\Arduino\libraries\CameraSlider</p><p> Not used: C:\Program Files (x86)\Arduino\libraries\CameraSlider</p><p>Multiple libraries were found for &quot;A4988.h&quot;</p><p> Used: C:\Program Files (x86)\Arduino\libraries\StepperDriver-master</p><p> Not used: C:\Program Files (x86)\Arduino\libraries\CameraSlider</p><p> Not used: C:\Program Files (x86)\Arduino\libraries\CameraSlider</p><p> Not used: C:\Program Files (x86)\Arduino\libraries\CameraSlider</p><p> Not used: C:\Program Files (x86)\Arduino\libraries\CameraSlider</p><p>exit status 1</p><p>'int LiquidCrystal_I2C::init()' is private</p><p>Neveljavna knjižnica najdena v C:\Program Files (x86)\Arduino\libraries\blynk_esp8266_dht22_instructable: C:\Program Files (x86)\Arduino\libraries\blynk_esp8266_dht22_instructable</p><p>Neveljavna knjižnica najdena v C:\Program Files (x86)\Arduino\libraries\LiquidCrystal_v1.1.7.1: C:\Program Files (x86)\Arduino\libraries\LiquidCrystal_v1.1.7.1</p><p>Neveljavna knjižnica najdena v C:\Program Files (x86)\Arduino\libraries\LiquidCrystal_v1.2.0: C:\Program Files (x86)\Arduino\libraries\LiquidCrystal_v1.2.0</p><p>Neveljavna knjižnica najdena v C:\Program Files (x86)\Arduino\libraries\LiquidCrystal_V1.2.1: C:\Program Files (x86)\Arduino\libraries\LiquidCrystal_V1.2.1</p><p>Neveljavna knjižnica najdena v C:\Program Files (x86)\Arduino\libraries\NewliquidCrystal_1.3.1: C:\Program Files (x86)\Arduino\libraries\NewliquidCrystal_1.3.1</p><p>Neveljavna knjižnica najdena v C:\Program Files (x86)\Arduino\libraries\NewliquidCrystal_1.3.2: C:\Program Files (x86)\Arduino\libraries\NewliquidCrystal_1.3.2</p><p>Neveljavna knjižnica najdena v C:\Program Files (x86)\Arduino\libraries\NewliquidCrystal_1.3.3: C:\Program Files (x86)\Arduino\libraries\NewliquidCrystal_1.3.3</p><p>Neveljavna knjižnica najdena v C:\Program Files (x86)\Arduino\libraries\NewliquidCrystal_1.3.4: C:\Program Files (x86)\Arduino\libraries\NewliquidCrystal_1.3.4</p><p>Neveljavna knjižnica najdena v C:\Users\denis\OneDrive\Dokumenti\Arduino\libraries\blynk_esp8266_dht22_instructable: C:\Users\denis\OneDrive\Dokumenti\Arduino\libraries\blynk_esp8266_dht22_instructable</p><p>This report would have more information with</p><p>&quot;Show verbose output during compilation&quot;</p><p>option enabled in File -&gt; Preferences.</p>
<p>Hey I had an similiar problem with the Liquid crystal I2C Libary. </p><p>The error occured @ the loop section in line: </p><p>lcd.write((uint8_t)0);</p><p>I solved it by deleting the old libary files - reinstalled the Liquid Crystal I2C Libary of Frank de Brabander (found in &quot;Bibiliotheksverwalter&quot;) and tata it worked...</p><p>Probably it helps ...</p><p>@Great Scott: I really want to thank you for this great work you did! I play now since 4 month with arduino and tryed to programm a code for a slider with your options... For a newbie too much. Your code is great! I am not finished yet, but soon ;)</p><p>Cheers from SW-Germany</p>
<p>you are right this library is good because the examples work correct (Hello World!) but for some reason we still have the 'init' error, while with this one </p><p>http://www.archiduino.com/liquidcrystal_i2c-h-library-arduino-ide-1-6-x/ we don't get the error but it doesn't display right , so in the first one something has to be changed , Thanks</p>
<p>I've successfully fix the init error by changing the code:</p><p>void setup() {</p><p> lcd.begin();</p><p> lcd.backlight();</p><p> lcd.createChar(0, customChar1);</p><p> lcd.createChar(1, customChar2);</p><p> pinMode(clk, INPUT_PULLUP);</p><p> pinMode(dt, INPUT_PULLUP);</p><p> pinMode(sw, INPUT_PULLUP);</p><p> pinMode(limit1, INPUT_PULLUP);</p><p> pinMode(limit2, INPUT_PULLUP);</p><p> attachInterrupt (0, isr0, RISING);</p>
<p>I've done as you have written and pops mistake </p><p>Arduino:1.6.12 (Windows 8.1), Płytka:&quot;Arduino/Genuino Uno&quot;<br><br>C:\Users\User\Desktop\CameraSlider\CameraSlider.ino: In function 'void setup()':<br><br>CameraSlider:54: error: 'class LiquidCrystal_I2C' has no member named 'init'<br><br> lcd.init();<br><br> ^<br><br>CameraSlider:56: error: no matching function for call to 'LiquidCrystal_I2C::begin(int, int)'<br><br> lcd.begin(16, 2);<br><br> ^<br><br>C:\Users\User\Desktop\CameraSlider\CameraSlider.ino:56:18: note: candidate is:<br><br>In file included from C:\Users\User\Desktop\CameraSlider\CameraSlider.ino:4:0:<br><br>C:\Users\User\Documents\Arduino\libraries\Arduino-LiquidCrystal-I2C-library-master/LiquidCrystal_I2C.h:76:7: note: void LiquidCrystal_I2C::begin()<br><br> void begin();<br><br> ^<br><br>C:\Users\User\Documents\Arduino\libraries\Arduino-LiquidCrystal-I2C-library-master/LiquidCrystal_I2C.h:76:7: note: candidate expects 0 arguments, 2 provided<br><br>exit status 1<br>'class LiquidCrystal_I2C' has no member named 'init'<br><br>Ten raport powinien zawierać więcej informacji jeśli w <br>File -&gt; Preferencje zostanie włączona opcja &quot;Pokaż<br>szczeg&oacute;łowe informacje podczas kompilacji&quot;</p>
<p>I see. As I am also just a newbie, I only can guess what is the problem. </p><p>Did you install the wire.h right? This is responsible for the wiring of the I2C! If you answer yes, only the LiquidCrystal_I2C.h could be the problem. And I can imagine your path is still the same of the old library because of \Arduino-LiquidCrystal-I2C-library-<strong>master</strong></p><p>???</p><p>Try this if nothing else works: </p><p><a href="http://forum.arduino.cc/index.php?topic=128635.0" rel="nofollow">http://forum.arduino.cc/index.php?topic=128635.0</a></p><p>Hope you can solve your little problem, good luck!</p><p>Cheers</p>
<p>did you fix it?</p>
<p>How to fix it?</p>
<p>crazy... everything works, BUT the motor (Nema17, 1.3 A, 2.4V) vibrates as hell and doesn't move. When I disconnect the wires for the microsteps... S1, S2, S3 the motor turns, but with a lot of interruptions. Only at 40 rpm a fluent rotation is given. I operate the motor with 12 V 1.7A Adapter. </p><p>Does anybody know or have a hint how to fix this problem? I am stucked, after hours of trying.</p>
<div><div><div><div>Is it possible to achieve 1200 rpm on the A4988 stepper driver and the stepping motor nema 17 on that software/ program ?</div></div><br><div><div><div>Wyślij mu to</div></div></div></div></div>
<p>Stepper Motor Speed</p><p>===================<br>By comparison with regular DC motors stepper motors are very slow devices.<br><br>Typical speeds might be 1000 to 4000 steps per second and for a 200 step motor that would represent 5 to 20 rps (300 to 1200 rpm).<br><br>Generally speaking the motors with low coil resistance and high currents (and low nominal voltages) will be most suitable for higher speeds. A high voltage will also be needed for high speed.<br><br><br>Acceleration<br>============<br>If the stepper motor is required to move a heavy load it will normally be necessary to start the movement slowly (as with any motor) and accelerate to the desired speed and, equally, to decelerate when it is necessary to stop.<br><br>This is quite different from a DC motor which will accelerate and decelerate automatically.<br><br>If you try to start or stop a stepper motor too quickly it will simply skip steps with no damage to motor. However The Arduino has no means to know whether or how many steps have been missed and all of the position control will be lost.<br><br>For this reason, in particular, it is essential to choose a motor with sufficient torque for the job and to use acceleration and deceleration when necessary. </p>
<p>http://www.daycounter.com/Calculators/Stepper-Motor-Calculator.phtml</p>
Could you make a slider that keeps the camera to a fixed point. A dual axis one. Where you meassure the distance to the object and it turns the camera while sliding towards an object?
<p>I downloaded Cameraslider.ino and opened in Arduino IDE from my download folder and at compiling it shows error. Do I need to download other libraries besides stepper motor one? Like for LCD?</p>
<p>LiquidCrystal_I2C has been updated, the program was compiled, as yet possess the encoder, it does not answer on lcd. Once you arrive, I will install and put the result.</p>
<p>Very good design, I'm going for parties tried to compile on my Arduino Nano and has already made a error: 'class LiquidCrystal_I2C' has no member named 'init'</p><p>I'm waiting for my sheld to proceed.</p><p>What is happening? I made a separate test with my arduino and my display with I2C and worked well. Looking forward to see comment. tks</p>
<p>Nice build!<br><br>Tip: Rough edges are easily cleaned up further with a sanding block after fine filing.</p>
<p>Well done. I noticed the sag in the middle and resulting 'bobbing' effect on the recorded film is unavoidable due to the rods that simply cannot withstand the camera weight without sagging. A DSLR is just way too heavy for these. What you could do is use either a T-slot or a V-slot extrusions as the rails on which the camera mount can slide using bearings or delrin wheels. The camera mount can move back and forth using a lead screw attached to one motor which would do away with the other motor and the belts. This I think would be far more steady and balanced since all the weight is distributed over two strong aluminium extrusions that do not bend.</p>
<p>Well done and well documented, congratulations!!</p>
<p>Just what I am looking for. Comes at the right time as my interest is changing from electronics to film making and pod-casting just as you do, but teaching different skills. I start at the software and work back. The library for the LCD is missing in my new PC, but I find it. Good quality Instructable in clear detail and professional videos. You must do this full time as I know how long it takes. It is a complete easy to follow project for the semi experienced. Thank you for your GREAT EFFORT.</p>
awesome project, love the two control modes, speaking as someone who writes c++ a lot I can appreciate how tedious it would have been to write it.
<p>Thanks. It really wasn't simple ;-)</p>

About This Instructable

20,997views

260favorites

License:

Bio: Awesome Electronics Tutorials, Projects and How To´s
More by GreatScottLab:DIY Arduino Soldering Station Make Your Own GPS SMS Security Tracking System DIY Portable LED Panel 
Add instructable to: