开源改变世界

问题:每毫米步数:现实与代码 #592

推推 grbl 2年前 (2023-02-05) 216次浏览
打开
3 个任务中的第 1 个
JemandAnders 打开了这个问题 2022 年 9 月 3 日 · 19条评论
打开
3 个任务中的第 1 个

问题:每毫米步数:现实与代码#592

JemandAnders 打开了这个问题 2022 年 9 月 3 日 · 19条评论

评论

问题:每毫米步数:现实与代码 #592
安德斯 评论了 2022 年 9 月 3 日  

控制板

MKS DLC32 + DRV8825(或 TMC2209)

董事会供应商的帮助

  • 是的
  • 不适用

机器描述

标准笛卡尔绘图仪

配置文件

board: MKS-DLC32 V2.1
name: PenPlotter
meta: (01.09.2022) by JemandAnders (JJ)

kinematics:
  Cartesian:

start:
  must_home: false

stepping:
  engine: I2S_STREAM
  idle_ms: 250
  pulse_us: 4
  dir_delay_us: 1
  disable_delay_us: 0
axes:
  shared_stepper_disable_pin: I2SO.0
  x:
    steps_per_mm: 18.520
    max_rate_mm_per_min: 1000.000
    acceleration_mm_per_sec2: 25.000
    max_travel_mm: 345.000
    soft_limits: true
    homing:
      cycle: 1
      positive_direction: false
      mpos_mm: 0.000
      feed_mm_per_min: 100.000
      seek_mm_per_min: 200.000
      settle_ms: 500
      seek_scaler: 1.100
      feed_scaler: 1.100

    motor0:
      limit_neg_pin: gpio.36
      hard_limits: false
      pulloff_mm: 2.000
      stepstick:
        step_pin: I2SO.1
        direction_pin: I2SO.2

  y:
    steps_per_mm: 250.000
    max_rate_mm_per_min: 1000.000
    acceleration_mm_per_sec2: 25.000
    max_travel_mm: 40.000
    soft_limits: true
    homing:
      cycle: 2
      positive_direction: false
      mpos_mm: 0.000
      feed_mm_per_min: 100.000
      seek_mm_per_min: 200.000
      settle_ms: 500
      seek_scaler: 1.100
      feed_scaler: 1.100

    motor0:
      limit_neg_pin: gpio.35
      hard_limits: false
      pulloff_mm: 2.000
      stepstick:
        step_pin: I2SO.5
        direction_pin: I2SO.6:low

  z:
    steps_per_mm: 157.750
    max_rate_mm_per_min: 12000.000
    acceleration_mm_per_sec2: 500.000
    max_travel_mm: 80.000
    soft_limits: true
    homing:
      cycle: 0
      positive_direction: false
      mpos_mm: 0.000
      feed_mm_per_min: 300.000
      seek_mm_per_min: 1000.000
      settle_ms: 500
      seek_scaler: 1.100
      feed_scaler: 1.100

    motor0:
      limit_neg_pin: gpio.34
      hard_limits: false
      pulloff_mm: 1.000
      stepstick:
        step_pin: I2SO.3
        direction_pin: I2SO.4

i2so:
  bck_pin: gpio.16
  data_pin: gpio.21
  ws_pin: gpio.17

spi:
  miso_pin: gpio.12
  mosi_pin: gpio.13
  sck_pin: gpio.14

sdcard:
  cs_pin: gpio.15
  card_detect_pin: NO_PIN

control:
  safety_door_pin: NO_PIN
  reset_pin: NO_PIN
  feed_hold_pin: NO_PIN
  cycle_start_pin: NO_PIN
  macro0_pin: NO_PIN
  macro1_pin: NO_PIN
  macro2_pin: NO_PIN
  macro3_pin: NO_PIN

macros:
  startup_line0:
  startup_line1:
  macro0:
  macro1:
  macro2:
  macro3:

coolant:
  flood_pin: NO_PIN
  mist_pin: NO_PIN
  delay_ms: 0

probe:
  pin: NO_PIN
  check_mode_start: true

