DIY Arduino SCARA机器人激光雕刻

在本教程中,我将向您展示我如何转换我的DIY 3D打印SCARA机器人手臂,我在我以前的一个视频中构建的工作作为一个激光雕刻机。你可以观看下面的视频或阅读下面的文章。

项目概况

SCARA机器人有4个自由度,由4个NEMA 17步进电机驱动,并使用Arduino板进行控制。在最初的视频中,我使用了Arduino UNO板和CNC屏蔽,但现在我们将使用Arduino MEGA板和RAMPs板。我们需要这种组合,因为我们将使用Marlin 3D打印机固件来控制机器人。

Scara机器人作为激光雕刻机工作

至于机械部分,我只需要用一个激光模块来改变夹持机构。在这种情况下,我使用5.5W激光模块,这是足够好的雕刻。

SCARA机器人装置的一个很酷的特点是,我们可以有更大的Z轴运动范围,所以我们可以激光雕刻更高的物体。

SCARA机器人激光雕刻较高物体

此外,考虑到机器人占地面积小,工作区域也相当令人印象深刻。它可以利用前面和两边的面积。我们可以把机器人周围的几乎整个360度都作为工作区。多亏了开源,我们可以做到这一点细索3D打印机固件,有激光雕刻和SCARA机器人设置选项。

激光雕刻巨大的工作区与萨拉机器人

用于生成G-Codes,我正在使用另一个开源软件,Inkscape和Its称为Inkscape-Lastertools的插件。我们可以使用轮廓或使用轮廓和从相同的矢量图像的轮廓生成G形码,并且我们有各种选项,如调整激光束,行进速度,填充速度,周长速度,激光接通和关闭命令,包括PWM控制激光等等。

用于激光雕刻的Inkscape-Lasertools插件-只有轮廓vs填充

尽管如此,现在我将带您完成设置SCARA机器人作为激光雕刻机的整个过程。我们将看看这个SCARA机器人的设计,如何根据我们的机器安装和配置Marlin固件,以及如何准备用于雕刻的图纸和G代码。那么,让我们开始吧。

设计及三维模型

这里有一个快速浏览这个SCARA机器人的3D模型,如果你没有看过原始的,你可以看到它是如何工作的betway教程中我会详细解释我是如何建造它的。

SCARA机器人激光雕刻机3D模型

这款机器人的大部分部件都可以轻松3D打印出来。关节由NEMA 17步进电机驱动,速度降低与GT2皮带和一些合适的3D打印GT2滑轮的帮助。机器人有4个自由度,但在这种情况下,我们只需要3个自由度,两次旋转就可以到达工作区域的任何一点,一次线性运动就可以调整激光器的高度。

SCARA机器人与NEMA 17步进电机和GT2皮带和滑轮

4th不使用旋转末端执行器的关节,尽管激光模块将连接在其上。我为激光器制作了一个支架,使激光束位于4的旋转中心th因此,即使轴旋转,也不会影响最终位置。

当然,这里你可以下载这个3D模型:

赞助


我使用3DEXPERIENCE SOLIDWORKS为制造商设计了这个SCARA机器人,这也是本视频的赞助商。是的,你听对了。凭借面向制造商的3DEXPERIENCE SOLIDWORKS,SOLIDWORKS终于以极低的价格将其业界领先的设计工具带给了各类制造商。

立体作品

制造商现在只需每年99美元就可以获得最好的SOLIDWORKS设计工具,但对于我的观众来说,SOLIDWORKS提供的限时服务将使您以更便宜的价格获得这些工具!

对。对于本视频的观看者,您今天可以获得此捆绑包,其中包括连接到云的SOLIDWORKS版本,以及基于浏览器的设计工具,如3D Creator和3D Sculptor,在最后一次供货时可享受20%的特别折扣!

Solidworks宣传2

您所要做的就是点击我的以下链接并创建免费的3DExperience ID,这将允许您访问此特殊20%的优惠 - 所以您可以在今天最好开始制作。由于SolidWorks赞助和支持这样的教育内容而非常重要。

查看SOLIDWORKS for makers

制造商的SolidWorks 20%OFF


安装激光模块

