Добрый день, строители 3d-принтеров. После постройки принтера у меня возник вопрос: » А как принтер узнает, сколько оборотов надо совершить, что бы переместить головку на 1 мм и выдавить 1мм пластика?». Проще говоря,ю я задался вопросом о том, как калибровать принтер. Сегодня я опишу процесс калибровки экструдера.
Как ни странно, но начнем с прошивки. Сначала, надо сообщить принтеру, что у нас нет нагревательного элемента:
Ищем строку #define TEMP_SENSOR_0 -1
и заменяем её на #define TEMP_SENSOR_0 0
Если другие сенсоры не равны 0, то их тоже надо занулить.
Т.е. в прошивке все должно теперь выглядеть так:
Иначе Pronterface откажется крутить холодный экструдер и выдаст такую надпись: «echo: cold extrusion prevented@».
Теперь надо вычислить количество шагов двигателя, необходимые для выдавливания 1 мм пластика.
Формула простая, но придется сделать пару замеров:
steps per mm=micro steps per rev * gear ratio / ( pinch wheel diameter * pi)
где:
micro steps per rev - количество микрошагов двигателя для 1 оборота
gear ratio - соотношение количества зубьев в редукторе экструдера
pinch wheel diameter - диаметр впадины толкающего винта (тот что с зубчиками)
В моем случае параметры следующие:
micro steps per rev = 3200
Т.к. я использую движки Nema 17, с шагом в 1,8 градуса (полный оборот 200 шагов) в режиме микрошага 1/16, т.е. 3200 микрошагов на полный оборот
gear ratio = 39/11
(39 зубъев на большой шестерне и 11 на маленькой)
pinch wheel diameter = 5-7мм
(вот этот параметр и требуется подобрать , либо очень хорошо измерить, т.к. этот диаметр у всех разный)
У меня по формуле получилось 504.426
Заносим это число в прошивку в переменную #define DEFAULT_AXIS_STEPS_PER_UNIT в последнее(выделено желтым цветом):
Т.е. перменная имеет вид #define DEFAULT_AXIS_STEPS_PER_UNIT (X-step,Y-step,Z-step,E-step). Вот вместо E-step и надо вписать число. Должно получиться следующее:
Далее заливаем прошивку в принтер и смотрим насколько мы угадали с числом Делается это следующим так — снимаем с экструдера нагревательную часть, чтобы пластиковый пруток просто входил в зятягивающий механизм и выходил. Вставляем пруток в механизм, что бы его немного затянуло. На пруток приклеиваем изоленту/скотч на расстоянии 5-10 см от края экструдера и ставим линейку, но лучше штангенциркуль:
В программе Pronterface просим экструдер вытянуть пруток на 50 мм (нажимаем кнопку extrude):
Если мы увидим следующую картину (экструдер засосал ровно 50 мм прутка), то все замечательно:
На фото ошибка — экструдер затянул 60 мм прутка, вместо 50 мм. Это плохо.. Но не надо отчаиваться, продолжаем читать дальше.
Замеры лучше проводить штангенциркулем — точность будет выше. Если пруток затянуло не на 50 мм, значит ошибки в расчетах. Замеряем длину затянутого прутка с точностью до 0,1 мм
Дальше формула простая: new step per mm = (steps per mm*50mm/замеренную длину mm)
Записываем новое значение в прошивку, заливаем её в принтер и повторяем замеры снова и снова до тех пор, пока экструдер не будет идеально отмерять пруток.
Можно было изначально ничего не считать, а сразу проводить эксперименты, но тогда точность расчетов получается маленькой — погрешность в десятки шагов..
Значения параметра могут варьироваться от 140 до 1300 шагов на 1мм. Если у вас получается в таких пределах — все отлично! Если хотите получить высокую точность калибровки — дайте задание экструдеру втянуть ровно 1 метр прутка, тогда ошибка в расчетах, если и была, сразу будет заметна
В одной из следующих статей напишу о том, как калибровать оси X,Y и Z. Ожидайте
спасибо за чёткие и ценные инструкции, добавлю только, что отключение датчиков температуры вашим способом на Менделе 1,5 (Gadgets3D) не прокатило (при компиляции с установленными 0 значениями ардуинная прога ругалась на переменные, использующиеся в LCD панели
). Как отключить использование LCD на поверхности не нашёл, но нашёл что имеется параметр #define EXTRUDE_MINTEMP 170 В нём заменил 170 на 0, компильнул, отправил на плату и экструдер разрешил крутиться колесу без прогрева. После корректировки значения по вашему методу отмерять стало как в аптеке (хотя поляк говорил что скинул самую последнюю вылизанную прошивку), до этого погрешность на 50 мм была около 5мм.