Проверка точности позиционирования 3D принтера Anet A6 по оси Z

Подписаться на 3Dtoday
vlad.m
Идет загрузка
Загрузка
12.05.17
6395
37
печатает на Anet A6
Техничка
34
Статья относится к принтерам:
Anet A6
Как, наверное, любого, начинающего 3D печатника заинтересовал вопрос возможностей своего 3D принтера Anet A6 с технической стороны, в первую очередь, по точности позиционирования по осям.
Увы, но какой либо внятной информации по этому вопросу в сети не нашел.
Решено было попробовать протестировать точность позиционирования по осям самостоятельно.

От чего отталкивался при тестировании:

1. На странице официального сайта модели Anet A6 указаны следующие значения:

Точность позиционирования по оси Z - 0.004 мм
Точность позиционирования по оси X и Y - 0.012 мм

Цифра в 4 тысячные мм сильно смутила, так как, например, в спецификации более дорогого 3D принтера Ultimaker указана точность в 5 тысячных мм по оси Z.

2. На сайте этого ресурса есть статья автора romanyachin Выбор правильной толщины слоя печати на Anet A6, в которой поднимается вопрос, что исходя из конструкции оси Z в принтере Anet A6 и предположения, что принтер не может позиционироваться на микрошагах двигателя, максимально достижимая точность позиционирования по оси Z - 0.04 мм или в 10 раз хуже, чем заявляет производитель. И такой вывод ограничивает выбор возможных вариантов параметра Толщина слоя для печати цифрами, кратными 0.04 мм и делает не оптимальной печать на слое 0.1 мм.
В принципе это же число выдает и Калькулятор оптимальной толщины слоя - он также указывает на 0.04 мм как оптимальную толщину слоя для параметров
* Motor step angle - 1.8 (200 per revolution)
* Leadscrew pitch - 8 mm/revolution

Но однозначного ответа, позиционируется ли Anet A6 только по шагам двигателя или есть возможность позиционироваться по микро шагам для себя так и не нашел.

И главный вопрос, который мотивировал исследовать этот момент - все таки можно ли использовать слои 0.1 мм, 0.15 мм и другие, не кратные шагу двигателя (0.04 мм)?

Для теста коллега нашел еще советский глубиномер ИЧ-10 и спроектировал крепление для него. Датчик ИЧ-10 был 1989 года выпуска, но не используемый до этого - как новый.
Спроектированное крепление под датчик распечатали, намного доработали напильником и закрепили датчик ИЧ-10 на осях принтера. Получился такой стенд:
7de5a0f2ae189cf4823fa1366535ac09.png
На этом стенде и выполнили несколько тестов по возможности и точности позиционирования оси Z.

Забегая вперед, сразу озвучу результаты:
  • Точность позиционирования по оси Z по тестам однозначно выше чем 0.04 мм и однозначно выше чем 0.01 мм (дальнейшая проверка уперлась в точность измерителя ИЧ-10).
  • Принтер Anet A6 может по Z отлично позиционироваться не только по шагам, но по микрошагам двигателя.
  • Тесты повторяли несколько раз и получили хорошую повторяемость результатов.
  • Разницы в точности при перемещении по Z на расстояния кратные шагу принтера и не кратные шагу (но кратные микрошагу) не заметили (в пределах точности прибора ИЧ-10).
  • Скорее всего стандартная прошивка принтера не дает возможности позиционирования при сдвиге в команде меньше, чем 0.02 мм, но при этом сам принтер позиционируется по Z с точностью как минимум 0.01 мм.
  • Остановился для себя, на том, что предельная точность позиционирования по Z - 0.0025 мм, исходя из 16 микрошагов, но проверить это, пока, возможности пока нет.
Теперь описание методики как мы тестировали. Промежуточные тесты я опущу, и опишу только два основных:
  1. Проверка возможности и точности позиционирования с шагом в 0.01 мм.
  2. Проверка, есть ли разница, в точности позиционирования при движении кратно полному шагу и не кратно полному шагу.
1. Проверка возможности и точности позиционирования с шагом в 0.01 мм.

