lesson 3: 代码实现—整体架构

一、整体说明

Diego 3dof的代码是移植的开源3D打印机项目Marlin的源代码,读者感兴趣可以访问Marlin项目github获取其源代码,Marlin项目由于要考虑适配不同的控制器,所以代码比较复杂,这里对其做了大幅的修改删减,已符合Diego 3dof的控制要求,修改后的文件结构如下图:

修改后一共剩余12个文件,且可以在Arudion UNO上运行,资源占用情况如下所示:

资源占用情况比较理想,如果资源占用情况比较高的情况下Arduino IDE会预警,可能在运行中有不可预知的不稳定现象。

同时由于diego3轴码垛和3D打印机的逆解不同,也做了相应的修改,后面会详细说明。

二、文件功能说明

1. Configuration.h 和Configuration_adv.h

这两个头文件中主要是针对运动学逆解,及马达控制的一些默认配置。

2. pin.h

这个头文件中,定义了Arduino的pin功能的对应关系

3. diego.h

这个头文件中定义了通用的函数及宏定义

4. planner.h 和 planner.cpp

这两个文件中主要是针对速度规划的函数、数据结构及运动学逆解运算。

5. stepper.h 和 stepper.cpp

这两个文件中主要是针对马达的控制算法

6.motion_control.h 和 motion_control.cpp

这两个文件中定义了运动规划的相关函数及数据结构

7. speed_lookupdate.h

这个文件中定义了在算法中用到的速度查询数组

8. diego_3dof.ino

arduino项目的主文件,功能包含,对串口命令的接收、g代码的解析、代码的初始化和主循环。

Marlin的代码在网上有非常多的资源可以参考,在Diego-3dof中主要修改了其配置文件中Pin的定义,及码垛的逆解算法,下一章中将介绍逆解算法的实现。
源代码请见https://github.com/diegorobot/diego-3dof
 

 

Leave a Reply

Scroll to top
%d bloggers like this: