Использование двигателя экструдера в качестве 4-й оси

В настоящее время я работаю с роботизированной рукой-любителем (uArm Swift Pro), которая использует модифицированную версию прошивки для 3D-печати Marlin.

Рычаг также можно использовать в качестве 3D-принтера, поэтому он оснащен двигателем экструдера. Я не использую его в качестве 3D-принтера, вместо этого я повторно использую двигатель экструдера в качестве 4-й оси для перемещения рычага вдоль рельса. Проблема, с которой я столкнулся, заключается в том, что двигатель экструдера ускоряется поэтапно, то есть ускорение до определенной скорости удерживает эту скорость некоторое время (1-2 с), а затем ускоряется до более высокой скорости, удерживая ее некоторое время. Затем он замедляется таким же образом.

Итак, мой вопрос в том, где в коде Марлина выполняется строгание для оси E и отличается ли оно от строгания скоростью другой оси?

, 👍4


1 ответ


3

Движение степперов регулируется настройками рывка и ускорения. Оба они управляются/устанавливаются в файле конфигурации Marlin.

/**
 * Максимальное ускорение по умолчанию (изменение/с) изменение = мм/с
 * (Максимальная начальная скорость для ускоренных движений)
 * Переопределение с помощью M201
 * X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
 */
#define DEFAULT_MAX_ACCELERATION      { 3000, 3000, 100, 10000 }

/**
 * Ускорение по умолчанию (изменение/с) изменение = мм/с
 * Переопределение с помощью M204
 *
 * Ускорение M204 P
 * Ускорение Втягивания M204 R
 * Ускорение Хода M204 T
 */
#define DEFAULT_ACCELERATION          3000    // Ускорение X, Y, Z и E для перемещений печати
#define DEFAULT_RETRACT_ACCELERATION  3000    // E ускорение для втягивания
#define DEFAULT_TRAVEL_ACCELERATION   3000    // Ускорение X, Y, Z для перемещений (без печати) 

/**
 * Рывок по умолчанию (мм/с)
 * Переопределение с помощью M205 X Y Z E
 *
 * "Рывок" указывает минимальное изменение скорости, требующее ускорения.
 * При изменении скорости и направления, если разница меньше
установленного здесь значения*, это может произойти мгновенно.
 */
#define DEFAULT_XJERK                 10.0
#define DEFAULT_YJERK                 10.0
#define DEFAULT_ZJERK                  0.3
#define DEFAULT_EJERK                  5.0

/**

,