Набросали следующий GCode код (я привел его ниже) - логика следующая:
Поднимаемся на некую исходную позицию и выставляем ИЧ-10 в ноль.
Опускаемся на 1 мм и возвращающемся на исходную позицию - проверяем, что по ИЧ-10 принтер вернулся в ту же первоначальную позицию.
Опускаемся опять на 1 мм и поднимаемся на 0.01 мм выше исходной - проверяем по ИЧ-10, куда реально стал принтер.
Повторяем прошлый цикл, но поднимаемся на 0.02 мм выше исходной, потом на 0.03 мм выше и так далее с шагом в 0.01 мм.

Я не стал выкладывать видео - вот скриншоты с результатами теста. Тестер ИЧ-10 четко показывает последовательный сдвиг ровно по 0.01 мм в результате выполнения данного GCode. 0.01 мм - это 1/4 шага двигателя принтера. Отсюда и сделали вывод, что проблемы с позиционированием на микрошагах у принтера нет. Точность при этом тоже не страдает.

Просто двигаться по интервалам в 0.01 мм в GCode не получилось - похоже в прошивке принтера программно отбрасываются все движения, с шагом меньше чем 0.02 мм, но на точности позиционирования это не сказывается.
PREVIEW
G21 ;metric values
G90 ;absolute positioning
M107 ;start with the fan off
G92 Z0;vsc reset z to 0
G1 Z4 F300;vsc move up 4mm
G92 Z0;vsc reset z to 0
G28 X0 Y0 ;move X/Y to min endstops
G28 Z0 ;move Z to min endstops
G1 Z1.2 F300;vsc move up 2,2mm
G92 Z0;vsc reset z to 0
G1 Y110 F7200
G1 Z1
G4 S15
G1 Z0
G1 Z1.00
G4 S3
G1 Z0
G1 Z1.01
G4 S3
G1 Z0
G1 Z1.02
G4 S3
G1 Z0
G1 Z1.03
G4 S3
G1 Z0
G1 Z1.04
G4 S3
G1 Z0
G1 Z1.05
G4 S3
G1 Z0
G1 Z1.06
G4 S3
G1 Z0
G1 Z1.07
G4 S3
G1 Z0
G1 Z1.08
G4 S3
G1 Z0
G1 Z1.09
G4 S3
G1 Z0
G1 Z1.10
G4 S3

2. Проверка, есть ли разница в точности позиционирования при движении кратно полному шагу и не кратно полному шагу.

Во втором тесте вначале двигались от некой исходной позиции последовательно 5 раз шагами по 0.12 мм, что кратно полному шагу двигателя на оси Z (0.04 мм) - с выходом на позицию в 0.6 мм.
Затем командой возвращались на исходную позицию (проверяя по тестеру, что вернулись четко в 0) и повторяли последовательное движение, но уже шагом 0.1 мм, который не кратен полному шагу двигателя, с выходом в туже позицию в 0.6 мм.
Сравнивалось точность выхода в позицию 0.6 мм одним и другим шагом и точность самого шага.
Результаты на скриншотах:

  • Принтер одинаково четко выходил в позицию 0.6 мм при движении кратному и шагу и микрошагу принтера.
  • Разницы в точности движения принтера по оси Z по шагам или микрошагам не заметили
7db6aeae320df8587757ed39958a7807.jpg
G21 ;metric values
G90 ;absolute positioning
M107 ;start with the fan off

G92 Z0;vsc reset z to 0
G1 Z4 F300;vsc move up 4mm
G92 Z0;vsc reset z to 0

G28 X0 Y0 ;move X/Y to min endstops
G28 Z0 ;move Z to min endstops
G1 Z1.2 F300;vsc move up 2,2mm
G92 Z0;vsc reset z to 0

G1 Y110 F7200
G1 Z1

G4 S30

G91
M117 Step 0.12
G1 Z0.12 F300
G4 S3
G1 Z0.12 F300
G4 S3
G1 Z0.12 F300
G4 S3
G1 Z0.12 F300
G4 S3
G1 Z0.12 F300
G4 S3

G4 S10

G90
G1 Z0
G1 Z1
G4 S10

