Delta3D打印机代码解读及调机心得(四) 

3D打印技术 /[固件]
2016-02-21 10:15
四、Rostock运动分析
下面是Rostock的结构示意图,分析的第一步是简化整个结构,这里就需要将XY电机的两个竖轴投影到Z轴的平面上,下图中红色线框画出来的就是z轴的平面,同时我们可以不考虑XY电机的推杆的运动情况,因为可以XY电机轴的运动可以通过投影在z轴平面上的虚拟轴笛卡尔空间变换转换回去的。
1.png

投影好了以后接下来把z轴放平,那么单独考虑z轴情况,这个情况是在坐标原点的z电机轴与推杆的情况。为了简化过程,鸭哥已经把z轴滑块,喷头平台都设定为0 了。那么,z电机轴方向便形成了一个三角形,推杆、radius和z轴电机上的电机坐标,这个时候三角函数出来啦! 推杆2 = radius 2+ 电机坐标 2 在这三角形中推杆是不变的,另外三角形始终都会是一个直角三角形。一定要记住这几个条件哦。
2.png

好,现在我们假设喷头只在x轴上运动,z轴y轴都不动。如果打印件的世界坐标移动dX距离,rostock需要考虑的问题就是怎么讲dX转换为z轴电机的移动距离了。下图就是用来表示这种情况。由于推杆长度是不变的,那么
推杆2 = radius 2+ 电机坐标 2  就变成下面这样
推杆2 = (radius +dX)2+ (电机坐标-dx) 2
Radius的距离换成destination[x],电机坐标换成delta[x]
     推杆2 = (destination[x +dX])2+ (delta[x-dx]) 2
3.png

Marlin中calculate_delta()这个函数其实就是算  
   推杆2 = (destination[x +dX])2+ (delta[x-dx]) 2
这个等式明白啦,打印件X轴和Y轴的运动分析就明白啦。
另外,再看看打印件z轴的运动分析,还是看看源代码

  delta[X_AXIS] = sqrt(delta_diagonal_rod_2
                       - sq(delta_tower1_x-cartesian[X_AXIS])
                       - sq(delta_tower1_y-cartesian[Y_AXIS])
                       ) + cartesian[Z_AXIS];
    Cartesian[z]是没有在sqrt函数里面的,而是直接加在delta[x]的值上面的。
所以,在调机的时候应该先调z轴,这里就是原因。因为在XYZ三个轴的坐标中只有Z轴是直接通过同步轮和电机脉冲就可以调准的。调准了z轴以后再调XY轴才是对的。
五、调机心得
下面是鸭哥的调机的一些心得,与大家分享一下。首先是调机的顺序:
1)选择同步轮可以选择GT2 20齿/40齿 。因为GT2是2mm齿距,整数齿可以使脉冲数为整数,同时也减少三角函数运算中浮点运算的压力,同时也简化自己的调整步骤。
2)调机时先调z轴运动方向的精度,这个是直接用同步轮和脉冲数就可以调好的。
3)z轴调好以后就调整x轴或者Y轴的,看看运动的路径是不是呈现平面状态,如果喷头运动路径是弧线这个时候就要调整radius了,增加或者减少radius的值来调整运动路径是一个平面
4)完成上述步骤以后就可以试打了,这个时候就可以看看XY轴的打印误差是多少了。如果杆长等硬件参数都比较准确的话那打印误差不会有多少的。如果XY轴有误差的话就要根据误差大小来等量调整radius这个变量。对应代码是
// Horizontal offset from middle of printer to smooth rod center.
#define DELTA_SMOOTH_ROD_OFFSET 175.0 // mm  //电机轴的圆半径

等量修改,比如X轴偏大0.1mm,那么 调整量就是175.0-0.1 = 174.9 了哦。这样反复几次就基本调好了。

Delta3D打印机代码解读及调机心得(一)
Delta3D打印机代码解读及调机心得(二)
Delta3D打印机代码解读及调机心得(三)
声明:3D打印资源库(3dzyk)内网友所发表的所有内容及言论仅代表其本人,并不代表3D打印资源库(3dzyk)观点和立场;如对文章有异议或投诉,请联系kefu@3dzyk.cn。
一只,懒猫...

作者其他文章

Delta3D打印机代码解读及调机心得(四) 
快速回复 返回顶部 返回列表