深圳雕刻机机用久了为什么来现本来前进100毫米但界面显示只有98.998毫米

DIY:废旧光驱再利用 自制激光雕刻机(图文)
我的图书馆
DIY:废旧光驱再利用 自制激光雕刻机(图文)
我日思夜想着哪天要着手制作一台激光切割机。真正的激光切割机所能做的那些奇妙事情不断地挑逗着我的想象力。我很久以来都想要做的一件事就是在后院造一些模型小屋和其他的模型铁路布景,也许还可以制作一辆我自己的四轮马车(至少做出个大概)。还有一些别的想法,例如给我的作品制作附件、告示和雕刻牌、为我妻子制作剪纸和印章、为朋友的孩子们制作玩具娃娃小屋和家具……神通广大的激光切割机啊!  现在是时候和大家分享我最新的制作项目了——一台低成本的激光雕刻机,而且通过这个项目或许许我就有机会尝试一下真家伙了。虽然工作空间略微小了些,无论如何它仍然能有效工作,而且成本非常低,大多数人都有能力制作出一个复制品。  在某些地方我投机取巧了,因为现有的知识不足以搞定所有的电子器件,于是选择了现成的器件,但为了保持低成本我也尝试自行DIY(然而失败案例居多)。无论如何,我所使用的零件还是很容易找到的。  我对于最后的成品很满意,即便它还存在一些改进空间。它的小体积和低功率让它的功能很有限,不过已经足够我从中获得许多乐趣了。它能够切割纸片,给木牌刻字,制作印章。雕刻机本身还不算小,至少比口袋大,但是它的工作空间却把你所能制作的物件的尺寸都限制在了口袋大小以内。  以下是安全警告:  本制作项目使用的是一颗大约 200 毫瓦的红色激光发射器,即使不足以烧穿木头,如果不小心可能会亮瞎你的双眼!所以千万别直视激光束,即便是直视反射光也一样非常危险。请注意安全!  过程一览   ● 1&& 工具和材料   ● 2&& 拆解 DVD-Rom 驱动器   ● 3&& 组装激光发射器   ● 4&& 制作机械部分   ● 5&& 电子器件   ● 6&& 准备 Arduino   ● 7&& 准备软件   ● 8&& 最终组装以及额外配件   ● 9&& 大功告成&  1&& 工具和材料  大部分硬件都可以利用废品制作。铝型材、中密度纤维板和各种螺母、螺栓以及导线。但部分物品需要你另行购买。大部分电子器件都可以在 Sparcfun 上找到,其余的可以到E-bay或者旧货交换市场碰碰运气。  ○ 1.激光发射器外壳(图中)  ○ 2.Easydrive 驱动器电路(图中)  ○ Arduino (这是控制电路的核心)  ○ Easydrive 步进驱动器  ○ 两台 DVD-rom 驱动器 (要是你运气不好的话也许会需要更多),并且至少需要一台DVD-R 驱动器来提供激光发射器  ○ 激光发射器外壳 (在E-bay上可以找到零售的)  ○ 激光发射器驱动电路 (这玩意儿有许多替代品,我用的是简单的基于 LM317 的电路)  ○ 各种螺帽、螺栓以及其他的建材。
  2&& 拆解 DVD-Rom 驱动器  ▲ 坏掉了的 DVD-Rom 驱动器  ● 在 DVD-Rom 驱动器中你所需要的只有步进电动机组件和激光二极管。我的运气不太好,发现我的 DVD-Rom 带有一块非常难处理的塑料组件。于是我拆开了三台 DVD-Rom 驱动器,却只用了两台里的零件。拆解的过程相当有难度,而且我打开过的大部分 DVD-Rom 驱动器差不多都是这样的。  ▲ 此处正下方有个小型的直流电动机,你可以把它拿出来为将来的制作项目做准备  ● 在移除了驱动器底部的螺钉以后,你就能把它像个盖子一样掀开了。你很可能会在底盖下面看到两块,这两块对我们都毫无用处。但是要记得保留下其他有用的零件,供其他的制作项目使用。例如在靠前的电路板下面有一台值得留下来的小型直流电动机。  ● 现在你就该把前面板连同前置托盘一起拆下来了。当你把托盘拉出来以后前面板就会变得松散(只要利用一根发夹和前面板上的那个小孔就行了)。  ● 接下来的步骤需要拆卸螺钉,或许还需要一些蛮力。拆除两块电路板。当心连接在步进电动机上的排线。  ▲ 需要将这个电动机拆除。  ● 如果你把 DVD-Rom 驱动器的右侧朝上放置并把顶盖移除,就应该能发现我们正在寻找的东西——步进电动机组件。拧开螺丝,直接把它取出来就行。  ● 既然我们已经把步进电动机组件拿了出来,那么我们就该做一下清理工作。把主轴电动机拆除,它可能有点用处,但是我觉得驱动它来太麻烦,于是我就把它们抛弃了。它们通常是用三颗非常小的螺丝固定起来的,不过有时它们会是一个更大的组件的一部分,因此在拆除时候要小心,不要弄坏了支撑镜头的两根杆。  ● 镜头嘛,只要用最合适的方法把它拆下来就行了,我们需要留下一个光滑的表面,之后在上面连接一些其他的零件。小心不要弄坏了 DVDR 驱动器的激光二极管。如果你不想要之后再购买一支新的强力激光发射器的话,就要善待这玩意儿。  ▲ 这一整块部件都要拆掉,放在一边为将来的制作项目做准备。
  3&& 组装激光发射器  ▲ 激光二极管  ● 从 DVDR 驱动器中取出激光发射器并不难,不过大部分的镜头组件的外形都各不相同。找出激光二极管(会有两个,一个是红外的,一个是红光的)然后从组件中将它们拆下来。  ▲ 这些光学器件可以留给将来的制作项目使用  ▲ 在镜头的两侧各有两个强力磁铁,你值得拥有  ▲ 1.从镜头上拆下来的磁铁  ▲ 2.镜子和透镜  ▲ 3.激光二极管  ▲ 4.废物  ● 其中有一些光学器件和两块磁铁,你可以把它们屯下来为将来的制作项目做准备。  ▲ 你需要把激光二极管从支架上拆下来。这需要使一点微弱的力道。小心别伤着了激光二极管  ▲ 其中一个是红外激光二极管,另一个是我们所需要的红色激光二极管  ▲ 从二极管上移除连接电路板  ● 当你把两个二极管拆下来以后你一定要小心翼翼。这两个二极管非常小,也非常脆弱。  ● 从二极管上去除那一小片连接电路版,然后用两节 7 号电池检查一下红色激光二极管是否健在。  ● 既然你已经有了裸奔的二极管,那么就是时候把二极管安装到外壳中了。  ▲ 在激光发射器外壳背部的小孔正好可以让二极管的引脚穿过  ● 把二极管放入外壳中,并用外壳的背面和钳子非常小心地把二极管压入外壳中。  ▲ 现在二极管已经牢牢地安置在外壳中了  ● 当你完成这一步后,你就驶入了终点前顺畅的直车道了。把导线焊接在正极和负极引脚上  ● 然后把镜头用螺丝拧上,这样你就搞定了。  ▲ 用一些特富龙胶带把镜头固定到位  ▲ 178 毫瓦的输出功率很不错了。不过这会让二极管进入过载状态  ▲ 二极管的工作电流为 310 毫安  4&& 制作机械部分  ▲ 我很幸运地找到了这些垫片,不过用一根螺栓和一些螺母也能达到很好的效果  ▲ 用一片压克力板作为底座  ● 为了尽可能地简单,我找了一块正好比 DVD-Rom 驱动器的步进电动机组件略大一些的中密度纤维板。它将成为底座,固定住 X 轴和 Y 轴的方向。  ● 我找到了一些垫片来固定 Y 轴方向,不过几根螺栓和数个螺母也能有不错的效果。这里的尺寸要求并不严格,不过必须确保每一根轴都与其他的轴相互垂直。我发现把第一层组件安装在中密度纤维板上以后在对齐各个零件时会方便一些。  ● 工作空间位于老的激光二极管组件上。确保它表明平整且水平放置,然后在上面涂上些胶水固定好,工作空间就完成了。我发现一块 1/4 英寸的压克力板刚好合适。它能让工作空间保持足够的稳定性,不过由于激光能够射穿它,所以我不确定这是否存在安全隐患。后来我想出了一个在我看来效果最棒的解决方案。我切下了一片与压克力板的大小相同的DVDR 驱动器的金属外壳,然后用胶水把它粘了上去。这样工作空间依然非常稳定,而且强度也足够了。它还有一个有利的作用,那就是你可以用磁铁把你想要雕刻的东西固定在工作空间上。  ● 我在废品箱里找到了一些铝型材。  ● 把它当作了 X 轴,不过你可以使用任何稳固而且够长的材料。  ● 测量一下你觉得在雕刻时所需要的适当高度。  ● 我选择了几根长 7.5 英寸的板材用作支架。这样会给我留下不到 2 英寸的细小间隙。  ▲ 我钻了几个小孔,这样就可以用电缆扎把线拴紧  ● 一件重要的事情在于,组件上的安装孔并不是对称的。记得测量从支架底端到直线导轨的距离。这样你就能确保所有的零件都对齐。你安装 X 轴的位置取决于激光发射器的安装位置。激光发射器应该位于工作区域的中心,而 Y 轴位于中间。当你将两轴安装在基座板上的时候,先确定所有的零件都相互成直角,然后钻几个供螺丝拧入的小导孔。  ● 现在你应该已经完成了相互垂直的 X 轴和 Y 轴。  ▲ 这里最重要的尺寸要求就是保证所有的东西都是四方的直角  ● 激光发射器的支架不一定要做得很复杂,我用的是一小片塑料板和一个夹子,然后把所有的东西都用胶水粘起来。  ● 用夹子固定激光发射器,这样就可以靠简单地把激光发射器上下滑动来改变焦点位置。  ● 和其他的零件一样,它的尺寸并不重要,只要一切都相互垂直就行。这里只有一个尺寸是需要你斟酌一番的,那就是激光发射器的位置。当 Y 轴和 X 轴位于中央位置时,它应该处于工作空间的中心。  ▲ 我在这里用一片和激光发射器支架上相同的黑色塑料进行了测试。最后我用一片从 DVDR 驱动器外壳上拆下来的金属又测试了一次 |  5&& 电子器件  ▲ 在你寻找所需的排线时,老旧的电脑是你的不二之选  ▲ 这些排线虽不易焊接,但效果很好。我在两台步进电动机上都进行了相同的焊接  ● 我开始焊接步进电动机。用一根排线连接步进电动机,然后把它们焊接在 DVD电路板上已有的接口上。我在另一头焊接了一个四引脚的插头,这样就能插在试验电路板上使用。  ▲ Easydriver 和 Arduino 的初次测试——大成功  ● 对 Easydriver 也进行相同的处理,焊上引脚插头,然后插在试验电路板上使用。  ● Easydriver 有两个引脚,叫做 MS1 和 MS2,它们用于设定步进的序列。将它们双双连在 Easydriver 的5伏电压输出上。这样就把步进序列设为了微步进控制。把从步进电动机伸出的四根引脚连接在电动机的输出端,而控制引脚(step、dir 和 gnd)连在 Arduino 上。除了这些以外,Easydriver 还需要连上电动机电源。我用一个12伏的电源适配器驱动电动机、风扇和 Arduino。一个电位器被用于控制电动机的电源,把它设到最低就行,要是步进电动机的动力不足的话,就稍微调大一些。我并不清楚步进电动机的额定电压,如果它们发烫了就说明你给的电压太高。  ▲ 在本制作项目中用不到的多余元件  ● 我在电路图上添加了一个继电器,供风扇使用。因为雕刻过程会产生一些烟雾,所以风扇是很有用处的。  ● 风扇只需要连接在风扇输出端上就行了。一只小型的电脑风扇就有不错的效果,你只需把正极和负极的导线连在正确的输出端即可。  ▲ 在焊接所有的引脚时都要记得检查位置是否正确  ▲ 我把 Easydrives 安装在插座中,这样就能在以后的新版本中重复使用了  ● 激光发射器的驱动电路是用基于 LM317 的电路制作的,不需要特殊配件。这样的驱动电路可以正常工作,但效果远远说不上是理想。我给激光二极管的驱动电流太大了,大约在 300 毫安,你要是也这么做,那么二极管的寿命不会太长。最好的解决方案应该是找一个更强大的激光发射器和驱动器,但为了坚持廉价和DIY的精神,我还是想要使用 DVDR 驱动器本身的激光发射器。激光发射器开关和风扇所使用的是同一个继电器。  ● 如果你想要一切从简,那么你可以跳过整个激光发射器驱动电路的制作,采用现成的驱动器。这样的话你所需要做的就只是把电源接在风扇继电器上而已。当然这样做成本可能会稍微高些。  ● 整个电路构成了一种新式的 Arduino 电路——激光发射器控制电路。我已经附上了