首先,我拆除了机器人的夹持机构,它是由四个螺栓固定的。

卸下夹持器机构

用于控制夹持器伺服的导线现在将用于控制激光模块。

我使用的特殊激光模块工作电压为12V,可以使用PWM信号控制,只需两根导线,接地和VCC。为了连接激光器,我使用了模块附带的连接器,一个带有3个引脚的连接器。左边的黑色导线是地线,中间的白色导线是VCC。我将两个外螺纹跨接导线连接器焊接到这些导线上,这样我就可以轻松地将它们连接到末端执行器的导线上。

然后我简单地把连接器放在地方,通过电线通过holder的一个开口,并用两个M3螺栓固定激光模块。我用四个M4螺栓将激光模块固定在机器人上。

将激光连接到SCARA机器人上

接下来,正如我之前提到的,我们现在需要的不是原来视频中我用来控制机器人的Arduino UNO板,而是一个Arduino MEGA板和一个ramp板的组合。

Arduino MEGA和RAPMS代替Arduino UNO和CNC Shield用于SCARA机器人激光雕刻机控制

首先,我们需要选择驱动程序的步长分辨率。当然,为了更平稳的运动,我们应该通过为每个步进驱动添加三个跳线来选择尽可能高的分辨率。我用的是A4988步进驱动,它有16个步进th步进分辨率,但我们也可以使用DRV8825步进驱动程序,它有1/32步进分辨率。

坡道板和Arduino Mega SCARA机器人激光雕刻机

然后我们就可以把所有的电线连接起来。我把所有的电线都标好了,以免弄乱。

Scara机器人激光雕刻电路图

这是所有东西需要如何连接的电路图。

Scara机器人激光雕刻电路图

步进电机位于驱动器的正上方,限位开关通过两根导线正常闭合,分别位于各轴的末端止动块S和–销处。

为了控制激光模块,我们将使用PIN D9,在3D打印机设置中用于控制风扇。该引脚是PWM功能,所以我们可以使用它控制激光的强度。为了为我们需要12V电源的供电,最小电流率为3a。

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

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

至于机械部件,你可以查看原文。

一旦我用解释的方式连接了一切,我就挤压了一点点电线和覆盖的电子设备,使一切看起来不错,干净。必威lol

电子产品的封面必威lol

完成组装

还有一件事,我需要改变我的SCARA机器人,使其正常工作,那就是改变第二个手臂限位开关被触发的时间。由于SCARA机器人将被设置为右撇子,第二只手臂的归位需要为0度,或与第一只手臂对齐,同时能够向左旋转。为此,我简单地将一小块胶水粘在手臂关节上,这样它就能在所描述的位置触发限位开关。

Scara机器人限位开关

事实上,我还需要改变一个小细节。原来的限位开关触发器干扰了手臂底部的一个螺母,所以手臂不能达到它的全部运动。

我简单地拆除了那个螺母,用螺纹插入代替它,这样当固定回原位的部分时,它不会伸出来。

SCARA机器人作为激光雕刻机

就是这样。Scara机器人现在准备好作为激光雕报器,但当然,首先我们需要将固件安装到Arduino板。

另见:带智能手机控制的DIY Arduino机器人手臂

用于SCARA机器人激光雕刻的Marlin固件

正如我所说,我将使用Marlin固件,这是3D打印机最广泛使用的开源固件之一,这也有激光雕刻和Scara机器人设置的选项。我们可以从其下载Marlin固件官方网站Github.com.

用于控制Scara机器人激光雕刻机的Marlin固件

要将Marlin固件安装到Arduino巨板,我们将使用PlatformIO IDE而不是Arduino IDE。由于Marlin固件大而复杂,Arduino IDE有时会出现错误,无法编译。

上传Marling固件的平台

PlarformIO是建立在Visual Studio代码编辑器,它可以作为它的扩展安装。这意味着,首先我们需要安装Visual Studio Code,然后在扩展管理器中搜索PlatformIO并从那里安装它。

安装完成后,我们可以单击Open Project按钮,导航到我们下载并解压的Marlin文件夹,然后单击“Open Marlin”。

打开具有平台的马林固件

