DIY电动摄像头滑块与锅和倾斜头 - 基于Arduino的项目

在本教程中,我们将学习如何制作带有平移和倾斜头部的机动摄像机滑块。这个基于Arduino的项目是100% DIY的,用便宜的材料如中密度纤维板和胶合板建造,并使用Arduino、三个步进电机、一些按钮和一个连接在定制设计的PCB上的操纵杆进行控制。尽管如此,最终的结果是相当令人印象深刻的,与超级流畅的相机移动,使我们得到专业的看电影的镜头。

概述


使用控制器我们可以手动移动相机或我们可以设置开始和结束点,然后相机将自动从一个移动到另一个位置。同样使用支撑臂我们即使在较小的三脚架上安装滑块,我们想要的任何角度也仍然得到稳定的运动。

DIY电动摄像机滑块与平底锅和倾斜机制arduino基于

首先,我使用3D建模软件设计了滑块。

DIY相机滑块与平底锅和倾斜头3D模型

你可以从下面的3D模型下载并获得所有尺寸。

扎实的作品:

Collada文件(它可以用SketchUp Free 3D建模软件打开):

3D打印GT2滑轮链接:

Thingiverse

建立相机滑块

所以我开始制作滑块轨道,我使用22毫米蜱铜管。我决定使滑块1米长,所以我将两件切割成1米长。因此,铜管可以容易地氧化,因此我们需要用金属抛光擦拭它们。在我的情况下,我没有一个,所以我用牙膏来造成这个目的。

清洁铜管

这不是一个完美的解决方案,但我可以注意到不同,让管道更干净。

然后我继续制作两个管道的木制底座,也可以用于将滑块安装到三脚架上。使用圆锯我切割了两块21毫米蜱胶合板,并将它们粘在一起,以便获得单一的零售片。然后使用实木,我制作了我的三脚架安装板的复制品,并使用木胶和螺钉将其连接到胶合板片上。现在滑块底座可以很容易地安装在三脚架上。

木制三脚架安装板

我将使用8mm螺纹杆将滑块轨道安装到底座上,因此我在底座中制作了两个孔,并插入了138mm长杆,以前将它们切割成尺寸。接下来,我必须在管道中钻8毫米蜱孔,实际上可以有点棘手。

将轨道安装到基座上

为了这个目的,我做了一个简单的夹具,我把铅笔提高到11mm的高度,或者是管径的一半。然后我把管子固定在一个平面上,用夹具从两边标出管子。这样就可以从两边精确地得到小孔。所以首先我用一个锋利的螺旋尖标记钻孔点,然后用2、4、6和8毫米钻头逐渐钻孔。

为中心钻孔标记管道

之后,我通过螺纹杆插入轨道,并使用一些垫圈和螺母,我将它们固定到滑块基座上。以类似的方式,使用一块胶合板和螺纹杆,我固定了轨道的末端。\

固定滑块轨道的末端

下一个是滑台。我再次使用圆锯切割8mm的中密度纤维板根据3D模型的大小。我也做了一些8毫米的孔为螺纹杆上轴承将被连接。为了组装这个平台,我用了木胶和一些螺丝。我用一个无绳钻,首先,我做了先导孔,然后做了计数器沉,并将3mm螺丝拧到位。

一旦面板固定,我继续组装轴承系统。我使用的轴承是608z,外径为22mm。两个轴承之间的两个垫圈和螺母在它们之间产生足够的距离,从而使22mm轨道良好接触。

用于22mm管子的滑块轴承系统

为了使平台更安全地使用滑块,以类似的方式,我在平台的底部插入了两组轴承。最后,滑动平台已完美地工作。

相机滑块轴承系统

在这里,我们可以注意到,现在,当我的小,不是重型三脚架上的滑块沿着滑块移动平台时,头部无法承受平台的重量,所以我必须做一个支持手臂,以稳定滑块。所以我用两块木头和一些螺母和螺栓做了一个简单的夹子,可以固定在三脚架的一个腿上。

三脚架腿夹diy

夹具具有螺栓,可以固定支撑臂。接下来我必须在支撑臂上制作一个槽,以便能够以不同的角度定位滑块。通过简单地钻出彼此靠近的许多6mm孔来制作槽,然后使用锉刀制成精细的直线。这种支持系统最终完美地工作。

摄像机滑块支撑臂

我继续这个构建与添加腿的滑块,以防你不想或需要使用三脚架。我用8毫米中密度纤维板做的。使用手锯和锉刀,我很容易就得到了想要的腿的形状。然后用一些胶水和两个螺母,我把它们固定到滑块的末端。

将腿连接到滑块上

下一阶段正在构建平移和倾斜系统,该系统将连接在滑动平台的顶部。使用圆锯,我削减了所有需要的碎片,尺寸从3D模型中取出。当滑块设定为一定角度时,我使用了几件胶合板来制造照相机的平台的铰链机构,以及一些MDF板,我为电动机制成了适当的孔和用于平移系统的轴承。

我继续安装步进电机和用于滑动平台的同步带。在平台的一侧,我用一块MDF板和一些螺钉和螺栓固定了步进电机。在滑块的另一侧,我确保了一个惰轮滑轮,所以现在我可以安装时序皮带。使用两个螺栓和拉链扎带,我很容易将时序带固定到滑动平台上。

通过这一步,完全完成滑动机构。

我继续制作平底锅和倾斜系统的上部。根据3D模型,我为步进电机和轴承制作了所有适当的孔,并将其粘合在一起。

我的一个朋友3D打印了80个牙齿滑轮给我。这样,我得到了5倍的速度减少相对于16齿滑轮附在步进电机。

80齿轮减速5次

现在我需要根据我的设置制作闭环时序皮带,所以我测量了我需要的长度长度,切割它,然后用CA胶水粘合它,并在其顶部添加一块胶带。CA胶水与橡胶做得很好,因此封闭环带上没有问题。

接下来我开始了PAN和倾斜系统的最终组装。首先,我使用一些螺栓固定倾斜电机,然后将两个轴承添加到位,同时用一些环氧树脂将它们固定在槽中。然后我使用一些8mm螺栓固定摇杆平台上的倾斜平台,同时我将80个齿轮与同步带一起安装在一起。

安装平移和倾斜平台

在这里,我注意到皮带有点松散,但我在步进电机螺栓用作皮带张紧器时添加了一个小轴承。这件事已经解决了,所以现在皮带有足够的紧张局势才能正常工作。

