Индукционный метод автокалибровки Гефестоса

Подписаться на 3Dtoday
Liqsun
Идет загрузка
Загрузка
20.04.15
36784
43
печатает на Hephestos 2
Техничка
29
Статья относится к принтерам:
Prusa i3 Hephestos
123.gif

Всем привет!
Хочу представить вашему вниманию как легко и изящно с помощью нескольких строчек в коде и индуктивного датчика сделать автокалибровку платформы для Гефестоса.

Идея такой автокалибровки принадлежит totofo6, опытному любителю 3D-печати и автору многих апгрейдов для гефеши. Но, к сожалению, француз, а их языком я владею совсем никак. Сам я автокалибровку только начинаю устанавливать на свою машину, поэтому в инструкции могут быть некоторые неточности. Поэтому огромная просьба не стесняться указывать в комментариях на откровенные ошибки (: Ссылка на исходный гайд: http://premium-forum.fr/viewtopic.php?f=9&t=391.
В первую очередь, вам понадобится сам датчик - LJ12A3-4-Z / BX. Его можно найти на многих торговых площадках в интернете, автор этого ноу-хау купил его ЗДЕСЬ.
Работает этот красавец от источника питания в 12V. Как можно заметить, у датчика три провода: синий, коричневый и чёрный. Схема подключения выглядит следующим образом

Синий: GND (земля)
Коричневый: Питание (12V)
Черный: Сигнал


ВАЖНЫЙ МОМЕНТ!
Напряжение датчика - 12 вольт. А RAMPS 1.4 принимает на себя только 5 вольт. Таким образом, чтобы не спалить свой по-испански горячо любимый принтер, вам нужно установить два резистора, чтобы уменьшить напряжение. Любой наш человек знает, где раздобыть резисторы, но на всякий случай приложу ссылку от автора:
http://www.ebay.fr/itm/Lot-de-20-Resistances-1-4W-1-Metal-Valeur-au-choix-/111365988968?pt=FR_YO_MaisonJardin_Bricolage_ElectroniqueComposants&var=&hash=item19edee2268

Датчик подключается вместо концевых выключателей оси Z.
Сам концевой выключатель вам больше не потребуется и его можно снять.
Чтобы установить датчик на каретку с экструдером, вам нужно скачать и распечатать особый держатель. Скачать его можно отсюда.
Процесс регулировки датчика:
  1. Установите экструдер в “домашние” координаты по осям X и Y;
  2. Сделайте отметку маркером в центре платформы;
  3. Установите экструдер так, чтобы его сопло “смотрело” в вашу метку по центру платформы;
  4. С помощью Cura опустите печатающую головку максимально низко;
  5. Отключите питание принтера;
  6. Вручную настройте высоту экструдера с помощью листов бумаги;
  7. После этой настройки, установите экструдер по координатам G92 X0 Y0 Z0;
  8. Снова подключите принтер к питанию;
  9. Установите датчик в особый держатель на экструдере, который вы скачали и распечатали;
  10. Опускайте датчик до тех пор, пока он не загорится. Старайтесь как можно более точно выровнять его над столом по высоте в 0.1 мм;
  11. Обратите все встречающиеся значения X-Y-Z и вставьте в прошивку (допустим, X 20 Y 30 Z 2,5 = X -20 Y -30 Z -2.5)
Например,

#define X_PROBE_OFFSET_FROM_EXTRUDER -20
#define Y_PROBE_OFFSET_FROM_EXTRUDER -30
#define Z_PROBE_OFFSET_FROM_EXTRUDER -2.5

12) Начните загрузку;

13) Удалите из стартового порядка Gcodе эти строки:
И замените их на эти:

ВАЖНО: датчик индукционный. А значит для корректной работы вам нужно установить зеркало под платформу или, как вариант, проложить слой пищевой фольги

Модификация прошивки:
Для создания этого апгрейда автор воспользовался отличным учебником от Thomas Sanladerer: https://www.youtube.com/watch?v=EcGFLwj0pnA&list=WL&index=16

В Configuration.h:
Закомментируйте строку: //#define ENDSTOPPULLUP_ZMIN
Комментарий на строке : #define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
Настройка прямоугольника калибровки :
// set the rectangle in which to probe
#define LEFT_PROBE_BED_POSITION 15
#define RIGHT_PROBE_BED_POSITION 160
#define BACK_PROBE_BED_POSITION 160
#define FRONT_PROBE_BED_POSITION 20

Количество замеров :
// set the number of grid points per dimension
// I wouldn't see a reason to go above 3 (=9 probing points on the bed)
#define AUTO_BED_LEVELING_GRID_POINTS 2