这将把所有马林文件加载到编辑器中,这样我们就可以打开并编辑它们了。我们根据机器设置进行所有调整的两个主要文件是Configuration.h和Configuration_adv.h文件。

在platformio中编辑marling固件配置h文件

实际上,在我们打开马林文件夹之前,我们应该先去配置存储库在Github.com上,我们可以下载一些预测试的配置文件,适合我们。在“Examples”文件夹中,我们应该到“SCARA”文件夹,复制这两个配置文件,并将它们粘贴到我们的Marlin文件夹中。

另见:如何设置GRBL&;用Arduino控制数控机床

配置Marlin固件

因此,一旦我们用“SCARA”配置文件重新打开Marlin文件夹,我们就可以打开configuration.h文件并根据我们的机器编辑一些参数。这里的第一件事是选择我们拥有的SCARA机器人的类型。

/***MORGAN_SCARA由哈雷公司于2012-2013年在南非开发。*由JCERNY于2014年6月实施并稍加修改。*///#定义MORGAN_SCARA/***大部分印刷版SCARA是泰勒·威廉姆斯的开源设计。见:*https://www.thingiverse.com/thing:2487048 * https://www.thingiverse.com/thing:1241491 */#定义MP#u SCARA#如果其中一个(MORGAN_SCARA,MP#u SCARA)//如果运动不平稳,请尝试降低此值#定义SCARA_段_/秒100//内支撑臂和外支撑臂的长度。精确测量手臂长度#定义SCARA_连杆_1 228.15//Arm 1长度-228(mm)#定义SCARA_连杆_2 136.2//Arm 2长度-136.5(mm)//SCARA塔偏移(塔相对于床零位置的位置)//这需要合理准确,因为它定义了SCARA空间中的打印床位置#定义SCARA_偏移量_X 300/(mm)#定义SCARA_偏移量_Y 150/(mm)

“MORGAN_SCARA”是指并行SCARA机器人,“MP_SCARA”是指串行SCARA机器人,就像我们的那个一样。这是基于泰勒·威廉姆斯(Tyler Williams)的开源设计,该设计在为正常笛卡尔系统生成的G代码上实现反向运动学。

在我上一篇教程我已经解释了什么是反向运动学,以及它是如何与这个SCARA机器人一起工作的,所以要了解更多细节,您可以betway查看该教程。简单地说,使用反向运动学,我们计算两臂应以什么角度定位,以达到给定的X,Y坐标。逆运动学背后的数学是基于三角学的,结果完全取决于两臂的长度。

逆运动学SCARA激光雕刻机

这就是说,这里我们需要输入机器人手臂的长度,在这种情况下,第一只手臂的长度是228毫米,第二只手臂的长度是136.5毫米。我们需要设置的下一个参数是工作台的零位。该值与SCARA_OFFSET_X和Y值一起输入,它是从风塔或第一个接头到床零位置的距离。

我们还需要根据我们的机器调整另外一组参数,即X和Y的手动位置。这些值是相对于我们之前设置的床零位置,当机器人臂末端执行器或激光器处于初始位置时,其与机器臂末端执行器或激光器的X和Y距离。为了得到这些值,我在SOLIDWORKS中绘制了一个简单的草图,其中两条线代表SCARA机器人的双臂。

为SCARA机器人激光雕刻机配置Marlin固件

从这里可以设置所需的床零位置,并获取MANUAL_X_HOME_POS变量的值。

接下来,我们需要定义端点连接器。在我们的例子中,每个轴都有一个端点,在最小位置。

#定义使用插件#定义使用插件#定义使用插件#定义使用插件

除此之外,我们还需要将X_HOME_DIR定义为-1,以指示归位时端点的方向。

//归位时的终止方向;1=最大值,-1=最小值/:[-1,1]#定义X#u HOME_DIR-1#定义Y#u HOME_DIR-1#定义Z#u HOME_DIR-1

这里我们还应该检查是否所有的__MIN_ENDSTOP_INVERTING变量都被设置为“FALSE”。

然后,我们需要调整DEFAULT_AXIS_STEPS_PER_UNIT值以与我们的机器匹配。

#define DEFAULT_AXIS_STEPS_PER_UNIT {177.7777777, 142.2222222, 400, 93}