Laser:
  pwm_hz: 5000
  #L on Beeper / IN on TTL
  output_pin: gpio.32
  enable_pin: I2SO.7
  disable_with_s0: false
  s0_with_disable: false
  tool_num: 0
  speed_map: 0=0.000% 0=12.500% 1700=100.000%
# 135=0mA 270=5mA 400=10mA 700=16mA

user_outputs:
  analog0_pin: NO_PIN
  analog1_pin: NO_PIN
  analog2_pin: NO_PIN
  analog3_pin: NO_PIN
  analog0_hz: 5000
  analog1_hz: 5000
  analog2_hz: 5000
  analog3_hz: 5000
  digital0_pin: NO_PIN
  digital1_pin: NO_PIN
  digital2_pin: NO_PIN
  digital3_pin: NO_PIN

启动消息

[MSG:INFO: FluidNC v3.4.4]
[MSG:INFO: Compiled with ESP32 SDK:v3.3.5-1-g85c43024c]
[MSG:INFO: Configuration file:MKS_DLC32_21_XYZ2.yaml]
[MSG:INFO: Machine K40 Laser]
[MSG:INFO: Board MKS-DLC32 V2.1]
[MSG:INFO: I2SO BCK:gpio.16 WS:gpio.17 DATA:gpio.21]
[MSG:INFO: SPI SCK:gpio.14 MOSI:gpio.13 MISO:gpio.12]
[MSG:INFO: SD Card cs_pin:gpio.15 detect:NO_PIN]
[MSG:INFO: Stepping:I2S_stream Pulse:4us Dsbl Delay:0us Dir Delay:1us Idle Delay:250ms]
[MSG:INFO: Axis count 3]
[MSG:INFO: Shared stepper disable I2SO.0]
[MSG:INFO: Axis X (0.000,345.000)]
[MSG:INFO:   Motor0]
[MSG:INFO:     stepstick Step:I2SO.1 Dir:I2SO.2 Disable:NO_PIN]
[MSG:INFO:     Neg Limit gpio.36]
[MSG:INFO: Axis Y (0.000,40.000)]
[MSG:INFO:   Motor0]
[MSG:INFO:     stepstick Step:I2SO.5 Dir:I2SO.6:low Disable:NO_PIN]
[MSG:INFO:     Neg Limit gpio.35]
[MSG:INFO: Axis Z (0.000,80.000)]
[MSG:INFO:   Motor0]
[MSG:INFO:     stepstick Step:I2SO.3 Dir:I2SO.4 Disable:NO_PIN]
[MSG:INFO:     Neg Limit gpio.34]
[MSG:INFO: Kinematic system: Cartesian]
[MSG:INFO: Laser Spindle Ena:I2SO.7 Out:gpio.32 Freq:5000Hz Res:13bits Laser mode:On]
[MSG:INFO: Using spindle Laser]
[MSG:INFO: Connecting to STA SSID:HQ]
[MSG:INFO: Connecting.]
[MSG:INFO: Connecting..]
[MSG:INFO: Connected - IP is 192.168.42.28]
[MSG:INFO: WiFi on]
[MSG:INFO: Start mDNS with hostname:http://fluidnc.local/]
[MSG:INFO: SSDP Started]
[MSG:INFO: HTTP started on port 80]
[MSG:INFO: Telnet started on port 23]

用户界面软件

网页界面

发生了什么?

我正在尝试校准我的绘图仪,但每毫米的步数有问题。
您可以忽略配置文件中的所有内容,但 y 轴的配置除外。配置仍然是 WIP,但已经可以工作了(错误):-)

我的绘图仪的分辨率为每毫米 250 步。(带 5×0.8 毫米轴的 1.8 度步进器,整步)
当我在配置文件中使用这些值,并将轴移动超过 WebUI 10 毫米时,相应的轴移动超过 10 毫米。大约 13 毫米。
我使用 DRV8825 和 TMC2209 驱动程序测试了此行为。我还使用简单的 arduino 代码测试了我的计算。如果我使用 arduino 和相同的驱动程序,我计算的步骤是正确的。200 个脉冲 = 1 转 = 0.8 毫米距离/20 转 = 16 毫米距离 = 我正在测量的。
我错过了什么?有没有办法查看特定运动的计算步数?
测试版本 3.4.4 和 3.5.1