接下来,我固定了平移电机并添加轴承的平台平台的顶部,以及底部。然后我通过它们插入螺栓,添加推力轴承,80个齿轮和时序带,并在其顶部添加先前组装的倾斜头。最后,我用螺栓固定它,就是这样,通过这一步骤,将完成滑块的构造。

固定平底锅和倾斜头

电路原理图

好的,接下来是有趣的部分或安装电子元件。必威lol这里是这个DIY相机滑块项目的电路图。

DIY电动摄像机滑块与平底锅和倾斜arduino项目电路图

所以三个NEMA 17步进电机通过三个A4988步进驱动器控制。为了控制滑块运动,我们使用连接到Arduino的模拟输入的电位器,并且用于控制平底锅和倾斜头,我们使用一个实际由两个电位计组成的操纵杆模块,因此它连接到两个模拟输入。还有另一个用于设定自进出位置的自动运动速度的电位计。在按钮的帮助下设置这些进出位置。此按钮有一个拉压电阻,它连接到Arduino板的数字销。还有一个重置按钮,电源开关和电源插孔,以及用于滑块的限制开关和两个LED,用于指示进出状态。我们可以用9或12V为此项目供电。

您可以从下面的链接获取此项目所需的组件:

必威外围提钱披露:这些是联盟链接。作为亚马逊助理,我从合格购买中获得。

PCB设计

接下来,根据电路图我设计了一个自定义PCB.为了保持电子组件组织。必威lol

DIY相机滑块PCB设计

我这样做了Easyeda.免费在线电路设计软件。电路有相当多的连接,所以我使用了顶部和底部层,并设法得到功能和良好的外观PCB。完成这一步后,我生成了制造PCB所需的Gerber文件。然后我从jlcpcb.该公司实际上是本教程的赞助商。

在这里,我们可以简单地上传Gerber文件,一旦上传,我们可以再次在Gerber Viewer中审核我们的PCB。如果一切都正确,那么我们可以继续,选择我们为PCB的属性,然后我们可以以合理的价格订购我们的PCB。请注意,如果它是jlcpcb的第一个订单,您最多可以获得2美元的30个PCB。

尽管如此,一周后,PCB已经到了。PCB的质量很大,我必须承认拥有自己的PCB设计是非常令人满意的。

相机滑块PCB质量

组装电子产品必威lol

好了,接下来我开始组装电子元件。必威lol我开始焊接引脚头PCB。这使得在需要时更容易连接和断开组件。我实际上使用引脚头的一切,除了电容和电阻,我直接焊接在PCB上。因此,我继续焊接跳线到所有的电子元件。必威lol

通过这种方式,我可以很容易地将组件安装在控制器外壳上,同时将它们连接到PCB上。

Arduino DIY相机滑块电子组件必威lol

至于控制器案例,我决定将其从4毫米蜱透明亚克力中取出,因为我希望所有电子元件的美容才能看到。必威lol我使用圆锯以切割面板以便尺寸。然后使用钻头和Forstner位,我在前面板上打开了按钮,电位计,电源开关和操纵杆。之后,使用5分钟的环氧树脂,我组装了这种情况,以及顶部I插入并胶合两根螺栓,前面板可以在其顶部插入和固定前面板。

透明亚克力控制器案例

最后,我开始通过将Arduino Board和A4988步进驱动器必威lol插入PCB来组装电子设备。然后我继续插入和固定前面板上的按钮和其他组件。

一旦我让它们安全地将组件连接到PCB上的相应引脚标题。在我添加电源插孔的情况下的侧面板上,然后将PCB插入到外壳中。在同一面板上,还有一个孔,我将跳线与步进电机连接到连接驱动器,以及我将其放在滑块末端的限位开关。

使用一些热收缩管,我组织了从控制器外壳的跳线,最后,剩下要做的是连接控制器与三个步进电机和限位开关。

至于给滑块供电,我用了三节3.7V的锂离子电池串联起来,产生大约11V的电流。就这样,滑动条完成了,工作得很好。

Arduino源代码

现在,本教程中留下的是看看Arduino代码并解释程序的工作原理。由于代码更长,因此为了更好地理解,我将在每个部分的描述中发布程序的源代码。并且在本文的末尾,我将发布完整的源代码。

该计划基于Accelstepper库迈克·麦考利。这是一个令人难以置信的图书馆,使容易控制多个步进电机在同一时间。因此,一旦我们包含了这个库和multistep .h库(它是其中的一部分),我们需要定义所有将要使用的Arduino引脚,定义步进程序的实例,以及下面程序所需的一些变量。

#include  #include  #define joyx a0 //操纵杆x引脚#define joyy a1 //操纵杆y引脚#define滑块a2 //滑块电位计#define inoutpot a3 //进出速度电位计#define JoySwitch 10 //操纵杆交换机连接#define Inoutset 12 //设置按钮#define Limitswitch 11 #define Limitswitch 11 #define inly 8 #define out 9 //定义步进电机和引脚将使用Accelstepper Stepper1(1,7,6);//(类型:驱动程序,步骤,dir)Accelstepper Stepper2(1,5,4);Accelstepper Stepper3(1,3,2);多管坡梯度控制;//创建多级突出剂的实例[3];//阵列存储每个步进电机int joyxpos = 0的阵列;int joyypos = 0;int sliderpos = 0;int rurentpeed = 100; int inOutSpeed = 100; int XInPoint = 0; int YInPoint = 0; int ZInPoint = 0; int XOutPoint = 0; int YOutPoint = 0; int ZOutPoint = 0; int InandOut = 0;

在“设置”部分中,我们设置脚步程序的初始速度值,定义一些PIN模式,以及将三个跨步者添加到称为“楔PELControl”的多步道控制实例。使用WISL循环我们将滑块移动到初始位置,或者它移动,直到它按下限制开关,然后它向后移动200个步骤以释放限位开关。