G91
M117 Step 0.1
G1 Z0.1 F300
G4 S3
G1 Z0.1 F300
G4 S3
G1 Z0.1 F300
G4 S3
G1 Z0.1 F300
G4 S3
G1 Z0.1 F300
G4 S3
G1 Z0.1 F300
G4 S3

С одной стороны, данные тесты нельзя назвать доведенными до конца, но они позволили снят основные вопросы.

Если тема будет интересной - распишу, что получилось по другим осям.

Вопрос по точности позиционирования с одной стороны базовый, с другой стороны информация разрознена и начинающему, по своему опыту, сложно разобраться.
Подписаться на 3Dtoday
34
Комментарии к статье

Комментарии

12.05.17 в 08:35
1
Интересное исследование!
А по осям XY будет?
12.05.17 в 11:05
1
Да. Планировал на выходных до оформить.
Если честно, я ждал что в комментариях мне напишут - зачем так "страдать", вот "тут" уже все давно разобрали.:)
22.05.17 в 02:17
0
А меня вот что-то тоже занесло точность позиционирования на моём принтбоксе проверить. Меня исходно больше интересовали X, Y. В результате отснял по всем осям.
http://3dtoday.ru/blogs/deepsoic/positioning-accuracy-005-mm-printbox3d-one-check
12.05.17 в 10:32
2
Спасибо за статью и за не в пустую потраченное время, мне было весьма любопытно! И конечно же с удовольствием почитаем что получилось по другим осям, если будет продолжение.
12.05.17 в 12:24
0
Да. Планирую выложить продолжение.
12.05.17 в 10:59
0
Тут не учтен перекос из-за двух движков плюс сам диапазон измерений очень мал. Надо бы последовательно поднимать на довольно большую высоту по шагам и смотреть как набегает отклонение
12.05.17 в 12:27
0
А почему Вы считаете что возможен перекос из-за двух движков. Я специально с микрометром этот момент не тестировал, но перекоса в своей практике не наблюдаю. Если все выставлено правильно, то расхождение во время работы не фиксировал.
Вот например комментарий из моей предыдущей заметки - http://3dtoday.ru/blogs/7a5ad6b7a7/the-visual-control-of-the-z-axis-on-the-printer-anet-a6/#230451
12.05.17 в 12:37
0
Там не только вообще из-за движков, а из-за всей кинематической схемы погрешность набегает. Люфт гаек и прочее. А про линейки я вообще не понял - у вас голова перемещается двумя ШВП а вы только один контролируете. Надо оба. Причём они вносят вообще трудноучитываемую погрешность из-за того что голова всё время ездит от одной опоры к другой, одна гафка то загружена слабо то сильно. Короче там полный рандом с погрешностями
12.05.17 в 13:04
0
Я контролирую оба двигателя - две линейки.
На том комментарии я привел фото только по одной оси, так как вторая показала такой-же результат.

С того момента как начал контролировать ось Z перед каждой печать, сам стол больше ни разу не калибровал. Расхождение по Z были, но они в основном связаны с "дерганьем" принтера - например ставил датчик ИЧ-10 для теста, а двигатели оказались выключены - чуть придавил и оси Z поехали вниз, и естественно разъехались.

У ИЧ-10 диапазон всего 1 см, но думаю как вариант теста выставить на исходную позицию, подняться на 10см, спуститься на 10 см и посмотреть какое расхождение набежало.
12.05.17 в 13:10
1
Было бы интересно провести много циклов. При печати голова приподнимается и опускается при пролётах над моделью, т.е. это кучу раз происходит.
Т.е. сценарий теста должен быть что-то вроде: дёргаем головой +-1 слой на первом слое, смещаемся на второй слой, там тоде самое, и так на всём диапазоне рабочего хода штока ИГ.
Ну и второе - провести второй тест с перемещениями головы (т.е. нашей ИГ). Уверен что тут погрешность будет больше именно из-за двух винтовых направляющих и перекосов
12.05.17 в 13:32
0
А я себя не замечал, что бы при печати голова опускалась, поэтому и тестировал последовательное движение только вверх. Разве так бывает? Или это от слайсера зависит? Я использую Cura.
12.05.17 в 13:36
1
Да, это настройки слайсера. В симплифае. В куре наверняка тоже такое есть - смысл в том что при перемещении без экструзии голова приподнимается над моделью, чтобы не царапать поверхность
12.05.17 в 16:20
1
12.05.17 в 15:17
3
Сделал сейчас небольшой дополнительный тест.
Подъем на 10 см по оси Z и контроль возврата по ИЧ-10.
Повторил два раза. Точность достаточно хорошая. Я бы сказал отличная.
Тут суммарный путь головки получается 20 см на тест или 40 общий.