亲切的问候,
约阿希姆

其他信息

没有反应

问题:每毫米步数:现实与代码 #592
贡献者

Ich hab am 01.09.22 ganz sicher keine Config veröffentlicht!
Wenn schon, denn nimm meine “offizielle” Config und trag da deine Steps ein.
Aber 嘿,wenn du DER Winterscheidt bist,dann verzeih ich das ;)

问题:每毫米步数:现实与代码 #592
作者

对不起。:-)
Dein Name sollte da auch nicht mehr stehen。Ist korrigiert.

问题:每毫米步数:现实与代码 #592
贡献者

wie erwähnt,nimm meine config und ändere nur die Steps。
oder hats ein wichtigen Grund warum du I2S_STREAM nimmst?

问题:每毫米步数:现实与代码 #592

尝试 I2S_STATIC 看看是否有所不同

问题:每毫米步数:现实与代码 #592
作者

您好,
使用 I2S_STATIC,所有动作都是正确的。
我使用 I2S_STREAM 是因为 Wiki 说“I2S_STREAM 通常最适合大多数用户,除非使用动态速度调整的“主轴”。”

问题:每毫米步数:现实与代码 #592

MKS DLC32 板上 I2S 布线的信号质量可能不如 6 块板,我们仔细检查了这方面的设计。如果是这样,I2S_STREAM 的更快时序可能会导致步进脉冲出现错误边沿。但我只是在猜测。

问题:每毫米步数:现实与代码 #592

在校准旋转轴和度数到 .0 之间的映射时,我注意到了同样的问题steps_per_mm。不像通常使用丝杠等看到的 1:# 映射那么简单。

我注意到只要I2S_STREAMsteps_per_mm 中没有派系部分,一切都是正确的,即单位是 400.00。一旦您将一个派系添加到steps_per_mm我在旋转轴内出现位置错误并且它根本不是一个小错误,我们正在谈论一个巨大的错误。

我对内部运作没有真正的了解,但我想我会分享我的观察,这可能会引起“啊哈时刻”。因为将引擎更改为 I2S_STATIC 解决了我所有的问题。

问题:每毫米步数:现实与代码 #592

我注意到 I2S_STREAM 的一切都是正确的,前提是 steps_per_mm 中没有派系部分,即单位是 400.00。一旦您将一个派系添加到 steps_per_mm 中,我就会在旋转轴内出现位置错误,而且它根本不是一个小错误,我们说的是一个巨大的错误。

我正在尝试复制此行为。对于微步进 8,我将 steps_per_mm 设置为 8,移动 200 毫米,并获得 200 步/转电机的精确旋转一圈。将其设置为 9,我得到 9/8 的转速。正如预期的那样,8.5 介于两者之间。

但是 – 我正在使用串行终端设置 $/axes/x/steps_per_mm=WHATEVER ,并且在我进行更改后的第一步是非常错误的,而后续的是正确的。这很容易解释如下:内部机器位置是按步骤存储的。当您移动时,它会计算以毫米为单位的距离(new_pos_mm – old_pos_mm)。但是 old_pos_mm 必须计算为 old_pos_steps / steps_per_mm,并且由于您刚刚更改了 steps_per_mm,因此第一步 old_pos_mm 是错误的。

您可以观察到位置变化如下:

$10=1
ok
?
<Idle|MPos:3200.000,0.000,0.000|FS:0,0>
$/axes/x/steps_per_mm
$/axes/x/steps_per_mm=8.000
ok
$/axes/x/steps_per_mm=8.5
ok
?
<Idle|MPos:3011.765,0.000,0.000|FS:0,0>

如果 MPos 恰好为 0,则显然不会显示更改。

我不知道这是否解释了你所看到的。

我会继续尝试找到问题的重现。

问题:每毫米步数:现实与代码 #592

有趣的。我每次都上传一个新的配置,并在上传之间通过 Fuildterm 重置控制器(我没有意识到你可以通过终端修改这些参数)。