void setup(){//设置步进初始种子值stepper1.setMaxSpeed(3000);stepper1.setSpeed (200);stepper2.setMaxSpeed (3000);stepper2.setSpeed (200);stepper3.setMaxSpeed (3000);stepper3.setSpeed (200);pinMode(控制操纵开关,INPUT_PULLUP);pinMode (InOutSet INPUT_PULLUP);pinMode (limitSwitch INPUT_PULLUP);pinMode(茵莱、输出); pinMode(outLED, OUTPUT); // Create instances for MultiStepper - Adding the 3 steppers to the StepperControl instance for multi control StepperControl.addStepper(stepper1); StepperControl.addStepper(stepper2); StepperControl.addStepper(stepper3); // Move the slider to the initial position - homing while (digitalRead(limitSwitch) != 0) { stepper1.setSpeed(3000); stepper1.runSpeed(); stepper1.setCurrentPosition(0); // When limit switch pressed set position to 0 steps } delay(20); // Move 200 steps back from the limit switch while (stepper1.currentPosition() != -200) { stepper1.setSpeed(-3000); stepper1.run(); } }

在循环部分中,我们首先检查滑块是否已达到限制位置,或者在其另一侧的限制开关或80厘米。

//限制运动 - 如果限制开关按下或距离其他方向行驶的距离更大的情况下,请勿更大,然后(digitalread(limitswitch)== 0 || stepper1.currentposition()<-64800){}

在接下来的if语句中,我们会随着每次按压操纵杆开关而增加Pan和Tilt的速度。

//如果按下操纵杆,增加平移和倾斜速度If (digitalRead(JoySwitch) == 0) {currentSpeed = currentSpeed + 50;延迟(200);}

然后我们检查我们是否推出了设置的按钮,该按钮用于设置进出位置。首先按下按钮,我们将置于步进电机的位置,并在LED中亮起。

切换(Inandout){案例0://设置在位置Inandout = 1;xinpoint = stepper1.currentposition();//设置步进者的位置1 yinpoint = step per2.currentposition();//设置jetpers 2 zinpoint = step per3.currentposition()的位置;//设置步进3迪普特(Inling,高)的位置;//点燃休息;

以同样的方式,第二个推动我们存储出局部位置并点亮出局。

案例1://设置位置inandout = 2;xoutpoint = stepper1.currentPosition();//设置jourpers youtpoint = stepper2.currentposition()的Out点;zoutpoint = step per3.currentPosition();DigitalWrite(outlave,high);休息;

然后使用下一个按钮的按钮,我们读取了用于设置电机的最大速度的自动速度电位计的值。此外,我们将in in insts放入“gotoposition”阵列中,该数组用于MOVETO()函数,该函数分别计算所有脚步的所需速度。然后使用RunSpeedToposition()函数滑块自动移动到位置。

案例2://移动到位置/转到案例3 Inandout = 3;Inoutspeed = Analogread(InOutpot);//自动速度电位器//将位置放入阵列gotoposition [0] = xinpoint;gotoposition [1] = yinpoint;gotoposition [2] = zinpoint;stepper1.setmaxspeed(Inoutspeed);stepper2.setmaxspeed(Inoutspeed);stepper3.setmaxspeed(Inoutspeed);SteppetControlOmoveto(gotoposition);//计算所有电机的所需速度steppercontrol.runspeedtoposition(); // Blocks until all steppers are in position delay(200); break;

以完全相同的方式,如果3号案例3或另一个按钮,我们将滑块移动到熄灭位置。

案例3://移动到输出位置/返回到案例2 Inandout = 2;Inoutspeed = Analogread(InOutpot);//将out位置放入数组oroposition [0] = xoutpoint;getoposition [1] = youptpoint;gotoposition [2] = zoutpoint;stepper1.setmaxspeed(Inoutspeed);stepper2.setmaxspeed(Inoutspeed);stepper3.setmaxspeed(Inoutspeed);SteppetControlOmoveto(gotoposition);//计算所有电机的所需速度steppercontrol.runspeedtoposition(); // Blocks until all are in position delay(200); break;

如果我们按住Set按钮的时间超过半秒,则执行第4个case语句,这将重置In和OUT位置,以便我们可以设置新的位置。

接下来是操纵杆平移和倾斜控制。我们从操纵杆中获得的模拟值为0到1024,或者在中间休息时,值为500.因此,如果我们向左移动操纵杆并且模拟值大于600时,我们将设置速度特定的电机阳性,相反,我们移动操纵杆,我们将把电机的速度设置为负面,这意味着它将旋转相反的方式。

//操纵杆x  -  pan运动joyxpos = analogread(joyx);//如果左侧移动操纵杆,则将步进器2或PAN移动到留下(Joyxpos> 600){Stepper2.setspeed(Currentspeed);} //如果操纵杆向右移动,则if(joyxpos <400){stepper2.setspeed(-currentspeed)移动步进器2或pan右转。} //如果操纵杆留在中间,则没有其他运动{楔子2.setspeed(0);}

如果它保持在中间,则速度设置为0.此方法用于操纵杆的两个轴以及滑块电位计。实际上,在电位器的情况下,我们使用其模拟值也会增加电机的速度,因为我们进一步转动电位计。

//滑块电位器Sliderpos = Analogread(滑块);//如果左转,则留下滑块(Sliderpos> 600){SliderPos = Map(SliderPos,600,1024,0,3000)移动滑块;stepper1.setspeed(sliderpos);//将速度提高} //如果右转,则右转,如果(sliderpos <400){sliderpos = map(sliderpos,400,0,0,3000)移动滑块才能移动滑块;stepper1.setspeed(-sliderpos);//将速度提高为转动} //如果中间电位器,则没有其他{Stepper1.setspeed(0);}

最后,我们调用三个步进电机中的每一个的runspeed()函数,并且执行上述命令,或者适当地旋转电机。

//执行上述命令 - 运行步进电机step per1.runspeed();stepper2.runspeed();stepper3.runspeed();

以下是完整的源代码:

/ * DIY相机滑块与Dejan Nedelkovski www.www.mfxpo.com图书馆 -  Accelstbet188官方网站epper由Mike McCauley:http://www.aishpayce.com/mikem/arduino/accelstepper/index.html * / #include  #include  #define joyx a0 //操纵杆x引脚#define joyy a1 //操纵杆y引脚#define滑块a2 //滑块电位计#define inoutpot a3 //进出速度电位计#define JoySwitch10 //操纵杆交换机连接#define inoutset 12 //设置按钮#define limitswitch 11 #define limitswitch 11 #define inly 8 #define outed 9 //定义了步进电机和引脚,将使用Accelstepper Stepper1(1,7,6);//(类型:驱动程序,步骤,dir)Accelstepper Stepper2(1,5,4);Accelstepper Stepper3(1,3,2);多管坡梯度控制;//创建多级突出剂的实例[3];//阵列存储每个步进电机int joyxpos = 0的阵列;int joyypos = 0;int sliderpos = 0;int rurentpeed = 100; int inOutSpeed = 100; int XInPoint = 0; int YInPoint = 0; int ZInPoint = 0; int XOutPoint = 0; int YOutPoint = 0; int ZOutPoint = 0; int InandOut = 0; void setup() { // Set initial seed values for the steppers stepper1.setMaxSpeed(3000); stepper1.setSpeed(200); stepper2.setMaxSpeed(3000); stepper2.setSpeed(200); stepper3.setMaxSpeed(3000); stepper3.setSpeed(200); pinMode(JoySwitch, INPUT_PULLUP); pinMode(InOutSet, INPUT_PULLUP); pinMode(limitSwitch, INPUT_PULLUP); pinMode(inLED, OUTPUT); pinMode(outLED, OUTPUT); // Create instances for MultiStepper - Adding the 3 steppers to the StepperControl instance for multi control StepperControl.addStepper(stepper1); StepperControl.addStepper(stepper2); StepperControl.addStepper(stepper3); // Move the slider to the initial position - homing while (digitalRead(limitSwitch) != 0) { stepper1.setSpeed(3000); stepper1.runSpeed(); stepper1.setCurrentPosition(0); // When limit switch pressed set position to 0 steps } delay(20); // Move 200 steps back from the limit switch while (stepper1.currentPosition() != -200) { stepper1.setSpeed(-3000); stepper1.run(); } } void loop() { // Limiting the movement - Do nothing if limit switch pressed or distance traveled in other direction greater then 80cm while (digitalRead(limitSwitch) == 0 || stepper1.currentPosition() < -64800) {} // If Joystick pressed increase the Pan and Tilt speeds if (digitalRead(JoySwitch) == 0) { currentSpeed = currentSpeed + 50; delay(200); } // If Set button is pressed - toggle between the switch cases if (digitalRead(InOutSet) == 0) { delay(500); // If we hold set button pressed longer then half a second, reset the in and out positions if (digitalRead(InOutSet) == 0) { InandOut = 4; } switch (InandOut) { case 0: // Set IN position InandOut = 1; XInPoint = stepper1.currentPosition(); // Set the IN position for steppers 1 YInPoint = stepper2.currentPosition(); // Set the IN position for steppers 2 ZInPoint = stepper3.currentPosition(); // Set the IN position for steppers 3 digitalWrite(inLED, HIGH); // Light up inLed break; case 1: // Set OUT position InandOut = 2; XOutPoint = stepper1.currentPosition(); // Set the OUT Points for both steppers YOutPoint = stepper2.currentPosition(); ZOutPoint = stepper3.currentPosition(); digitalWrite(outLED, HIGH); break; case 2: // Move to IN position / go to case 3 InandOut = 3; inOutSpeed = analogRead(inOutPot); // Auto speed potentiometer // Place the IN position into the Array gotoposition[0] = XInPoint; gotoposition[1] = YInPoint; gotoposition[2] = ZInPoint; stepper1.setMaxSpeed(inOutSpeed); stepper2.setMaxSpeed(inOutSpeed); stepper3.setMaxSpeed(inOutSpeed); StepperControl.moveTo(gotoposition); // Calculates the required speed for all motors StepperControl.runSpeedToPosition(); // Blocks until all steppers are in position delay(200); break; case 3: // Move to OUT position / go back to case 2 InandOut = 2; inOutSpeed = analogRead(inOutPot); // Place the OUT position into the Array gotoposition[0] = XOutPoint; gotoposition[1] = YOutPoint; gotoposition[2] = ZOutPoint; stepper1.setMaxSpeed(inOutSpeed); stepper2.setMaxSpeed(inOutSpeed); stepper3.setMaxSpeed(inOutSpeed); StepperControl.moveTo(gotoposition); // Calculates the required speed for all motors StepperControl.runSpeedToPosition(); // Blocks until all are in position delay(200); break; case 4: // If Set button is held longer then half a second go back to case 0 InandOut = 0; digitalWrite(inLED, LOW); digitalWrite(outLED, LOW); delay(1000); break; } } // Joystick X - Pan movement JoyXPos = analogRead(JoyX); // if Joystick is moved left, move stepper 2 or pan to left if (JoyXPos > 600) { stepper2.setSpeed(currentSpeed); } // if Joystick is moved right, move stepper 2 or pan to right else if (JoyXPos < 400) { stepper2.setSpeed(-currentSpeed); } // if Joystick stays in middle, no movement else { stepper2.setSpeed(0); } //Joystick Y - Tilt movement JoyYPos = analogRead(JoyY); if (JoyYPos > 600) { stepper3.setSpeed(currentSpeed); } else if (JoyYPos < 400) { stepper3.setSpeed(-currentSpeed); } else { stepper3.setSpeed(0); } // Slider potentiometer sliderPos = analogRead(slider); // If potentiometer is turned left, move slider left if (sliderPos > 600) { sliderPos = map(sliderPos, 600, 1024, 0, 3000); stepper1.setSpeed(sliderPos); // Increase speed as turning } // If potentiometer is turned right, move slider right else if (sliderPos < 400 ) { sliderPos = map(sliderPos, 400, 0, 0, 3000); stepper1.setSpeed(-sliderPos); // Increase speed as turning } // If potentiometer in middle, no movement else { stepper1.setSpeed(0); } // Execute the above commands - run the stepper motors stepper1.runSpeed(); stepper2.runSpeed(); stepper3.runSpeed(); }

以上就是所有内容,我希望你们喜欢这个Arduino项目并学到了一些新东西。请在下方的评论部分提出任何问题,并检查我的Arduino项bet188me目集合

114回复

  1. ashwin zondag.

    您的整个代码在此页面底部不可见。
    它确实停止了。

    请你发布或发给我整个代码。

    回复
  2. 麦克风

    什么是一个很酷的项目!摄影真的很顺利,露出了一个有趣的外观。教程和视频是无可挑剔的 - 非常好!在教程中找到此类细节很少见。

    回复
  3. 汉斯

    你好
    一个非常成功的项目
    在pcb绘制电机滑块时会有一些责任——在a4988连接处只有一个连接(1a, 2a, 2b),在电机盘处有四个连接,pcb设计是否有问题?法拉有多少个电容器?

    回复
  4. 诺亚格莱尔

    嘿,伟大的教程,因为我想做这个构建自己我需要尺寸,但我不拥有文件所需的程序,有没有办法将它们转换为.pdf文件?

    回复
      • Rene Gaudet

        分享这个精彩的项目。我终于在Sketchup 2015中打开了你的Collada文件,但尺寸很远与现实合适。我能否怎样才能重新塑造?

      • 德国

        谢谢!我最初在SolidWorks中设计了这个项目,然后将文件转换为Collada文件,以便可以使用SketchUp打开。我猜转换没有做出正确的尺寸。我不确定我可以做些什么。

  5. Umair Arshad.

    你好。
    这是一个令人惊叹的工作你在这里放了什么。我很快就会让它变得很快。
    只有一个问题A4988驱动器可以处理更高的扭矩电机额定NEMA 17。
    我右边的相机很重(大约3.7公斤),所以要确保垂直/角度提升平稳。
    谢谢。

    回复
    • Dejan Nedelkovski.

      谢谢!嗯,A4988可以处理的额定电流是2A在最大,或者你可以使用DRV8825的额定电流为2.5A。然而,3.7公斤是相当重的,所以老实说,我不确定nema 17或这些车手是否能够做正确的垂直/角度提升工作。

      回复
  6. rmdesign.

    MHH我在视频中做了一切..但如果我尝试使用电源连接PCP,短路。或者它真的非常热。
    我做错什么了吗?

    回复
  7. 穆罕默德

    你好
    那是一份很棒的工作,一个完美的DIY
    自从我开始关注YouTube以后,这几乎超过一年。
    我试图在网站上找到“关于我”部分,但我找不到任何东西。我个人宁愿阅读像你这样的伟大的家伙,他们鼓励别人自己开始做项目并通过时间来支持他们。bet188me
    因此,如果您只提供关于您自己的简要故事,那么这将是如此美好,我正在等待在您的网站上看到。
    谢谢你的精彩项目,祝你成功bet188me

    P.S:对不起,如果我的语法不好

    回复
  8. 路易

    你好德州,

    我遵循你的教程一步一步,但在最后,我没有12V进入,但只有几个mV !
    我对LED的220欧姆电阻,1K用于上拉电阻和10个UF / 50V电容器。
    你能给我任何提示来解决这个问题吗?Arduino卡甚至没有运行......

    非常感谢!

    回复
    • Dejan Nedelkovski.

      您是否使用jlcpcb使用pcb进行了项目?良好地看看积极和负输入端子。最初在PCB设计中存在错误,但我已经更新了PCB,不确定您是否先订购了PCB。如果您拥有错误的情况下,可以使用实用刀将正(+)销从PCB的铜板区域隔离(切断),然后使用电线将+12引脚连接到开/关引脚。

      回复
      • 凯文

        嗨Dejan,我将在2018年7月12日使用布局从JLCPCB订购了我的董事会。PCB在此日期之前是否纠正?我现在要开始建立它。非常感谢。

      • 德国

        嘿,我对日期不太确定。在开始之前,请好好看看你的PCB。检查我在上述评论中提到的引脚。抱歉给您带来了不便。

  9. 伊思林

    伟大的教程!我会尝试制作自己的版本,但我有点混淆了所用的零件......我可以在哪里列出它们的零件和规格?
    再次感谢教程!

    回复
  10. Cedric Whittal.

    嗨伟大的项目......用帽子ack ack ack ack acks的罐子的价值是什么意思。

    回复
    • 德国

      谢谢!你可以用1万到10万之间的任何东西。至于电容,你可以使用100uF左右的任何电容。

      回复
  11. 克里斯

    嘿,

    首先是伟大的工作和伟大的教程!我真的很喜欢这个项目。您是否认为可以添加游戏中时光倒流模式(电机步骤 - >等待xseconds或maby触发相机 - >电机步骤......)?当滑块仍在移动时拍照时,Hight曝光时间存在问题。

    回复
  12. 院长MacIsaac

    我想知道是否有办法在这个设计中增加2个步骤?看起来3使用了所有的数字引脚,但我想添加焦距和变焦控制。我知道电路需要更换,但它能工作吗?我知道我有4/5挂在坡道板,但我喜欢这个定制的想法。

    回复
    • 德国

      当然你可以再用两步。是的,有这样的坡道板,那不是问题。虽然5个步进器需要10个数字引脚,但如果使用Arduino nano,还剩下4个数字引脚。

      回复
  13. 安德鲁

    我喜欢整个项目,我试图看看所有项目的测量,但不能访问你在所有细节中放置的2个文件,我想知道你是否有计划的计划,或者是一个pdf不需要3D建模查看..

    我真的很想建立这个设置,但只是无法访问所有部分的测量。

    回复
    • 德国

      谢谢你!对不起,我没有PDF零件测量。实际上您可以打开步骤文件并使用Autodesk Fusion 360获取正确的测量,可免费安装。

      回复
  14. 马丁

    非常好,谢谢分享你的努力。
    我计划为4-6个MOROR进行更高级的6轴起重机型滑块SMTH,如Hydra Scope等。
    我想知道我可以在代码中添加更多电机,并用第二个操纵杆替换一个电位器,并添加另一个操纵杆。
    将使用Reprop扩展盾牌的Arduino Mega :)
    你现在能帮我把代码里的电位器换成操纵杆,增加对4个电机的支持吗?有两个操纵杆吗?
    非常感谢你。
    马丁

    回复
    • 德国

      谢谢你!好好确保可以以这样的方式扩展项目,但保持可能需要更加修改。实际上,如果您知道如何代码,那就是根本不会成为问题。此刻我对此无法帮助你。

      回复
  15. 马特维

    伟大的项目。我对制作一个很感兴趣。
    请问这里的Arduino代码是否适应滑块在连续循环的In和Out位置之间移动?

    例如,框架上位和输出位置,然后设置速度,让滑块在这两个位置之间返回和第四,直到手动停止或重置。

    这对于捕获面试场景来说是完美的。谢谢你。

    回复
    • 德国

      谢谢!好吧,我没有做出这样的函数,但如果你知道一些编码,你可以编程。我的意思是,您可以用更多函数上传任何程序到您的Arduino。

      回复
  16. rahel.

    嗨,德扬,希望你是个天才!

    灿烂的工作。我试图遵循这个。对此一个人不知道。我纯粹的翅膀。几个问题:
    与12V电源的A4988连接了什么?
    我可以使用其他电机驱动程序,如TMC2130吗?
    启动和停止功能是否包括长曝光延时,如拍摄移动拍摄?

    我很感激你的回复。

    谢谢。

    回复
    • 德国

      嘿,谢谢!是的,我认为你可以使用TMC2130。步进者需要12V,所以12V电源连接到A4988驱动器,它具有旁路电容,以避免电压尖峰或保持电压稳定。另一方面,对于逻辑操作,A4988的需要,从Arduino的5V即5V连接到驱动器上的5V引脚。如果您需要更多详细信息,您可以查看A4988驱动程序的其他详细教程。betway
      并肯定,您可以编制Arduino来做任何您想要的事情。我没有为长时间曝光时间失误做出这样的功能,但你可以编码自己的。

      回复
  17. 麦克风

    伟大的项目。下载了SolidWorks文件,但我看不到较大的齿轮。不在文件夹中及其错误且缺少SolidWorks本身。
    你可以上传完整文件或至少你有3D打印的装备,所以我们的代码中使用了相同的比率吗?

    回复
      • 威廉

        你好,这是一个很好的项目,我正在编译一个零件列表,但是我无法定位到80齿滑轮的链接,我使用谷歌Chrome,不确定链接在哪里。
        有可能请帮忙。
        你用少数我看着有很短的主轴制作的操纵杆。
        非常感谢威廉。

      • 德国

        嘿威廉,谢谢!齿轮的链接位于3D模型下载文件下方。我还更新了零件列表并添加了我使用的操纵杆。

  18. Cristian L.

    优秀的项目。我会在她生日那天去我女朋友的礼物,你可以帮助我解决电机的规格......我想用无线控制。

    回复
    • 德国

      谢谢!电机是NEMA 17步进电机,使用A4988驱动器控制。所有细节都在Arduino和视频中解释。

      回复
  19. Yashovardhan Shetty.

    嘿,德扬,
    我想在学校为我的科学项目制作这个,请您分享轮子的3D文件吗?
    谢谢你的想法。
    提前感谢响应。

    回复
  20. 盖特

    你好德州,

    就像这个项目很多,你所做的梦幻般的工作,收集东西现在自己建造它。
    只有一个问题,您认为可以添加LCD(例如20×4)以查看您申请的哪些设置?如果可能的话,你会怎么做?

    亲切的问候,
    盖特

    回复
    • 德国

      嘿Geert,谢谢!
      是的,可以添加LCD,并使某种菜单系统选择设置和输入值从LCD使用电位器和按钮。当然,这一切都需要适当的编程。我不确定我是否能给你任何提示,因为它需要相当多的编码。

      回复
  21. 坦率

    嘿,

    我打开电路板的电源,电机是“抽搐”。我按下设置/重置按钮;电机将停止,但再次开始“抽搐”。我甚至重新编程了纳米并成功上传,检查了电路板上的焊接点,踩踏电机被纠正(没有过热),并检查到电路板的所有连接,一切都很好。什么可能导致电机“抽搐?”

    谢谢你。

    回复
    • 德国

      嘿,你检查了司机的当前限制吗?此外,您可能已经错误地连接了电机的四个电线到驱动程序。

      回复
      • 坦率

        好的,这是我所做的:
        -对每个驾驶员分别进行测试;所有人都做了同样的“抽搐”。
        - 使用您在视频中使用的所有电阻(使用5个带有错误欧姆的带电阻)
        -检查所有焊点是否短路;没有伤害。
        -检查所有开关和按钮;都有连续性。
        - 释放操纵杆(全部订购5);同样的“抽搐”
        - 检查电容器的极性(100uf / 16V);全部纠正。
        -甚至重新编程了Nano;上传完成。
        - 检查盆(一个是滑块/一个是AutoSpeed的150k);当我转动滑块锅时,电机响应但转弯。(注意:我还没有将电机组装到滑块,所以它们只是坐在工作台上“抽搐”,因为我转动没有旋转的滑块锅)。
        -Mircoswitch作品完美
        - 使用的不同电机,所有三个都做了同样的事情。

        在你的图表上,我只是在看到4个电阻,但在PCB上有五个(R4是我不知道电阻器的值是什么,所以我放了一个1K欧姆)

        我被踩了,德扬。如果你有电子邮件,我可以拍下(甚至视频)我正在做的事情。我猜可能是发动机的尺寸不对。

        谢谢。

      • 坦率

        更新。对不起,使用滑块罐时,电机不会转动。

  22. 盖特

    你好德州,

    你对电位计是什么欧姆的范围?

    亲切的问候
    盖特

    回复
  23. 盖特

    你好德州,

    还有,你用的电阻和电容的值是多少?我在评论中看到了相互矛盾的价值观……

    亲切的问候
    盖特

    回复
  24. 菲利普

    嗨Dejan,

    非常感谢你分享这个精彩的项目!
    我目前正在为我的需要调整它,并想知道你如何确定所需的步进扭矩。我想使用更轻的NEMA17步进电机的平移和倾斜,因为他们基本上只旋转相机围绕自己的中心轴和大80齿齿轮降低速度的因素4。也许26 N/cm就足够了?
    可以以这种方式计算吗?
    (26 n / cm保持扭矩* 100)/ 0,8 mm滑轮半径= 3250g

    最佳,菲利普

    回复
  25. 迈克尔

    德扬,
    很棒的教程集。在假期里,我决定尝试一下相机滑块。几年前我做了一个DIY滑块,一直想添加一些机动运动。我在路上遇到了一些麻烦,比如把一个步进驱动器倒着安装,然后把驱动器和Arduino Nano都烧坏了。现在我一切都正常了。我调整了滑块的整体距离后,按下限制开关96cm”stepper1.currentPosition()从限制开关位置50cm和/或“OUT”>从“IN”15cm滑块以某种方式重置值,并移动回限制开关。大多数时候都是不停地击打。
    当我自动运行较短的距离,从限制开关和<15cm之间的“IN”/“OUT”滑块工作伟大。ie。短相机移动
    这就像当CurrentPosition或Gotoposition阵列值计算电机步骤时有限制。

    回复
  26. JP_CM.

    你好德詹,一个大的“bravo”,用于分享这个。
    您认为NEMA 17高扭矩60NCM可以在PAN&Tilt中处理à3kg相机吗?即使相机真的很好地平衡,避免在旋转和保持时过度强度?
    谢谢。

    回复
    • 德国

      谢谢!好的60cm意味着它在距离1厘米的距离约6kg。但随后我们也有减速,增加扭矩。所以我会说它应该能够处理3kg相机。

      回复
  27. Chathuranga

    你好,你到达那里的惊人的东西。

    我一直在寻找一个月,现在如何调整这样的系统,以便我可以使用蓝牙控制它。你能把我指向正确的方向吗?

    回复
    • 德国

      谢谢!好吧,代码工作原理是相同的,只是输入变量需要来自蓝牙模块。您可以在其他蓝牙相关教程中查看此类示例,例如无线控制的机器人汽车项目。您在那里看到,我们通过蓝牙发送来自智能手机的命令,然后我们可以使用这些命令与Arduino一起使用我们想要的任何东西。

      回复
  28. ch

    你好,
    一个优秀的项目!
    我很好奇,车上的电机是多么沉默?
    如果我将用它来电影面试,那会爆发吗?

    提前谢谢。

    回复
      • 鲁格

        如果您使用TMC2208驱动程序而不是4988,电机将超级沉默(是的,我看到了日期)

  29. 盖特

    你好,Dejan,滑块设置是否也与铝或不锈钢管工作?如果22mm不可用呢?20或25毫米是否可行?

    亲切的问候
    盖特

    回复
  30. 乔治

    你好。这是一个非常有趣的项目。我试图这样做,但是当我使用平底锅并在非常缓慢的速度下用操纵杆倾斜时,运动不是流体。你知道如何解决它?
    谢谢你的问候。

    回复
      • 德国

        嘿,步进驱动程序的分辨率设置为第16步分辨率。三个MS引脚已经在PCB上连接到5伏,因此使用此PCB无法选择不同的分辨率。

  31. 迈克尔

    感谢您对我即将开始的项目进行了精彩的描述和介绍。在开始之前,我在寻找一个组件列表。一切都很明显(谢谢!)除了我找不到值的*电阻*(从视频看起来像10k欧姆5%)和*电容* -我错过了什么?

    我还想确认一下在线的pcb文件是不是最新的版本。

    非常感谢这个超级项目!

    回复
    • 德国

      谢谢你!是的,电阻可以为上拉电阻10K,而LED的220或330欧姆。电容器可以是10到100uf(16-36V)的任何东西。
      PCB为最新版本。
      玩得开心!

      回复
  32. 丹尼尔

    你好,
    漂亮的desing。我订购了所有部分。但我使用DRV8825驱动程序而不是您列出的DRV8825驱动程序。那些应该有效,但是当我连接在所提供的图片中时,电机有时会工作,但驾驶员又热,然后死。
    我尝试了不同的连接方法,但没有任何作用。你有一个想法吗?
    谢谢

    回复
    • 德国

      嘿,试着限制驱动可以使用驱动顶部的小电位器的电流。你可以限制在0.5/0.6A左右,这样它们就不会过热。DRV8825驱动应该和A4988驱动一样工作。只要确保通过连接适当的分辨率选择引脚匹配步骤分辨率。

      回复
      • 没有任何

        我可以在没有PCB的情况下制作项目,也可以影响代码和项目

      • 德国

        当然,您可以在没有PCB的情况下制作项目。如果如电路图中所述连接所有内容,则不会影响代码,并且一切都将完全相同。

  33. nufrequency

    嘿,我可以使用TMC2208而不是A4988吗?

    一切都好。

    但是当我把一台A4988换成一台TMC2208时,发动机就不工作了……

    问题是什么?

    回复
  34. 艾哈迈德

    嗨,德扬,
    我制作了滑块项目。它运行良好,但电机中的振动震动了相机。电机不会顺利运行。他们的工作就像它不在1/16步骤。我用过你的PCB,并正确做了一切。我更新了我使用的电位器和操纵杆值。这些电机的速度也很慢?具有3000的价值,他在6秒内完成了一圈。

    回复
    • 德国

      嘿,确保它真的设置为1/16步,或者你也可以尝试使用DRV8825驱动程序。另外,问题可能是你的程序很慢,我的意思是如果你在程序中添加了一些代码。Arduino无法快速完成代码,所以步进器使步骤变慢,这就是嗡嗡声发生的原因。尝试减少代码,你也可以尝试使用更高的波特率,如果使用串行端口打印东西,或者如果有一些serial .println()行,确保你删除/注释他们,因为他们是缓慢的功能。

      回复
  35. 威廉·哈尔西

    你好德州,这是一个非常有趣的项目,谢谢你所做的工作发布它。
    我是一个“老”的新手,试图提高我的技能。
    我到达了一个点,小心你的PCB组装,很快转过身,包含库文件和你的草图已经上传好了但是当我申请Nano上的红色led灯,但滑块运动不断旋转,另外两个似乎被锁定。触摸限制SW或任何按钮不会改变任何东西。
    请是有可能建议在哪里以及如何开始射击。
    非常感谢任何帮助。
    威廉。

    回复
    • 德国

      嘿,谢谢!好的,你可以开始检查滑块电位器是否连接和工作正常。如果滑块电机连续旋转,这意味着你从电位器得到一个错误的值(当电位器设置在中间,你应该收到512左右的值,你可以检查你正在使用串行得到的值。Println函数,并在串行监视器上打印模拟输入)。另外两个电机也有同样的问题,检查操纵杆的数值是否正确,连接是否正确。

      回复
  36. ingo zobel.

    你好,
    只有一个问题......我是新的项目,如你的项目......bet188me我必须连接所有GND S,我的意思是从零件中最终结束的场地才能结束“ - ”?

    回复
  37. Insorior

    这就跟你问声好!

    伟大的项目!我自己的想法很惊讶。
    但是,在接收到PCB之后,它看起来只是不起作用。我认为正确有线了。我对A4899的控制器和电机输入有电源,但整个东西不会按预期表现。

    什么工作:电源时,滑动电机会导致运行。重置按钮将工作

    什么不起作用:其他一切。调整电位计不会影响速度。第二个按钮不会做任何事情。操纵杆不会有其他电机工作并单击停止传感器不会停止电机。

    就你所知,有人遇到过并解决过这个问题吗?
    尝试使用不同的arduinos没有改善

    回复
    • 德国

      嘿,谢谢!上面的其他人报告了这种相同的行为。我看了看PCB,我可以看到一切看起来不错。代码可能存在问题。The thing that the slide motor runs when powered up, is that it is looking for it’s home position, and that happens when the limit switch button is pressed (take a look at the Setup section of the Arduino code, the while loops waits until the limit switch is pressed). So make sure connected the limit switch properly, try the other way NC or NO.

      回复
  38. 安德烈

    如果我们使用的是设置位置按钮
    当我们按下初始pos,然后我们需要手动移动相机使用我们的手到达终端pos,这是真的吗?然后,我们再次按下设置按钮来设置终点,摄像机滑块就会来回移动

    回复
  39. 维克多

    你好!
    你的项目很棒,非常感谢你的详细工作。我建立了我的版本,我正在尝试为我的需求进行调整。我很棒,所有机械和电气和基本编码,但我似乎无法做到我想要的东西。我想在很远的距离中使用它来提高滑块速度很多,并且我想限制平底锅的旋转到360,因为我不希望我的电缆缠绕在轴周围。你能帮我吗?或者也许指向正确的方向。

    回复
    • 德国

      嘿,谢谢!嗯,您可以通过增加setSpeed()函数来提高速度的值来提高速度。虽然我发现有时设置较高的值会不会意味着如果arduino无法执行快速的步骤。我想问题是代码并不是那么好或优化。在这种情况下,您可以尝试降低步进分辨率,这将增加速度,但您会失去平滑度。
      至于限制锅旋转,也许你可以使用currentPosition()函数,通过它,你可以得到多少步骤汽车在一个特定的方向,并使用一个简单的“如果”声明限制的运动锅如果价值大于周围的一些步骤使在特定方向180度,或者类似的东西。

      回复
  40. Virgile

    你好,
    谢谢你这个伟大的教程。
    我是个新手,我有一个问题:
    如果我使用3个电机(12V,2A),我需要一个电源12V 6a;或12V 2a?
    我不知道我是否需要增加力度。

    谢谢您的帮助。

    回复
    • 德国

      嘿,是的,这是对的。然而,这些步进电机被评定为2A,但它们通常会消耗大约1A至1.5A。此外,驱动程序还有一个旋钮,虽然可以控制电流限制,或者您还可以将电机设置为少消耗,例如0.5A左右。

      回复
  41. Steen Christensen

    你好
    这是一个非常好的相机滑块,你已经建立!
    我也建成一个,但我有一个问题。当滑块启动时,它移动到一侧,直到限制开关被激活,然后移动200阶跃,即其他方式,但除此之外,没有任何发生。我不能倾斜,平移或移动滑块。我现在有2种不同的PCB,电机,电机,操纵杆,Arduino Board ??
    它可以是arduino板它不是原来的板。
    可以是电位器og电阻的大小吗?
    请帮忙。

    回复
    • 德国

      嘿,谢谢!几个人已经报告过这个类似的问题。我已经翻了一番,检查当前的PCB,一切都对我看起来很好。也许这是代码的东西,但我真的不能说出任何具体的东西。
      希望有类似问题并设法解决它的人会告诉我们它。此刻我真的不能给你任何建议,抱歉。

      回复
  42. Steen Christensen

    你好,我们又见面了
    我发现它是我的arduino板慢慢慢慢的arduino代码,我可以看到电机移动非常慢,我尝试了很多东西,但是当我在这个程序中循环时:
    平底锅:
    stepper2.setSpeed (-3000);
    stepper2.runspeed();
    转到平底锅;
    然后它在该方向上快速移动。
    我在Banggood.com买了Arduino Nano,但显然太慢了。
    斯蒂森

    回复
  43. Giuseppe.

    我想复制控制系统。我已经报废了三个arduino。控制中心对我为所欲为。一旦电机运动,下次我打开它,你可以在轴上自由转动它。我绝望
    aduiono克隆也可以工作还是我需要一个原始的?

    回复
    • 德国

      嘿,你可以使用克隆,当然他们工作。您是否使用jlcpcb的pcb或者您正在面包板或其他东西上的连接?我的意思是,可能有很多可能出错的东西。尝试提供一些额外的信息,以便我们试图弄清楚发生了什么。

      回复
      • Giuseppe.

        嗨,呵呵,谢谢你的回复。我通过铣削制作自己的PCB。一边都在一边。在easyeda找到我的布局
        https://easyeda.com/editor#id=.| CBC850DB453B41AD8CBC4E4D47EC1A03.

        问题实际上是,我烧烤每一个A4988我插入PCB。

      • Giuseppe.

        如果没有电机,我可以没有将电路放入运行中?我想检查vref。我将驾驶员置于其他测试电路中以调整VREF到0.4V。
        当我将驾驶员放入滑块PCB时,VREF高达0,7V,无电机插入。
        在这之后,当我尝试在我的测试电路的司机,我必须意识到它是坏了。
        此时我抓住了大约10个司机

  44. Giuseppe.

    好的,我发现问题了。我没有在Arduino上连接GND。现在它的工作原理。

    回复
  45. Giuseppe.

    嗨Dejan,

    我使用带有256微型电压的TMC脚步机。如何加快滑块,我必须在代码中更改的方式?

    谢谢

    回复
  46. 伊桑Casner

    我终于让它工作了,我很喜欢它,但有一个警告;没有加速或减速的运动,所以它只是jarrs到停止在周期结束和震动整个总成,这看起来非常糟糕的电影。有没有可能你有一些代码可以让它“轻松地进入和退出”动作?谢谢。

    回复
    • 德国

      很高兴听到你来了。好的,加速步进库有加速和减速的能力,但只有当移动一个单一的电机一次。当使用MultiStepper库需要更复杂的运动时,当2或3个电机同时移动,然后加速和减速是不可用的。
      可能有另一种方法来实现这一点,也许是另一个图书馆,但此时我不知道并不能提供任何帮助。

      回复

留下一个回复

您的电子邮件地址不会被公开。

受到推崇的

2019年最佳入门级示波器初学者和爱好者

为初学者和爱好者最好的示波器

受到推崇的

2019年最佳Arduino入门套件

初学者的8个最佳Arduino Starter Kits

受到推崇的

最佳3D打印机为初学者和爱好者- 3D打印

最好的3d打印机为初学者和爱好者