(от автора) Я обычно использую четыре точки калибровки, поэтому 2. Если вы оставите значение 3, то таких точек у вас будет 9.

Мои настройки датчика :
// these are the offsets to the probe relative to the extruder tip (Hotend - Probe)
#define X_PROBE_OFFSET_FROM_EXTRUDER -22
#define Y_PROBE_OFFSET_FROM_EXTRUDER -27
#define Z_PROBE_OFFSET_FROM_EXTRUDER 0

Высота экструдера до Home Z:
#define Z_RAISE_BEFORE_HOMING 10

Подъём между точками замера (1mm):
#define Z_RAISE_BEFORE_PROBING 1 //How much the extruder will be raised before traveling to the first probing point.
#define Z_RAISE_BETWEEN_PROBINGS 1 //How much the extruder will be raised when traveling from between next probing points

Также не забудьте заменить загрузочный Gcode:
-- START GCODE --
;Sliced at: {day} {date} {time}
;Basic settings: Layer height: {layer_height} Walls: {wall_thickness} Fill: {fill_density}
;Print time: {print_time}
;Filament used: {filament_amount}m {filament_weight}g
;Filament cost: {filament_cost}
;M190 S{print_bed_temperature} ;Uncomment to add your own bed temperature line
;M109 S{print_temperature} ;Uncomment to add your own temperature line
G21 ;metric values
G90 ;absolute positioning
M107 ;start with the fan off
G28
G29
G1 Z15.0 F1200 ;move the platform down 15mm
G92 E0 ;zero the extruded length
G1 F200 E5 ;extrude 5mm of feed stock
G92 E0 ;zero the extruded length again
G1 F{travel_speed}
;Put printing message on LCD screen
;M117 Printing...
; -- end of START GCODE --

Если у вас возникают проблемы с изменением файла Configuration.h, то вы можете воспользоваться готовым файломот автора апгрейда. Однако он предупреждает, что пользуется уже другим датчиком и параметры дистанции всё равно придётся изменить.

Как вариант, вы можете воспользоваться другим датчиком - LJC18A3-H-Z/BX. Основное отличие в том, что он позволяет фиксировать расстояние уже на 10 мм.
Видео:
Подписаться на 3Dtoday
29
Комментарии к статье

Комментарии

20 Апр 14:45
0
Ни совсем понял или может я ни так понял )) :oops:

Так какая точность достигается такой настройкой?
Будет ли расстояние между соплом и столом реально соответствовать 0.1 мм по всей площади стола (если конечно взять за cons, что сам стол ровный)?
20 Апр 14:47
0
Как уже сказано в статье, сам сейчас только устанавливаю, так что некоторые "пробелы" в экспериментальной базе пока есть) По идее точность должна достигаться очень высокая, датчики клёвые. 0.1 сравнительно не самое маленькое расстояние, так что думаю такое значение датчик гарантированно ловит. Но самому интересно стало, пойду поищу его предельно допустимые отклонения)
20 Апр 14:50
5
по идее отклонения 5% но проблема будет с толщиной стола , он на тонкий металл плохо реагирует
20 Апр 14:53
2
Мне кажется должно быть менее 5%, по крайней мере на таких дистанциях
20 Апр 15:05
5
ты прав, очепятка вышла , спасибо что поправил
20 Апр 15:16
0
На форуме целая ветка про это дело есть. Точность полная фигня.
20 Апр 15:08
4
для этого датчика и нормальной его работы необходим металл 4 мм минимум, тогда он будет срабатывать точно
20 Апр 15:09
7
s0N_3EiPFeM.jpg
1FcrJI5YU9I.jpg



Поздно франзуц решился) фотографии август , того года)
20 Апр 15:21
4
Блин вы молодцы! сколько за вами смотрю как какой пост не напишут что мол вот новые разработки, у вас уже давно это сделано!
а что у вас еще интересного на машинах стоит?
20 Апр 15:30
0
на самом деле и у нас на "альфе" давно датчик уже такой ставится. Отсутствие калибровки сильно упрощает процесс печати.
20 Апр 15:25
1
Ну вот, расскажите нам о преимуществах использования такого датчика)
20 Апр 15:30
2
на данный момент, мы отказались от его использования в силу конструктивных решений своего принтера)
20 Апр 15:48
0
Только из за конструктивных особенностей или все же качество калибровки страдало?
20 Апр 16:20
0
я так понял есть два способа выравнивания стола
1. ручной, когда головку подводят в разные точки стола и регулируют винтами расстояние от головки до подложке. При печати одного слоя детал по Z не движется.
2. автоматический, когда принтер замеряет расстояние при z=0 в нескольких точках и уже в зависимости от координат ХУ поднимает либо опускает стол постоянно.