在我的例子中,通过查询的机器位置?会报告正确的距离,但步进器的实际移动是不正确的。我确实在我的测试中倒退了一个泡沫,G0 A0G0 A360回到“G0 A0”并且正向和反向转弯都会旋转相同的距离。IE 它将从一个位置开始——转一整圈,然后再转大约 45 度(我实际上没有测量这个,这显然是不正确的),然后返回到原来的起始位置。这是否表明问题(或误解)在移动之间持续存在?

问题:每毫米步数:现实与代码 #592

有一些参数可以随时更改,而许多参数则不能。特别是,引脚分配不能更改。动态更改不会持久,除非您使用 $cd=config.yaml 将更改的配置转储回文件 – 但我个人不喜欢以这种方式进行持久更改。我更喜欢在主机上编辑文件,所以我有一个副本,然后重新下载。

到目前为止,我一直在用 X 轴进行测试,看看它是否是一些深层次的问题。我会试试A。

问题:每毫米步数:现实与代码 #592
合作者
米奇布拉德利 评论了 2022 年 9 月 19 日  

我无法在 6 包上使用 I2S_STREAM 在 A 上复制非整数 steps_per_mm 的问题。我想我需要所有参数的设置的确切细节。

问题:每毫米步数:现实与代码 #592

我正在使用 MKS Tinybee 板,我遇到了相同的行为,如果我要求我的 Y 轴移动 10 毫米,它移动 13 毫米。有趣的是,我的 X 轴(使用相同的传输系统和 steps_per_mm)没有问题。我正在使用 I2S_STREAM,我将更改为 STATIC 并报告是否解决了问题。我已经确认所有步进驱动器 DIP 设置都是相同的,并且 Tinybee 上的 DIP 设置对于所有轴也是相同的。我之前使用 Arduino 以相同的 steps_per_mm 驱动 CNC,它是准确的。我正在使用外部驱动程序。

如果我可以协助追查问题,请告诉我!

问题:每毫米步数:现实与代码 #592
合作者
米奇布拉德利 评论了 2022 年 10 月 7 日  

期待您的 I2S_STATIC 结果。

问题:每毫米步数:现实与代码 #592

@MitchBradleyI2S_STATIC 解决了这个问题,X 和 Y 现在都按预期移动。

我为 Y 使用双电机,Y 插座中有一个电机,E0 插座中有一个电机。我观察到两个电机移动的距离不正确,而 X 的单个电机移动正确。

问题:每毫米步数:现实与代码 #592

我现在唯一的假设是,也许 Tinybee 存在信号质量问题,导致 I2S_STREAM 模式无法工作。STREAM 比 STATIC 快,因此它可能更容易受到信号振铃或设置时间等因素的影响。我没有 Tinybee,所以我无法更深入地分析它。有人说他们订购了一个 Tinybee 寄给我,但我从未收到过。

问题:每毫米步数:现实与代码 #592

有什么我可以测试的帮助吗?我是否应该将适用于 Y 轴套接字的 X 轴移动以查看它是否表现出相同的行为?

我更愿意使用 6 件装控制器,但它们不运送到澳大利亚,所以我只能使用 tinybee。

问题:每毫米步数:现实与代码 #592

远程调试非常耗时,成功率低。您可以只使用 static 并完成它吗?在大多数情况下,流的优势微乎其微甚至不存在。

问题:每毫米步数:现实与代码 #592

哦,是的,我对此完全满意,只是想提供帮助,因为我很欣赏 FluidNC 的强大之处。

我会捐助 :)

问题:每毫米步数:现实与代码 #592

由于 OP 在 I2SO 引脚上启用了激光,因此原始问题很可能是我们刚刚在 v3.6.3 中修复的#287的表现。每个用“我也是”回复此票证的人,请尝试 3.6.3 并报告​​它是否解决了问题。

免费注册 在 GitHub 上加入此对话。已有帐户? 登录评论
标签
还没有
项目

还没有

发展

没有分支机构或拉取请求

5人参加
问题:每毫米步数:现实与代码 #592问题:每毫米步数:现实与代码 #592问题:每毫米步数:现实与代码 #592问题:每毫米步数:现实与代码 #592问题:每毫米步数:现实与代码 #592

喜欢 (0)