Кремень FMZ Реклама
Kremen FMHM Реклама

Автоуровень стола с сервой на прошивке Marlin.

Doozer
Идет загрузка
Загрузка
03.03.2016
50988
72
Техничка

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

44
Приветствую, коллеги!

Тут недавно был пост про автоуровень стола, но честно говоря ничего не понятно, да и автор не смог ничего объяснить.

Напишу как я делал автоуровень на своей Прюше.

Для начала распечатал плату крепления радиатора хотенда к экструдеру с местом под минисерву 9 граммовую.
Автоуровень стола с сервой на прошивке Marlin.
Автоуровень стола с сервой на прошивке Marlin.
И штангу на которой крепится концевик.

Штангу взял тут: - http://www.thingiverse.com/thing:573181

Немного под свои нужды переделал в OpenSCAD.
Автоуровень стола с сервой на прошивке Marlin.
Установил это все на принтер, подключил.

И начал править прошивку. У меня версия Marlin 1.0.1

Напишу, какие строки я менял и объясню зачем.
#define min_software_endstops false
- ставим 'ложно' для того чтобы моторы работали, даже если координаты в минусе. Это нужно для калибровки. Потом вернем на истину (true).
#define ENABLE_AUTO_BED_LEVELING
убираем комментарий перед строкой (//), включаем собственно сам автолевел.

Есть 2 типа проверки уровня стола - сетка (grid) и уровень по 3-м точкам (3-point mode).

Я выбрал сетку.
#define AUTO_BED_LEVELING_GRID
Удаляем комментарии перед строкой (//)

В секции R/C SERVO support настраиваем серву.

Актиивируем серву:
#define SERVO_ENDSTOPS {-1, -1, 0}
Устанавливаем всю механику, подключаем серву.
Автоуровень стола с сервой на прошивке Marlin.
Настраиваем угол отклонения качалки сервы:
#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 55,0}
Он настраивается так. Поднимаете ось Х, даете команду M280 P0 S160, где S это требуемый угол. Добиваетесь, чтобы концевик встал перпендикулярно столу.

И эту цифру прописываете в строку выше, в последнюю позицию (вместо 55)

Далее настраиваем оффсеты для осей.
// #define X_PROBE_OFFSET_FROM_EXTRUDER -25

// #define Y_PROBE_OFFSET_FROM_EXTRUDER -29

// #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35
Это делается так. устанавливаем сопло в центр стола (можно поставить точку маркером), калибруем уровень с помощью листа бумаги, даем команду на обнуление осей:

G92 X0 Y0 Z0

Поднимаем ось Х на 10 мм., опускаем качалку с концевиком командой М401 (М402 поднимает качалку), подводим лапку концевика к центру стола, и начинаем потихоньку опускать ось Х, контролируя срабатывание концевика с помощью команды M119. Как только концевик сработал, с помощью команды M114 выводим координаты. Например получилось так:
Х = -23, Y = -34, Z = 5.6
Тогда оффсеты будут выглядеть так:
// #define X_PROBE_OFFSET_FROM_EXTRUDER 23

// #define Y_PROBE_OFFSET_FROM_EXTRUDER 34

// #define Z_PROBE_OFFSET_FROM_EXTRUDER -5.6
Т.е. обязательно нужно инвертировать числа.

Все это записываем в Атмегу. настройка закончена. Осталось записать в слайсер(ы) стартовые G-code.

Но есть нюанс небольшой. Если по X и Y оффсеты положительные, как у меня, то при компиляции Arduino IDE ругается. И не дает использовать метод проб grid. И при этом у меня центр стола уезжал по X на эти 23 мм. Я сделал просто - поставил в оффсетах X и Y нули. Центр вернулся, пробы делаются по 9 точкам.

Теперь стартовый G-Code. У меня он такой:
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 F5000

M117 Printing...
Результат этого всего виден на видео:
ЗЫ Вроде ничего не забыл. Если что-то забыл - допишу в комментариях.

ЗЫЫ Чукча не писатель! )

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

44
Комментарии к статье