SCARA Robot |如何构建自己的基于Arduino的机器人

在本教程中,我们将学习如何构建一个基于Arduino的SCARA机器人。我将向你们展示构建它的整个过程,从设计机器人到开发我们自己的图形用户界面来控制它。

概述

机器人有4个自由度,由4个NEMA 17步进电机驱动。此外,它有一个小的伺服电机控制末端执行器或机器人抓手在这种情况下。SCARA机器人的大脑是一个Arduino UNO板,配有一个CNC屏蔽和四个A4988步进驱动器来控制电机。

基于Arduino的SCARA机器人

利用Processing开发环境,我制作了一个具有正逆运动学控制功能的图形用户界面。利用正运动学,我们可以手动移动机器人的每个关节,以获得所需的位置。使用左边的滑块,我们可以设置每个关节的角度。终端执行器的最终位置,X, Y和Z值被计算出来并打印在屏幕的右侧。

另一方面,利用逆运动学,我们可以设定末端执行器的期望位置,程序将自动计算每个关节的角度,以使机器人达到期望的位置。

SCARA机器人控制的图形用户界面-用处理IDE制作的GUI

我做这个程序的方式是我们可以同时在同一个屏幕上使用这两种方法。关节的角度以及末端执行器的X, Y和Z值是连接的,并且总是在屏幕上显示。

当然,机器人也可以自动操作。使用程序上的“保存”按钮,我们可以保存机器人的每个动作或位置。然后,当我们按下“运行”按钮时,机器人会循环执行存储的动作,从第一个动作到最后一个动作,一遍又一遍。我们还可以从用户界面调整移动速度和加速度。

SCARA机器人3D模型

首先,让我们看看3D模型。

SCARA机器人3D模型

我使用3DEXPERIENCE SOLIDWORKS设计了这个SCARA机器人,这也是本视频的赞助商。

3 3DEXPERIENCE SOLIDWORKS基本上是具有云功能的SOLIDWORKS,我们通过3DEXPERIENCE平台获得这些功能。一切都是通过云工作的,因此您或您团队中的任何人都可以随时从世界任何地方访问数据或模型。3DExperice平台还包括许多有用的生产力和管理能力应用程序。

三维建模在3experience Solidworks

例如,项目计划是一个很好的方式来组织你的任务,设定最后期限和跟踪你的进展。有了3D Markup应用程序,你可以在任何设备上查看、探索和记录模型,比如笔记本、平板电脑甚至智能手机。

来自3DEXPERIENCE平台的3DMarkup应用程序

还有一个独立的、基于云的3D建模器,名为SOLIDWORKS xDesign,可以在浏览器中运行。它可以与Solidworks结合使用,也可以单独使用,非常适合在任何地点、任何时间和任何设备上建模。

所以,非常感谢Solidworks赞助这样的教育内容。如果您想知道SOLIDWORKS和3experience平台是否可以为您工作,请查看以下链接。

试用3experience免费与我的特殊链接:www.solidworks.com/HTMTryNow

了解更多关于3experience SOLIDWORKS的信息:www.solidworks.com/HTMLearnMore

好的,让我们回到模型上来解释一下我是如何想出这个设计的。我对机器人的目标是3D打印大部分零件。所以,你在这里看到的一切都可以用3D打印,即使是用3D打印机和更小的打印床。GT2滑轮也是3D打印的。我使用参数化设计来制作它们,所以如果需要,我们可以很容易地改变它们的尺寸。我们只需要改变齿的数量,所有的尺寸都会自动更新,使滑轮的尺寸合适。

参数化设计的GT2滑轮

对于第一个关节,我们有20:1的减速比,用这些定制设计的滑轮分两个阶段实现。我在这里使用的两个GT2皮带是200毫米和300毫米长度的闭环。机器人关节由两个推力轴承和一个径向轴承组成。

SCARA机器人内部组件- 3D模型

对于第二个关节,我们有16:1的收缩比,用同样的方法实现,第三个关节有4:1的收缩比仅仅是一个阶段的收缩。关节是空心的,所以我们可以用它来穿过电线从电机和微开关。对于每个皮带,有插槽,我们可以附加惰轮,以张紧它们。

机器人抓手机构-三维模型

机械手是采用MG996R伺服电机驱动我们可以很容易地改变夹持器端部,以实现不同的夹持尺寸。机器人的Z轴由一个8mm的丝杠驱动,而整个手臂组件在四个10mm的光滑杆和线性滚珠轴承上滑动。机器人的高度仅仅取决于光滑杆的长度,在这种情况下,光滑杆的长度为40厘米。丝杠需要短2cm才能适合此配置,否则,可使用间隔螺母将Z电机提升2cm。

你可以下载3D模型,以及用于3D打印的STL文件,在下面。

Solidworks文件:

用于3D打印的STL文件:

机器人零件的3D打印

好了,我们可以继续3D打印零件了。我用我的Creality CR-10 3D打印机打印了所有的零件,这是一个非常棒的3D打印机,价格也很实惠。正如我提到的,这些部件的设计也适用于更小的3D打印机,例如Ender3。

机器人零件的3D打印

对于大多数部分,我使用PLA+材质,蓝色的,以及普通的PLA滑轮和夹持器。以60mm/s的打印速度打印所有零件大约花了120个小时。基地是打印的最大部分,大约花了32个小时。但是,如果我们提高印刷速度,我们肯定可以打印更快的零件。

参见:适合初学者和制造商的最佳3D打印机[2021更新]

这是所有3D打印的零件。

3D打印SCARA机器人零件

这里只是一个简单的说明,我在切片软件中打印了所有的文件,并启用了0.1毫米的横向扩展。这使得零件有更精确的尺寸,并更好地适合其他机械零件,如轴承,杆和螺栓。

