年前比较闲,在x宝捡垃圾时看到“微型步进丝杆电机”才2元一个,想想一直想DIY一个微型激光雕刻机,顺便学习运动控制相关的知识,于是果断下单买了10个,开始了激光雕刻机的爬坑之路。
本着低成本,低难度,高效率的态度,打算先尽可能使用模块搭建硬件,后期有必要的话再考虑画PCB。
设计目标
实现一个55mm*55mm(丝杆最长58mm)雕刻面积的激光雕刻机,其中激光模块可以更换为“笔”成为一个画图机。
材料选型
1.框架结构:采用亚克力拼装,配合螺钉、螺帽加固;
2.电机:丝杆电机、舵机;
3.电机驱动:采用开源3D打印机普遍使用的A4988模块;
4.手动控制:遥感模块;
5.主控:手头刚好有一块stm32f103最小系统;
6.电源:外部供电采用手头的12V2A适配器,电源稳压采用2596可调DC-DC稳压模块为单片机与4988提供5V;
7.其他:一些mos,开关,电容,线材、排针、各型号螺丝等。
工具准备
- 软件:
Pro/E:框架结构设计,干涉模拟,尺寸确定;
LaserGRBL:基于.net的开源激光切割软件,用于生成G代码;
Keil:集成开发环境;
Grbl:开源嵌入式G代码解释器与运动控制器,包含完整的前瞻性加速度控制,目前只支持Atmega 328,需要移植到STM32上(重点);
AD:设计电路。
- 硬件:
电烙铁、螺丝刀、游标卡尺、万用表等;
结构设计
关于机械结构设计,考虑成本、加工难度,采用亚克力切割拼装实现。因此需要设计出每一块亚克力的切割形状,并且再软件上进行装配,以保证各个连接处均的能吻合,同时进行运动模拟,保证运动过程中不会出现干涉等现象。
- 整体图:
- 步进电机:
绘制过程中必须保证,游标卡尺测量出的孔位,大小精确,以免后期安装出现问题,关于丝杆导程,暂时先按照大概量出的3mm计算,后期可以再代码上调整每毫米脉冲数。
- 亚克力连接处:
连接处采用榫卯结构,同时配合螺钉螺帽进行加固(图中螺钉未画出)。
- 滑台:
为了低成本实现滑台,这里采用尼龙(较好的自润滑性)作为滑块,使用镀洛的光杆作为滑轨,减少滑动过程中的摩擦。(Y轴采用同样结构)
硬件电路
由于配件多为模块,因此直接采用洞洞板搭建下,进行调试。
整体框图如下:
A4988驱动模块需要提供两种电源,其中12V用于步进电机。
- 整体布局如下
在焊接所有器件时,先对步进电机进行测试
简单编写了步进电机的驱动程序,发现步进电机运行一段时间后,电机温度较高,烫手,降低电机供电电压温度下降,但是扭矩下降,后期根据实际情况确定稳定工作的电压。
GRBL移植
Grbl是一款针对Arduino/AVR328芯片的嵌入式G代码解释器和运动控制器。
移植Grbl到stm32主要需要围绕定时器、GPIO、串口、中断、EEPROM等硬件部分进行修改,在移植之前,先了解下什么时G代码。
G代码
标准G代码是数控程序中的指令。一般都称为G指令。使用G代码可以实现快速定位、逆圆插补、顺圆插补、中间点圆弧插补、半径编程、跳转加工。可以直接用来驱动机床,各种控制系统,是一种数控行业标准。不同的数控系统,G代码规则会有所出入,但是基本指令基本相同,Grbl支持大部分G代码。
下面介绍几个常用的G代码指令:
1.G00 快速定位
功能:将刀具(这里指激光头)快速移动到指定位置
格式:G00 IP---(IP是刀具移动的终点坐标值)
例:从A点快速移动到B点,G00 X100 Y50
2.G01直线插补
功能:使刀具沿直线移动到指定的位置
格式:G01 IP---F---(IP是刀具移动的终点坐标值、F是刀具进给速度(这里指激光头移动速率))
例:从A点以500mm/min切削移动到B点,G01 X100 Y50 F500
3.G02(顺时针)、G03(逆时针)圆弧插补
功能:在指定的平面上使刀具沿圆弧移动到指定的位置
格式:G02(G03) IP---R(I--J--)F--(R: 是圆弧半径(大于180为-小于180为+)、I: 是X轴圆弧起点到圆心的增量值、 J: 是Y轴圆弧起点到圆心的增量值)
例:从A点以500mm/min切削移动到B点,G02 X100 Y50 R20 F500或G02 X100 Y50 I20 J0 F500
4.G28参考点返回
功能:以各轴的快速移动速度进行参考点位置定位
格式:G28 IP--
例:Z轴回零点,G28 Z0
5.G90绝对值指令
功能:绝对值指令让机器将坐标解释为绝对坐标
6.G91增量值指令
功能:增量值指令与绝对值指令相反,它让机器将坐标解释为相对坐标
7.M00程序停止
功能:程序停止后可以按循环起动键继续加工
8.M02程序结束
功能:程序结束后不可以继续启动加工,且程序停在当前位置
9.M30程序结束并返回
功能:程序结束后并返回到程序开头
10.M03主轴正转
格式 : M03 S-- (S:主轴转速(这里指激光功率))
11.M05主轴停止
功能:停止主轴转动(这里指关闭激光输出)
移植
年后事情多起来了,目前移植只完成了、定时器与GPIO,剩下的部分只能日后更新了。。。
2019-03-10 未完待续
期待博主开源!