开源改变世界!!

提供有条件地包含用户主轴曲线 #247

推推 grbl 2年前 (2023-01-29) 112次浏览
关闭
owenduffy 打开了这个问题 2019 年 10 月 10 日 · 4条评论
关闭

提供有条件地包含用户主轴曲线#247

owenduffy 打开了这个问题 2019 年 10 月 10 日 · 4条评论

注释

提供有条件地包含用户主轴曲线 #247
欧文达菲 评论了 2019 年 10 月 10 日  

请描述您希望实现的功能

提供有条件地包含用户源文件 spindle_curve.h 以重新计算 rpm 以线性化响应。

为什么您认为这会改进 Grbl_ESP32?
允许用户在不接触托管源模块的情况下进行修改

这个功能会出现在很多用户面前吗?
大概。

diff --git a/Grbl_Esp32/spindle_control.cpp b/Grbl_Esp32/spindle_control.cpp
index 1886983..4b36600 100644
--- a/Grbl_Esp32/spindle_control.cpp
+++ b/Grbl_Esp32/spindle_control.cpp
@@ -111,6 +111,11 @@ uint32_t spindle_compute_pwm_value(float rpm)
     // Compute intermediate PWM value with linear spindle speed model.
     // NOTE: A nonlinear model could be installed here, if required, but keep it VERY light-weight.
     sys.spindle_speed = rpm;
+#if defined __has_include
+  #if __has_include("spindle_curve.h")
+    #include "spindle_curve.h"
+  #endif
+#endif
     pwm_value = floor((rpm-settings.rpm_min)*pwm_gradient) + SPINDLE_PWM_MIN_VALUE;
   }
   return(pwm_value);
@@ -169,4 +174,3 @@ void spindle_set_enable(bool enable)
 		#endif
 	#endif
 }
-

示例用户 spindle_curve.h(不包含在托管源中)。

//optional user customisation of spindle PWM curve
//needs consistent settings.rpm_min and settings.rpm_max
//use block to make vars private
    {
//    static long spdcuri[]={0,24000,1000000};
//    static float spdcurm[]={0,1,0};
//    static long spdcurb[]={0,0,24000};
    static long spdcuri[]={1000,3360,5760,24000,1000000};
    static float spdcurm[]={0,0.1412,0.325,0.8872,0};
    static float spdcurb[]={0,1013,382,-2592,24000};
    int i;
    for(i=0;i<sizeof(spdcuri)/sizeof(spdcuri[0]);i++){
      if(rpm<spdcuri[i]){
        rpm=spdcurm[i]*rpm+spdcurb[i];
        break;
        }
      }
    }

测试和工作。

欧文

提供有条件地包含用户主轴曲线 #247 owenduffy 添加了 增强 新功能或要求标签 2019 年 10 月 10 日
提供有条件地包含用户主轴曲线 #247

我可能会解释文件命名为 .h 的原因是为了绕过 Arduino IDE 构建东西的方式。

提供有条件地包含用户主轴曲线 #247

一篇扩展实施的小博客文章:CNC6040 路由器项目 – 主轴速度线性化

提供有条件地包含用户主轴曲线 #247
所有者

下周我会看看这个。我想我会使用 #defines 和 cpp 文件将其重新格式化为更像 Grbl 的样式。我也会考虑实施#define ENABLE_PIECEWISE_LINEAR_SPINDLE

提供有条件地包含用户主轴曲线 #247 bdring 提到了这个问题 2019 年 10 月 13 日
提供有条件地包含用户主轴曲线 #247
所有者