8c418307679aa1ee6193a7920bc8cfed.jpg
12.05.17 в 16:11
1
Погрешность тут вносится в момент старта движения вверх или вниз (выбирается люфт гайки). Поэтому у вас просто погрешность шаговика измеряется а она небольшая. Вобщем если убрать подъём головы при холостых проходах получается что точность хорошая. Интересно было бы провести тест с массовыми перемещениями стола и головы, все эти вибрации должны сбивать точность
12.05.17 в 12:28
1
поддерживаю! продолжайте и никого не слушайте.:D
12.05.17 в 12:40
1
Интересный тест.

Но я изначально не сомневаюсь в возможности микрошагов, ограничение обычно не в них, а в механике принтера, люфтах, ремнях, неравномерности стола и т.д.
И все это проявляется при движении, ошибка накапливается или гуляет от слоя к слою, отчего и появляется воблинг и прочие дефекты.
Интересно было бы померить неравномерность стола и возможно ли автоматической калибровкой по 9 точкам устранить эту неравномерность до нуля, или понять до какого именно значения можно нивелировать.
12.05.17 в 13:39
0
А я наоборот до теста не был уверен, что принтер может позиционироваться диапазонами меньше, чем 0.04 мм. И нигде не мог найти подтверждение или опровержение этому.
Теперь хоть спокоен что можно печатать и слоями по 0.1 и слоями по 0.15.
12.05.17 в 13:51
1
А откуда взялись опасения, что принтер не сможет отработать меньше 0.04 мм?

Со стандартным винтом Т8 и моторами с 1.8 градусов при делении шагов 1/16 получается 400 микрошагов на миллиметр, т.е. теоретическая точность составляет 1/400 = 0.0025 мм. В практике добавляется люфт в гайке и не 100% точность моторов, но 0.01 уж точно должно выдавать.
12.05.17 в 14:05
1
Ну я точно не один такой был :)
Посмотрите например комментарии к статье Выбор правильной толщины слоя печати на Anet A6.
Для начинающего в 3D печати работа шагового двигателя (шаги, микрошаги, их количество) и конструктивные параметры принтера это совсем не очевидная вещь.
Это я потом уже наткнулся на параметр 400 микрошагов на мм и нашел, что скорее всего драйвер на двигатель на Anet A6 стоит А4988, который поддерживает 16 микрошагов на шаг. Но используется ли микрошаг в прошивке? Или он заблокирован? В общем была куча вопросов по этой теме. Оставалось только тестировать самому.
12.05.17 в 14:32
1
На RAMPS легко понять зайдествованы микрошаги или нет по перемычкам под драйверами.
Что на A6 не понятно, тут действительно надо смотреть как настроен принтер и какой микрошаг используется.

У меня сейчас стоят моторы с 0.8 градусами и микрошагшаг 1/32 - точность в теории составляет 0,000625 мм :)
12.05.17 в 19:10
1
это Вам сильнокитайская рампс не попадалась, а мне попадались где все 6 штырей сидят на одном полигоне, и хоть заустанавливайся перемычки, всеравно будет выбран минимальный шаг.
15.05.17 в 01:07
1
Вам уже ответили - микрошаг это не свойство прошивки, это установки драйвера, выставляются обычно на внешней плате и в 99% случаев у принтеров стоит установка максимального количества шагов поддерживаемых драйвером, то есть для 4988 это 1/16. Если джамперов или переключателей нет, то как правило там стоит режим" все 3 джампера установлены", что соответствует 1/16 на A4988 и 1/32 на DRV8825. Прошивка про это вообще не знает, она просто считает, что оборот это 6400 шагов или при шаге винта 8мм (тоже более мнее стандарт для Z) 800 шагов на миллиметр (если микрошаг 1/16).