的电路图和电路板布置图。如果你想要自己布置 Easydrivers 的电路的话,我也准备了带有驱动程序的 Eagle 库文件,你可以在
下载。  6&& 准备 Arduino  ● 我自己给 Arduino 写的软件。但是在搜索通过串口控制移动的好方法的时候我碰巧找到了一个叫做“Grbl”的东东。这是一个有着相当多优秀功能的 g 代码编译器。由于我已经把所有的东西连到了 Arduino 上,所以我要么得改变我的连线,要么就改变我的程序。幸运的是在软件中修改控制引脚其实相当方便。只不过我不得不下载
,然后再从
上下载代码。做起来很容易。下载并解压出代码以后,你必须把 config.h 中的端口号修改一下,确保将它们排列为正确的顺序。接着你所需要做的就只是打开一个命令窗口,输入正确的文件夹,然后输入“make”。如果一切如计划那样顺利进行的话,你应该最后会得到一个给 Arduino 使用的 .hex 文件。  ● 但是我从那时就把引脚改动过了,而在本教程中我使用的是 Grbl 的默认引脚。这样可以让你在跟着教程设置时更加简单。你只需要从
的下载页面 hex 文件就行了。  ● 无论你选择何种方式,最后你都将得到一个输入 Arduino 中去的 .hex 文件。我试过许多不同的方法,其中我最喜欢的是用一款叫做
的软件。编程的过程非常直接明了:选择 Arduino 的正确的串口;选择 hex 文件以及 Arduino 的型号;然后按下上传。如果你使用的是新版的 Arduino Uno 的话,那么
是不支持它的,你会遇到一个上传错误。碰到这种情况我建议你使用 ARP/ArduinoUploader ,不过即便是这款上传器在 Uno 的支持上还是存在一些问题的。当你在给 Arduino 编程时,要在各个下拉列表中选择串口端口和微控制器。然后你必须把“AVR Dude Params”这段文字进行一些修改。删除“-b19200”(不带引号)部分,并点击上传按钮。无论如何你也该在几秒钟之后搞定,准备好进行测试了。退出 XLoader,进入下一部分。  ● 你需要针对这一项目对 Arduino 进行设置。打开你最喜欢的串行终端,然后打开Arduino 所连接的端口。你应该会收到一条欢迎信息:  Grbl 0.6b  '$' to dump current settings"(输入“$”清空当前设置)  如果你输入一个 $ 然后回车,你会看到一系列选项。类似于这样子:  $0 = 400.0 (steps/mm x)  $1 = 400.0 (steps/mm y)  $2 = 400.0 (steps/mm z)  $3 = 30 (microseconds step pulse)  $4 = 480.0 (mm/sec default feed rate)  $5 = 480.0 (mm/sec default seek rate)  $6 = 0.100 (mm/arc segment)  $7 = 0 (step port invert mask. binary = 0)  $8 = 25 (acceleration in mm/sec^2)  $9 = 300 (max instant cornering speed change in delta mm/min)  '$x=value' to set parameter or just '$' to dump current settings  ok  ● 你必须把 X 轴和 Y 轴的 steps/mm 值都修改为 53.333。只要输入“$0=53.33”(译注:此处疑为笔误,少了一个 3)然后回车,接着输入“$1=53.333”然后回车即可。因为我们并没有用到 Z 轴,所以可以把它忽略掉。加速度可以提高到大约 100 的程度(输入“$8=100”然后回车)。当我们缓慢地操作这台机器的时候,加速度也会很高。加速度太低的另一个副作用是在控制器不停地尝试加速和减速,但却无法达到全速时,曲线图形会比直线受到更剧烈的烧灼。你有可能和我一样发现有一根轴反掉了。这很容易修正。选项 $7 让你能够改变轴的方向。我想要改变 X 轴的方向,于是我输入了“$7=8”,这是因为我想要修改 3 号位(8 =
二进制),如果你想要修改 Y 轴的方向,那么就输入 16()或者要修改两根轴的话,就输入 24()。有关掩码设置的
可以在这里查看。  ● 现在你已经完成了电脑设置的准备。如果你想要尝试进行几下移动的话,可以输入“G91 G28 X0 Y0【回车】”把轴的位置归零。然后输入“X10 Y10【回车】”。你应该会看到两根轴向上都发生了 10 毫米的移动。  7&& 准备软件  ● 这一步我将详细地从基础讲起。我会讲到你所需要的软件、如何设置软件,以及基础的工具组合。我只会讲解基于 windows 的系统,你们那些玩儿 Linux 的人只能自行查找了(不过 Inkscape 和相关扩展应该也能在 Linux 上很好地运行)。首先你必须下载以下三个文件:  1
——这是一款开源的矢量编辑软件。  2
(激光雕刻机扩展)——这会生成控制激光发射器所需的 g代码。  3
(G 代码发送器)——这是我写的 windows 小程序,用于和 Grbl 进行通讯。  ● 根据 Inkscape 的安装指示进行安装。这应该是个非常顺利的过程。如果需要任何这方面的帮助,可以在他们的网页上找到相关文档。接下来就是激光雕刻机扩展。这安装起来要难一些,不过也不是太难。用你惯用的解压缩软件打开 .zip 文件,然后把所有的文件复制到“c:Program FilesInkscapeshareextensions”下面。你必须重新启动 Inkscape 才能让扩展生效。这个扩展其实是个经过大量修改的“Gcodetools”版本。这就是安装 Inkscape 的位置。你可以把“G 代码发送器”放在桌面上或者任何别的地方,过会儿再找出来就行。它不需要安装。  ● 关于扩展有一句话我必须声明,我不是 python 程序员,因此在代码中可能存在一些缺陷。  ● 我接下来假设你已经安装了所有软件,并准备开始使用了。下面是工作界面的快速浏览录像。  ● 我希望这录像的速度并不算太快。网上有数不胜数的 Inkscape 使用教程。我不会讲解任何关于如何使用它的细节。  ● G 代码发送器则是另一码事了。网上没有任何文档,因为这是我自己编的程序。所有的文档都在这篇教程中了,不过如果你有问题,那么请放开胆子提出来吧。当你打开程序时,它应该是非常浅显易懂的。唯一奇怪的东西就是行尾选择按钮“nr”和“rn”。根据你所使用的 Grbl 的版本不同,行的结尾也会有所不同。如果一种方法不行的话就试试别的方法。选择你使用的串口,要是你忘记连接激光雕刻机了,那么就把它连好,然后按下刷新按钮,这时你的串口就应该会被显示出来了。按下“open”(打开)按钮,打开欢迎界面。一旦端口打开了,你就能够在打开按钮上面的文本框中像任何命令行终端软件一样输入命令了。如果要开始打开一个文件进行雕刻的话,你可以要么输入文件路径,要么点击 browse(浏览)按钮后选择一个文件。当你点击“print”(打印)按钮时,就开始了文件传输。文件会一直传输到 Arduino 的缓存充满了为止,大约就传输 20 行左右。当缓存可以再放入更多的数据时,就会再传输一行。当你按下 stop(停止)按钮时,传输就会停止,但是 Arduino 在缓存清空之前是不会停下来的。当你按下“close”(关闭)按钮或者退出程序时,串口就会被关闭,任何传输都会被中止。  ● 有时会出现 Grbl 无法解译的 G 代码,它会返回一个错误。大多数情况下这些错误都可以被忽略掉,不过它们会出现在发送器中。这些可能是注释,或者是开头或结尾的“%”符号。如果在命令后面有一条注释,那么就会产生一条错误,不过这条命令依然会被执行。例如“G21 (All units in mm)”,G21 命令还是会被执行,不过后面的注释会给出一个错误。  8&& 最终组装以及额外配件  ▲ 当你把 Easydrivers 装到一个盒子里时,就需要用一个风扇为它们降温。它可是会疯狂地发热  ● 为了完善这台小型雕刻机,我用从一张画框中拆下来的 Masonite 牌纤维板制作了一个小盒子。只要用胶水粘起来就行了。  ● 前面有一个老显卡上拆下来的小风扇。当你把 Easydrivers 装到任何外壳中的时候都需要对它们进行冷却。它们裸奔的时候就很烫了,放在外壳中就更烫了。  ▲ 用胶水粘上一些垫片可以让它更容易用螺钉固定在底盖上  ● 我在盒子中用胶水粘上了一些螺纹垫片,这样我就能在底部旋上螺钉。  ● 把 Arduino 反过来用螺钉拧紧在底部。这样这台雕刻机就变成了一件方便好用的小工具。  ▲ 通风孔  ▲ 所有进入盒子的线路都从顶部穿过  ▲ 我在一块老显卡上找到了这个风扇保护罩完好无损的小风扇  ● 这是个 40 毫米的电脑小风扇,与我在电子器件这一步中提到的激光发射器的继电器相连接。风扇的方向朝向工作空间以外,它会和缓地把烟雾吸走。  ▲ 把风扇连接在激光发射器的继电器上,面朝工作空间以外。它能够把烟雾吸走,同时不会影响工作空间中的器件  ▲ 钕磁铁的顶部粘上一个螺母。它可以很好地按住你的工件  ● 另一件小而有用的额外部件就是用于按住纸张和其他质量较轻的物体的磁铁。我从一只老玩具中找到了这些磁铁。只要在顶部用胶水粘上一些螺母,就搞定了。  ▲ 当激光发射器处于最低的位置时,焦点应对准工作空间的表面  ● 为了改变焦点,你就得通过拧动螺丝来调整镜头。或者你可以先把焦点定在工作空间上,之后再把激光发射器在支架上上下滑动。  ● 当激光发射器处于支架上最低位置时,我把它的焦点固定好。接着我所需要做的就只是测量工件的厚度,然后把激光发射器抬升相同的高度。大部分情况下我只要把工件靠在激光发射器的支架旁边,然后把激光发射器移动到正确的高度上就行了。  ▲ 当我把激光发射器移动到与工件相同的高度时,焦点就调整到工件的顶部了  9&& 大功告成  以下是到目前为止我用雕刻机制作的物品,我会尽量用图片来展示。想象力是唯一的限制哦(除了雕刻机的低功率和工作空间的小尺寸)。  钥匙链  ● 我很喜欢经典的“Home improvement”电视节目。何不制作一个 Binford 钥匙链呢?  ● 我在本地的 DIY 商店里找到了一些油漆搅拌棒。很喜欢这些木棒的样子,而且不贵。我锯下一片,钻了一个小孔。经过一番打磨,在上面雕刻了情景喜剧《Home improvement》中的 Binford 标志。  植物标签  ● 在普通的冰棒木杆上雕刻植物的名字。  ● 这些文字不到 2 毫米高,依稀可辨,不过拍出来的照片就不是很清楚了。  个性化火柴  ● 我只是在卖骚罢了~  备忘录  ● 夹在晒衣夹上雕刻,再用胶水在背面粘上一块小钕磁铁,就能很好地把一本备忘录贴在冰箱上或者其他金属表面。  印章  ● 1.黑色的印泥  ● 2.从工艺品商店买到的薄泡沫板  ● 3.切割后再用胶水粘在 Masonite 牌纤维板上  ● 4.印制的成品  切割一小块泡沫塑料板,然后用胶水粘贴在一片纤维板上。  飞机  ● 多谢 scriptster 这位朋友提供了制作模型的 G 代码。你可以在这里看看他做的 模型 。(译/白之牙)
馆藏&130849
TA的最新馆藏[转]&[转]&[转]&[转]&[转]&[转]&[转]&
喜欢该文的人也喜欢查看: 10742|回复: 12
CNC激光雕刻机及位图打印软件的编程实现(更新GRBL使用心得)
本帖最后由 canyonliu 于
17:55 编辑
看看淘宝已买到的宝贝,下单订购第一个arduino学习板到今天正好一个月了。第一个娱乐加学习项目CNC激光雕刻机今天开始也能工作了,心情大好,虽然是很多人都实践过的,但是对于我,有收获就是值得高兴的事情。开这个贴,接下来把自己的思路跟大家分享。过程中从网上学习了不少资料,在此一并对相关人士表示感谢。
先上张图,这个是我的雕刻机打印在竹片上的图。
IMG_6013.JPG (413.45 KB, 下载次数: 1)
23:45 上传
来个特写,这是一张100*100像素的图片打印成的:
IMG_6014.JPG (378.39 KB, 下载次数: 1)
23:46 上传
从事java数据库开发10多年了。最近对单片机开发感了兴趣,一个月前定了一个arduino开发板,这也是我第一个单片机。它给我打开了一扇大门。
一,雕刻机机械实现
看网上有人拆光驱做雕刻机,我也拆了一个。里面的步进电机滑轨,也用arduino控制起来玩了玩,很有趣,但是我还是决定直接网上订购别人做好的电机滑台。细节不说了。两个滑台到手后,就是得想办法把它组装起来,直接淘宝定了几片10mm厚的铝板。搞来电钻和台钻支架,打孔后组装。这个也没什么特别需要说的。就是个动手能力。上图就好了。
工欲善其事必先利其器,工具:
步进电机控制器,很便宜30元
步进电机控制电源,用一个12V2A的供两个控制器,自制一个一拖二的转接头。
继电器,用于控制激光头电源。
本帖最后由 canyonliu 于
14:43 编辑
二,软件控制
程序分为两部分,1,arduino 里的程序用来控制步进电机,
2,C++写了一个console程序来控制arduino并上传打印文件。串口通讯用的是cncomm,这个类很好用,向作者致敬!
先介绍C++的程序功能。
用LaserMarker.exe [commport]启动。
这个是程序运行后的界面。
这个程序里目前有12个命令,下面分别来解释:
此命令用来测试arduino是否连接成功,如成功,返回#ready#
q2.gif (12.02 KB, 下载次数: 0)
00:29 上传
2,setpixel [num]
位图打印时,一个像素对应arduino发送多少个脉冲给步进电机控制器。默认设定是100.表示图片里一个像素,arduino发送100个脉冲。
3,setinterval [num]
默认为3,单位为3毫秒,表示arduino发送脉冲的间隔
如下代码,current_pulse_interval就是当前的脉冲间隔,setinterval 就是改变这个值。
while(stepnumber&0){
& & digitalWrite(pinPul,HIGH);
& & delayMicroseconds(current_pulse_interval);
& & digitalWrite(pinPul,LOW);
& & delayMicroseconds(current_pulse_interval);
& & stepnumber--;
4,setfpm [num]
位图打印就是按行将像素输出,像素分两种,黑点,白点。(激光打印灰度很难控制,暂不考虑),白点就是不打印,可以直接跳过,方法是用最快的电机速度讲激光头移到下一个黑点,但是在一行打印时,第一个碰到的的黑点,很可能由于各种原因没烧黑,这样就会连带后面好多黑点无法烧黑材料。尤其我使用的的是250MW的红光。在每行的第一个黑色像素上需要多停留一些时间,这样能保证此点被烧黑。那么fpm就是first point mutiple(第一点倍数)设定这个参数就是为了让在遇到的第一个黑色像素时脉冲间隔增加一个倍数,默认值设为5,此值跟所用的激光头种类和打印材质有很大关系,我用250MW红光在竹片上打印,这个值需要设为5,才能基本保证每行遇到的第一个黑点被烧黑。
5,laseron
接通激光头电源
6,laseroff
关闭激光头电源
7,xmove [num]
x轴步进电机移动多少像素,注意这里的单位是像素,xmove 10,表示移动10像素,每像素的的脉冲数由setpixel命令设定。
8,ymove [num]
y轴步进电机移动多少像素。
9,tobw [file path]
此命令将指定的24位真彩bmp图片转换成256色灰度bmp图片,格式没变,仅仅是讲像素转换成灰色。最初我希望激光打印能打印灰度,所以做了这个命令,用于将打印出来的跟图片对比,后来发现太困难了。根本无法掌握激光的火候。这个命令对打印用处不大。
10,topf [file path]
这个是将指定的24位真彩bmp图片转换成可打印的lpf格式文件。lpf文件是我定义的一种向arduino通过串口传送的文件。格式是:
前两个字节是图片宽,紧跟着的两个字节是图片高,后面每个字节是两个像素的灰度值。比如
0A 00 02 00 FF FF 00 00 00 FF FF 00 00 00
红色是图片宽10像素
蓝色是图片高2像素
绿色是一行像素值。黑色是另一行像素值。顺序是图片的左下角到右上角。
topf d:/test.bmp
会在同目录下生产一个test.lpf文件。就可以打印了。
11,pf [file path]
这是启动打印的命令,
pf d:/test.lfp
启动后不能停止,想终止打印需要关掉arduino,如果只关掉c++ console程序,arduino会打完当前行后停止。
如图是一个30*4像素的图片打印时的console输出。
q3.gif (11.6 KB, 下载次数: 0)
00:57 上传
退出console程序。
源码下载:
这个是c++部分的,用dev c++开发的,不知道vc能不能编译。里面有编译好的lasermarker.exe,下载后可以直接用,记得给串口号作为参数:lasermarker.exe 3
(1.46 MB, 下载次数: 112)
01:16 上传
点击文件名下载附件
LaserMarker.cpp 主程序
CnComm.h 网上下载的cncomm类,没改动
ClientComm.h 继承cncomm类,用于处理串口发送和文件发送
BmpFile.h bmp文件处理类
arduino部分,原打算可以灰度打印的,后来发现控制火候太难,所以放弃了。这部分代码有个给0-F16个灰度值设定不同脉冲间隔时间的地方,统一设定后,没有删除。大家见谅。另外,没有步进电机也能给arduino装上这个程序,用来参考arduino如何跟pc程序通讯也是可以的。
(2.29 KB, 下载次数: 103)
01:19 上传
点击文件名下载附件
还行,挺大个头的
楼主你的手枪钻固定的工具不错啊,有购买的连接吗?我也想买,请PS我,谢谢啦!!
楼主辛苦·谢谢楼主分享!
G3K 发表于
楼主你的手枪钻固定的工具不错啊,有购买的连接吗?我也想买,请PS我,谢谢啦!!
https://item.taobao.com/item.htm?spm=a1z09.2.0.0.B0SPXO&id=&_u=bnmrnj5cbd1
本帖最后由 canyonliu 于
17:42 编辑
这周业余时间研究了下grbl,g代码等知识,感觉有所收获,周末把软件配齐,控制自己的雕刻机。完成了一件自家女儿喜欢的作品,。发出来大家看看哈。
lh1.jpg (370.62 KB, 下载次数: 0)
17:13 上传
材质是一块桐木块10cm见方,图片是6cm。
说说我的制作过程:
1,找图,ps切一下,切出自己想要的内容。(问女儿刻什么,女儿说能不能刻个鹿晗。。。)
lh.jpg (83.67 KB, 下载次数: 0)
17:35 上传
2,导入inkscape,位图转路径
lh01.gif (17.11 KB, 下载次数: 0)
17:16 上传
3,可以使用inkscape的工具切掉一些不需要的路径(自动转换的有时路径太多,会导致打印时间太长,有些自动转换出来的路径,删除后,打印效果甚至更好,这个要自己把握。
4,导出成nc文件(使用单独安装的inkscape插件,这个网上很多,我就是网上下载的)
lh03.gif (9.67 KB, 下载次数: 0)
17:20 上传
5,在gbrl conroller里开始打开nc文件后启动打印过程。
lh04.gif (39.37 KB, 下载次数: 0)
17:20 上传
6,打印出来的只有线条,根本看不出人脸,没关系,我用了一个记号笔把黑色部位给涂个色,搞定了^!^
lh2.jpg (409.63 KB, 下载次数: 0)
17:22 上传
最后来个特写,能看出来激光刻的线条了吧?
lh03.jpg (351.66 KB, 下载次数: 0)
17:42 上传
下边总结下这周学到的一些软件的使用
1,grbl,我下载了0.8c的hex文件,用arduino builder下载到arduino上。(网上资料多)
2,grbl controler可以连接写好固件的arduino,接好线,可以手工输入gcode控制雕刻机
比如g0x10y-10,就是让x轴移动10毫米y轴反向移动10毫米。等等。
3,inkscape作图,及导出成扩展名是nc的gcode文件,这个是最考验功底了。我也是新手,以后大家共同学习。
其实作图软件还有不少,比如artcam什么的。暂时还没有时间去学习。感觉激光雕刻是2d的雕刻机,学好inkscape对于diyer就够了。
激光用铝合金架和57的步进电机,太奢侈了,这配置可以加个Z轴变雕刻机了
这两个滑台价格不便宜啊,楼主土豪
支持支持支持支持
本帖最后由 wwwymq 于
11:08 编辑
真是土豪,这一堆都上千了,直线模组,博世的电钻,钻架。。。
楼主您好我在把Inkscape转换成cn文件时总是报错qq号&&谢谢了
大哥哥,能把您做的这一套作品,要在arduino买的东西列个清单,包括铝板、丝杆等在哪买?有心想学习这些东西,想照葫芦画瓢学着玩,帮个忙指点一下。衷心的谢谢您!qq:& &
Powered by}

我要回帖

更多关于 济南雕刻机 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信