Arduino制作得便宜绘图机

成品样子哦!

这些是配件

·2 x NEMA 17步进器1.8度步进12v扭矩大于4kg / cm

  • 步进角:1. 8度

  • 电流a-1. 5,电阻(ohms)-2. 8,电感(mh)-5. 5

  • 保持扭矩n。厘米-55

  • 引线数-4(双极)

  • 长度-48mm

·2 x 8mm不锈钢光棍

  • 外径:10mm

  • 长度:1000毫米(1米)

  • 材质:SS 202(硬铬)

  • 数量:2个

  • 应用范围:3D打印机,CNC,机器人,DIY项目等

·2 x 10mm不锈钢 光棍

  • 材质:铬钢

  • 高度:24毫米

  • 口径:8mm

·2 x LM8UU 8mm直线轴承 或SC8UU 8mm直线轴承

·4 x SK8 8mm杆末端支撑

  • 材质:铝

  • 轴外径:8mm

  • 尺寸:42x14x33mm

  • 安装孔直径:5.5mm

  • 安装孔中心距:32mm

·4 x LM10UU 10mm线性轴承或SC10UU 10mm线性轴承
·2 x SK10 10mm杆末端支撑

·2 x 20齿GT2皮带轮

  • 缸径:5mm适用于大多数nema 17步进电机

  • 牙齿:20齿

  • 齿距:2mm

  • 适用:Gt2 6mm宽皮带

  • 包装包括:2个。皮带轮+内六角扳手

·12 x F623ZZ轴承

  • 型号:F623ZZ

  • 材质:铬钢

  • 尺寸:3x10x4mm

  • 内径:3mm / 0.118“”,外径:10mm / 0.393“”,

  • 厚度:4mm / 0.157“”

·1 x Micro Servo SG90

  • 扭矩:1.8公斤厘米

  • 重量:9克

·1 x Arduino UNO

  • 单片机ATmega328P

  • 工作电压:5V

  • 数字I / O引脚;材质:塑料

  • 14个(其中6个提供PWM输出)

  • PWM数字I / O引脚.6模拟输入引脚.6。闪存32 KB(ATmega328P),其中引导程序使用0.5 KB

·1 x CNC Shield V3

  • CNC Shield v3雕刻

  • 3D打印机

  • A4988驱动程序扩展板,用于Arduino

·2 x Pololu踏板A4988步进驱动器

·1 x GT2皮带(长3米)
·1 x硬木层50cmx60cmx1.5cm
· 多个带螺母的螺丝
·1 x 电线5m

·1 x SMPS 12v 5A
·1 x 焊锡丝
·1 x 焊料
·1 x 曲线锯

·1 x 曲线锯刀片用于木材切割
·1 x USB电线
·4 x 多种颜色的特殊液体笔PEN
· 杂项工具和组件

原理

为什么选择H-Bot?因为它几乎没有优势,所以我选择了它。构造便宜,因为它需要更少的轴承和其他材料,简单,清洁且优雅的。尽管H-Bot要求比基于Core-XY的系统更好的构造,但仍可用于绘制1mm精度的应用程序。

开始干活

俩天时间

50CMx60CM作为地板

17HS1538步进电机

舵机

LM10UU和LM8UU直线轴承

8mm和10mm不锈钢SS光滑棒

MDF板其他零件

12V 5A SMPS电源

网格纸,用于粘贴在木板和中密度纤维板上,易于切割

在钻孔/切割之前要进行样机确定位置

MDF板的小块覆盖有网格纸,用于轴接头和线性轴承座

在4片MDF板上进行10毫米半深钻 相同 使其末端支撑两个Y轴10mm杆

带有凹陷的X轴端板,用于支撑Y轴LM10UU直线轴承

带有凹陷的X轴中心托架板,用于支撑X轴LM8UU线性轴承

Arduino绘图机的装配式X轴,X轴的端板水平钻8毫米以支撑两个X轴杆

10mm Y轴杆的端部支撑

每个X轴的上端板都钻孔,轴承安装在螺母,螺栓和垫圈上,就像皮带的皮带轮一样工作

组装X轴端座

组装X轴端座

组装X轴端座

Arduino绘图机器人的皮带组件