这些值表明,为了让电机移动一个单元,程序应该向步进驱动器发送多少步,在这种情况下,这是关节的旋转一度。下面是我如何为我的SCARA机器人计算这些值。

为NEMA 17步进电机配置Marlin中每单位的默认轴步数

NEMA 17步进电机采取200步全旋转,但我们正在使用16th步长分辨率,这意味着我们需要发送3200步到驱动器,以便电机进行360度旋转。除此之外,对于第一个关节我们有20:1的减速,这意味着我们需要64000步才能完全旋转。如果我们将这个值除以360,我们将得到数字177.777,这实际上是程序为了旋转关节一个单位或一度而需要发送给驾驶员的步数。

第二臂的减速为16:1,所以减速值为142.222。对于Z轴,我们有一个8mm螺距的丝杠,这意味着一个完整的电机旋转将导致8mm线性监测。一个单位是毫米,所以我们需要3200步除以8,所以我们得到的值是400,这是所需的许多步骤Z轴移动一个单位或一个毫米。第四个值是挤出机步进,但我们没有任何挤出机在这里,我们不需要改变它。

步进电机的方向取决于我们连接电线的方式。如果我们弄错了,我们可以通过将INVERT_X_DIR变量设置为TRUE来逆转连接或在软件中更改它。

//反转步进电机的方向。如果轴走错方向,则更换(或反转电机接头)#定义反转X#u DIR false#定义反转Y#u DIR false#定义反转Z#u DIR false

我们应该做一些更多的改变,以使这个马林固件工作。因为Marlin主要是经典笛卡尔风格打印机的固件,它的SCARA模式,有一些小错误,在我做这个项目的时候还没有解决。这是我为了让它工作而做的改变。

在Scara.cpp中,第75行我用mp_scara替换Morgan_Scara。在Motion.cpp中,我不得不在cofiguration.h评论中发表评论第1716和1717号线valicate_homing_endstops,在configuration_adv.h undenring quotting_home中。

实际上,即使在这些变化的情况下,归巢仍然无法正确工作,但我会解释我用来让它工作的解决方法。

尽管如此,现在我们可以点击编辑器左下角的上传按钮,Marlin固件将安装到Arduino板上。您可以下载这个特定的Marlin固件,以及我为使用下面的SCARA robot所做的所有更改,或者当然,您可以从Github.com下载原始的Marlin固件,并按照我的说明自行进行所有更改。

控制软件- Rapetier-host

好了,一旦我们安装了马林固件,现在我们需要一个电脑程序来控制机器人并向它发送g代码。有很多选择,但我选择了使用Rapetier-host这是一款流行的3D打印软件。我们可以免费下载和使用这个软件。一旦我们安装了它,我们可以进入配置>打印机设置,并在这里调整一些东西。

用于控制激光雕刻机scara的主机

我们需要选择Arduino连接的COM口,选择我们在Marlin固件中设置的波特率。在打印机形状选项卡中,我们应该设置X和Y的最大值以及打印机区域。

一旦我们应用这些设置,我们可以点击连接按钮,软件应该连接到我们的SCARA机器人。然后我们可以进入手动控制点击,从这里尝试移动打印机。

Repetier主机界面

请注意,当按下x或y箭头时,机器人可能会立即实现逆运动学,并且即使仅按一个箭头也可能会移动两个臂。

然而,为了让机器人工作,我们应该首先让它回家。在我们点击主页按钮之前,我们应该手动将关节靠近限位开关。

导航机器人

当我们单击主页按钮时,机器人应开始转向限位开关。实际上,第二个臂将开始向其限位开关移动,而第一臂应该相反。一旦第二臂或Y轴击中其限位开关,第一臂或X轴也会开始向其限位开关移动。一旦达到X限位开关,机器人将用于Z限位开关。

因此,归航完成后,我们应该能够开始雕刻或手动移动机器人周围的工作区域。然而,如果我们试图马上做任何事情,由于某些原因,机器人会行为失常,做出奇怪的动作。为了避免这种奇怪的行为,归航后我们必须断开机器人与软件的连接,然后重新连接.

