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

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

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

      跟思兼學(xué)Klipper(30):使用輔助宏調(diào)整3D打印機(jī)無(wú)感歸位堵轉(zhuǎn)檢測(cè)閾值

      又名《調(diào)整堵轉(zhuǎn)檢測(cè)閾值降低創(chuàng)想三維 K1C 打印機(jī)無(wú)感歸位啪啪聲》

      前言

      原創(chuàng)文章,轉(zhuǎn)載引用務(wù)必著名鏈接,水平有限,如有疏漏,歡迎指正交流。

      文章如有更新請(qǐng)?jiān)L問(wèn) DFRobot 社區(qū)cnblogs 博客園,前者內(nèi)容較全,后者排版及閱讀體驗(yàn)更佳。

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

      K1C 的 XY 軸使用 TMC2209 堵轉(zhuǎn)檢測(cè)特性(StallGuard4)實(shí)現(xiàn)無(wú)限位歸位(也稱無(wú)限位歸零、無(wú)感歸零、無(wú)感歸位)功能,從而實(shí)現(xiàn)不借助額外限位開(kāi)關(guān)的情況下實(shí)現(xiàn)歸位。日常歸位 Y 軸的時(shí)候啪的一聲令人膽顫,我都怕 X 橫梁給撞歪,或者機(jī)架給撞散架(雖然不會(huì)),所以準(zhǔn)備重新校準(zhǔn)堵轉(zhuǎn)檢測(cè)閾值(以下簡(jiǎn)稱閾值)。由于重復(fù)步驟比較多,所以寫了個(gè)輔助宏。

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

      軟硬件測(cè)試環(huán)境:

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

      免責(zé)聲明:本教程僅作個(gè)人記錄和分享,未按正確指令操作導(dǎo)致出現(xiàn)問(wèn)題,和本人無(wú)關(guān)。【W(wǎng)IP WARNING】目前部分內(nèi)容還在完善,基本思路沒(méi)問(wèn)題。

      一、基礎(chǔ)知識(shí)

      德國(guó) Trinamic 公司(已被 Maxim 收購(gòu),后者又被 ADI 收購(gòu))的部分步進(jìn)電機(jī)驅(qū)動(dòng)支持 StallGuard 技術(shù),它通過(guò)監(jiān)測(cè)電機(jī)轉(zhuǎn)動(dòng)時(shí)的電流變化情況,判斷電機(jī)是否處于堵轉(zhuǎn)狀態(tài),當(dāng)電機(jī)發(fā)生堵轉(zhuǎn)時(shí),電流會(huì)瞬間變大,TMC 驅(qū)動(dòng)通過(guò)內(nèi)部的電流傳感器實(shí)時(shí)監(jiān)測(cè)電機(jī)的電流變化情況,當(dāng)電流變大到一定程度時(shí),就會(huì)判斷電機(jī)處于堵轉(zhuǎn)狀態(tài),并停止驅(qū)動(dòng)電機(jī),從而避免電機(jī)過(guò)載和損壞。

      使用此特性可以實(shí)現(xiàn) 3D 打印機(jī)的無(wú)感歸位功能,也就是撞擊框架導(dǎo)致電機(jī)堵轉(zhuǎn)并被驅(qū)動(dòng)檢測(cè)到后停止,優(yōu)點(diǎn)是減少接線、增大可移動(dòng)范圍;缺點(diǎn)是需要調(diào)整合適的堵轉(zhuǎn)檢測(cè)閾值,并且此閾值受歸位速度、電機(jī)運(yùn)行電流和溫度影響,其中前兩者可控,溫度需要觀察。

      目前常見(jiàn)的 TMC 步進(jìn)電機(jī)驅(qū)動(dòng)對(duì)堵轉(zhuǎn)檢測(cè)技術(shù)支持情況:

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

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

      • StallGuard2 和 StallGuard4 的區(qū)別:

        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.

      二、參考資料

      三、校準(zhǔn)堵轉(zhuǎn)檢測(cè)閾值方法(精簡(jiǎn)版)

      git clone sgt_cal
      cd sgt_cal
      

      3.1 預(yù)處理腳本

      sh pre_sgt_cal.sh
      

      此腳本會(huì)進(jìn)行以下操作:

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

      3.2 校準(zhǔn)堵轉(zhuǎn)檢測(cè)閾值步驟

      1. 確認(rèn)熱床遠(yuǎn)離噴嘴,防止歸位時(shí)刮到熱床,可以在控制臺(tái)使用如下命令強(qiáng)制下降噴嘴:

        FORCE_MOVE STEPPER=stepper_z DISTANCE=20 VELOCITY=100
        
      2. 將熱端手動(dòng)移動(dòng)到熱床中心附近上方,如果無(wú)法移動(dòng),使用控制臺(tái)輸入 M84 關(guān)閉電機(jī)后再移動(dòng)

      3. 控制臺(tái)輸入如下命令,不斷調(diào)整閾值(默認(rèn)從255開(kāi)始),找到可以完成歸位動(dòng)作,且輕觸即停的最靈敏值。

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

        TEST_SGT stepper=x sgt=102
        
        • 在上述最高值的基礎(chǔ)上,每次減5,當(dāng)歸位撞擊聲變大無(wú)法接受時(shí),使用最后一個(gè)可以接受的值,逐步減1,直到找到合適的值。
        • 由于此時(shí)每次都會(huì)完整歸位,所以歸位完成后需要回退來(lái)進(jìn)行下次測(cè)試,此處不設(shè)置 backoff 值,則默認(rèn)回退 30mm
        • 例如 SGT=97 時(shí)撞擊過(guò)重,則從102每次減1找到能接受的閾值,如 99,記為 SGT_MIN
        • 再次以 SGT=99 歸位進(jìn)行確認(rèn)
      5. 使用輔助宏計(jì)算合適的堵轉(zhuǎn)檢測(cè)閾值

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

      3.3 后處理腳本

      sh post_sgt_cal.sh -x 102 -y 83
      

      此腳本執(zhí)行如下動(dòng)作:

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

      四、校準(zhǔn)堵轉(zhuǎn)閾值方法(完整版)

      4.1 設(shè)置合適的歸位速度

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

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

      4.2 修改 printer.cfg 進(jìn)行測(cè)試

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

      override.cfg 內(nèi)容

      # [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 找到成功歸位的最高敏感值

      對(duì)于2209來(lái)說(shuō),255最靈敏,0最不靈敏。我們?cè)诳刂婆_(tái)輸入如下自定義宏命令

      TEST_SGT stepper=x sgt=125 back=0
      

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

      再次使用此閾值歸位,確認(rèn)可以正確歸位。

      輔助調(diào)試宏內(nèi)容

      [gcode_macro TEST_SGT]
      description: 堵轉(zhuǎn)閾值輔助測(cè)試宏 by 思兼,默認(rèn)用于TMC2209。
      gcode:  
        {% set stepper = params.STEPPER|default('x')|string %}
        {% set backoff_distance = params.BACKOFF|default(30)|int %}
        # 如果 TMC2209/2226/2240 則默認(rèn)255,否則默認(rèn)-64, StallGuard2和4的區(qū)別見(jiàn)官方手冊(cè),精度更高
        {% 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: 輸入最大和最小堵轉(zhuǎn)閾值,自動(dòng)計(jì)算合適的閾值。如果計(jì)算 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="堵轉(zhuǎn)檢測(cè)靈敏度不理想,差值小于5,請(qǐng)修改歸位速度和/或歸位電流后重試"
        {% endif %}
      

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

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

      TEST_SGT stepper=y sgt=125
      

      4.5 計(jì)算合適的堵轉(zhuǎn)檢測(cè)閾值

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

      4.6 應(yīng)用堵轉(zhuǎn)檢測(cè)閾值

      五、常見(jiàn)問(wèn)題

      5.1 何時(shí)需要重新調(diào)整閾值

      由于堵轉(zhuǎn)檢測(cè)閾值受環(huán)境溫度、電機(jī)型號(hào)、電機(jī)電流、歸位速度等影響,當(dāng)參數(shù)發(fā)生較大改變時(shí)需要重新調(diào)整。同時(shí)如果使用 TMC_AutoTune 組件自動(dòng)設(shè)置驅(qū)動(dòng)參數(shù),也需要重新調(diào)整。

      5.2 測(cè)得的閾值不滿意怎么辦

      如果 SGT_MAX 和 SGT_MIN 差值小于 5,則獲得的閾值可能會(huì)導(dǎo)致歸位不穩(wěn)定,可以通過(guò)以下方法改善:

      1. 增加歸位速度,如 50~100mm/s
      2. 調(diào)整歸位時(shí)電機(jī)電流,我們可以設(shè)置獨(dú)立的電機(jī)運(yùn)行電流 run_current 和歸位時(shí)電流,從而增加靈活度,具體可以參考上面的klipper_sensorless_homing

      Bounus

      常見(jiàn) 3D 打印機(jī)驅(qū)動(dòng)對(duì)比

      工作電壓 工作電流 StealthChop StallGuard CoolStep 通訊協(xié)議
      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

      以及:

      獨(dú)立run_current

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

      查看對(duì)象

      posted @ 2024-06-09 16:10  思兼  閱讀(1137)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 久久亚洲色www成人| 香港经典a毛片免费观看播放| 色一伊人区二区亚洲最大| 国产在线观看码高清视频| 人妻一区二区三区三区| 国产伦精品一区二区亚洲| 日韩午夜一区二区福利视频| 性欧美videofree高清精品| 久久青草国产精品一区| 国产无遮挡免费视频免费| 国产精品久久久久久久专区| 久久99精品久久久大学生| 亚洲天堂网中文在线资源| 动漫AV纯肉无码AV电影网| 在线a人片免费观看| 中文字幕久久六月色综合| 婷婷开心深爱五月天播播| 亚洲乱码精品久久久久..| 中文字幕亚洲综合小综合| 人人澡人人透人人爽| 日韩女同一区二区三区久久| www亚洲精品| 国产成人午夜福利在线播放| 在线看片免费人成视频久网| 亚洲成av人在线播放无码| 最近免费中文字幕mv在线视频3| 羞羞影院午夜男女爽爽免费视频| 毛片亚洲AV无码精品国产午夜| 亚洲国产成人综合精品| 国产综合久久久久鬼色| 亚洲男人在线天堂| 国产在线视频不卡一区二区| 久久天天躁夜夜躁狠狠| 免费看黄片一区二区三区| 亚洲日韩久久综合中文字幕| 成人久久精品国产亚洲av| 欧美成人精品三级在线观看| 99久久国产成人免费网站| 久热色精品在线观看视频| 日韩伦理片| 免费视频欧美无人区码 |