用于1/32微步进的步进驱动器微步进跳线焊接

LM7806直接焊接在12输入上,可为Micro Servo提供6V

CNC Shield V3上的A4988步进驱动器,黑线和黄线从Arduino Uno(底部焊接)提供12V电压至CNC Shield

Arduino绘图机中用于笔提升的伺服电机附件

Arduino绘图机中用于笔提升的伺服电机附件

Arduino CNC绘图机完整接线

Arduino绘图机中用于笔提升的伺服电机附件

Arduino绘图机原理图

Arduino绘图机完成

Arduino绘图机工作输出

Arduino固件安装

该项目使用的是GRBL0.9i固件的修改版本。我已进行了修改,以启用CoreXY配置,并且还使D11引脚上的伺服电机运行。伺服电机将使用机器代码M03和M05升高和降低笔。(稍后将详细解释)。因此,在Z轴上,不需要步进电机来拉动笔。

你可以从Git下载修改过的固件:https://github.com/arnabdasbwn/grbl-coreXY-servo

Grbl-coreXY-servo是一种基于并行端口的运动控制的不妥协,高性能,低成本的替代品用于CNC铣削。只要运行Atmega 328p,它将在Arduino(Duemillanove / Uno)上运行。

该控制器采用高度优化的C语言编写,利用AVR芯片的所有巧妙功能来实现精确的定时和异步操作。它能够维持高达30kHz的稳定,无抖动的控制脉冲。

它接受符合标准的G代码,并已通过多种CAM工具的输出进行了测试,没有任何问题。弧,圆和螺旋运动以及所有其他主要G代码命令均受完全支持。不支持宏函数,变量和固定循环,但是我们认为GUI可以更好地将它们转换为直接的G代码。

Grbl-coreXY-servo包括完整的加速管理 看 先。这意味着控制器将对未来进行18次运动,并提前计划其速度,以实现平稳的加速和无晃动的转弯。

·许可:Grbl是免费软件,根据GPLv3许可证发行。

下载后,您必须使用固件刷新Arduino Uno。
这是步骤:

注意:在开始之前,请从Arduino IDE中删除以前的Grbl库安装。否则,您将遇到编译问题!在Mac上,Arduino库位于〜/ Documents / Arduino / libraries /中。在Windows上,它位于My Documents \ Arduino \ libraries中。

1.   从  https://github.com/arnabdasbwn/grbl-coreXY-servo  clone你将拥有一个名为的文件夹 bl-coreXY-servo。

2.  启动Arduino IDE
·确保您使用的是Arduino IDE的最新版本!

3.将  Grbl作为库加载到Arduino IDE中
·单击Sketch下拉菜单,导航到Include Library并选择 添加。ZIP库。
·重要提示:在 bl-coreXY-servo-master文件夹,其中仅包含源文件和示例目录。
·如果您不小心选择了.zip文件或错误的文件夹,则需要导航至Arduino库,删除错误,然后重新执行步骤

3。4.  打开GrblUpload Arduino示例
·单击File下拉菜单,导航至示例-> Grbl,然后选择GrblUpload。

5.  编译Grbl-coreXY-servo并将其上传到Arduino
·将Arduino Uno连接到计算机。
·确保在“工具”->“董事会”菜单中将开发板设置为Arduino Uno,并在“工具”->“串行端口”中正确选择了串行端口。
·单击上传,然后Grbl-coreXY-servo应该编译并刷新到您的Arduino!(使用编程器进行闪烁也可以通过使用“使用编程器上传”菜单命令来完成。)

软件工具安装

我们需要多种软件和插件来生成艺术品,使用串行COM端口编辑G代码并将其发送到CNC。我将讨论在Windows平台上的安装,但是您也可以找到所有用于Linux平台的软件。因此,我们将使用的软件为:

>>> Inkscape 
[将用于编辑矢量图形,并从.jpg,.png和.dxf格式生成矢量图形(.svg)]
·下载最新的稳定的32bit / 64bit Inkscape.org根据您的操作系统提供的版本 
·在Windows中安装非常简单直接。在Linux中,您需要键入一些简单的命令。
·只需执行Next Next,将安装软件。