现在我们可以手动移动或雕刻,机器人将正常工作。这可能是Marlin固件中的一个bug,这是因为该固件中的SCARA模式没有得到很好的支持,因为人们对它没有太多兴趣。

尽管如此,如果我们发送g码命令g00 x0 y0,机器人应该转到它的零位置,我们设置在Marlin Configuration.h文件中的那个。

使用G00 G-code命令将SCARA机器人发送到原位置

然后我们可以通过发送M106 S10命令激活激光。S后面的值可以从0到255,它实际上是激光功率从0到100%的PWM控制。所以,我们在这里使用S10的值,这样它不会燃烧任何东西,但它将是可见的,所以我们可以看到零位,也可以调整激光的焦点。

调整激光焦点

可通过旋转底部的激光透镜手动调整焦距,同时取决于其与工件之间的距离。建议将距离设置为5cm左右,并调整焦距,直到获得尽可能最小的点。

激光雕刻与SCARA机器人

为了校准机器,开始雕刻简单的方形是好主意,所以我们可以看到它是否正常工作。

激光雕刻机的标定

在我的第一次尝试中,方形不在正确的位置和方向,这是因为我为Manual_x_home_pos变量设置了错误的值。一旦我纠正了它,方形就会接近它应该的东西。

因此,我加载了我的标志的G代码,并设置机器人来雕刻它。

SCARA机器人激光雕刻-如何使用机电一体化

老实说,看着这个SCARA机器人作为激光雕刻机工作是很酷的,但请注意我们必须使用激光护目镜吗这将保护我们的眼睛免受激光紫外线的伤害,因为它是非常危险的。同样,我们应该用a安全口罩在开放空间或通风良好的房间工作,因为激光雕刻时产生的烟雾对我们的健康也有危险。

尽管如此,徽标雕刻出现了很好,但我注意到它不是完全正方形。

所以,我重新开始雕刻这个简单的方形,以便找出问题的原因。我意识到问题出在手臂长度的尺寸上。由于机器人不是那么刚性的,当手臂伸出时,手臂本身的重量使机器人稍微前倾。这导致手臂的实际尺寸或位置有一点偏差。

校准SCARA激光雕刻机

在做了几十次测试之后,我最终调整了第一个臂的长度值,从228到228.15毫米,第二个臂的长度从136.5到136.2毫米。这给了我最准确的结果,现在正方形形状是正确的。然而,根据打印的位置,手臂是否完全伸展,准确性仍然会有所不同。

为激光雕刻生成g代码

最后,让我向你展示我是如何准备图纸和生成g代码的激光雕刻。我使用为此我开发了一款开源矢量图形软件。

首先,我们需要将页面大小设置为工作区域的大小。作为一个例子,我将向您展示我如何准备激光雕刻的Arduino标志。

激光雕刻G代码的生成

我下载了Arduino徽标的图像并导入Inkscape。使用跟踪位图函数,首先我们需要将图像转换为矢量格式。我们只能从矢量形状生成G代码,为此,我使用了一个名为Inkscape Lasertools的插件。我们可以从Github.com下载这个插件我们可以通过从zip文件复制文件并将其粘贴到Inkscape extensions目录来安装它。

因此,一旦我们安装了插件,我们可以进入Extensions>Lasertools打开它并使用它生成G代码。使用此插件可以设置和调整多个选项。当我们将激光器连接到用于控制风扇的D9引脚时,我们可以通过发送M106命令来激活激光器。

用Inkscape- lasertools插件生成激光雕刻的代码

我们可以选择g代码是否只包含形状的轮廓或封闭环上的填充。我们可以设定激光的移动速度,激光填充速度和周长速度。

在选择填充时,如果我们想降低填充区域的激光强度,可以在M106命令中添加PWM值来设置激光强度,例如M106 S128为50%的激光功率。我们可以达到类似的效果,如果我们让激光功率为100%,但增加在填充区域的移动速度。这些都是我们应该尝试的设置看看什么最适合我们。

在Preferences点击我们可以选择“Remove tiny fillpaths”,在Bounding Box选项卡我们可以选择“Generate G-Code for Bounding Box preview”。这个功能非常有用,因为它会生成绘图区域的预览g代码,这样我们就可以精确地定位我们的工件。

