【燃烧吧 切割机】 自制微型激光切割

2014-02-1725.6万
精华项目
AI 快速预览详细 收起
本文介绍了如何使用Arduino和Grbl 0.9制作一个大于50mm X 50mm工作区域的微型激光切割机。项目包括详细的材料清单、组装步骤以及软件设置。最终完成品能够切割纸张、雕刻塑料和木头。文章还提供了关于步进电机和风扇使用的具体建议,帮助用户顺利完成项目。
自从苹果的原装键盘罢工之后,就入了机械键盘的大坑,无奈除了少数几个牌子有for Mac版本的之外,大多数键盘都是for PC,甚至套装键帽也没有苹果版的,command键、option键没有怎么能忍受,于是想试试自己能不能烧制几个,想起来半年前看到 Instructable 上有人用旧光驱做出了微型激光雕刻机,于是准备制作自己的激光雕刻机。

仔细看了几篇文章,最后选择了SilverJimny的The MicroSlice的方案作为这次的主要参考,因为这个方案完成度很高,尤其是SilverJimny给出了完整的机架CAD图纸,而且做得很漂亮。不过制作说明写得还有一些含糊,制作的过程中基本也是一边尝试一边摸索,也走了些弯路,我会尝试在这篇帖子中讲清楚。

最终完成品功能:
大于50mm X 50mm 的工作区域;
能够切割纸张、雕刻塑料、木头;
所用到软硬件都是开源的;(Arduino + Grbl 0.9)
花最少的钱办最多的事;
可扩展,比如用树莓派,或者增加第三轴用于调焦;
【燃烧吧 切割机】 自制微型激光切割图13

!!第一处注意点:
arduino不论新旧(我用的Duemilanove,你也可以用Uno)不过烧录Grbl控制程序(0.8版本以上)对容量有要求,我们要使用328P的芯片;
Grbl官方build的版本可能无法直接用(原因后面会说明),需要改源代码重新编译或者使用我编译好的版本;



Step1:准备材料 (这里列出原清单,逐一说明,链接全部改为某宝)

1 x Arduino板  (uno/ Duemilanove都行 328P芯片)

1 x X 轴马达;
1 x Y 轴马达;
1 x 两路继电器 (我买的继电器低电平吸合,高电平释放,这和Grbl里面的设定刚好是反的,因此后面要改源代码);
2 x Easydriver板 (这货比较贵,买国产的就行,其实也不一定非用easyDriver,比如我后来发现sparkfun的 auto driver板子更牛逼,多达128微步,不过换其他板子需要改机架安装孔位,8微步是必须的,如果考虑更便宜的国产板要把这个要素考虑在内);
2 x 5v 稳压模块
2 x 散热片 (散热片没有现成尺寸的,需要自行切割,后面会说明)
1 x 45x45x10 风扇 (12v)  (45X45的风扇已经比较难少见了,我建议是买50X50的,改一下机架)
4 x 微动开关 (带钢片)
9 x 铷磁铁棒  (这个用处不大,可以忽略)
4 x 橡胶脚垫  (可以忽略,或者用别的垫片自行切割)
5 x M3机箱手拧螺丝
1 x 激光二极管 (我用的是三菱ML101F27,研究了很久,这是我能找到的最便宜的,功率也够大的激光二极管)
1 x 激光模组 45mm
1 x 激光驱动板
1 x 激光镜头 (一般模组自带的是塑料镜头,不够好)
1 x 4mm 铝管(内径3mm, 长度100mm就足够用了)
2 x 3mm x 150mm 钢棒
1 x 3mm x 100mm 钢棒 (这个一定要很直很光,我建议买回来自己用手锯切割,因为代割不准)
17 x M3 花牙压板螺母(SilverJimny用的那种国内没的卖,找的替代品,感叹一下国产紧固件落后人几十年)
6 x M2 沉头螺丝 (6mm) (沉头螺丝用来装光驱步进电机)
6 x M2 螺母
20 x M3 螺母
6 x M2 平头螺丝 (6mm)  (用来装钢棒两端的固定木片)
8 x M2 平头螺丝 (8mm)  (平头螺丝装微动开关)
4 x M3 尼龙螺丝 (6mm)    (用来固定easydriver等板子)
4 x M3 50mm 铜柱
7 x M3 内六角螺丝 (8mm)
8 x M3 3mm 尼龙隔离柱
2 x 机架激光切割加工

另外我补充一下SilverJimny没列出来但是必要的零件,工具:

快干白乳胶;
220V转12V变压器(输出电流最好能在1A以上,因为arduino的5V电压是拖不动步进电机的,需要通过DC Jack额外供电)
4 x M3 16mm螺丝(用于安装风扇)
铝箔(淘宝可以买到带背胶的,一定要光面,越光洁对激光的反射越强);
杜邦线、杜邦头(公母都要);
杜邦头塑料壳(1P、2P、3P、4P都需要一些,当然你也可以只用1P,只是到时候接线更乱些);
单排、双排插针都需要一些(焊在easydriver上,有些店家有送,不过仍然需要一些额外的双排插针);
1.0mm的4P插座(用来接步进电机,不用的话焊线会很考验手工);
尼龙扎带几根;
3M导热胶(用来粘散热片);
一个5mw的激光头(这个用来测试的时候用,因为大功率的激光很危险,必须确定一切妥当之后再安装,你也可以用led代替,不过需要串接个降压电阻);
激光防护眼镜(便宜的那种只能说聊胜于无,300左右的我没买,最后家里找了副Speedo泳镜(银闪闪带反射镀膜那种)+ 绿色墨镜(吸收红光)= 双重防护 ,基本OK了,调焦的时候需要直视激光,完了只要不看就可以了,实在不想买,也可以用相机或摄像头来间接观察激光,切记不可以用眼睛直接观察激光,伤害非常大,会造成白内障!!!

工具:
水口钳、剥线钳、压线钳(压杜邦头)、钢锯、电烙铁、电钻、微型虎台钳(最大开口要5cm以上,要夹在桌子上的那种,不要吸盘式的)
模型用强力夹(20只是必须的,如果有几个F夹更好);


这里写得比较啰嗦,后面有不明白的地方可以回过头来再看看,你会觉得有用的;

Step2:少年,来拼模型吧
【燃烧吧 切割机】 自制微型激光切割图2
加工好的机架木片,3mm航空椴木,其实到手就可以拼装了,但是...等等…这白白的木色怎么能够衬托出某屌的高大上,喷个漆再说。

【燃烧吧 切割机】 自制微型激光切割图1
喷漆选了亚光黑,对手艺要求低效果也好,右边这种喷罐需要两听,喷一遍—晾干,双面来回三遍;记得喷的时候背面用胶带贴好,免得零件翻面时候掉出来,完美控也可以先拼好再上色;

【燃烧吧 切割机】 自制微型激光切割图4


【燃烧吧 切割机】 自制微型激光切割图5

从最简单的地方下手吧,先把上面的部分找出来拼好,用胶水固定,注意除了主体4片,还有两小片粘在下方背面,如下图所示。

【燃烧吧 切割机】 自制微型激光切割图3

接下来拼装龙门架,因为有些步骤漏掉没拍,所以借用一下SilverJimny的图
【燃烧吧 切割机】 自制微型激光切割图7


【燃烧吧 切割机】 自制微型激光切割图6


这里有两点需要注意:
第一:安装光驱步进电机的那两颗沉头螺丝,安装好以后一定不能凸出来,否则滑块容易被卡住,解决的办法:买个沉头钻,把沉头孔打深一点,不够再把螺丝磨平一点;
第二:看到龙门下部的那两个圆孔了么?铝管就是装在这里的,果断插入,铝管一定要能够顺滑的在钢棒上滑动,如果内孔不够光滑,可以上一点油,套在钢棒上打磨几下,打到光滑为止;

Step3:上部工作台
【燃烧吧 切割机】 自制微型激光切割图8
这部分没有太多需要说明的,注意一下中间两片梁的方向就可以了;

【燃烧吧 切割机】 自制微型激光切割图9
到这已经可以把上半部分拼起来看一下效果了,注意不要忘记安装档片;

Step4:切割台
【燃烧吧 切割机】 自制微型激光切割图10

切割台最简单也最烦,两片用胶水黏住就好了,要覆盖上一层铝箔用来反射激光,防止激光把机架烧断,这里蜂窝状的结构有点麻烦,只能用小刀一点点刻出来,建议先贴好铝箔,再黏合两片板,这样刻的时候方便点。嫌麻烦的可以不割,优点是保护性其实更好,缺点是不够拉风;

【燃烧吧 切割机】 自制微型激光切割图11
上了土豪金是不是立刻高大上了很多;

Step5:稳压模块和散热片
【燃烧吧 切割机】 自制微型激光切割图12
注意模块插针要自行焊接的,焊好以后把背面多出来的引脚用水口钳剪掉,并且用锉刀打平以便粘散热片;
单耳散热片没有现成的买,基于花最少的钱办最多的事原则,买了两片45mmX45mm的金色散热片,用手锯锯成合适的大小,电钻打一个M3大小的眼,用3M导热胶带粘在了模块背面;(粘之前务必和板子对一下孔位)

Step6:风扇
【燃烧吧 切割机】 自制微型激光切割图14
风扇比较简单 螺丝上好,电源线缠一下用困扎带固定,接线端火线做一个杜邦公头,零线一个杜邦母

【燃烧吧 切割机】 自制微型激光切割图15


Step7:底座
【燃烧吧 切割机】 自制微型激光切割图16
底座做好是分离的两个部件,如图所示,然后通过下图的铜柱拧合在一起

【燃烧吧 切割机】 自制微型激光切割图18【燃烧吧 切割机】 自制微型激光切割图23
首先把小圆环全部理出来, 按孔大小分好类,一共是4种,其中4个刚好可以嵌入压板螺母孔径最小的圆环拿出4个放到旁边(备用品),其余的分成4组

【燃烧吧 切割机】 自制微型激光切割图19
剩下的压板螺母全部嵌到板子里,这些螺母是用来固定电路板模块的

【燃烧吧 切割机】 自制微型激光切割图17
看一下数量的分配

【燃烧吧 切割机】 自制微型激光切割图20
小圆环胶合的时候可以用我们的钢棒套一下来辅助定位,这样粘的准一点

【燃烧吧 切割机】 自制微型激光切割图21

【燃烧吧 切割机】 自制微型激光切割图22
把风扇支架插上去试一下,如果刚好能卡进去那就对了

再对一下,最后完成的是这样分开的两块板,注意上面那块板上有4个圆环,刚好铜柱可以通过去,这4个环之起到美化作用,没有结构意义

Step8:接线(这部分大多数贴都没讲清楚,加上一些非常规的接法,导致我走了不少弯路,我会尽量讲细一点)
【燃烧吧 切割机】 自制微型激光切割图25

【燃烧吧 切割机】 自制微型激光切割图24

【燃烧吧 切割机】 自制微型激光切割图26


以上接线图只看一下效果,没有什么实质性的意义,拍再多也讲不清楚,我下面会画一个原理图,不过首先让我们明确一下几个要点:
1. 我们买到的步进电机额定电压是4~6V,但是!!我们给easyDriver驱动板供电是接12V,你没看错,有人说这样接不会烧电机么?是的,如果电机不走的情况下直接12V会很烫并且容易烧毁,但是easyDriver有个enable针脚,可以控制只在运行的情况下供电,算是超频使用了,如果你非要接5V供电,结果就是装好后无法拖动机架,很容易卡住、失速;(不过切记测试板子的时候不要接12V,除非你已经接好enable针脚)
2. 风扇额定电压是12V,但是我们是接到5V的稳压模块上的,也就是降频使用,很奇怪吧,不过不要怀疑,就是这么接的,因为风扇全速会把纸吹跑,我们只要一点点风降温就够了;
3. 两个稳压模块的输入端都是接12V,降压到5V使用,这样做的原因是为了获得更大的输出电流,激光头和风扇马达在这个项目里也算是大功率设备;
4. 总结一下, 除了继电器的输入电压是5V,其他所有负载接的都是12V(风扇,激光接的是12V降压后的5V),12V电压如何获得?arduino外接变压器,Vin针脚输出是12V;

【燃烧吧 切割机】 自制微型激光切割图27

【燃烧吧 切割机】 自制微型激光切割图28
如果对接线还有不清楚的地方, 可以看一下Grbl的wiki

最后说明一下easyDriver的8微步,easyDrive通过MS1,MS2的高低电平来细分步进电机的微步,8微步也就是将原来的一步细分为8步,获得更精确的控制,比如我们用的电机一转20步,现在变成一转160步。幸运的是,easyDriver板子默认就是8微步,我们不需要再进行额外的设置,如果有兴趣的可以看一下easyDriver官网的说明,低的细分会获得更高的扭矩(电机力气更大,不过这个项目中我们已经通过接12V超频使用来获得更大扭矩了)。

Step9:设置软件

这台机器,我们使用Grbl v0.8来做控制(烧进Arduino)。
还需要一个配套的客户端软件,通过串口向Grbl发送G-code代码。
最后我们还需要用一套工具来画图,并且把图转为G-code代码。

整个的流程是这样:
矢量图——> 转为G-code——> 通过串口发送到Arduino——>Grbl解析代码并且控制机器切割

接下来我们一步步讲解:
【燃烧吧 切割机】 自制微型激光切割图32
1. 将Grbl烧录进Arduino:
我这里用的0.8c版本,截至写稿时最新的是0.9Beta,也OK(0.9主要优化了弧线的绘制),只不过参数稍有不同
要烧录Arduino,需要用到Arduino IDE, 各位应该都装了,没有的请去官网下载

烧录之前,确保激光头已经断开(我的建议是大家一直使用5mw的低功率激光头,等最后全部搞好没有问题了再换成大功率的)

Grbl wiki 详细说明了如何烧录预编译好的头文件
树莓派的使用者可以参考Zapmaker的在树莓派上安装Grbl
之前提到过,官方预编译的头文件在我们这个项目不好用,需要改源码,附件中我提供了改好的头文件

【燃烧吧 切割机】 自制微型激光切割图31

【燃烧吧 切割机】 自制微型激光切割图30


2. 客户端工具有两个,我们实际使用Universal GcodeSender,不过GrblController有一个不错的参数面板,另外spindle on可以简单的控制激光开关,我们测试和设置的时候用这个(可惜这个软体有bug,Gcode的速度代码认不出,总之我们只用它来调试)
GrblController连上aduino后,点Advanced——>Grbl Setting 我们可以看到Grbl的初始化参数如下:
$0=755.906 (x, step/mm)
$1=755.906 (y, step/mm)
$2=755.906 (z, step/mm)
$3=30 (step pulse, usec)
$4=500.000 (default feed, mm/min)
$5=500.000 (default seek, mm/min)
$6=28 (step port invert mask, int:00011100)
$7=25 (step idle delay, msec)
$8=50.000 (acceleration, mm/sec^2)
$9=0.050 (junction deviation, mm)
$10=0.100 (arc, mm/segment)
$11=25 (n-arc correction, int)
$12=3 (n-decimals, int)
$13=0 (report inches, bool)
$14=1 (auto start, bool)
$15=0 (invert step enable, bool)
$16=0 (hard limits, bool)
$17=0 (homing cycle, bool)
$18=0 (homing dir invert mask, int:00000000)
$19=25.000 (homing feed, mm/min)
$20=250.000 (homing seek, mm/min)
$21=100 (homing debounce, msec)

$22=1.000 (homing pull-off, mm)

我们最关注的两个参数是 $0 和 $1 这两个参数决定X和Y轴的每mm步长,如果设置不正确,那我们烧出来的图片就和设定尺寸不一致
这两个参数如何计算?
步数 = 每转步数 X  微步数 / 蜗杆螺距
比如我们的电机是20步每转,微步数是8,螺距是3mm,那么:
20 X 8 / 3  = 53.33333333 就是我们得到的结果;

其他的设置主要是空行程时候的速度,各项功能的开关及掩码等等不一一赘述,有兴趣深入的同学可以去Grbl wiki 进一步了解,总之将参数设置如下:
$0=53.333 (x, step/mm)
$1=53.333 (y, step/mm)
$2=53.330 (z, step/mm)
$3=10 (step pulse, usec)
$4=2000.000 (default feed, mm/min)
$5=500.000 (default seek, mm/min)
$6=28 (step port invert mask, int:00011100)
$7=25 (step idle delay, msec)
$8=10.000 (acceleration, mm/sec^2)
$9=0.050 (junction deviation, mm)
$10=0.100 (arc, mm/segment)
$11=25 (n-arc correction, int)
$12=3 (n-decimals, int)
$13=0 (report inches, bool)
$14=1 (auto start, bool)
$15=0 (invert step enable, bool)
$16=1 (hard limits, bool)
$17=1 (homing cycle, bool)
$18=0 (homing dir invert mask, int:00000000)
$19=25.000 (homing feed, mm/min)
$20=200.000 (homing seek, mm/min)
$21=100 (homing debounce, msec)
$22=2.000 (homing pull-off, mm)

【燃烧吧 切割机】 自制微型激光切割图29
3.要画图并生成G-code,最好的工具是inkspace+laserengraver插件(件附件),画图你可以用任何矢量软件,只要能存为SVG就好了,然后在inkspace里面输出,附件里我给了一个转好的样例文件供下载;

4.修改Grbl源代码
因为Grbl默认是3轴,而我们的机器只有2轴,因此z轴的代码可能会引发一些问题(比如归零的时候卡住了之类)因此我们需要改一下1.下载 Grbl源文件
2.解压
3.用你喜欢的文本编辑器打开config.h文件

4. 找到以下代码:
#define HOMING_SEARCH_CYCLE_0 (1<<Z_AXIS)
#define HOMING_SEARCH_CYCLE_1 ((1<<X_AXIS)|(1<<Y_AXIS))

改为:
// #define HOMING_SEARCH_CYCLE_0 (1<<Z_AXIS)
#define HOMING_SEARCH_CYCLE_0 ((1<<X_AXIS)|(1<<Y_AXIS))

5. 找到一下代码:
#define HOMING_LOCATE_CYCLE   ((1<<X_AXIS)|(1<<Y_AXIS)|(1<<Z_AXIS))
改为:
#define HOMING_LOCATE_CYCLE   ((1<<X_AXIS)|(1<<Y_AXIS))
6. 保存

第二处需要修改的部分取决于你用的继电器,我买到的继电器是低电平触发,这和Grbl配置相反,
有的人想,只要接线改接到常闭就好了呗?答案是不行,如果这样接的话,我们设想一下,arduino通电前,因为整个系统没有电,激光不亮,通电瞬间,因为磁吸是有延时的,激光先亮,然后继电器吸合了,常闭端变成开路,激光灭。
也就是说插上usb口的瞬间,激光会亮一下,这一下足以把你的纸烧个洞,完美控当然不能忍;
废话不多说还是改代码:
1. 文本编辑器打开 spindle_control.c文件
2. 把所有出现 1<<SPINDLE_ENABLE_BIT  和 ~(1<<SPINDLE_ENABLE_BIT) 的地方相互交换一下;
3.保存


将改好的源代码重新编译

Step10. 最后补充一下激光头的安装
【燃烧吧 切割机】 自制微型激光切割图34

要测一下激光二极管正负极,这个用2节5号电池实际接一下就可以了,如果你和我使用的是同一型号,那么正负极如图所示

【燃烧吧 切割机】 自制微型激光切割图33
二极管可能不太好压进管内,正确的压法是这样,所以你看到虎台钳的必要性了

【燃烧吧 切割机】 自制微型激光切割图35
接线和焊接,注意你买的模组长度要能够容纳下驱动板


如果所有步骤都正确,到这里,所有的工作就都完成了,享受烧纸、刻木头的乐趣吧!!


有问题在这里回答:(占位)

Gcode Sample.zip

9.37 KB, 阅读权限: 10, 下载次数: 6451

Gcode范例文件

laserengraver插件.zip

39.9 KB, 阅读权限: 10, 下载次数: 4612

laserengraver插件

modded_grbl_hex.zip

26.06 KB, 阅读权限: 10, 下载次数: 4852

修改好的Grbl头文件

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(148)
莫凡老师
莫凡老师
为什么官方我发啥都会被封
IOHDHQ
IOHDHQ
楼主,这激光头功率多大?
卢奕鹏
卢奕鹏
图纸在哪里
图纸在哪里
图纸在哪里
图纸在哪里
图纸在哪里
JOVI
JOVI
学习学习
三春牛-创客
三春牛-创客
居然是14年的作品!!
三春牛-创客
三春牛-创客
赞赞赞赞赞!!
三春牛-创客
三春牛-创客
厉害厉害
猪爱吃面
猪爱吃面
楼主你是人吗? 我7年后才发现了您 我以前失去了您 好像失去了一切 来吧 我的 今夜为你
Amos Young
Amos Young

非常好的文章,以后可以用到
耘想
耘想
评论内容
激光小强
激光小强
好久前的帖子啊,不过真的很详细
绝罅
绝罅
6666666666666
绝罅
绝罅
666666666666
绝罅
绝罅
6666666666
AC哈斯太
AC哈斯太
我可以直接像你购买整套套件吗
qq376911787
qq376911787
好厉害
三春牛-创客
三春牛-创客
自制的,不错
三春牛-创客
三春牛-创客
厉害厉害
NIKO
NIKO
什么时候这么小的激光器功率能上来就好了 查了一般几百块的 都不能在金属上留下印记 一般都是木质或纸质的 好像黑色不行
AC哈斯太
AC哈斯太
我可以直接像你购买成套套件吗,或者成品