装配机器人

下面是组装这个基于Arduino的SCARA机器人所需的组件列表。电子元件的列表可以在本文的电路图部yabo7. com分找到。

yaboAG娱乐城披露:这些是附属链接。作为一个亚马逊助理,我从合格的购买中赚取。

以下是本项目所需的螺栓尺寸:

我们从基地开始组装。在这里,首先我们插入一个径向滚珠轴承与35mm内和47mm外径。

为机器人关节定制设计的GT2滑轮

然后是第一个推力轴承,内径40mm,外径60mm。这个轴承将位于滑轮和底座之间。

在底座的另一侧,我们使用另一个相同尺寸的推力轴承和接头联轴器。

装配第一个机器人关节

然后,我们可以使用四个长度为55mm的M4螺栓将皮带轮和上部连接起来。我们需要在这里使用自锁螺母,并适当拧紧它们,以便接头牢固,同时能够自由旋转。

接下来,我们需要安装中间的皮带轮。这个皮带轮与带有300mm GT2皮带的连接皮带轮配对。为了安装这个皮带轮,我们使用两个608滚珠轴承,一个在底座的顶部,另一个在底部。然后使用45mm M8螺栓、垫圈和自锁螺母,我们可以将皮带轮固定到位。

3D打印的GT2滑轮上的GT2皮带

接下来,我们需要为这个关节安装步进电机。步进机将与带有200mm皮带的中间皮带轮配对。为了把它固定在底座上,我们需要四个M3螺栓。

为第一个机器人关节安装NEMA 17步进电机- 20比1减速比与GT2皮带

在拧紧螺栓之前,我们需要尽可能地拉紧皮带。这里只需简单说明一下,我实际上更换了中间皮带轮的M8螺栓,其头部位于底部,以便可以安装在底座内。

此时,应检查皮带是否紧得足够紧。如果没有,我们可以用一些惰轮更好地拧紧它们。这里,我使用一个35mm M5螺栓和一些螺母,使收紧滑轮。

用于GT2皮带张紧的惰轮

它可以附着在皮带两侧的槽上,这样我们就可以随心所欲地收紧皮带。最后我只好勒紧了两边的腰带。这样,第一个关节就完成了。

我继续为这个接头安装微开关。在固定它之前,我已经焊接了电线到它,因为它有点紧在这里做之后。我们需要一个20mm M3螺栓和螺母,以确保微开关到位。

给机器人增加微开关

接头耦合器通过如此紧密的开关,我最后只使用了一个螺栓来固定开关。在另一个洞,我插入一个较短的螺栓,并把它粘在底部。这样开关就足够安全,可以正常工作。

好,接下来我们开始组装z轴。首先,在联轴器的顶部,我们需要固定z轴底板部分。

固定棒的夹子

在它上面,我们可以固定四个固定光滑杆的夹子。然后我们可以把光滑的棒插进去。它们应该紧密贴合,并一直到连接耦合器部分。我们可以用一些M4的螺栓和螺母把杆夹紧。

用3D打印夹具- SCARA机器人的z轴固定光滑棒

此时我们需要插入丝杠的轴承。为了完成这一节,我们可以滑动一个简单的盖子,它将隐藏所有东西,给机器人一个更干净的外观。

接下来,我们可以继续组装机器人的第一只手臂。臂由两部分组成,用螺栓固定在一起。第一部分是我们需要安装线性轴承的地方,它将通过光滑的杆滑动。将它们插入到位可能有点困难,因为它们非常紧密。

插入将在z轴光滑杆上滑动的线性轴承

实际上,这取决于你的打印机打印零件的精确程度。所以我建议在打印零件时使用水平扩展功能,并根据你的打印机进行调整。在我的例子中,我无法安装两个轴承来一直向下,但这没什么大不了的。

好了,现在我们可以把手臂的两个部分配对在一起。为此,我们将使用4个25mm M5螺栓。

用4颗M5螺栓连接臂号1的两个部分

接下来,我们可以安装第二个步进电机。在这里,我将使用3D打印的GT2滑轮20个牙齿。我用我之前提到的参数化设计做了这个滑轮,它工作得很好。这里我们还需要将丝杆螺母固定在适当的位置。

将丝杠螺母固定到位

接下来,我们可以为第二个接头安装皮带和皮带轮。这里我们需要一条400mm长的皮带和一条300mm长的皮带。安装它们的步骤与第一个接头的步骤基本相同。

装配第二个SCARA机器人关节-通过2条GT2传送带实现16比1的减速比

这里是第二个关节和第三个关节,我们实际上使用的轴承比第一个要小。径向球轴承有30mm内径和42mm外径,推力轴承有35mm内径和52mm外径。

在安装第二个接头耦合器之前,我们需要在六角槽中插入6个20mm M4螺栓。

将25mm M4螺栓插入第二个接头联轴器

它们将用来连接第二只手臂到关节上。如果需要,为张紧皮带,我们可以使用相同的方法,如前所述与惰轮。最后,我将第二个微开关固定到位,手臂一号组装完成。

为第二个SCARA机器人关节安装微开关

我继续将第二臂连接到接头耦合器上。在这里,我们使用那些螺栓在接头耦合器,我们之前安装,以确保第二臂的上部。

安装臂号2

在这一点上,我想测试接头有多大的齿隙。当然,我预计皮带会产生一些齿隙,但实际上接头的两个部分之间有更多的间隙。我注意到问题是螺栓所在的孔略大于螺栓本身。为了解决问题,我们需要更紧密的配合b在螺栓和孔之间。

关节的两个部分之间的连接松动会对机器人连接产生反冲