好的,一旦我们生成了G代码,我们就可以将它加载到Repetier主机程序中。由于这不是3D打印,而是旅行动作,我们应该选中“显示旅行动作”复选框来预览我们的G代码。

Arduino标志G代码在Repetier准备激光雕刻

我们最终可以点击“打印”按钮,我们的SCARA机器人将激光雕刻工件。我已经说过,观看SCARA机器人激光雕刻非常令人满意,我们可以用它来激光雕刻很多东西。

激光雕刻arduino的标志与scara机器人

一个好的特点是它有可调节的z轴,这意味着我们可以激光雕刻更高的物体,例如,这个木制的Forstner块。我在盒子正面刻上了我的标识,在盒子背面刻上了“福斯特纳比特”的字样。

SCARA机器人激光雕刻较高物体

这是雕刻相同的向量形状,在这种情况下蝙蝠侠剪影的例子,只需轮廓,并且填充封闭环。

激光雕刻蝙蝠侠与SCARA机器人激光雕刻机

当然,当用填充材料雕刻时,完成工作所需的时间要长得多,但最终的外观也要好得多。

最后,让我向你们展示我是如何用这个SCARA机器人雕刻这幅面积为600x450mm的巨大图画的。

激光雕刻巨大的复仇者图画在600 x 400毫米木板

我把机器人放在工件的顶部,这样它就可以到达工件的前面和两边。我手动调整了工件和机器人的位置,使它们处于中间并平行。

在Scara机器人周围设置激光雕刻360度

在Marlin固件中,我将零位设置在工件的左下角,X方向距离机器人300mm,Y方向距离机器人150mm。在定义这些值时,我们应该注意这些符号。根据这一点,我还更改了手动X和Y HOME POS变量。

使用这些新值上传固件后,我以前解释的机器人归存机器人,并将激光发送到零位置。然后我激活了激光,这样我就可以进一步调整所需的工作价格取向。

将机器人归零位置设置

通过发送直线命令G01,我可以检查和调整工件,使其处于正确的位置。

现在,为了准备这次雕刻的G代码,我制作了一个带有工件和Inscape机器人配置的模板。从这里我可以看到机器人可以用激光到达哪里,并根据激光修改图纸。

激光雕刻图像生成G代码

对于绘图,我下载了一个图像,并使用跟踪位图工具将其转换为矢量图像。

修改图形以适应scara robot范围

然后我按我想要的缩放和定位图像,并使用擦除工具删除机器人所在的区域和机器人够不到的区域。

然后我生成了g代码让机器做它的作业。它需要4个小时的激光雕刻此绘图。

激光雕刻巨大的工作区与萨拉机器人

一旦完成,我想填满机器人所在的空白区域。为此,我重新定位了机器人和工件,并改变了马林参数,使机器人新的工作区域就是工件上的这个空白区域。

总的来说,这个方法需要一些工作来设置它,但它仍然非常有效。我真的很喜欢这幅版画的效果。

总结

最后,虽然固件有一些问题,我设法找到了他们的解决办法,让这个SCARA机器人作为激光雕刻机工作。如果我们仔细看一下雕刻,就会发现它远非完美。

激光雕刻如何机电一体化标志与SCARA机器人

机器人并不是那个刚性并且有一些反弹,因此我们无法获得精确和平稳的运动。但是,我们在本教程中学到的东西可以在任何萨拉机器人中实现,因此您可以肯定会获得更好的结果。

我希望你喜欢这个教程,并学到了一些新的东西。请在下方的评论部分提出任何问题,并检查我的Arduino项bet188me目集合.

3关于“DIY Arduino Scara机器人激光雕刻”的想法

  1. 你好,我只是想说我真的很欣赏你的工作,我有一个项目的建议,你能把这个机器人变成一个三维打印机,通过更换激光和改变代码。然后用木头制作这些部件,这样对于那些买不起自己的3D打印机的人来说,这真的很酷。我真的很喜欢你的工作,我希望有一天能有一个像你一样棒的网站。

    回复
  2. 很好,你的机械手可以通过更换末端执行器来实现功能转换,但是摇臂结构不是很稳定。如果能换一个框架就好了。

    回复

留言