Hello. I want to share my experience in making a simple and budget TimeLapse slider 2 meters long for the camera (in my case, the phone acts as a camera). The need for production appeared due to the desire to take part in the festival of mobile cinema Velcom SmartFilm 2013, which takes place in Belarus.
And so ... The slider consists of 2 main parts: mechanical (guides, moving carriage and movement mechanism) and electrical (motor and control system). If everything was more or less clear with the last part of the slider, a bunch of LaunchPad MSP430 + driver L298N + bipolar stepper motor from an old printer. That made the mechanic pretty think, because everything should be "cheap and angry." Options with purchased guides disappeared immediately after studying the prices for them. And in the end, after a long search on the Internet, I stopped using a plastic box for laying cables 60mm wide. It turned out to be quite strong and smooth for an even movement of the carriage, but too flexible and therefore the snap-on lid of the box was screwed with self-tapping screws to a board of suitable dimensions (15 mm thick, 90 mm wide and a little longer than the box). Next, latch the box on the lid and get our guide. Along the edges of the board, holes are made for fastening removable platforms for tripods. ')
The carriage model was taken very much even distributed on the Internet. There is nothing complicated: an aluminum corner (you can buy it at the nearest hardware store, I only recommend taking the thicker one), 8 bearings (I found with an internal diameter of 8mm) and some nuts, bolts, washers and engravers. Cut, drill and assemble. The most important thing is to correctly mark the holes for mounting the bearings, otherwise the carriage will not touch all of the box surface with the bearing and a slight gap will appear.
View of the carriage from above Carriage upside down
The movement mechanism was originally planned to use a 2 meter long stud and a nut, but the stud sagged so much that even reducing the long slider to 1.4 meters did not allow it to be used. The only correct and correct decision was the use of a toothed belt, but it was not at hand, and it did not suit me to order from China and wait (the festival dates were tight). Somehow accidentally came up with the idea of ​​using a thread instead of a belt. The first tests exceeded all expectations - it worked and worked very well. It was done this way: on one side of the slider at the height of the shaft, fixed by the stepping motor. a nylon thread was tied, then one turn was made around the motor shaft and then the thread was tensioned and tied on the other side of the slider.
We turn to the electrical part.
The control system is able to adjust the speed from 1 to 1024 steps of the engine per second and change directions of movement. Modestly, but I do not need more.
The “brain” of the control system is LaunchPad MSP430 (msp430g2553). The code is very simple and written in Energia. The code is universal and can be easily converted to any Arduino board. Although 400 steps per revolution were written on the bipolar stepper motor, in practice only 200 turned out. To increase the smoothness of work at low speeds, I decided to use motor control in half-step mode and we get our 400 steps / rev. back.
Program code for MSP430
/* Time Lapse */int m1=8; int m2=9; int m3=10; int m4=11; int key=5; int analog=A0; int time=0; int keyin=0; voidsetup(){ pinMode(m1, OUTPUT); pinMode(m2, OUTPUT); pinMode(m3, OUTPUT); pinMode(m4, OUTPUT); pinMode(key, INPUT_PULLUP); } voidloop(){ keyin=digitalRead(key); if (keyin==HIGH) { time = analogRead(analog); // step 1 digitalWrite(m1,HIGH); digitalWrite(m2,LOW); digitalWrite(m3,LOW); digitalWrite(m4,LOW); delay (time+1); time = analogRead(analog); // step 2 digitalWrite(m1,HIGH); digitalWrite(m2,LOW); digitalWrite(m3,HIGH); digitalWrite(m4,LOW); delay (time+1); time = analogRead(analog); // step 3 digitalWrite(m1,LOW); digitalWrite(m2,LOW); digitalWrite(m3,HIGH); digitalWrite(m4,LOW); delay (time+1); time = analogRead(analog); // step 4 digitalWrite(m1,LOW); digitalWrite(m2,HIGH); digitalWrite(m3,HIGH); digitalWrite(m4,LOW); delay (time+1); time = analogRead(analog); // step 5 digitalWrite(m1,LOW); digitalWrite(m2,HIGH); digitalWrite(m3,LOW); digitalWrite(m4,LOW); delay (time+1); time = analogRead(analog); // step 6 digitalWrite(m1,LOW); digitalWrite(m2,HIGH); digitalWrite(m3,LOW); digitalWrite(m4,HIGH); delay (time+1); time = analogRead(analog); // step 7 digitalWrite(m1,LOW); digitalWrite(m2,LOW); digitalWrite(m3,LOW); digitalWrite(m4,HIGH); delay (time+1); time = analogRead(analog); // step 8 digitalWrite(m1,HIGH); digitalWrite(m2,LOW); digitalWrite(m3,LOW); digitalWrite(m4,HIGH); delay (time+1); } else { time = analogRead(analog); // step 8 digitalWrite(m1,HIGH); digitalWrite(m2,LOW); digitalWrite(m3,LOW); digitalWrite(m4,HIGH); delay (time+1); time = analogRead(analog); // step 7 digitalWrite(m1,LOW); digitalWrite(m2,LOW); digitalWrite(m3,LOW); digitalWrite(m4,HIGH); delay (time+1); time = analogRead(analog); // step 6 digitalWrite(m1,LOW); digitalWrite(m2,HIGH); digitalWrite(m3,LOW); digitalWrite(m4,HIGH); delay (time+1); time = analogRead(analog); // step 5 digitalWrite(m1,LOW); digitalWrite(m2,HIGH); digitalWrite(m3,LOW); digitalWrite(m4,LOW); delay (time+1); time = analogRead(analog); // step 4 digitalWrite(m1,LOW); digitalWrite(m2,HIGH); digitalWrite(m3,HIGH); digitalWrite(m4,LOW); delay (time+1); time = analogRead(analog); // step 3 digitalWrite(m1,LOW); digitalWrite(m2,LOW); digitalWrite(m3,HIGH); digitalWrite(m4,LOW); delay (time+1); time = analogRead(analog); // step 2 digitalWrite(m1,HIGH); digitalWrite(m2,LOW); digitalWrite(m3,HIGH); digitalWrite(m4,LOW); delay (time+1); time = analogRead(analog); // step 1 digitalWrite(m1,HIGH); digitalWrite(m2,LOW); digitalWrite(m3,LOW); digitalWrite(m4,LOW); delay (time+1); } }
We connect the motor to the controller via the L298N driver, a direction selector switch, a variable resistor (speed controller), and an LED that will be an indicator of the activation of our system. A small plastic container for breakfast ideally suited to the role of the shell for the remote.
As a power source for the controller, a small 3V battery was selected, and a standard 6V 4.5Ah battery was used to power the engine. To supply power, a toggle switch with a pair of contacts is provided, which simultaneously connects the battery and the battery to the driver and controller, respectively. Measurements showed that in 4 out of 8 steps the engine consumes 0.45 A, and in the remaining 4 steps out of 8 - 0.9 A. It turns out that something about 0.7 A is roughly the average engine consumption, which gives We have about 5-6 hours of operation from a fully charged battery (in reality, it is).
View of the slider itself.
Video Slider at work.
For greater clarity. Watch the video of the first test. The black thing on the laptop is the Battery GP1245 (12V 4.5 Ah) weighing about 2 kg. The laptop itself weighs about 2.5 kg. The total load of 4.5 kilograms goes without any problems.
During operation, the following disadvantages were noted: 1. The thread stretches over time (but it almost does not affect the work) 2. Sometimes the entrance and exit of the thread in the loop around the shaft intersect and this causes a slight twitch of the carriage. 3. The glued board with time bent slightly (for me it is not critical)
This is the first article, so do not judge much.
Oh yes… Here is a video for the festival, there you can see what I nasnimal with the help of this slider. Thank you all for your attention.