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模型

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

3 3experience SOLIDWORKS基本上是通过3experience平台获得的具有云计算能力的SOLIDWORKS。所有工作都通过云计算进行,所以您或您团队中的任何人都可以在任何时间、任何地点访问数据或模型。3DEXPERIECE平台还包括许多有用的生产力和管理应用程序。

三维建模在3experience Solidworks

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

3DMarkup app来自3experience平台

还有一个独立的、基于云的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皮带是长度分别为200mm和300mm的闭环皮带。机器人关节由两个推力轴承和一个径向轴承组成。

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

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

机器人夹持机构-三维模型

机械手是采用MG996R伺服电机驱动我们可以很容易地改变夹持器的两端,以实现不同的夹持尺寸。机器人的Z轴由一个8mm丝杠驱动,整个手臂组件在四个10mm光杆和直线球轴承上滑动。机器人的高度仅仅取决于光滑杆的长度,在这个例子中是40厘米。丝杠需要短2cm,以适应这种配置,如果不是,Z电机可以提高2cm使用间隔螺母。

您可以下载三维模型以及用于三维打印的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机器人所需的组件列表。电子元件的列表可以在本文的电路图部必威lol分找到。

必威外围提钱披露:这些是附属链接。作为一个亚马逊助理,我从合格的购买中赚取。

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

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

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

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

在底座的另一侧,我们使用了另一个同样尺寸的推力轴承,并搭配了联轴器。

装配第一个机器人关节

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

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

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

接下来,我们需要为这个接头安装步进电机。步进器将与中间皮带轮搭配200mm皮带。为了将它固定在底座上,我们需要4个M3螺栓。

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

在拧紧螺栓之前,我们需要把皮带尽可能地拉紧。只是一个快速的注意这里,我实际上更换了M8螺栓的中间滑轮的头部在底部,这样它可以适合在基地。

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

用于GT2皮带张紧的惰轮

它可以连接在皮带两侧的槽上,这样我们就可以任意拉紧皮带。我最后在两侧拉紧皮带。这样,第一个接头就完成了。

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

给机器人增加微开关

接头连接器通过开关的距离如此之近,以至于我只使用了一个螺栓来固定开关。在另一个洞,我只是插入了一个较短的螺栓,并粘在底部。这样开关就足够安全,可以正常工作。

好的,接下来我们可以开始组装Z轴了。首先,在接头耦合器顶部,我们需要固定Z轴底板部件。

固定棒的夹子

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

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

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

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

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

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

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

使用四个M5螺栓连接1号臂的两个零件

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

将丝杠螺母固定到位

接下来,我们可以为第二个关节安装皮带和滑轮。这里我们需要一条400mm的皮带和一条300mm的皮带。安装他们的程序是几乎相同的解释为第一个接头。

组装第二个SCARA机器人关节-使用2条GT2皮带实现16:1的减速比

对于第二个和第三个关节,我们实际上使用了比第一个更小的轴承。径向滚珠轴承内径30mm,外径42mm,推力轴承内径35mm,外径52mm。

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

将25mm M4螺栓插入第二接头

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

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

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

安装臂号2

在这一点上,我想测试多少反弹的关节。当然,我预计会有一些反弹由于传送带,但实际上有更多的发挥之间的两个部分的关节。我注意到问题是螺栓的孔,比螺栓本身稍微大一点。为了解决这个问题,我们需要把螺栓和孔配合得更紧。

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

所以,在我的案例中,我用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机器人手臂完全组装好了。现在剩下的就是连接这个项目的电子元件。必威lol

SCARA机器人电路图

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

用于控制SCARA机器人的Arduino UNO

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

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

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

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

Arduino SCARA机器人电路图

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

必威外围提钱披露:这些是附属链接。作为一个亚马逊助理,我从合格的购买中赚取。

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

3D打印Arduino UNO外壳

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

完成组装

SCARA机器人现在完成了,我们现在要做的是把基地固定在什么东西上。为此,我将使用20毫米的木板。在机器人底座的底部我们有12个孔来固定它。所以,我打印了一张机器人底座的图纸,并用它在木头上打洞。

准备机器人的木质底座

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

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

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

3D打印SCARA机器人-DIY项目

就这样,我们的SCARA机器人现在完全完成了。不过,这段视频中剩下的内容是看一下机器人是如何工作的。

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

SCARA机器人是如何工作的

在定位和定向方面,有两种控制机器人的方法,即使用正向运动学或反向运动学。

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

SCARA机器人控制的正逆运动学-如何工作betway

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

