Калибровка 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:

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

  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д принтере?

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

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

WordPress темы