<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      跟思兼學Klipper(30):使用輔助宏調整3D打印機無感歸位堵轉檢測閾值

      又名《調整堵轉檢測閾值降低創想三維 K1C 打印機無感歸位啪啪聲》

      前言

      原創文章,轉載引用務必著名鏈接,水平有限,如有疏漏,歡迎指正交流。

      文章如有更新請訪問 DFRobot 社區cnblogs 博客園,前者內容較全,后者排版及閱讀體驗更佳。

      手中的創想三維 K1C 3D 打印機目前使用很滿意。如果想要使用原生 Klipper 的話需要解決 prtouch_v2 壓力熱床調平器使用閉源 MIPS 二進制庫的問題,目前有多種解決方案,此處按下不表。

      K1C 的 XY 軸使用 TMC2209 堵轉檢測特性(StallGuard4)實現無限位歸位(也稱無限位歸零、無感歸零、無感歸位)功能,從而實現不借助額外限位開關的情況下實現歸位。日常歸位 Y 軸的時候啪的一聲令人膽顫,我都怕 X 橫梁給撞歪,或者機架給撞散架(雖然不會),所以準備重新校準堵轉檢測閾值(以下簡稱閾值)。由于重復步驟比較多,所以寫了個輔助宏。

      我們約定:控制臺指的是網頁上和 Klippy 交互的輸入命令接收反饋的地方,ssh 終端指的是使用 SSH 登錄后輸入 Linux 命令的地方。

      軟硬件測試環境:

      • Creality K1C 3D 打印機
      • CrealityOS (已 root,已安裝 Moonraker 和 Fluidd)

      免責聲明:本教程僅作個人記錄和分享,未按正確指令操作導致出現問題,和本人無關。【WIP WARNING】目前部分內容還在完善,基本思路沒問題。

      一、基礎知識

      德國 Trinamic 公司(已被 Maxim 收購,后者又被 ADI 收購)的部分步進電機驅動支持 StallGuard 技術,它通過監測電機轉動時的電流變化情況,判斷電機是否處于堵轉狀態,當電機發生堵轉時,電流會瞬間變大,TMC 驅動通過內部的電流傳感器實時監測電機的電流變化情況,當電流變大到一定程度時,就會判斷電機處于堵轉狀態,并停止驅動電機,從而避免電機過載和損壞。

      使用此特性可以實現 3D 打印機的無感歸位功能,也就是撞擊框架導致電機堵轉并被驅動檢測到后停止,優點是減少接線、增大可移動范圍;缺點是需要調整合適的堵轉檢測閾值,并且此閾值受歸位速度、電機運行電流和溫度影響,其中前兩者可控,溫度需要觀察。

      目前常見的 TMC 步進電機驅動對堵轉檢測技術支持情況:

      StallGuard2 StallGuard4
      TMC2208(TMC2225) - -
      TMC2209(TMC2226) - 支持
      TMC2240 支持 支持
      TMC2130 支持 -
      TMC2660 支持 -
      TMC5160 支持 -
      • StallGuard4 堵轉閾值范圍為 0-255(越越靈敏),主要配合低速靜音 StealthChop 模式使用

      • StallGuard2 堵轉閾值范圍為 -64~63(越越靈敏),主要配合高速防抖 SpreadCycle 模式使用

      • StallGuard2 和 StallGuard4 的區別:

        StallGuard4 is optimized for operation with StealthChop, its predecessor StallGuard2 works with
        SpreadCycle. The function is similar: Both deliver a load value, going from a high value at low load, to
        a low value at high load. While StallGuard2 becomes tuned to show a “0”-reading for stall detection,
        StallGuard4 uses a comparison-value to trigger stall detection, rather than shifting SG_RESULT itself.

      二、參考資料

      三、校準堵轉檢測閾值方法(精簡版)

      git clone sgt_cal
      cd sgt_cal
      

      3.1 預處理腳本

      sh pre_sgt_cal.sh
      

      此腳本會進行以下操作:

      1. 注釋掉 printer.cfg 中對 sensorless.cfg 的引用,避免干擾歸位過程
      2. 注釋掉 XY 電機的 hold_current,參考 Klipper 官方推薦
      3. 導入自定義配置文件 override.cfg
        • 啟用電機驅動低速靜音模式
        • 降低打印機最大速度、加速度以適配低速靜音模式
        • 設置無動作超時時間 idle_timeout 為 600s (10分鐘)
        • 設置初始堵轉檢測閾值為 255
        • 修改默認歸位速度
      4. 重啟 Klipper 使修改生效

      3.2 校準堵轉檢測閾值步驟

      1. 確認熱床遠離噴嘴,防止歸位時刮到熱床,可以在控制臺使用如下命令強制下降噴嘴:

        FORCE_MOVE STEPPER=stepper_z DISTANCE=20 VELOCITY=100
        
      2. 將熱端手動移動到熱床中心附近上方,如果無法移動,使用控制臺輸入 M84 關閉電機后再移動

      3. 控制臺輸入如下命令,不斷調整閾值(默認從255開始),找到可以完成歸位動作,且輕觸即停的最靈敏值。

        # 如下命令代表測試 x 電機,觸發堵轉檢測后回退距離為 0mm,堵轉檢測閾值為 255。
        TEST_SGT stepper=x backoff=0 sgt=255
        
        • 當閾值過于靈敏時,擠出頭將會移動很短距離就停下,無法歸位,此時需要調整閾值
        • 初始可以“大踏步”,閾值每次降低50,找到用手擋不住的閾值,網頁按急停按鈕或者控制臺輸入M112。
        • 再重復使用二分法,結合5/2/1的步進微調,直到找到可以歸位同時可以用手輕輕擋下的最高靈敏值。
        • 如果測試時熱端到達 Y 軸最大處,可以設置 backoff 值讓其回退(不指定時默認回退 30mm)
        • 再使用上述命令完整歸位來進行確認。
        • 加載網床補償時,G90 會要求你先歸位,所以要先清除網床才能相對移動。
        • 例如:SGT=150 時動一下就停,SGT=100 時用手擋不下來,我們就選擇125作為新值。如果125可以停下,則以此為基礎每次加1或者2,如127再行測試,直到找到“可以完成歸位,同時輕觸即可停下的閾值”,假設為102,記為 SGT_MAX
      4. 找到歸位撞擊聲變大的靈敏值

        TEST_SGT stepper=x sgt=102
        
        • 在上述最高值的基礎上,每次減5,當歸位撞擊聲變大無法接受時,使用最后一個可以接受的值,逐步減1,直到找到合適的值。
        • 由于此時每次都會完整歸位,所以歸位完成后需要回退來進行下次測試,此處不設置 backoff 值,則默認回退 30mm
        • 例如 SGT=97 時撞擊過重,則從102每次減1找到能接受的閾值,如 99,記為 SGT_MIN
        • 再次以 SGT=99 歸位進行確認
      5. 使用輔助宏計算合適的堵轉檢測閾值

        • 網頁上有一個新宏,名為 CALC_SGT,分別填入 SGT_MAX 和 SGT_MIN,會自動計算處合適的閾值
        • 公式為 最小值+(最大值-最小值)/3,此處我設置了四舍五入
      6. 重復上述過程獲得 Y 的堵轉檢測閾值,注意歸位時在右前方,此時坐標為(229, 0),所以y不能回-30吧,可以根據 positive_dir 判斷。

      3.3 后處理腳本

      sh post_sgt_cal.sh -x 102 -y 83
      

      此腳本執行如下動作:

      1. 恢復 printer.cfg 引用 sensorless.cfg
      2. 修改 override.cfg 中的 sgt 值,-x 和 -y 后分別為上述計算出的理想閾值
      3. 修改 endstop_position 值。這是由于重新校準后,XY 軸特別是 Y 軸會相比之前提前觸發,后方擦嘴和左側劃線位置會受到影響,所以需要調整,此處微調1mm。

      四、校準堵轉閾值方法(完整版)

      4.1 設置合適的歸位速度

      無感歸位需要合適的歸位速度,K1系列的默認值為30mm/s,Klipper官方文檔建議設置為步進電機 rotation_distance 的一半,此處為 20齒*2mm/2=20mm/s,但是我實際測試至少提升到 40 為宜。如果此值過小,會導致測試的堵轉閾值范圍過小(最大最小值差值小于5)。

      # printer.cfg
      [stepper_x]
      homing_speed: 40
      
      [stepper_y]
      homing_speed: 40
      

      4.2 修改 printer.cfg 進行測試

      1. 注釋掉 sensorless.cfg,避免影響歸位動作
      2. 注釋 hold_current
      3. (默認已設置,無需改動)設置 homing_retract_dist: 0
      4. (默認已設置,無需改動)設置對應電機endstop_pin: tmc2209_stepper_x:virtual_endstop
      5. (無需設置,如果非2209/2240,則改為-63)設置driver_SGTHRS: 255
      6. (默認已設置,無需改動)設置正確的diag_pin

      override.cfg 內容

      # [include override.cfg]
      [idle_timeout]
      timeout: 600
      
      [printer]
      max_accel: 15000
      max_accel_to_decel: 7500
      max_z_velocity: 7.5
      max_z_accel: 150
      square_corner_max_velocity: 100.0
      
      [stepper_x]
      position_endstop: 228
      homing_speed: 40
      
      [tmc2209 stepper_x]
      stealthchop_threshold: 999999
      # hold_current:1.0
      driver_SGTHRS: 83
      
      [stepper_y]
      position_endstop: 1
      homing_speed: 40
      
      [tmc2209 stepper_y]
      stealthchop_threshold: 999999
      # hold_current:1.0
      driver_SGTHRS: 101
      
      [force_move]
      enable_force_move: True
      

      4.3 找到成功歸位的最高敏感值

      對于2209來說,255最靈敏,0最不靈敏。我們在控制臺輸入如下自定義宏命令

      TEST_SGT stepper=x sgt=125 back=0
      

      直到找到可以正確歸位,并且手指輕擋即可停下的最高閾值。

      再次使用此閾值歸位,確認可以正確歸位。

      輔助調試宏內容

      [gcode_macro TEST_SGT]
      description: 堵轉閾值輔助測試宏 by 思兼,默認用于TMC2209。
      gcode:  
        {% set stepper = params.STEPPER|default('x')|string %}
        {% set backoff_distance = params.BACKOFF|default(30)|int %}
        # 如果 TMC2209/2226/2240 則默認255,否則默認-64, StallGuard2和4的區別見官方手冊,精度更高
        {% set sgt = params.TMCSGT|default(255)|int %}  
        SET_TMC_FIELD STEPPER=stepper_{stepper} FIELD=SGTHRS VALUE={sgt}
        G4 P2000
        G28 {stepper}0
        M400
        BED_MESH_CLEAR
        G91
        G0 {stepper}-{backoff_distance} F3000
        G90
      
      [gcode_macro CALC_SGT]
      description: 輸入最大和最小堵轉閾值,自動計算合適的閾值。如果計算 StallGuard2,需要修改一下
      gcode:
        {% set sgt_max = params.SGTMAX|default(0)|int %}
        {% set sgt_min = params.SGTMIN|default(0)|int %}
        {% if sgt_max - sgt_min > 5%}
          {% set ideal_sgt = (sgt_min + (sgt_max - sgt_min) / 3)|round|int %}
          RESPOND PREFIX="推薦SGT值:" MSG="{ ideal_sgt }"
        {% else %}
          RESPOND TYPE=error MSG="堵轉檢測靈敏度不理想,差值小于5,請修改歸位速度和/或歸位電流后重試"
        {% endif %}
      

      4.4 找到成功歸位的最低敏感值

      之后我們使用如下參數找到能接受的最低閾值,從最高值逐漸減5,此時撞擊聲較大,選擇之前的一個值。從上一個值逐漸減1。

      TEST_SGT stepper=y sgt=125
      

      4.5 計算合適的堵轉檢測閾值

      公式為 最小值+(最大值-最小值)/3,必要時四舍五入

      4.6 應用堵轉檢測閾值

      五、常見問題

      5.1 何時需要重新調整閾值

      由于堵轉檢測閾值受環境溫度、電機型號、電機電流、歸位速度等影響,當參數發生較大改變時需要重新調整。同時如果使用 TMC_AutoTune 組件自動設置驅動參數,也需要重新調整。

      5.2 測得的閾值不滿意怎么辦

      如果 SGT_MAX 和 SGT_MIN 差值小于 5,則獲得的閾值可能會導致歸位不穩定,可以通過以下方法改善:

      1. 增加歸位速度,如 50~100mm/s
      2. 調整歸位時電機電流,我們可以設置獨立的電機運行電流 run_current 和歸位時電流,從而增加靈活度,具體可以參考上面的klipper_sensorless_homing

      Bounus

      常見 3D 打印機驅動對比

      工作電壓 工作電流 StealthChop StallGuard CoolStep 通訊協議
      TMC2209 4.75 to 29V DC IMAX=2.8A,IRMS = 2.0A 2 4 Y UART
      TMC2130 4.75 to 46V DC IMAX=2.5A,IRMS = 2.0A 1 2 Y SPI
      TMC2240 4.5V to 36V DC IMAX=5.0A,IRMS = 2.1A 2 2+4 Y SPI/UART
      TMC2660 up to 30V DC IMAX=4.0A N 2 Y SPI
      TMC5160 8 to 60V DC 1 to several 10A 2 2 Y SPI/UART

      以及:

      獨立run_current

      If an axis is not specified then it will default to the position that the head was last commanded to.

      查看對象

      posted @ 2024-06-09 16:10  思兼  閱讀(1137)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲一区二区偷拍精品| 妺妺窝人体色WWW看人体| 久久久久噜噜噜亚洲熟女综合| 亚洲一区精品视频在线 | 久热这里只有精品12| 2021亚洲va在线va天堂va国产| 国产精品久久福利新婚之夜| 女同性恋一区二区三区视频| 亚洲成A人片在线观看无码不卡| 国产一区二区三区免费观看| 亚洲区小说区图片区qvod | 奉贤区| 极品尤物被啪到呻吟喷水| 九九成人免费视频| 国产精品久久久久AV福利动漫| 狼人大伊人久久一区二区| 思思99热精品在线| 日韩中文字幕亚洲精品一| 亚洲精品日韩在线丰满| 欧美巨大极度另类| 亚洲少妇人妻无码视频| √天堂中文在线最新版| 精品国产亚洲午夜精品a| 亚洲欧洲美洲在线观看| 国产专区精品三级免费看| 国产精品一码二码三码| 日日橹狠狠爱欧美视频| 丰满人妻熟妇乱又伦精品劲| 中文字幕日韩精品有码| 亚洲性一交一乱一伦视频| 亚洲国产精品午夜福利| 少妇人妻偷人偷人精品| 日本美女性亚洲精品黄色| 怡春院久久国语视频免费| 国产亚洲欧美精品久久久| 在线观看热码亚洲av每日更新| 久久亚洲国产精品久久| 日韩精品亚洲专在线电影| 日韩av裸体在线播放| 国产精品激情av在线播放| 中日韩黄色基地一二三区|