构建一个简单的基于Arduino的CNC绘图仪

描述

CNC机床是计算机化的数控机床,用于根据输入其控制器单元的设计程序绘制任何东西或设计任何机械零件。控制器单元可以是计算机或微控制器。CNC机床具有步进电机和伺服电机,可根据进料程序绘制设计。

在研究了数控机床之后,我决定使用当地可用的材料建造自己的数控机床。世界上有很多数控机床,其中一些技术性很强,很难正确制造甚至操作它们。出于这个原因,我决定制作一个简单的基于Arduino的CNC绘图仪,这是迄今为止最简单的制作。您也可以将其用作Arduino CNC绘图机,只需进行少量修改。

这款DIY Arduino数控机床可以绘制大多数基本形状,文本甚至卡通。它的操作类似于人手的书写方式。与人类书写或绘画的方式相比,它更快、更准确。查看本教程末尾的演示视频。

构建 Arduino 数控机床:

对于CNC 绘图机的操作,需要 3 个轴(x 轴、y 轴和 z 轴。x 轴和 y 轴协同工作,在普通纸上创建 2D 图像。这些 x 轴和 y 轴彼此成 90 度放置,使得平面上的任何点都由给定的 x 和 y 值定义。Z轴用于将笔抬起并降低到普通纸上。

根据要绘制的图像,计算机将生成适当的坐标并通过USB端口将它们发送到微控制器。微控制器解释这些坐标,然后控制电机的位置以创建图像。在这里,我们使用Arduino作为微控制器来构建这台CNC机床。三轴运动由步进电机提供,步进电机将由Arduino板控制。

您需要什么:

注意:我的设计在尺寸和所用材料方面在硬件上有很大不同。我找不到旧的DVD驱动器,所以我选择了打印机部件。无论您使用哪种方法,请确保它具有步进电机。

硬件要求:

铝板 (710mm x 710mm)

旧的惠普/爱普生打印机。您可以使用旧的计算机DVD驱动器

螺栓和螺母

有机玻璃

Arduino UNO

L293D 电机驱动器扩展板或 Arduino CNC 扩展板

微型伺服电机

一支笔

 

数控机床

 

数控机床

数控机床

工具:

螺丝刀

切割工具(钢锯)

台式装置

数控绘图机底座:

该设备的主体是将机器的所有主要部件支撑在一起的底座,使机器牢固且便携。在此设计中,我们将使用铝来构建底座,因为它重量轻,易于弯曲和切割,并且由于不生锈,因此具有良好的光泽外观。

我的底座的设计和尺寸如下所示:

数控机床


注意:所有尺寸均以毫米为单位。

经过所有的弯曲和切割,我能够生产出非常坚固的底座,如下所示:

数控机床

X、Y 和 Z 轴的组装:

要制作 x 轴和 y 轴,请使用两个打印机底座。这些部件中的每一个都包含一个步进电机和一个皮带驱动机构,通常用于来回移动墨盒。

数控机床

对于 z轴,使用胶水在 y 轴上安装一个微型伺服电机。该伺服电机用于上下移动笔。应构建良好的支撑机制,使笔可以自由上下移动。

数控机床

 

数控机床

数控机床绘图平台:

由于这台机器的巨大尺寸,该设备能够在A5尺寸的纸上绘图。因此,我们将从有机玻璃上切出一个A5(148mmx210mm)大小的平台,然后用胶水将其粘贴到x轴运动部件上。

数控机床

数控机床的布线和电路:

将L293D 电机驱动器护板插入 Arduino UNO 板上。该屏蔽可同时驱动两个步进电机和两个伺服电机。连接两个步进电机,如下所示。接地连接应保持未连接状态,因为电机是双杨型。这将作为我们的绘图仪机器的Arduino CNC控制器。

数控机床

同时将迷你伺服电机连接到伺服1。将 7.5V - 9V 电源连接到电机驱动器扩展板的电源端口。计算机现已准备好进行测试。

Arduino 数控机床代码和测试:

首先,我们需要测试步进电机,看看它们是否正确连接。

由于我们使用的是 L293D 电机驱动器扩展板,因此我们需要从此处下载 AFmotor 库。然后将其添加到Arduino IDE库文件夹中。确保将其重命名为 AFMotor。如果Arduino IDE已打开,请将其关闭并再次打开,然后单击文件->示例->Adafruit Motor Shield库->步进器。确保在工具中选择正确的端口和板,然后将代码上传到 Arduino 板。在步进电机一号上应观察一些运动。

要测试电机 2,请在下一行中将电机端口从 2 更改为 1,然后再次上传代码。

#include // Connect a stepper motor with 48 steps per revolution (7.5 degree) // to motor port #2 (M3 and M4) AF_Stepper motor(48, 2);

用于数控机床的Arduino代码:

数控机床

步进电机正确响应后,从下面的代码部分复制CNC机床的Arduino代码,并将其上传到Arduino板。您可以从以下链接下载代码。

Arduino CNC 代码下载

数控机床G代码:

G - CODE是我们告诉计算机化机器(CNC)做某事的语言。它基本上是一个包含 X、Y 和 Z 坐标的文件。

例如:

G17 G20 G90 G94 G54 G0 Z0.25X-0.5 Y0. Z0.1 G01 Z0. F5. G02 X0. Y0.5 I0.5 J0. F2.5 X0.5 Y0. I0. J-0.5 X0. Y-0.5 I-0.5 J0. X-0.5 Y0. I0. J0.5 G01 Z0.1 F5. G00 X0. Y0. Z0.25

仅为一个简单的正方形编写 G 代码可能确实具有挑战性,但幸运的是,我们有一个可以帮助我们生成 G 代码的软件。该软件称为“Inkscape”,请从此处下载。

您可以使用Inkscape生成自己的G代码,我们将在下一节中解释,或者您可以使用互联网上现成的G代码。

在我向您展示如何使用Inkscape生成G代码之前,让我们讨论如何将这些G代码发送到Arduino。使我们能够将G代码发送到Arduino的软件称为处理。

处理 IDE 以上传 G 代码:

该平台将帮助我们向Arduino板发送G代码。为此,您必须下载 GCTRL。偏微分方程文件。

从这里下载 GCTRL.pde 文件并使用处理 IDE 打开它

数控机床

在处理 IDE 中打开它后,单击“运行”。将出现一个窗口,其中包含所有说明。按键盘上的p。系统将要求您选择一个端口。因此,请选择连接Arduino板的端口。我的情况是端口 6。

现在按g并浏览到保存 G 代码的文件夹。选择正确的 G 代码,然后按回车键。如果一切都连接正确,您应该会看到您的设备开始在纸上绘制。

如果要终止进程,只需按x,设备将停止它正在执行的任何操作。

如何生成自己的G代码:

我们提到Inkscape是我们将用来生成 G 代码的软件。在此示例中,我们将创建一个简单的文本(HELLO WORLD),如下所示。

数控机床

注意:Inkscape没有将文件保存为G代码的内置方式。因此,您需要安装一个附加组件,该附加组件可以将图像导出到 G-CODE 文件。从这里下载这个MakerBot Unicorn插件,并附上安装说明。

如果安装成功,请打开Inkscape,转到“文件”菜单,然后单击“文档属性”。首先将尺寸从 px 更改为毫米。同时将宽度和高度减小到 90 毫米。现在关闭此窗口。正方形将作为绘图区域出现。这是我们将用来编写文本的区域。

现在在左侧栏上,单击创建和编辑文本对象选项卡。键入文本“HELLO WORLD”并将其放置在正方形的右上角,如下所示。

数控机床

单击文本并选择您喜欢的字体样式类型。单击应用并关闭。

现在单击路径并选择“对象到路径”"

您的文本现在可以另存为 G 代码了。单击文件 ->另存为,然后将文件名键入为“hello world”

将文件类型更改为“MakerBot Unicon G-Code”,如下图所示。仅当加载项安装成功时,才会显示此信息。最后单击保存,然后单击弹出窗口中的确定。

数控机床

您已经生成了一个 G 代码,可以使用前面的过程对其进行绘制。

GRBL 控制器:

数控机床

一旦您设法使用 Inkscape 生成 G 代码,可能需要查看 G 代码以确保它在绘图限制范围内。

绘图限制在Arduino CNC CODE中设置,如下所示:

数控机床

上面在GRBL控制器中显示的图像不应超出上述CNC Arduino代码中显示的限制。如果它超出这些限制,例如朝向 x 轴的负侧,则不会绘制负侧上的该部分。

在此示例中,x 和 y 值的范围为 0mm 到 40mm。

由于我使用的是可以在更大面积上打印的打印机部件,因此我将最大值从40mm更改为60mm。

每当您使用Inkscape生成G代码时,您都可以首先在GRBL程序中打开该G代码,以查看它是否在这些限制范围内。如果不在里面,您需要在 Inkscape 中调整图像大小,直到它在您的限制范围内。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分