所以,在我的案例中,我用4.5mm的钻头将孔扩大,并使用M5的螺栓,而不是M4的螺栓,将两个接头固定在一起。但是我更新了3D模型,孔是3.5mm,你可以用M4的螺栓把这两个部分连接在一起。我也回到了第一个关节,做了同样的事情。现在关节处的游戏几乎结束了,除了皮带给我们带来的小反弹。

好了,现在我们可以继续组装第二只手臂了。这里首先我们需要为第三个关节安装步进电机。

装配第二机械臂

在这个例子中,我使用了一个更小的步进电机,这样手臂就会轻一些。尽管如此,它是一个NEMA 17步进电机,但较短的24厘米长度。

再次,我们有相同的程序安装皮带和滑轮的第三关节,除了这里我们只用一个单一的阶段减少400毫米皮带。接下来,在将手臂的下部连接到上部之前,我们需要连接电机和微动开关,并将它们的电线通过第二个关节。

将电线穿过机器人的空心接头

在这一点上,我们还需要插入末端执行器的导线。在我的情况下,我插入了一个步进电机4线电缆,我将使用它来驱动我的夹具需要3线的伺服电机。

接下来,我们需要在上臂的槽位上插入M4螺母,用来固定下臂。

把手臂的两个部分合并在一起

在合并它们之前,我们应该在这些挂钩下穿过电线,这样它们就远离运动部件。

从第二个接头出来的电线实际上可能会被皮带轮上的螺母卡住,因此我制作了一个简单的电线固定器,将电线固定在远离螺母的位置。

在第一个手臂上加一个金属支架

我们应该将导线安排在手臂的一侧,以避免与活动部件接触。最后,我们可以插入第一个手臂的盖子。

3D打印卡扣接头

阀盖通过卡扣连接固定在臂上。至此,机器人手臂组装完成。

接下来,我们可以把整个组件插入到z轴杆上。

将scara机器人手臂装配到z轴杆上

然后我们需要准备z轴顶板,它将保持杆的上端。首先,我们可以安装z轴的微开关,并将for夹具附加到板上。

准备Z轴的顶板

在放置顶板到位之前,首先我插入一个简单的盖子就像下面的一个,以隐藏夹具,螺栓和微开关。然后我们可以插入和紧固顶部板到杆使用夹具。

接下来,我们需要将丝杠插入到位。

驱动SCARA机器人z轴的8mm丝杠

我有一个稍微长一点,所以我用金属手锯把它切到38厘米。接下来,我们可以将第四步进电机安装到位。这里我们需要使用一个5mm到8mm的联轴器来连接电机的丝杠。

将z轴NEMA 17步进电机与带5mm到8mm联轴器的8mm丝杠连接

最后,我们可以把电线穿过盖子,用两个螺栓把它固定在顶板上。

好的,接下来我们可以做一些有线电视管理。我用电缆套管把电线放在一起,然后清理混乱。为了这个目的,我还用了一些拉链。

使用电缆套组织电线

在把电线放进电缆套管之前,最好是标记每一个,这样你就不会连接错任何东西。

现在剩下的是机器人的末端执行器。我们可以在机器人上做任何末端执行器。我选择做一个简单的夹持器,由MG996R伺服电机驱动。抓手是基于两个6mm的杆,在其两侧滑动。

组装SCARA机器人抓手

两个滑动侧通过伺服喇叭、一些3D打印链接和M3螺栓螺母与伺服连接。我使用M3的螺栓和螺母为整个夹持器组件。实际上,你可以在网站文章中找到这个项目所需的螺栓和螺母的完整列表。固定螺栓和螺母的空间很紧,所以你需要一些神经来组装这些零件。

3D打印机器人夹持器

不过,这种设计的好处是我们可以很容易地改变夹持器的末端。它们可以更宽或更窄,也可以有特定的形状。我们可以用一些M4的螺栓和螺母把夹持器安装到机器人手臂上。

将夹持器或末端执行器连接到scara机器人

最后,我们可以将伺服电机连接到我们之前安装的电线上。

就这样,我们的SCARA机器人手臂完全组装好了。现在剩下的就是连接这个项目的电子元件。yabo7. com

SCARA机器人电路图

因此,我们将使用Arduino UNO板结合一个CNC屏蔽和四个A4988步进驱动器

用于控制SCARA机器人的Arduino UNO

虽然它是一个机器人,看起来更复杂,但这就是我们这个项目所需要的全部电子设备。yabo7. com值得注意的是,除了Arduino UNO,我们还可以使用Arduino MEGA与RAMPS 3D打印机控制器板相结合。

但是,我3D打印了Arduino UNO的外壳,它可以很容易的附着在机器人的基座上。我将使用四分之一步分辨率驱动步进,所以我放置了一些跳线在适当的引脚。现在我们可以将步进电机和微开关连接到数控屏蔽上。

Arduino UNO和CNC Shield用于控制SCARA机器人4步进电机

这是这个SCARA机器人的电路图以及所有东西需要如何连接。

Arduino SCARA机器人电路图

你可以从下面的链接获得这个项目所需的组件:

yaboAG娱乐城披露:这些是附属链接。作为一个亚马逊助理,我从合格的购买中赚取。

为了给机器人供电,我们需要12V电源,至少4A,但我建议12V 6A电源。当然,这取决于步进驱动器的电流限制是如何设置的,我建议将其设置在可能的最低水平。

3D打印Arduino UNO外壳

最后,我把所有的电线都挤到机箱里,同时尽量不让硬盘散热器散热,并把盖子盖上。

完成组装

SCARA机器人现在已经完成了,我们现在需要做的是把基地固定到某个地方。为此,我将使用一块20毫米的木头。在机器人底座的底部,我们有12个孔用于固定它。所以,我打印了一张机器人底座的图纸,并用它在木头上打洞。

准备机器人的木质底座