Правила игры в микрошаги примерно такие. Точное позиционирование гарантируется только в позициях полных шагов. Микрошаги это просто зависание между двумя стабильными положениями, когда одна группа катушек тянет мотор к одному стабильному положению, а другая к другому. При переходе к следующему драйвер просто немного уменьшает ток в одной группе и увеличивает в другой. Эта процедура не точная посему нельзя гарантировать, что 8 микрошагов это точно середина и пр. Но за точность на уровне 1/2-1/4 шага можно быть более менее уверенным. Кроме того, по той же причине промежуточности, усилие при переключении микрошагов меньше, чем основное. То есть при большом трении/усилии, по идее, возможны микрозастревания на микрошагах без пропуска шагов, которые потом мотор нагоняет по мере приближения к позиции следующего шага.

Если вам совсем интересно и раз уж Вы собрали стенд можете покрутить ток на драйверах в сторону уменьшения. С этим все равно полезно разобраться, только запомните тот ток, что стоит, на всякий случай. По идее в какой то момент должны начаться сначала дергания в виде неточного позиционирования на уровне микрошагов, а потом уже потери основных шагов.

Микрошаги используют не только для повышения точности, но и для увеличения плавности, что важно для снижения вибраций и главное - шума. Смысл использования микрошагов 1/32 и даже 1/128 и 1/256 (есть на драйверах, RAPS128 и TMC2100) именно в этом.

Еще нужно помнить, что при использовании 8 битной электроники чрезмерное количество микрошагов может приводить к торможению на уровне софта при печати на больших сткоростях, особенно если используются моторы половинного шага 0.9 градусов на наг (400 шагов на оборот) или всякие схемы удвоения точности. А это торомжение приводит к мелким наплывам при печати деталей сложной формы.
12.05.17 в 16:18
2
"Я требую продолжения банкета!"
(с) х/ф "Иван Васильевич меняет профессию"

Даешь тесты по X и Y! ;)
Отличная работа! Спасибо!
12.05.17 в 17:31
1
ИМХО, самая неприятная проблема на оси Z с использованием микрошагов что может возникнуть - это рассинхронизация. Движок не может удерживаться сам в микрошаге. Вот напечатали модельку и остановился принтер на полушаге, отключил напругу с двигателей. Что дальше? Дальше двигатели докрутятся до полного шага сами. А поскольку на оси Z Прусы два двигателя, один может докрутится вверх, а другой вниз. Таким образом постепенно может возникать перекос. Другой причины не использовать микрошаги на оси Z не вижу. Да и эта причина не на столько страшная, что бы отказываться от микрошагов.
12.05.17 в 18:56
1
По оси Z для увеличения точности можно заменить вал с резьбой. В продаже есть до шага резьбы в 1 мм. Тут уже и микрошаги можно убирать, точность и так достигается 1мм/200шаговЗаОборот=0,005мм на шаг.
15.05.17 в 01:18
0
Вряд ли. Там на самом деле, очень маленькое усилие естественной доводки при отсутствии тока в катушках. Останутся в том, же положении в котором и были, там ведь еще трение нехилое на Z, а я даже за свободный двигатель не уверен.

Даже мало того. Насколько я пронимаю, у шаговика принципиально отличаются положения "четных"и "нечетных" шагов. А при включении драйвер все сбрасывает в нуль, в подавая на катушки ток соответствующий "четному стопу" и ротор ставится в ближайшую четную позицию. Если один мотор при выключении притянет к позиции 188, а другой к 189 (в чем я сомневаюсь), то все равно второй встанет не точно в 189, а чуть ближе к 188, чем к 190 и после включения оба снова встанут в 188.
12.05.17 в 19:39
0
Вот напечатали модельку и остановился принтер на полушаге, отключил напругу с двигателей. Что дальше? Дальше двигатели докрутятся до полного шага сами. А поскольку на оси Z Прусы два двигателя, один может докрутится вверх, а другой вниз. Таким образом постепенно может возникать перекос.
Позволю с Вами не согласиться. Если бы так было - то расхождение по оси Z возникало бы постоянно, через несколько включений выключений моторов.
Все таки полный шаг двигателя достаточно большой - 0.04 мм.
У меня опыт эксплуатации A6 не такой долгий, но такой проблемы не возникало.