>>> JTP激光工具Inkscape插件 
[此Inkscape插件会将路径/图形转换为用于矢量打印的G代码]
·从JTP网站下载该插件 
·使用任何优质的解压缩软件将其提取。
·将此.zip文件夹的内容放入安装目录中的“ inkscape \ share \ extensions”文件夹中。
·在那里,它将显示在Inkscape的“扩展”选项卡下。

>>> Raster 2 Laser G代码生成器 
[此Inkscape插件将路径/图形转换为用于光栅打印的G代码]
·从我的Git Hub存储库Raster 2 Laser下载该插件 
·使用任何优质的解压缩软件将其提取。
·将此.zip文件夹的内容放入安装目录中的“ Inkscape \ share \ extensions”文件夹中。
·在那里,它将显示在Inkscape的“扩展”选项卡下。

>>> UGS平台/ UniversalGcodeSender 
[将通过USB串行端口将G代码从笔记本电脑发送到Arduino UNO]
·根据您的操作系统和系统配置下载并安装下载页面上列出的Java版本。需要Java8。  在这里下载
·下载UGS平台  UGS下载
·使用任何良好的解压缩软件将其解压缩。
·在解压缩的文件夹中,找到ugsplatform目录中的bin。
·在Windows上运行ugsplatform.exe或ugsplatform64.exe,在Linux或Mac OSX上运行ugsplatform。
·无需任何安装或构建。

>>> Camotics 
[将用于可视化G代码和模拟目的]
·从Camotics下载最新版本。 
·安装简便而流畅。

>>> Makelangelo软件 
[将用于从jpg,png和其他格式生成单色图案艺术品,这些颜色可以通过CNC绘图机用单色笔打印]
·从我的Git Hub存储库中下载Makelangelo软件  Makelangelo软件
·提取使用任何好的解压缩软件。
·打开提取的文件夹,然后找到Makelangelo10.jar文件。
·使用前面步骤中安装的Java 8运行.jar文件。

>>> Inkscape模板文件
[此模板将根据送入绘图机的纸张使用,并将有助于精确尺寸的G代码生成]
·从我的Git Hub存储库Inkscape模板下载  模板。
·使用任何优质的解压缩软件将其提取。
·打开提取的文件夹,然后找到Makelangelo10.jar文件。

从Inkscape中的现有JPG / PNG图像进行处理

·打开Inkscape。
·根据纸张尺寸打开上一步中下载的模板。
·单击文件->导入,然后从驱动器中选择JPG或PNG文件,然后单击打开。
·根据页面大小调整图像大小并放置图像。
·图像必须在页面边界内,否则将无法正确生成G代码。
·右键单击图像,然后选择“跟踪位图”。
·选择以下三个选项中的任何一个[实验,您将知道工作原理]亮度截止,边缘检测,色彩量化。
·根据所需的图形细节更改阈值。
·单击更新。
·单击确定,然后关闭窗口。
·矢量位图将与原始图片重叠。
·拖出原始图片并将其删除。您已准备好生成G代码。
·现在,请参阅  G代码生成  步骤。

从Inkscape中的自定义工程图处理

·打开Inkscape。
·根据纸张尺寸打开上一步中下载的模板。
·开始在工作区域内绘图或书写文本。
·通过Ctrl + A快捷键选择所有对象。
·然后通过菜单中的对象->分组或Ctrl + G快捷键将它们分组。
·然后,您必须通过菜单路径->对象至路径或通过快捷键Shift + Ctrl + C将对象转换为路径。[重要步骤]
·现在,请参阅  G代码生成  步骤。

在Makelangelo软件中从图像生成艺术品

·打开运行.jar文件的Makelangelo软件。
·单击“打开文件”,然后从驱动器中选择JPG / PNG文件。
·从下拉菜单中选择转换样式。[我的最爱是交叉阴影线]
·单击确定。
·单击保存到文件/ SD卡,然后转到要保存的位置。
·输入文件名,然后选择DXF R12文件格式.DXF。
·现在运行Inkscape,并使用默认设置打开保存的.DXF文件。
·根据需要调整大小。
·现在,请参阅  G代码生成  步骤。

栅格G代码生成

