2.2 模块介绍

本项目主要包括主程序模块、串口通信模块、指令接收及指令队列模块、设置及存储模块、状态探测模块、步进电机控制模块、轴运动控制模块、G代码处理模块和绘图模块。下面分别给出各模块的功能介绍及相关代码。

2.2.1 主程序模块

该模块提供了各模块之间的联系,按流程调用各模块。

1.功能介绍

library.h为项目的头文件,包括需要的标准库文件和各个模块的库文件。main.c对系统进行初始化,调用串口通信、设置步进电机等模块的初始化函数,然后调用protocol_main_loop()等待接收指令。cpu_map.h对ATmega328p进行映射,方便调用寄存器。shared.h和shared.c定义了系统中使用到的公共定义、变量和函数。

2.相关代码

2.2.2 串口通信模块

使用上位机Grbl Controller与Arduino开发板进行通信,并传输指令以及G Code控制步进电机的行为。

1.功能介绍

serial.h和serial.c通过RX/TX串口传输指令。

2.相关代码

2.2.3 指令队列模块

通过Grbl Controller发送系统指令和控制指令,Arduino开发板接收到指令后放入指令队列顺序执行。

1.功能介绍

system.h和system.c接收系统指令,参考Grbl控制命令。protocol.h和protocol.c接收控制指令,包括运行、暂停、取消等指令,参考Grbl控制命令。planner.h和planner.c指令不实时执行,先进入指令队列中,按顺序进行执行。

2.相关代码

2.2.4 设置及存储模块

设置串口连接、步进电机相关参数,并存储到EEPROM内存中。

1.功能介绍

config.h为串口连接速率等属性设置,defaults.h为默认的规格设置,settings.h和settings.c为应用设置,eeprom.h和eeprom.c为内存存储设置。

2.相关代码

2.2.5 状态探测模块

探测步进电机当前状态,以检验是否正常工作。

1.功能介绍

通过probe.h和probe.c获得当前激光笔头的位置。

2.相关代码

2.2.6 步进电机控制模块

根据系统指令和控制指令驱动步进电机。

1.功能介绍

stepper.h和stepper.c用来驱动步进电机的工作模式。

2.相关代码

2.2.7 轴运动控制模块

根据状态探测,控制X轴和Y轴的工作。

1.功能介绍

motion_control.h和motion_control.c根据接收的指令控制轴运动,spindle_control.h和spindle_control.c控制主轴的运动。

2.相关代码

2.2.8 G代码处理模块

G代码是3D模型进打印机前经过切片器处理而成的一种路径文件,指导固件控制。本模块用以解读G代码。

1.功能介绍

gcode.h和gcode.c将路径文件转化为步进电机的运动指令。

2.相关代码

2.2.9 格式化输出字符模块

接收Grbl Controller的指令,进行格式化。

1.功能介绍

print.h和print.c将使用的数据类型改为项目特殊的格式。

2.相关代码