так?
20 Апр 16:40
3
из-за конструктивных особенностей, страдало качество калибровки);)
20 Апр 19:03
2
Посмотрел характеристики датчика и возник вопрос. Максимальная температура 55 градусов. А как он поведет себя в случае печати ABS-м? Температура стола 90-110, пусть зазор, что снизит температуру воздействия. Но при печати первого слоя, который отрабатывается на пониженной скорости, датчик будет находится достаточно длительное время в зоне повышенной температуры (тут, правда, все будет зависеть от области печати). Не повлияет ли это на точность измерений и на отказоустойчивость?
Alfa. У вас вроде бы стол с подогревом. Что скажите?
20 Апр 19:18
1
очень хороший вопрос!
Не ясно почему до сих пор не применяются лазерные указки и фотоприемники в трубочке для такой деятельности.
Уверен, сразу убьют несколько зайцев за 1 выстрел,>стоимость, вес, точность, зазор головы для последовательной печати.
20 Апр 19:33
2
Действительно, ведь под ардуино есть лазерные дальномеры, по моему. Инфракрасные точно есть.
20 Апр 19:49
2
честно, зачем дальномер то ?:))),нужно поймать всего лишь зайчик от стекла в тонкую трубку длиной 3см где установлен фотоприемник:)
все под углом, константой всегда, как только угловое значение отражения устанавливается так чтоб зайчик упал бы на фото приемник через остро направленную трубочку сразу вбивается цифра в мозги принтера, ну и т.д. все так же как и с микриком на серво...8)
12 Сен 21:56
0
А зачем ставить его вровень с соплом. Можно на 10мм выше, и в прошивке указать офсет по Z -10 ..или я не прав?
20 Апр 19:58
1
Повторяемость таких датчиков не самая лучшая, да и вовсе это не ноу-хау. Такое много где используют. Собственно это и есть предназначение этих датчиков
20 Апр 20:04
0
вы о лазере?
20 Апр 20:06
1
Не, я про индукционный датчик
20 Апр 20:12
1
а, ну тогда согласен 8)
cats.jpg
20 Апр 22:56
0
цены на датчики покусываются... http://www.chipdip.ru/catalog-show/proximity-switches/
вроде есть емкостные датчики. им металл не нужен http://www.megak.ru/emkostnie.php

есть и оптические. но ценник - космос :o
21 Апр 00:10
2
Интересная статья :) ничего не работает, но зато много букв
21 Апр 12:49
0
Вот есть датчики дешевле и точность высокая, смотрите 4 снизу списка http://darxton.ru/catalog_section/kontsevye-datchiki/
21 Апр 14:25
0
Продублирую свой пост с Робофорума:
------------------------------
А как должна проводится подстройка под высоту сопла?
Вот поменял человек сопло. Сопло на 2 сотки больше. Выходит автокалибровка загонет сопло на 2 сотки в платформу?
Я для себя вижу единсвенный удобный вариант - это подстройка высоты из меню.

Так же было бы супер, если бы:
- из меню можно было выбрать количество точек для автокалибровки,
- автокалибровка проводилась не по всей платформе, а только по области построения,
- сетка автокалибровки сохранялась бы в памяти принтера. Вот например, нужно напечатать 20 одинаковых деталей, зачем каждый раз при запуске калибровать платформу? Откалибровал первый раз, а затем если не задано иное принтер просто использует старые значения. Если принтер перезагрузить, то автокалибровка начнется наново....
22 Апр 18:12
0
Подстройка под высоту сопла производится каждый раз после смены сопла. Индукционный датчик не решает эту проблему. Он решает проблему наклона стола при известной высотой между концом сопла и точкой срабатывания датчика.