·在光栅模式下,机器将逐行扫描从[0,0]到最后一行的整个绘图区域。[光栅模式很慢,需要更多时间]。观看视频[ 光栅图女孩的脸视频1 ] [ 光栅图女孩的脸视频2 ]
·将所有对象转换为上一步的路径后,即可生成G代码。
·现在,选择工作区域内的所有路径或使用Ctrl + A。
·单击扩展-> 305工程->光栅2激光G代码生成器。
·提供导出目录路径。
·提供文件名。
·启用数字后缀。
·分辨率表示每毫米的线数,增加将增加绘制时间。
·使用以下选项播放,如RGB阈值。
·将雕刻速度设置为1500或更高。
·选择无归位。
·将激光打开编辑为M03 S255。
·将激光关闭编辑为M05 S0。
·取消选择预览,如果选择则不会生成G代码。
·单击“应用”。等待和享受。您现在可以开始打印了。

矢量G代码生成

·在矢量模式下,机器将仅扫描有线条的绘图区域。[矢量模式绘制花费的时间更少]。
·将所有对象转换为上一步的路径后,即可生成G代码。
·现在,选择工作区域内的所有路径或使用Ctrl + A。
·单击扩展->生成激光G代码-> J Tech Photonics Laser Tool。
·提供导出目录路径。
·提供文件名。
·启用数字后缀。
·将所有单位设置为毫米。
·将激光速度设置为1500或更高。
·将行驶速度设置为3000或更高。
·选择无归位。
·将激光打开编辑为M03。
·将激光关闭编辑为M05。
·取消选择“预览”
·单击“应用”。等待和享受。您可以立即进行打印了。

GRBL配置和首次设置机器

首先,使用您选择的串行端子连接到Grbl。

将波特率设置为115200为8-N-1(8位,无奇偶校验和 一站式 位。)

一旦连接,您应该会看到Grbl提示符,如下所示:

Grbl 0.9i ['$'for help]
键入$并按Enter以使Grbl打印帮助消息。您应该看不到$的任何本地回显,然后输入。Grbl应该回应:

[HLP:$$ $#$ G $ I $ N $ x = val $ Nx = line $ J = line $ SLP $ C $ X $ H〜!?[ctrl-x]

'$'命令是Grbl系统命令,用于调整设置,查看或更改Grbl的状态和运行模式以及启动归位循环。最后四个非$命令是即时的 可以在以下位置发送的控制命令 任何时间,不管Grbl在做什么。这些要么立即改变Grbl的运行 行为 或立即打印重要报告 即时的像当前位置(又称DRO)之类的数据。

$$ –查看Grbl设置

要查看设置,请输入$$,然后在连接到Grbl后按Enter。Grbl应该以当前系统设置的列表作为响应,如下例所示。所有这些设置都是持久性的,并保存在EEPROM中,因此,如果您关闭电源,则下次启动Arduino时将重新加载这些设置。

$ x = val –保存Grbl设置

$ x = val命令保存或更改Grbl设置,当通过串行终端程序连接到Grbl时,可以通过发送此命令来手动完成此设置,但是大多数Grbl GUI会为您执行此操作用户友好的功能。

要手动将微秒步进脉冲选项更改为10us,您可以键入以下命令,然后输入 输入:

$ 0 = 10

如果一切顺利,Grbl会以“ ok”响应,并且此设置存储在EEPROM中,并将永久保留或直到您更改它们为止。您可以通过键入$$再次查看系统设置来检查Grbl是否已正确接收并存储了设置。

Grbl的默认配置特意是非常通用的,以帮助确保用户无需调整设置即可看到成功的运动。通常,您要做的第一件事就是使步进电机运行,通常无需将其连接到CNC。根据制造商指南,将Grbl连接到步进驱动器和步进电机。通过串行终端或许多Grbl GUI之一连接到Grbl。向Grbl发送一些G1或G0命令。您应该看到步进电机正在旋转。如果您在使用步进电机时遇到问题,请尝试以下操作:

·确保按照步进驱动器制造商的指南正确连接和供电。

·如果您的步进器已经安装在CNC中,请确保您的轴可以自由移动并且不会明显束缚。如果您无法轻松分辨,请尝试卸下步进电机,并检查它们是否在无负载的情况下运行。

·确保步进电机和轴的线性机构都牢固牢固。传动系统组件上的小紧定螺钉变松是一个非常普遍的问题。重新拧紧并尝试使用一些非–持久的螺纹保持器(乐泰蓝色),如果它持续松动。

·对于更困难的问题,请尝试消除过程以快速隔离问题。首先断开所有与Arduino的连接。测试Grbl本身是否运行正常。然后,一次添加一件事并进行测试。

·如果您的步进电机通电并且在尝试移动时发出磨擦声,请尝试降低“ $”加速度和最大速率设置。这种声音表明您的步进 是 失去步伐,无法跟上 到期 扭矩负载太大或速度太快。

·Grbl的默认步进脉冲设置涵盖了市场上绝大多数的步进驱动器。虽然不常见,但如果您仍然遇到问题或遇到问题,请检查这些设置异常设置。

接下来,您需要确保您的机器根据笛卡尔(XYZ)坐标系沿正确的方向移动。如果尚未将步进电机安装到CNC中,则将其安装。向Grbl发送一些运动命令,例如G91 G0 X1或G91 G0 X-1,它们将使x轴分别移动+ 1mm和-1mm。检查所有轴。如果轴移动不正确,请更改$ 3方向端口掩码设置以反转方向。

如果您不熟悉坐标系的方式设定在CNC机器上,请参阅LinuxCNC的这张精美图表。请记住,运动是相对于工具的。因此,在典型的CNC龙门铣床上,刀具将移动而不是固定工作台。如果x轴向右正对齐,则正向运动命令会将工具向右移动。而带有固定工具的移动工作台会将工作台向左移动相同的位置 命令, 因为该工具相对于表格向右移动。

最后,调整设置以接近您想要的性能或最高性能。首先,请确保您的$ 100,$ 101和$ 102轴步长/毫米设置正确无误。这取决于您的步进增量,驱动器上的微步以及机械参数。在线上有多种资源向您展示如何针对您的特定情况进行计算 机, 如果您的机器制造商没有为您提供此服务。调整$ 11x加速和$ 12x最大速率设置以提高性能。设置为不大于绝对最大值的80%,以考虑惯性和切削力。如果您打算使用归位或软限制,请设置$ 13x最大旅行设置。建议立即输入与实际行程近似的值,以免将来出现问题。

个人设置$0 = 10 (step pulse, usec)$1 = 25 (step idle delay, msec)$2 = 0 (step port invert mask:00000000)$3 = 0 (dir port invert mask:00000000)$4 = 0 (step enable invert, bool)$5 = 0 (limit pins invert, bool)$6 = 0 (probe pin invert, bool)$10 = 3 (status report mask:00000011)$11 = 0.010 (junction deviation, mm)$12 = 0.010 (arc tolerance, mm)$13 = 0 (report inches, bool)$20 = 0 (soft limits, bool)$21 = 0 (hard limits, bool)$22 = 0 (homing cycle, bool)$23 = 0 (homing dir invert mask:00000000)$24 = 25.000 (homing feed, mm/min)$25 = 500.000 (homing seek, mm/min)$26 = 250 (homing debounce, msec)$27 = 1.000 (homing pull-off, mm)$100 = 80.000 (x, step/mm)$101 = 80.000 (y, step/mm)$102 = 80.000 (z, step/mm)$110 = 50000.000 (x max rate, mm/min)$111 = 50000.000 (y max rate, mm/min)$112 = 50000.000 (z max rate, mm/min)$120 = 5000.000 (x accel, mm/sec^2)$121 = 5000.000 (y accel, mm/sec^2)$122 = 30.000 (z accel, mm/sec^2)$130 = 310.000 (x max travel, mm)$131 = 450.000 (y max travel, mm)$132 = 200.000 (z max travel, mm)
https://github.com/arnabdasbwn/grbl-coreXY-servohttps://winder.github.io/ugs_website/download/https://camotics.org/download.htmlhttps://github.com/arnabdasbwn/Inkscapehttps://www.arnabkumardas.com/topics/cnc/how-to-make-an-arduino-drawing-machine/代码和出处在这里,欢迎玩耍
(0)

相关推荐