Это можно легко проверить - если в тесте после подъема на 0.01 мм (а это гарантировано будет ставить двигатели между шагами) выключать и включать моторы и повторить это пару десятков раз, после чего проверить оси Z.

Если, как Вы предполагаете, "докрутка" присутствует, то остановке на микрошаге и выключении двигателя она будет определятся даже ИЧ-10, так как эта "докрутка" будет составлять несколько сотых мм. Специально не мерял, но не было такого - она бы точно была бы заметна.
12.05.17 в 20:26
3
Поторопился я написать предыдущий комментарий.
Провел тест с отключением двигателя.
Действительно появляется интересный эффект.
Чуть позже выложу видео.
12.05.17 в 22:23
4
Вот что получилось. Действительно - одно дело предполагать, другое дело - эксперимент. Я был неправ.
Я чуть видоизменил код теста со смещением на 0.01 мм.
Строку G4 S3 заменил на
G4 S1
M18 Z
G4 S1

т.е. после каждого смещения на 0.01 мм выполняется выключение двигателя, после чего пауза на 1 сек и следующее смещение.
Цикл из последовательных смещений по 0.01 мм в сумме на 0.1 мм выполняется два раза.

Действительно, после отключения двигателя (практически каждый раз) происходит небольшая просадка. Она хорошо фиксируется датчиком и но не превышает 0.01 мм (но такой откат сильно меньше ожидаемого). Но что нужно еще отметить - это практически не приводит к накоплению ошибки! Так оба раза цикл заканчивается выходом в 0.1 мм по итогу. Также после окончания первого цикла происходит практически четкий возврат в 0 на исходную позицию.
По идее в одном цикле как минимум 8 раз попадает на микрошаг и 2 раза на полный шаг, т.е. если было бы накопление ошибки это бы сильно повлияло на итоговый результат.

Тест провел несколько раз - проверил по итогу - расхождения по Z между осями нет.
Для перепроверки проверил первоначальный тест (без отключения двигателей) - все идет четко, четко по рискам в 0.01 мм тестера.

Вот такой тест. Как его полноценно интерпретировать еще не знаю. Nick_Shlс, спасибо за наводку.

Пока как вывод получается, что нет смысла бояться использования микрошагов. Как минимум, мой вывод, что использование микрошата в 1/4 шага ни к каким существенным ухудшением по точности позиционирования не приводит.

70098f366bc61a9fe2307f0809d03ac5.gif
14.05.17 в 13:37
0
Чем больше дробления микрошага тем движку легче живется :)
после включения мотора он позиционируется по ближайшим полюсам из за этого может ошибка возникать.

Ради интереса попробуйте найти ровный кубик. и покатайтесь по нему индикатором.
13.05.17 в 21:19
1
Конечно продолжай! Что за вопрос?!
15.05.17 в 15:20
0
а модельку для приборчика можете выложить?
приборчик есть такой - приспособить для калибровки стола можно)))
15.05.17 в 19:29
0
18.05.17 в 14:35
0
Вся точность теряется в постобработке, к примеру... пошкурил - минус 0.1... и нафига тогда микрометр, спрашивается.
18.05.17 в 14:45
0
Да хоть 0.0000001 точность будет :D
Качество печати упирается в жёсткость валов.
Валы тупо гнутся из за ускорений и переменных нагрузок, гуляние координат в динамике в разы превышает точность перемещения

Цифры полученные в результате опыта имеют нулевое практическое значение.
10.03.18 в 02:12
0
В итоге, чисто практически имеет смысл ставить размер слоя только кратным 0.04?

Для написания комментариев, пожалуйста, авторизуйтесь.

Читайте в блогах

Голова кабана. Литье

Моя версия Lego technic

машина для перевозки баллонов газа

Портал на базе камаза 5320 3D печать

Еще одна разборная катушка для лески, пластика в мотках и так далее.

Сделал плутоний из пластика BestFilament :)