在底部我沉他们,因为我将使用平头螺栓,所以他们闪光与木材表面。我先将M4螺母插入底座槽位,然后将木质底座固定在机器人底座上。

添加一块木头作为机器人的基座

理想情况下,为了把机器人固定在合适的位置,我们可以把它固定在桌子上,或者我可以简单地用夹子。

3D打印SCARA机器人DIY项目

就这样,我们的SCARA机器人现在完全完成了。在这个视频中,我们要看看机器人是如何工作的。

参见:DIY Arduino机器人手臂,智能手机控制

SCARA机器人是如何工作的

控制机器人的位置和方向有两种方法,那就是使用正运动学或逆运动学。

当我们需要从给定的关节角度找到末端执行器的位置和姿态时,正运动学被使用。

SCARA机器人控制的正逆运动学-如何工作亚博88下载

另一方面,逆运动学用于当我们需要为给定的末端执行器位置求关节角的时候。这种方法在机器人技术中更有意义,因为大多数时候我们希望机器人将其工具定位到特定的位置或特定的X、Y和Z坐标。

利用逆运动学,我们可以根据给定的坐标计算关节角。

机器人正逆运动学方程

正运动学和逆运动学的方程都来自于三角学的规则和公式。

为SCARA机器人编程–Arduino和处理代码

在本文的底部,您可以找到Arduino和Processing代码。

下面是在Processing开发环境中编写的代码中的方程。

// FORWARD运动学void forward运动学(){float theta1F = theta1 * PI / 180;//角度到弧度的浮动xP = round(L1 * cos(theta1F) + L2 * cos(theta1F + theta2F));yP = round(L1 * sin(theta1F) + L2 * sin(theta1F + theta2F));}

因此,通过正运动学我们计算末端执行器的X和Y值,根据机器人的两个手臂的关节角度,以及它们的长度L1和L2。

另一方面,使用反向运动学,我们根据给定位置或X和Y坐标计算关节角度θ2和θ1。

