ANet A8 работает под управлением Marlin v1.1.9 Автоматический уровень стола с ROKO SN04-N
Я пытаюсь заставить датчик ROKO (SN04-N) работать с моим Anet A8. Во-первых, пытаясь привинтить его к экструдеру, я слишком сильно затянул его и как бы сломал акриловую пластину... вроде того. Мне пришлось использовать очень тонкую стальную пластину с двумя отверстиями, чтобы закрепить акриловую пластину. Это все еще работает.
Теперь я следовал инструкциям в этом видео. (Пожалуйста, обратите внимание, что видео не на английском языке.) После первой операции "Авто Домой" парень рисует на столе, а затем измеряет. Мои размеры немного отличаются.
На 19-минутной отметке парень жестко кодирует значения, но я не понимаю, как он их рассчитал? Мои измеренные смещения: X_PROBE_OFFSET_FROM_EXTRUDER 16
и Y_PROBE_OFFSET_FROM_EXTRUDER 58
. В своем видео он подсчитал, что смещение X составляет 18 мм, а смещение Y-57 мм. В любом случае, я не могу скомпилировать код, так как проверка на вменяемость не удалась:
`static_assert(ПОЛОЖЕНИЕ FRONT_PROBE_BED_POSITION >= MIN_PROBE_Y, "ПОЛОЖЕНИЕ FRONT_PROBE_BED_POSITION находится за пределами области зонда.");`
Вот значения ограничения датчика из файла конфигурации:
// Установить границы для зондирования (где зонд может достичь).
#define LEFT_PROBE_BED_POSITION 20 //MIN_PROBE_EDGE
#define RIGHT_PROBE_BED_POSITION 200 //(X_BED_SIZE - MIN_PROBE_EDGE)
#define FRONT_PROBE_BED_POSITION 47 //MIN_PROBE_EDGE
#define BACK_PROBE_BED_POSITION 200 //(Y_BED_SIZE - MIN_PROBE_EDGE)
Что я делаю не так?
Обратите внимание, что я использую прошивку Marlin v1.1.9
@Hassan Gulzar, 👍4
1 ответ
Лучший ответ:
Жаль, что вы сломали акриловую пластину (хорошее временное исправление, хотя), но вы можете легко распечатать запасную деталь, как только ваша машина будет запущена и запущена.
Расположение зонда определяется в конфигурации Marlin следующим образом:
* +-- НАЗАД ---+ * | | * L | (+) P | R -- зонд (20,20) * E | | I * F | (-) N (+) | G -- сопло (10,10) * Т | | Ч * | (-) | Т * | | * O - СПЕРЕДИ -+ * (0,0)
Это означает, что ваш датчик расположен сзади справа, когда вы обращены к машине, и вам необходимо установить следующие константы:
#define X_PROBE_OFFSET_FROM_EXTRUDER 16 // Смещение X:-влево+вправо [сопла] #define Y_PROBE_OFFSET_FROM_EXTRUDER 58 // Смещение по оси Y:-спереди+сзади [сопло] #define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // Смещение Z: -ниже +выше [сопла]
Чтобы рассчитать правильные пределы перемещения датчика, вам необходимо вычесть значения смещения из размера стола в максимальных пределах.
Для некоторых датчиков может потребоваться дополнительное смещение, поэтому, пожалуйста, добавьте дополнительное смещение в конфигурацию, определив:
#define MIN_PROBE_EDGE 10
Так как датчик расположен не по центру относительно своего сопла, можно лишь предположить, что у вас нет дополнительного пространства, чтобы переместить весь печатающей головки и, следовательно, нужно ограничить в пределах макс./мин. рабочий стол размер (не должно быть дополнительное пространство, это видно из смещения для источника в качестве значений для X_MIN_POS
и Y_MIN_POS
, но для простоты они не будут учитываться).
В принципе, ваше положительное смещение Y и положительное смещение X приводят к следующей схеме.
Или, если вы включаете #define MIN_PROBE_EDGE [значение]
Пределы рабочего стола для датчика затем необходимо будет рассчитать на основе значений вашего смещения датчика. Например, когда ваше сопло находится на (X=0, Y-0) или (0, 0), ваш датчик находится на (16, 58). Если вы не хотите перемещать головку дальше влево и вперед (в соответствии с началом координат как предел!), это минимальное положение датчика. Когда датчик находится в заднем правом положении (220, 220), фактическая головка находится в (220-16=204, 220-58=162).
Это означает, что пределы для датчика без минимального смещения равны (16, 58) и (220, 220):
#define ПОЛОЖЕНИЕ LEFT_PROBE_BED_POSITION (X_PROBE_OFFSET_FROM_EXTRUDER + MIN_PROBE_EDGE) #define ПОЛОЖЕНИЕ RIGHT_PROBE_BED_POSITION (X_BED_SIZE - MIN_PROBE_EDGE) #define ПОЗИЦИЮ FRONT_PROBE_BED_POSITION (Y_PROBE_OFFSET_FROM_EXTRUDER + MIN_PROBE_EDGE) #define BACK_PROBE_BED_POSITION (РАЗМЕР Y_BED_SIZE - МИНИМАЛЬНЫЙ РАЗМЕР)
будет переведено с помощью MIN_PROBE_EDGE = 0
в:
#define ПОЛОЖЕНИЕ LEFT_PROBE_BED_POSITION 16 #define ПРАВИЛЬНУЮ ПОЗИЦИЮ RIGHT_PROBE_BED_POSITION 220 #define ПОЗИЦИЮ FRONT_PROBE_BED_POSITION 58 #define BACK_PROBE_BED_POSITION 220
и перевел бы с помощью MIN_PROBE_EDGE = 10
в:
#define ПОЛОЖЕНИЕ LEFT_PROBE_BED_POSITION 26 #define ПРАВИЛЬНУЮ ПОЗИЦИЮ RIGHT_PROBE_BED_POSITION 210 #define FRONT_PROBE_BED_POSITION 68 #define BACK_PROBE_BED_POSITION 210
Утверждение в коде: FRONT_PROBE_BED_POSITION >= MIN_PROBE_Y>
теперь будет переведено в (58 >= 58) (или 68 >>= 58), в вашем случае это было (47 >>>= 58), что явно неверно.
Пожалуйста, ознакомьтесь с этим ответом, этим ответом или этим ответом для получения дополнительной информации.
- Сопло соскакивает со стола при использовании Marlin Mesh Desk Leveling
- Anet A8 с прошивкой Marlin: Auto home упирается в стол
- Уровень стола G29 ничего не делает на Марлине 2.0
- Как установить границы Z-зонда в прошивке при использовании автоматического выравнивания стола?
- Как увеличить количество точек зондирования для датчика BLTouch в прошивке Marlin?
- Как установить смещение Z для дома
- BLTouch Зондирование Периодически Терпит Неудачу
- В чем разница между M420 S и M420 S1?