Калибровка 3D принтера. Оси X,Y и Z.

Следующий этап после калибровки экструдера — это калибровка осей. Единственное, что понадобится  - внести изменения в прошивку. Итак, приступим. Открываем в IDE Arduino прошивку Marlin и находим в файле  configuration.h следующую строчку:

 

#define DEFAULT_AXIS_STEPS_PER_UNIT   {78.7402,78.7402,200*8/3,760*1.1}

Числа могут быть другие (здесь указаны значения по умолчанию).

строчка в прошивке с переменными X-step,Y-step,Z-step,E-step

строчка в прошивке с переменными
X-step,Y-step,Z-step,E-step

Напомню формат этой переменной  - в скобках указаны числа в порядке X-step,Y-step,Z-step,E-step.

Самое простое — калибровка оси Z. В переменную Z-step надо записать количество шагов двигателя, необходимое для перемещения на 1мм.  Берем количество шагов двигателя на полный оборот  - 3200 шагов (стандартный двигатель Nema 17 с шагом 1,8 градуса в режиме 1/16 микрошага делает 3200 микрошагов на полный оборот).  Если вы решили использовать двигатель в режиме полных шагов, то получится всего 200 шагов на полный оборот.

калибровка оси Z

калибровка оси Z

Далее надо выяснить величину перемещения по оси Z за полный оборот винта, например, я в своем принтере в качестве оси Z использовал шпильку M6 и шаг резьбы у нее ровно 1 мм, значит мне надо записать число 3200. Для шпильки M8 шаг будет 1,25 мм и соответственно количество шагов на 1мм будет равно 3200/1.25=2560.

Далее переходим к калибровке осей X и Y.

калибровка оси X и Y

калибровка оси X и Y

Здесь все немного сложнее. Т.к. у меня на обеих осях используется одинаковый ремень и одинаковые шкивы, то расчеты будут абсолютно одинаковые. Если у вас стоят разные ремни и разные шкивы, то для каждой оси вам придется делать разные расчеты (как правило, на ремнях указывается их маркировка, по которой можно определить тип шаг зубцов)

Формула простая до безобразия:

XYstep_per_mm=3200/(belt_step*pulley_teeth)

3200                    -количество шагов двигателя на полный оборот
belt_step          - шаг ремня в мм (т.е. расстояние между зубьями ремня)
pulley_teeth
- количество зубьев на шкиве

Вот поэтому я рекомендую доставать метрические ремни — с ними проще расчеты и проще калибровка.

Вот что получилось у меня:
ремень T5 — шаг между зубьями 5мм
шкив — 8 зубьев
итого XYstep_per_mm = 3200/(5мм*8)=80 

В итоге у меня строчка с данными о шагах выглядит следующим образом:

#define DEFAULT_AXIS_STEPS_PER_UNIT   {80,80,3200,504}

Просто и красиво :)

В случае, если у вас неизвестный ремень, то рекомендую следующее:
Приклейте на стол миллиметровку (бумагу с миллиметровой сеткой), к экструдеру прикрепите иголку.

В Pronterface наберите G0 X100, иголка должна переместиться на 100мм. Если она переместится на другое расстояние, то нужное количество шагов на 1 мм вычисляется просто:

new_X_step= X_step*100мм/(пройденное расстояние в мм) 

Аналогично для оси Y.

Дерзайте!

Понравилась статья? Получай обновления блога на e-mail:

Введите ваш e-mail:

21 комментариев к статье

  1. Андрей:

    Добрый день!
    Собираю по Вашим чертежам Printbot.
    Вопрос не совсем в тему, по оси Y перемещается только в одну строну, т.е. нажимаю Y+ стол едет ко мне, нажимаю Y- стол опять же едет ко мне. Уже весь мозг сломал, двигатель подключал по разному, на других осях все нормально, этот же двигатель подключал.
    С чем это может быть связано?

    • Sam:

      Наверно в прошивке косяк, либо контакт драйвера, отвечающий за направление вращения, не подключен. Других вариантов я пока не придумал..

    • Игорь:

      Это jtag включен на мк…и Вопрос к автору не могу не где наити почему принтер перед печатью так долго думает иногда по 30-40мин иногда вообще не запускается..не знаете ли вы в чем дело прошивка мерлин прога Repetier-Host заранее спасибо

      • Sam:

        Это скорее всего задумывается комп,особенно под управлением Vista и 8, а не принтер.. может что-то «забивает» порты и в порядке очереди пропускает команды.. Marlin обычно шустрый.

        • Антон:

          Если кабель usb слишком длинный могут быть всякие глюки

          • Sam:

            Согласен, но обычно с платой Arduino идет кабель нормальной,безглючной длины. Да и как правило, длинные USB кабели снабжаются ферритовым кольцом от помех.

  2. Александр:

    Здравствуйте. Спасибо автору за статью. У меня появилась такая проблема: с осью х и у все нормально. А вот с осью z проблема, у меня шпильки диаметром 5мм соответственно шаг 0,8 мм на оборот. Ставлю значение 3200/0,8 = 4000, при таком значение движки просто шумят при нажатие кнопки переместить. При стандартном значении которое стоит в прошивеке 200/8*3 все нормально работает. Что можете посоветовать? Заранее огромное спасибо. Движки у меня такие http://3dclub.biz/motor-nema17-42BYGHW609

    • Sam:

      Может тока не хватает? попробуйте подкрутить резистор на самом драйвере А4988.

    • Алексей:

      не правильно поставь значени 3200/0,8 =700 и все будет точно до милеметра :grin:

    • Алексей:

      Попробуйте снизить скорость перемещения (это можно сделать в Pronterface в соответствующем окошке, либо если задаете перемещения G-кодом, то дописывая команду F, т.е. команда на перемещение в точку X100 Y100 со скоростью 1000mm/min будет G0 X100 Y100 F1000)

  3. Андрей:

    Здравствуйте! Такая история: принтер покупной, прошивка уже имеется (Marlin, как написано в repetier host). Хочу откалибровать оси, но не знаю как «залезть» в прошивку чтобы там что-то поменять. Просто тыкать набум страшно, хотелось бы получить совет в каком направлении идти.:idea:

    Программа Arduino установлена.

    • Sam:

      Что вы имеете в виду под фразой «откалибровать оси» ? Изменить шаг перемещения по осям?

      Наберите команду
      M503
      она покажет информацию из прошивки — количество шагов двигателя для перемещения на 1мм (steps per mm) для каждой оси, экструдера, а так же другие параметры. запишите их куда-либо.

      командой M92 можно выставить новые значения.
      Например:
      M92 X124 — выставит 124 шага на 1мм для оси X
      M92 X100 Y100 Z100 E20 — запишет в память новые значения для осей X,Y,Z и экструдера.

      Но вообще, все команды можно посмотреть тут: http://reprap.org/wiki/G-code

      • >M92 X100 Y100 Z100 E20 — запишет в память новые значения для >осей X,Y,Z и экструдера.

        Тоесть он запишет эти сотки?
        Если на Z нада 3200 то команда будет
        M92 X100 Y100 Z3200 E20
        Так?

        • Sam:

          Да, именно так. Парамтеры, которые не будут меняться, можно просто опустить, например M92 Z3200 — запишет 3200шагов/мм для оси Z. Главное потом записать парметры в EEPROMкомандой M500, иначе после перезагрузки будут старые значения переменных.

  4. Игорь:

    Добрый день! тоже проблема с осью Z. Но не получается выполнить команду М92. Помогите.

  5. Иосиф:

    Здравствуйте.Как на Arduino подключить ШД- ЕМ -141/142 , ? выводов = 6, две обмотки с отводом от середины. 3D принтер собираю из двух EPSON LX-1050, просто разрезав болгаркой механику вдоль на две части. Хотел приложить фото , но не знаю как .Спасибо.

    • Sam:

      Если вопрос актуален, то выводы от середины обмоток никуда подключать не надо (на картинке видно, что средние выводы не используются).
      подключение 6-проводного ШД к A4988

  6. Александр:

    Добрый день.
    можно ли обойтись без использования энд стопов в 3д принтере?

  7. Андрей:

    Подскажите если сможете. Возникла проблема с осью Z. Изначально при старте с 0-точки стол поднимался на заданный уровень, но при команде домой движки начинали выть и стопорились,изменил зачение строки

    #define HOMING_FEEDRATE {50*60, 50*60, 4*60, 0} // set the homing speeds (mm/min)

    на следующие

    #define HOMING_FEEDRATE {50*60, 50*60, 3*60, 0} // set the homing speeds (mm/min)

    Двигатели перестали стопориться и завывать но, при подаче команды домой происходит следующее, валы начинают вращаться, а через некоторый момент изменяют направление вращения. Совершив «N» оборотов на подъем они опять же меняют направление на необходимое но уже не докручивают до срабатывания эндстопа эти «N» оборотов. Команда М114 показывает что все в положении дом. Концевик и проводка исправны. Что это может быть и как это исправить?

    • Sam:

      Вы правильно нашли проблему заклинивания двигателей — это слишком большая скорось для 2 двигателей, подключенных к одному драйверу. Можно было уменьшить ускорение по Z, либо как вы сделали — скорость.
      Если я правильно понял вопрос о homing-е, что касается работы команды G28: Move to Origin (Home) — то это правильное поведение. Смысл в том, что при заданной скорости из-за инерции двигателей происходит «перелет» 0 отметки на 0.1мм и более, и чтобы выставить экструдер в точный 0, принтер после сработки концевика, приподнимает экструдер и потом очень медленно его опускает без «перелета» в точный 0.
      Это хорошо заметно на оптических концевиках. При первой сработке оптического концевика светодиод на датчике загорается ярко, при повторном опуске, он загорается тускло (т.е. сразу как только происходит сработка, без «перелета»).

      Если же сопло встает слишком высоко над столом, то уточните тип принтера и версию прошивки.

Оставить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

WordPress темы