/逆运动学无效逆线性(float x,float y){theta2=acos((sq(x)+sq(y)-sq(L1)-sq(L2))/(2*L1*L2));if(x<0&y<0){theta2=(-1)*theta2;}theta1=atan(x/y)-atan((L2*sin(theta2))/(L1+L2*cos(theta2));theta2=(-1)*theta2*180/PI;theta1=theta1*180/PI;//角度调整取决于最终刀具坐标x,y在哪个象限(x>=0&y>=0){//第一象限theta1=90-theta1;}如果(x<0&y>0){//第二象限theta1=90-theta1;}如果(x<0&y<0){//三维象限θ1=270-θ1;φ=270-θ1-θ2;φ=(-1)*φ;}如果(x>0&y<0){//第四象限θ1=-90-θ1;}如果(x<0&y==0){θ1=270+θ1;}//计算“φ”角度,使夹具平行于x轴φ=90+θ1+θ2;φ=(-1)*phi;//角度调整取决于最终刀具坐标x,y在哪个象限中为if(x<0&y<0){//3d象限phi=270-θ-θ1-θ2;}if(abs(phi)>165){phi=180+phi;}θ1=圆形(θ1);θ2=圆形(θ2);phi=圆形(phi);cp5.getController(“j1Slider”).setValue(θ1);cp5.getController(“j2Slider”).setValue(theta2);cp5.getController(“j3Slider”).setValue(phi);cp5.getController(“zSlider”).setValue(zP);}

根据位置设置在哪个象限,我们使用“if”语句对关节角进行一些调整。对于这个机器人的构型我们实际上是在计算两个连杆的逆运动学。第三个角度,我称之为“phi”,用于设置夹持器的方向。

图形用户界面是使用controlP5图书馆用于处理IDE。有了这个库,我们可以轻松地创建按钮、滑块、文本框等。用Processing和controlP库制作的图形用户界面-用于机器人控制的GUI

例如,我们使用左侧的滑块来控制关节角度,并使用文本字段输入我们希望机器人去的位置。我们在这里用程序执行的每一个动作,都是通过串口将数据发送到Arduino板。

if (gripperValue previous != gripperValue) {if (activeIK == false){//检查逆运动学模式是否激活,只有逆运动学模式为off或false时才能执行正运动学gripperAdd = round(cp5.getController("gripperValue").getValue());gripperValue = gripperAdd + 50;updateData ();println(数据);myPort.write(数据);} }

这些数据包括关节角度、夹持器值、速度和加速度值,以及用于判断我们是否点击了保存或运行按钮的指标。

public void updateData(){data=str(saveStatus)+“,+str(runStatus)+“,+str(round)(cp5.getController(“jslider”).getValue())+”,+str(round)(cp5.getController(“j2Slider”).getValue())+“,+str(round)(cp5.getController(“j3Slider”).getValue())+”,“+str(round(cp5.getController(“zSlider”).getValue())))),“,+str(gripervalue”),+str(gripervalue”),”+str(加速滑道);}

所有这些数据在Arduino上都是一个长字符串。在这里,首先我们需要从字符串中提取数据并将其放入单独的变量中。

if (Serial.available()){内容= Serial.readString();//从Processing中读取传入的数据//从字符串中提取数据并放入单独的整型变量(data[]数组)for (int i = 0;我< 10;i++) {int index = content.indexOf(",");//定位第一个","数据[i] = atol(内容。substring(0,指数).c_str ());//从start中提取数字到"," content = content。substring(指数+ 1);//从字符串中移除数字}/* data[0] - SAVE按钮状态数据[1]- RUN按钮状态数据[2]-关节1角度数据[3]-关节2角度数据[4]-关节3角度数据[5]- Z位置数据[6]-握力值数据[7]-速度值数据[8]-加速度值*/

有了这些变量,我们就可以对机器人采取行动了。例如,如果按下SAVE按钮,则将当前关节角度值存储在一个单独的数组中。

If (data[0] == 1) {theta1Array[positionsCounter] = data[2] * theta1AngleToSteps;//存储的值在步骤=角度* angleToSteps变量theta2Array[positionsCounter] =数据[3]* theta2AngleToSteps;phiArray[positionsCounter] = data[4] * phiAngleToSteps;zArray[positionsCounter] = data[5] * zDistanceToSteps;gripperArray [positionsCounter] =[6]的数据;positionsCounter + +;}

如果我们单击RUN按钮,我们将执行存储的步骤,等等。

为了控制步进电机,我使用了AccelStepper图书馆.虽然这是一个伟大的库控制多个步进在同一时间,它有一些限制,当它控制一个机器人像这样。当控制多个步进时,库不能实现加速度和减速,这对机器人的平稳运行非常重要。

步进1.moveTo(步进1位置);步进2.moveTo(步进2位置);步进3.moveTo(步进3位置);步进4.moveTo(步进4位置);while(步进1.currentPosition()!=步进1位置|步进2.currentPosition()!=步进2位置|步进3.currentPosition()!=步进3位置|步进4.currentPosition()!=步进4位置){stepher1.run();stepher2.run();stepher3.run();stepher4.run();}

我仍然设法用库实现加速和减速,但它们不像我想的那样平滑。

以下是Arduino SCARA机器人项目的完整Arduino和Processing代码:

总结

最后,一旦我们把代码上传到Arduino上,我们就可以运行处理程序,连接电源scara机器人就会开始移动到它原来的位置。

Arduino SCARA机器人控制使用GUI与Processing IDE制作

从那以后,我们想怎么做就怎么做。我们可以手动操作,也可以设置为自动工作。当然,我们可以附加任何末端执行器并用它做出很酷的东西。例如,我们甚至可以在机器人上安装一个3D打印机热端,使机器人成为3D打印机,或者安装一个激光头,使它成为激光切割机。我确实计划尝试这两个想法,所以一定要订阅我的频道,这样你就不会在我未来的视频中错过它们。

在这个视频结束之前,我想给你一些关于这个项目的注意事项。我发现这个机器人不像我想象的那么死板。

机器人刚度测试

我想问题是几乎整个SCARA机器人,z轴和手臂都是由第一个关节支撑的。整个重量和移动时产生的惯性力,会对第一个关节的位置产生相当大的压力,因为它只是一个塑料它倾向于弯曲一点。此外,这些皮带不是无间隙的,所以我们也减少了机器人的刚性。然而,我认为整个项目已经足够好了,所以你可以学习SCARA机器人是如何工作的,并给你勇气为自己建造一个。

请在下方的评论部分提出任何问题,并检查我的Arduino项足彩网女欧洲杯目集合

关于“SCARA机器人|如何构建自己的基于Arduino的机器人”的81个想法

  1. 嗨,Dejan,感谢您为我们提供这些设计。我正在看Arduino示意图和A轴步进驱动器(右下角)看起来与其他电机不同。此电机是否使用与其他电机不同的步进驱动器?我的SCARA臂上的丝杠电机当前不工作,因此我想知道是否是电路板导致的。

    回复
    • 嘿,所有的步进驱动程序都是一样的。你的Z轴电机发生了什么,试着把它连接到不同的端口,这样你就可以检查你的驱动程序是否工作正常。

      回复
  2. 嗨,德扬,
    非常感谢你出色的项目。
    我们机器人课上的孩子们带来了这个机器人
    我的注意力。
    我们已经开始讨论建造你的机器人
    我们有一个3d打印机,但是当下载rar文件
    stl的rar打开“rar档案是未知的格式或损坏”。
    我尝试过不同的浏览器,但没有任何帮助。
    其他rar,s我们有开放的好。
    谢谢
    道格

    回复
    • 你好,谢谢,很高兴听到你这么说。
      我刚试着下载这个文件,它在我的电脑上运行得很好。我不知道你为什么打不开。应该可以,换台电脑试试。

      回复
  3. 嗨。那是一个很好的项目。我大学毕业了,想用你的机械项目和我自己的控制程序。我会尽量发表最后一篇文章。我能否,以及我如何在参考文献中恰当地引用你的项目?谢谢。

    回复
    • 嘿,玩得开心点!当然,你可以包括一个链接到我的网站作为参考。

      回复
  4. 嗨,德扬,
    我有一个关于这部分代码的问题:
    “gripperServo。附加(A0、600、2500);
    //初始伺服值-开启夹持器
    数据[6]= 2500;
    gripperServo.write(数据[6]);
    延迟(1000);
    数据[5]= 100;
    归位()
    我不知道你为什么没有用Arduino map()把600 min值映射到0度,2500 max值映射到180度。

    回复
  5. 嗨,德扬,
    请您确认一下我的授课内容。
    基于您的Arduino代码,机器人手臂应该回到home位置,没有任何处理代码的干预。我的问题是由我的停止开关(NO vs NC)引起的吗?
    空白归航(){
    / /导航Stepper4
    while (digitalRead(limitSwitch4) != 1)…
    如果使用错误的开关,我们将永远不会满足这个条件" while (digitalRead(limitSwitch4) != 1) ",因此步进电机将不会回家。

    回复
  6. 你好,先生,scara机器人的有效载荷是多少?如何计算?
    我很喜欢你的机器人先生,谢谢你的作品。

    回复
  7. 嗨,德扬,
    我确定这是COM的问题,我用了不同的笔记本电脑和不同的USB线。我尝试了不同的Arduino和CNC shield,还是没有解决这个问题。我没主意了。我真的很想完成这个项目,与我的学生分享它,我愿意支付任何人可以帮助。
    除了取消注释COM3行之外,我还需要更改代码上的任何内容吗?
    提醒你一下,我可以用Arduino提供的例子分别控制每个关节。这是我的号码和电子邮件,如果有人想联系我,我是认真的,我会付钱给任何可以帮助我的人

    回复
  8. 亲爱的德扬

    我要亲自感谢你们为学习和教育做出的所有努力。我是一名教师,我想用您的Scara机器人在我的课堂上教授机器人。

    我已经3D打印了所有的零件,组装好并独立测试了每一个步进电机,所有的电机和轴都使用了Arduino提供的StepperMotorTest草图,但是当我使用你提供的Arduino和处理代码时,什么都没有发生。我不确定我做错了什么。

    我先将Arduino代码上传到Arduino上,然后关闭这个草图,这样在传输串行数据时COM12端口就可以和processing application通信了。

    我在你的处理代码中唯一更改的是将COM3端口改为COM12端口,并取消注释这一行:

    //myPort = new Serial(this, " COM3 ", 115200);

    myPort = new Serial(this, " COM12 ", 115200);

    我不确定是否需要更改代码中的其他内容?

    我还使用了DRV8825驱动器而不是4988驱动器,并将其Vref设置为0.8伏,但我认为这不重要,因为我能够用步进电机驱动Arduino草图。

    提前感谢你的帮助。

    回复
    • 嘿,正如您已经测试过步进器使用基本示例代码一样,那么问题仍然是串行通信。您已经取消了对该行的注释,并根据COM端口对其进行了修改,但还不确定它为什么不起作用。不过,如果你使用的是MacBook,这一行应该有点不同。

      回复
  9. 这就跟你问声好!
    我喜欢你的机器人,也想做一样的。
    我有两个问题:
    1.如何安装第二个伺服?
    2.如何在控制程序中增加“保存g代码”和“加载g代码”功能?
    PS
    你没有显示连接A轴的方法,我们需要增加两个跳线

    回复
    • 嘿,谢谢!你可以像安装第一个伺服一样安装第二个伺服,如果你有可用的管脚来控制它,你可以控制它。至于保存和加载g代码,我想做这个功能,但我没有时间做。我不能给你任何提示,因为我还没有尝试实现这样的代码是的,但当然,这是可能的。

      回复
  10. 我的机械手有个问题。钳口由MG-996R伺服驱动,并通过CNC Shield v3由Arduino Uno(引脚A0)控制。在命令关闭被抓住物体上的颚后(大约。360毫安电流在伺服电源电路中流动),夹持器锁住,即夹爪无法打开。伺服噪声低,电流大于200mA。我理解伺服“想”到达给定的位置,但是在颚部的物体抵抗阻止伺服转动。但是为什么夹持器卡住了,并且在发出打开下颌的命令后没有反应呢?没有夹紧工件上的钳口,夹具工作没有问题。
    我正在请求项目作者或同事帮忙解决这个问题。

    回复

    • 我已经发布了一些问题,我在使用Scara控制程序时遇到的问题,它似乎是有bug的,并不是完全的证据,请阅读我的帖子,并让我知道,如果你有同样的问题或有解决方案
      谢谢

      回复
    • 你好这个夹持器的设计与我的非常相似(https://www.instagram.com/p/Bx-mb4yJr74/).根据我的经验,你能做的最好的是根据对象的大小调整伺服值(通过试错)。你也可以在,比如说,0.5秒后关闭伺服(适用于轻的物体)。无论哪种方式,都不应强调伺服。好运!

      回复
  11. 我的夹持器有问题。当夹在一个对象,伺服锁和抓手不打开!是什么导致了这个问题?在不夹紧工件的情况下打开和关闭夹持器是没有任何问题的。我在寻求解决这些问题的帮助。

    回复
    • 嗨,拉罗,我也有同样的问题,你能解决这个问题吗?

      回复
    • 嗨“,
      你能解决你的问题钳子,我有同样的问题,我希望你能帮助。当我试图关闭或打开夹持器时,我的机器手臂在Z轴上向下。

      回复
  12. 你好,我发现夹持器伺服支架部分的孔与夹持器盖部分不匹配。你觉得有可能吗,还是我错了?请检查一下好吗?谢谢

    回复
  13. MG996R是如何伺服驱动的?是否有单独的5V电源,还是由CNC Shield v3上的5V连接器供电?

    回复
      • 嗨,迪安
        我在使用的时候有一些问题
        处理pde Scara程序,我不明白为什么有时当我走到一个位置,然后移动夹持器滑块
        它立即回到
        x365 y 0和z
        为什么??它不应该这样做
        我的夹持器在0度打开,在90度关闭
        在项目中有办法改变吗?
        和你交流最好的方式是什么,我在你的facebook上发过帖子,通过messenger发过消息,在YouTube上留下了评论,还有这里
        我需要你的帮助,因为你是创作者,我不太擅长编程-

        回复
  14. 很棒的项目,建好了,效果很好。不得不做一些调整,但你的教程让我通过了任何问题。我想知道你是否对我展示你的手臂有任何问题,我建立了一些修改,我想在我的YouTube频道。当然,在开始的时候,我会把你作为项目创建者,并把你的频道作为我能够从各种视频中学到很多东西的地方。如果有问题,我会举起我自己的手臂,而不是你的复制品。请让我知道你的想法。另一件事,我是一个退休的81岁程序员,有一个爱好建造机器人和无人机。我制作免费视频来帮助别人,就像在线视频对我的帮助一样。

    回复
    • 谢谢你!很高兴你觉得我的工作有帮助。当然,继续分享你制作的手臂的视频吧,我很想看。你也可以在评论区分享,这样其他人也可以从这里看到它。干杯!

      回复
      • 德扬
        谢谢你对我的机器人感兴趣。我刚刚在我的YouTube频道“LotBot Robotics”上发布了两个视频中的第一个。我不确定它将如何包括,但我把YouTube入口从我的频道在这里。(https://youtu.be/FKMeaDhvkUk)题目为“使用STM32F4黑色药丸远程控制SCARA机器人第一部分可行性”

        回复
      • 德扬
        我终于完成了我的项目,最后有了四个视频。然而,只有第二个有一些很好的演示我的副本,你的机器人被远程控制。https://youtu.be/qc-aMplBsZc可以在我的YouTube频道“LotBot机器人”上找到第3部分和第4部分是我使用的代码讨论。第一部分是我已经回复的视频。非常感谢你们发展我可以学习的兴趣项目。

        回复
    • 你好,
      我还建造了斯卡拉机器人。我修改了所有的3D模型来适应
      使用我从其他项目中获得的所有组件,甚至添加了一些3d功能,以简化手臂内部电缆的布线。足彩网女欧洲杯
      我使用12mm的直线轴和法兰衬套,连同一个12mm的丝杠和螺距为8mm和2mm的螺母。我也有一个坚实的铝基础框架结构,我在后面的电源,arduino uno和cnc屏蔽,降压转换器和风扇和交流电源开关。
      寻的序列工作得很完美,这是我唯一的问题,我感到困惑。
      当它完成归航序列时,x,y,z是365,0170。我的z与youtube上的略有不同,因为我的线性轴的高度。一旦我按下夹持器的值滑块打开,它会在z下潜并击中表。我能在pde中改变什么来停止它,它真的不应该这样做,它应该只移动夹具到我想要它打开,关闭或任何它需要的地方。你的帮助将不胜感激

      回复
      • 嗨,西奥多,
        我和你有同样的问题。我的归航序列像你一样完美,唯一的问题是我也有,当我想关闭或打开抓手,然后机器手臂在z轴潜水。你能解决这个问题的地方。我相信很多人都有同样的问题。我真的很想完成这个漂亮的项目。我很确定德扬能帮上忙,但他可能很忙,我理解。

        回复
  15. 有很多进步!机器人启动!现在游戏的机制需要改进。

    回复
  16. 你好,

    我喜欢这个项目,你启发了我,让我自己制作一个!在我深入讨论之前,我对你的结果很好奇。

    你认为这个手臂的最大有效载荷是多少?你达到了怎样的精度/重复性?

    很高兴看到你的新项目,谢谢你所创造的!足彩网女欧洲杯

    回复
    • 嘿,谢谢!我还没有做过关于最大有效载荷的测试。在视频的最后可以看到,手臂上有一个小的动作,所以现实地说,它没有那么高的精确度和重复性。改进的方法是在基础关节使用更大/更宽的轴承,可能使用更好的皮带或可能减少皮带的数量或减少阶段从两个到一个。这些Z轴轨道也很好。

      回复
      • 嗨,Dejan,非常感谢你的回复!

        我现在已经制作了我自己的手臂——主要是基于你的设计!(我在一些地方省钱了,哈哈)到目前为止,这绝对是一个有趣的学习经验!

        我让它移动到指定的坐标,现在没有问题了。如果能在手臂上实现g-code,那就太棒了,我正在努力想办法,但现在有点超出我的能力范围。像这样的教程会很棒。

        再次感谢你启发我做这个,这是很多乐趣的设计!

        回复
  17. 我组装了机器人。不幸的是,它没有启动!电源一接通,什么也没发生。请帮助。

    回复
    • 有什么进展吗?我的意思是有很多事情可能是错误的。你应该首先检查你的电子部件是否工作正常,比如你的Arduino,数控屏蔽或步进驱动器。尝试使用一个简单的代码,尝试运行单个电机的几个步骤,看看他们是否工作。如果电子工作,yabo7. com您应该移动故障排除软件部分,或处理代码。此外,它们简化了代码或移动,并确保您的波特率和COM端口是正确的。

      回复
  18. 恭喜你,干得好。
    根据描述,第三度的比例为1:4。在我看来,是1:4.5(20/90 = 4.5)。是这样吗?

    回复
  19. 好项目!我可以造一个。细节很好,一步一步的讲解。也许可以使用“滑动”轴承支撑基础接头。我在另一个5自由度机器人手臂项目中使用了它,效果更好。

    回复
    • 很高兴听到这个消息!是啊,基础关节肯定需要更好更宽的轴承。

      回复
  20. 对不起,这是英文版本

    你好,我跟踪你所有的项目。足彩网女欧洲杯SCARA机器人非常有趣,他们正在建造中。一个小注意:轴承座需要稍微大一点。例如,608轴承座在设计阶段就应该增加约2 / 10。22mm外径可为22.2mm设计。这种增加也适用于其他轴承的座位。干得好,我正在等待其他优秀的项目。足彩网女欧洲杯

    回复
  21. 你好,我很高兴见到你。SCARA机器人è molto interesting, sono in fase di realzione。他说:我希望你能给我一个机会。他是在608年和大约2代西米già的情况下去世的。直径为22毫米,直径为22.2毫米。所有的马吉拉齐奥尼和他的家人都在一起。你好,我是你的朋友。
    例子

    回复
  22. 爱它!你能解释一下接头的设计吗?我理解推力轴承,但为什么还需要径向轴承?更稳定?不幸的是,我的Prusa Mini不能打印这个项目,所以我需要设计一个更小的版本。去年我尝试使用Processing来控制一个笛卡尔CNC,但是失败了,我必须尝试调整你的代码

    回复
  23. 嗨,德扬,
    感谢您的更新!我刚刚完成了构建,它工作得很好与合理的反弹,主要接头。尽管如此,在手臂关节快速运动的情况下,它还是感觉相当结实。我注意到的另一件事是,“廉价的”z轴也有可能在z移动过程中产生一些“摆动”。

    关于你的Arduino代码,我不得不削减步进速度和归位速度的一半肯定。不知道有什么不同。
    我使用(在设置方法):
    stepper1.setMaxSpeed (200);
    stepper1.setAcceleration (500);

    homing方法中:
    stepper1.setSpeed (-200);
    stepper1.runSpeed();
    步进1.设置当前位置(-1978);//当限位开关按下时,将位置设置为0步//-3955

    我还不得不将限制开关上的步进位置修剪回一半。不确定是什么原因。

    你能确认或建议另外两个“stepper1”调整吗?

    干杯!

    回复
  24. 你好,
    首先,这是一项伟大的工作,先生。

    在stl压缩文件中,左/右侧缺少“gripper wide end.stl”
    你能上传吗?

    谢谢你!

    回复
    • 嘿,谢谢。那份文件不见了,谢谢你的报告。我已经更新了文件。

      回复
  25. 你好,
    伟大的项目,我只是打印的部分,但我错过了arduino盒子的stl平滑的杆夹具。
    你能上传这些吗?

    谢谢

    回复
  26. 你好,德杰,
    很好的项目,但是关于正运动学和逆运动学的公式有一些问题。
    正运动学:
    如果角度是像图片中那样给出的,那么“x”坐标与各自角度的窦成比例,它将是:x=L1*sin(theta)+L2*sin(theta1+theta2),对于“y”,同样的(意味着cos)。角应该是/2
    逆运动学:
    1) 长度L1和L2应该是平方的(就像在程序中一样)
    2)减号,应该是-L1^2和-L2^2(我们可以在你的程序中看到)
    在正运动学中,你应该改变图片中的角度

    回复
    • 维克多,谢谢你的建议,你是对的。我把这些公式搞混了。我现在更新了图像。我没有改变图像中的角度,而是改变了x和y的公式,我希望这不会让其他人感到困惑。我想我在程序中做的角度调整是由于这些公式是如何设置的。然而,这些公式现在是正确的,因此人们可以在适当的时候修改代码。再次感谢,干杯!

      回复
  27. 你好,德扬,

    很棒的项目!是否有可能将所有这些连接到您在Arduino机器人和mecanum车轮项目中定制的pcb上?我想知道我是否可以把它连接到我的手机上,用蓝牙控制它……

    回复
  28. 亲爱的作者,
    一个STL文件丢失了- 4个小元素来保持杆在合适的位置

    回复
  29. 你好,Dejan,很棒的项目,你对项目和构建说明的描述非常棒。我现在也在试着制造机器人一些打印机正在嗡嗡作响。
    我的检测是否正确,8mm棒400mmm钳型(8x需打印)不在你们的STL出口档案中?

    回复
  30. hey love the project started printing the parts yesterday i have a question: the kinematic model you used in the processing ide, would it be possible to implement that directly in the arduin itself? i want to hard program the positions the robot drives to and hope i wont need a pc or raspberry pi for that? thanks for sharing this project

    回复
    • 嘿,谢谢!当然,你可以这样做。你可以用Arduino计算运动学模型做任何你想做的事。我使用Processing IDE只是为了制作一个更容易控制机器人的GUI。

      回复
  31. 很棒的项目! !小问题,也许我错过了这部分,但我们需要多少解放军(公斤)来制造我们自己的SCARA?

    回复
    • 谢谢!嗯,我没有记下来,所以我不知道确切的数字。大概1到1.5公斤。

      回复
  32. 你好

    似乎stl文件链接不工作..

    你能谈谈吗?

    谢谢

    回复
    • 你是无法下载还是无法打开文件?在第一种情况下,尝试使用不同的浏览器下载它们。

      回复
  33. 你好,Dejan,我目前正在采购制造这个机器人的所有部件。问:GT2同步带的宽度是多少?感谢你又出版了一个伟大的项目!

    回复
  34. 你好,德扬,
    伟大的项目,伟大的工作,你做得很好。期待3D打印机和激光切割机的热端
    用真空吸盘怎么样?

    来自德国的问候

    埃里克

    回复
  35. 很棒的项目。我都等不及要建我的了。在什么层高度和填充%你打印的部分?

    回复
    • 谢谢!我打印的部分0.2毫米层高和大约30%的“立方”填充。
      玩得开心!

      回复
  36. 你能得到一个教程的乐趣360吗?我认为这是一个很棒的软件。因为我发现你在每个项目里都用它。

    回复
    • 很棒的项目,我要试一试!
      我找不到五金、螺栓和螺母的清单。你能给我发个链接吗
      谢谢!

      回复
  37. 再一次你的另一个令人敬畏的项目,我将想要建立。关于第一个z轴关节弯曲,我发现使用一个回转轴承采取了所有的应变伺服。

    回复
      • 你好,
        干得好,解释得很好。你能告诉我吗
        我如何使用GUI Scara机器人界面?我从未使用。pde文件。如何运行。pde文件?另外,如果我建造Scara,我可以使用不同长度的手臂并在Arduino中修改这些参数吗?
        我需要修改哪些参数

        回复
        • 嘿,谢谢!这个GUI是使用Processing IDE制作的,所以你需要将它安装到你的电脑上,然后在上面运行程序。Arduino连接到计算机,通过Processing IDE,它们可以通过串口进行通信。更多的信息,你可以查看我的一些其他教程相关的主题,你可以使用“搜索”按钮功能的网站。
          至于手臂的长度,你当然可以修改。在处理代码中,您只需更改L1和L2参数,以匹配您的实际长度,因此正运动学和逆运动学计算正确。

          回复

留下你的评论