/逆运动学void INVERSE运动学(float x, float y) {theta2 = acos((sq(x) + sq(y) - sq(L1) - sq(L2)) / (2 * L1 * L2));If (x < 0 and y < 0) {} = atan(x / y) - atan((L2 * sin(ta2)) / (L1 + L2 * cos(ta2)));= (-1) * * * 180 / PI;= * 180 / PI;如果(x >= 0 & y >= 0){//第一象限的角度调整,取决于最终的工具坐标x,y是什么;} if (x < 0 & y > 0){//第二象限theta = 90 - theta;} if (x < 0 & y < 0) {// 3d象限theta = 270 - theta1;= 270 - 1 - 2;= (-1) *; } if (x > 0 & y < 0) { // 4th quadrant theta1 = -90 - theta1; } if (x < 0 & y == 0) { theta1 = 270 + theta1; } // Calculate "phi" angle so gripper is parallel to the X axis phi = 90 + theta1 + theta2; phi = (-1) * phi; // Angle adjustment depending in which quadrant the final tool coordinate x,y is if (x < 0 & y < 0) { // 3d quadrant phi = 270 - theta1 - theta2; } if (abs(phi) > 165) { phi = 180 + phi; } theta1=round(theta1); theta2=round(theta2); phi=round(phi); cp5.getController("j1Slider").setValue(theta1); cp5.getController("j2Slider").setValue(theta2); cp5.getController("j3Slider").setValue(phi); cp5.getController("zSlider").setValue(zP); }

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

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

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

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

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

公共空间updateData () {data = str (saveStatus) +”、“+ str (runStatus) +”、“+ str(圆(cp5.getController .getValue(“j1Slider”) ())) +","+ str(圆(cp5.getController .getValue(“j2Slider”) ())) +","+ str(圆(cp5.getController .getValue(“j3Slider”) ())) +","+ str(圆(cp5.getController .getValue(“zSlider”) ())) +","+ str (gripperValue) +”、“+ str (speedSlider)+”、“+ str (accelerationSlider);}

所有这些数据在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按钮,则将当前关节角度值存储在一个单独的数组中。

//如果按下保存按钮,如果(数据[0]==1){theta1Array[PositionSconter]=data[2]*theta1AngleToSteps;//以步长=角度*angleToSteps变量theta2Array[PositionSconter]=data[3]*theta2AngleToSteps;phiArray[PositionSconter]=data[4]*PhiTa1AngleToSteps;zArray将数据存储到适当的数组中[PositionSconter]=数据[5]*Z到步骤的距离;夹具阵列[PositionSconter]=数据[6];PositionSconter++;}

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

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

stepper1.moveTo (stepper1Position);stepper2.moveTo (stepper2Position);stepper3.moveTo (stepper3Position);stepper4.moveTo (stepper4Position);while (stepper1.currentPosition() != stepper1Position || stepper2.currentPosition() != stepper2Position || stepper3.currentPosition() != stepper3Position || stepper4.currentPosition() != stepper4Position) {stepper1.run();stepper2.run ();stepper3.run ();stepper4.run ();}

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

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

总结

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

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

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

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

机器人刚性测试

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

请在下方的评论部分提出任何问题,并检查我的Arduino项bet188me目集合

关于“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贴图()将600 min值映射为0度,将2500 max值映射为180度。

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

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

    回复
  7. 亲爱的德扬

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

    我已经3D打印了所有零件,独立组装并测试了每台步进电机,所有电机和轴都使用Arduino提供的步进电机测试草图工作正常,但当我使用您的Arduino和处理代码时,您没有提供任何情况。我不确定我做错了什么。

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

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

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

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

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

    我还使用了DRV8825驱动程序,而不是A4988驱动程序,并设置其Vref为0.8伏,但我认为这应该没有关系,因为我能够驱动我的电机与步进mototest Arduino草图。

    提前感谢您的帮助。

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

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

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

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

    回复

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

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

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

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

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

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

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

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

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

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

        回复
  13. 你好,

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

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

    很高兴看到你的新项目,谢谢你所创造的!bet188me

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

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

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

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

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

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

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

    回复
  15. 好项目!我可以造一个。细节很好,一步一步的解释。也许底座关节可以用“转盘”轴承来支撑。我在另一个5自由度机器人手臂项目中使用了它,效果更好。

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

    您好,我关注您的所有项目。SCARA机器人非常有趣bet188me,它们正在建造中。注意:轴承箱需要大一点。例如,轴承座608应在设计阶段增加约十分之二。22毫米外径可为22.2毫米设计。这也增加了其他轴承的阀座。很好的工作,我正在等待其他优秀的项目。

    回复
  17. Buongiorno,seguo tutti i suoi progetti。斯卡拉·莫托感兴趣,索诺在现实生活中。不可否认的是:在马乔拉蒂的土地上,我们的土地被征用了。按照库西内托街608号的规定,该街大约有2米宽。直径为22毫米的钻石,直径为22.2毫米。故事马乔拉齐奥·安奇·佩尔·塞迪·德格利·阿尔特里·库西内蒂。布昂·拉沃罗,阿尔特里·奥蒂米·普格蒂·阿泰萨的索诺。
    例子

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

    回复
  19. 嗨,德扬,
    感谢您的更新!我刚刚完成了构建,它的工作状态非常好,对主关节有合理的反冲。但手臂关节的快速运动让它感觉非常坚固。我机械地注意到的另一件事是“便宜”的Z轴在Z轴运动期间也有可能产生一些“摆动”。)。

    关于你的Arduino代码,我不得不将步进速度和归航速度降低到一半。我不知道有什么不同。
    我使用(在设置方法):
    stepper1.setMaxSpeed (200);
    步进1.设定加速度(500);

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

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

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

    干杯!

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

    在stl zip文件中缺少“抓斗宽端”。Stl "表示左边/右边
    你能上传吗?

    谢谢你!

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

    谢谢

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

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

      回复
  23. 你好,德扬,

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

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

    回复
  25. 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。

      回复
  26. 太棒了!!!。小问题,也许我错过了这一部分,但我们需要多少解放军(公斤)来制作我们自己的SCARA?

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

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

    来自德国的问候

    埃里克

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

    回复
    • 伟大的项目,我要给它一个尝试!
      我找不到硬件、螺栓和螺母的清单。你能给我发个链接吗
      谢谢!

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

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

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

          回复

留下你的评论