Впрочем, определение искомого расстояния - совсем несложная задача, решается из Pronterface за пару минут.
1) После выполнения команды G28 Z0 голова находится в точке срабатывания датчика.
2) Говорим в Pronterface G92 Z100 например.
3) Последовательностью команд типа G1 Z98, G1 Z96, G1 Z95, G1 Z94.5, G1 Z94.45 упираем голову в стол (можно по визуальному зазору прям, никогда не понимал зачем нужен лист бумаги если я хочу найти ноль - бумага то не нудевой толщины. У меня правда срабатывает другой хинт. На голове стоял две турбины, которые сосздают микроколебания головы, и при соприкосновении со столом, это отлично ощущается на слух).
4) Искомая константа ZOFFSET = 94.45 - 100 = -5.55 (в данном примере)
22 Апр 18:15
0
Если безумная идея поставить на экструдер колебательный элемент (пьезо, например), а на стол - микрофон. И в момент прикосновения головы к столу микрофон поймает этот факт по значительному усилению амплитуды колебаний (по сравнению с тем что прошло через воздух).
27 Фев 21:19
0
Помогите найти скрипт для автокалибровки.
10 Май 14:13
0
Не пинайте сильно, не силен в электронике
Я правильно понимаю на LJ12A3-4-Z / BX я подаю +12 со входа платы, а сигнал и граунд вместо датчика Z, через резисторы естественно 15кОМ на сигнал и 10кОм между сигналом и граудом?
13 Июл 18:19
0
Ставлю стекло 4мм и датчик не стобатывает, даже если втыкаеш его в плотную к стеклу, стол алюминий, можно что нибудь зделать в таком случае ?
12 Сен 21:51
0
там винтик на датчике регулировка чувствительности должен быть.
26 Июл 15:12
0
Что означает этот параметр #define Z_PROBE_OFFSET_FROM_EXTRUDER -2.5 ?
12 Сен 21:48
0
видимо что датчик стоит выше над соплом на 2.5мм
12 Авг 14:22
0
Ну вместо трубочек, лазеров и прочего можно фотоинтераптор на отражение поставить ))) например http://robocraft.ru/shop/index.php?route=product/product&path=38&product_id=143 и цена копейки и с питанием проблем нет (не нужен делитель)
31 Окт 14:08
0
в очередной раз спасибо. снова вынул из избранного ваш пост и реализовал подключение датчика
16 Ноя 17:09
0
подскажите чем редактировать прошивку? принтер анет а8 плата анет 1.0
2 Дек 15:57
0
ясно
19 Дек 00:50
0
Подскажите пожалуйста вроде все правильно настроил с датчиком но после замеров коретка уезжает вверх иногда на 10 мм иногда и больше и как бы в воздухе печатать начинает.
Куда копать ?
Вот часть конфига
// #################### Z-Probing #####################
#define Z_PROBE_Z_OFFSET -5
#define Z_PROBE_Z_OFFSET_MODE 0
#define UI_BED_COATING 1
#define FEATURE_Z_PROBE 1
#define Z_PROBE_BED_DISTANCE 10
#define Z_PROBE_PIN 7
#define Z_PROBE_PULLUP 0
#define Z_PROBE_ON_HIGH 1
#define Z_PROBE_X_OFFSET 6
#define Z_PROBE_Y_OFFSET 42
#define Z_PROBE_WAIT_BEFORE_TEST 0
#define Z_PROBE_SPEED 2
#define Z_PROBE_XY_SPEED 150
#define Z_PROBE_SWITCHING_DISTANCE 2
#define Z_PROBE_REPETITIONS 1
#define Z_PROBE_HEIGHT 2
#define Z_PROBE_START_SCRIPT ""
#define Z_PROBE_FINISHED_SCRIPT ""
#define Z_PROBE_REQUIRES_HEATING 0
#define Z_PROBE_MIN_TEMPERATURE 150
#define FEATURE_AUTOLEVEL 1
#define Z_PROBE_X1 20
#define Z_PROBE_Y1 60
#define Z_PROBE_X2 160
#define Z_PROBE_Y2 60
#define Z_PROBE_X3 20
#define Z_PROBE_Y3 190
#define BED_LEVELING_METHOD 0
#define BED_CORRECTION_METHOD 0
#define BED_LEVELING_GRID_SIZE 5
#define BED_LEVELING_REPETITIONS 5
#define BED_MOTOR_1_X 0
#define BED_MOTOR_1_Y 0
#define BED_MOTOR_2_X 200
#define BED_MOTOR_2_Y 0
#define BED_MOTOR_3_X 100
#define BED_MOTOR_3_Y 200
#define BENDING_CORRECTION_A 0
#define BENDING_CORRECTION_B 0
#define BENDING_CORRECTION_C 0
#define FEATURE_AXISCOMP 0
#define AXISCOMP_TANXY 0
#define AXISCOMP_TANYZ 0
#define AXISCOMP_TANXZ 0
9 Янв 00:41
0
нашли ошибку? у меня наоборот упирается в стол и царапает
9 Янв 01:08
0
Я снял этот датчик.
Станина стальная жесткие прыжины на столе.
Один раз выставил и все.

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

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

Hot End по Фен Шую!

3Dtoday за 60 секунд от 23 февраля

3d-печать в архитектурном макетировании

3D-печатный электронный барабан своими руками

Паровоз, или утонченный блеск асфальта. U3print Wet Ashpalt

SatRevolution намеревается запустить массовое производство 3D-печатных спутников