ВСТУПЛЕНИЕ

“Железо” принтера приведено в порядок. Далее потребуется запустить принтер. А вот для запуска необходимо адаптировать прошивку под подготовленное “железо”. Это значит, что нужно прописать настройки прошивки – установленное оборудование, скорости, ускорения для использованной кинематики. Именно на этом этапе возникает множество вопросов у читателей блога. Еще раз попробую детально раскрыть назначение элементов прошивки и “секреты” настройки принтера.

ПОДГОТОВКА КОМПЬЮТЕРА

Как писал ранее, в основном, в своих проектах использую прошивку MARLIN – это свободно распространяемые исходные коды для формирования управляющей контроллером программы. MARLIN написана для работы в среде Arduino, которая также является бесплатной. Скачивается среда программирования на официальном сайте. Во время написания статьи пользуюсь версией 1.8.12.

После установки среды программирования скачиваются исходные коды MARLIN. Также с официальной страницы репозитория MARLIN на GitHub. Умышленно привожу ссылку на страницу, где представлены все релизы. Это позволит спустя время (после выхода новых релизов) скачать версию MARLIN, которую рассматриваю в статье. Разбирать буду версию 2.0.5.3.

Контроллеры ANET не имеют встроенных библиотек в среде Arduino. Значит потребуется скачать из репозитория SkyNet3D описание. По ссылке скачиваем архив “anet-board-master.zip”, распаковываем содержимое в папку описания контроллеров среды Arduino “Documents\Arduino\hardware”.

НАСТРОЙКА КИНЕМАТИКИ

Плата контроллера ANET 1.7 является клоном известной платы “SANGUINO”. Отличительно чертой этих плат является наличие на борту микроконтроллера с небольшим количеством памяти программ. По этой причине более ранние платы ANET поставлялись без загрузчика для экономии памяти. Это означает, что для прошивки необходимо “смастерить” программатор.  На тему прошивки контроллеров ANET есть много статей в интернет. Плата ANET 1.7 оснащена загрузчиком. Тему прошивки через программатор я упущу…

“Запихнуть” много полезных функций последних релизов прошивки Marlin 2 из-за этой особенности просто не выйдет – памяти программ катастрофически не хватает!

Открываем MARLIN в среде Arduino, выбираем контроллер – Anet v1.0 и последовательный порт, к которому подключена плата.

Для настройки принтера потребуется задать базовые настройки, которые позволят подключиться к ПК и “прощупать железо” принтера.

 В файле “Configuration.h“:

// ОСНОВНОЙ ПОСЛЕДОВАТЕЛЬНЫЙ ПОРТ
// :[-1, 0, 1, 2, 3, 4, 5, 6, 7]

#define SERIAL_PORT 0

// СКОРОСТЬ РАБОТЫ ПОСЛЕДОВАТЕЛЬНОГО ПОРТА
// :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]

#define BAUDRATE 115200

// ВЫБОР КОНТРОЛЛЕРА
#define MOTHERBOARD BOARD_ANET_10

// КОЛИЧЕСТВО ЭКСТРУДЕРОВ
// :[1, 2, 3, 4, 5, 6, 7, 8]
#define EXTRUDERS 1

// ТИП ДАТЧИКА ТЕМПЕРАТУРЫ ФОРСУНКИ
#define TEMP_SENSOR_0 11

// ТИП ДАТЧИКА ТЕМПЕРАТУРЫ СТОЛА
#define TEMP_SENSOR_BED 11

// ВКЛЮЧЕНИЕ ВНУТРЕННИХ ПОДТЯГИВАЮЩИХ РЕЗИСТОРОВ КОНЦЕВИКОВ
#define ENDSTOPPULLUPS

Подтягивающие резисторы требуются обязательно из-за того, что на принтере используются обычные концевые выключатели без платы формирования напряжения логического уровня. Без подтягивающих резисторов контроллер не сможет определить срабатывание концевиков.

// ФОРМИРОВАНИЕ ЛОГИЧЕСКОГО УРОВНЯ НА КОНЦЕВИКАХ
#define X_MIN_ENDSTOP_INVERTING true 
#define Y_MIN_ENDSTOP_INVERTING true 
#define Z_MIN_ENDSTOP_INVERTING true

На принтере ORTUR-4 концевые выключатели подключаются между “GND” и сигнальным входом контроллера. Другими словами, когда концевик разомкнут, на входе контроллера сформирован уровень логической единицы за счет внутреннего подтягивающего резистора. Как только концевик срабатывает, на входе формируется уровень логического нуля. В этой ситуации необходимо инвертировать логику срабатывания концевиков.

// ОПРЕДЕЛЕНИЕ ТИПА ДРАЙВЕРА ШАГОВЫХ ДВИГАТЕЛЕЙ
#define X_DRIVER_TYPE A4988
#define Y_DRIVER_TYPE A4988
#define Z_DRIVER_TYPE A4988
#define E0_DRIVER_TYPE A4988

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

// ЗАЩИТА ОТ ЛОЖНЫХ СРАБАТЫВАНИЙ КОНЦЕВИКОВ
#define ENDSTOP_NOISE_THRESHOLD 2

// НАСТРОЙКА КОЛ-ВА ШАГОВ ДВИГАТЕЛЕЙ НА МИЛЛИМЕТР ПЕРЕМЕЩЕНИЯ
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 95 } // 1/16 ШАГА

В DEFAULT_AXIS_STEPS_PER_UNIT определяются количества шагов, при которых шаговые двигатели перемещаются ровно на один миллиметр. Все двигатели настроены для работы в режиме 1/16 шага.  При этом для ремней GT-2 это значение должно быть 80. На моем экземпляре ORTUR-4 установлены ходовые винты с шагом 2 мм и  четырьмя заходами (LEAD 8). Для таких винтов значение должно составлять 400 шагов. Если применяется винт с двумя заходами (LEAD 4),  то – 800 шагов. Для однозаходных винтов (LEAD 2) – 1600 шагов. Для экструдера MK-8 ставим стандартное значение – 95 шагов.

// МАКСИМАЛЬНАЯ СКОРОСТЬ
#define DEFAULT_MAX_FEEDRATE { 300, 300, 15, 400 }

В этом разделе указываются максимальные скорости перемещений по всем осям. Приведены уже подобранные значения. О том, как подбирать значения максимальных скоростей расскажу ниже.

// МАКСИМАЛЬНЫЕ УСКОРЕНИЯ
#define DEFAULT_MAX_ACCELERATION { 3000, 3000, 250, 4000 }

Для кинематики, в которой используются тяжелые металлические каретки использовать ускорения выше 3000 не стоит. Не справляются двигатели, появляются различные артефакты при печати. На легких каретках (особенно на системах без так называемых “дрыг-столов”) ускорения могут достигать 6000 – 7000. 

Поскольку основное время печати принтера это разгон и торможение при смене направлений, то и общая скорость печати в большей степени определяется ускорениями! Значит занижать значения максимальных и рабочих ускорений не стоит… 

// УСКОРЕНИЯ
#define DEFAULT_ACCELERATION 2500 // X, Y, Z, E УСКОРЕНИЯ ВО ВРЕМЯ ПЕЧАТИ
#define DEFAULT_RETRACT_ACCELERATION 3500 // E УСКОРЕНИЕ ДЛЯ РЕТРАКТА
#define DEFAULT_TRAVEL_ACCELERATION 2500 // X, Y, Z УСКОРЕНИЯ ПРИ ПЕРЕМЕЩЕНИЙ ВНЕ ПЕЧАТИ

// ИНВЕРТИРОВАНИЕ НАПРАВЛЕНИЯ ВРАЩЕНИЯ ШАГОВИКОВ
#define INVERT_X_DIR false
#define INVERT_Y_DIR true
#define INVERT_Z_DIR true

Конфигурация представлена для подключения шаговых двигателей принтера ORTUR-4. В том случае, если перемещения по соответствующим осям выполняются не в ту сторону потребуется поменять значения или “перевернуть” разъем шагового двигателя на плате контроллера.

// ИНВЕРТИРОВАНИЕ НАПРАВЛЕНИЯ ВРАЩЕНИЯ ШАГОВОГО ДВИГАТЕЛЯ ЭКСТРУДЕРА
#define INVERT_E0_DIR false

Все вышесказанное верно и для экструдера.

// НАПРАВЛЕНИЕ ДВИЖЕНИЯ В НАЧАЛЬНОЕ ПОЛОЖЕНИЕ 1=MAX, -1=MIN
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1

В случае, когда концевые датчики установлены в минимальную позицию стола, выбирается “-1”.

// ПОДДЕРЖКА SD КАРТЫ
#define SDSUPPORT

Подключаем SD карту

// ВКЛЮЧЕНИЕ ДИСПЛЕЯ
#define ANET_FULL_GRAPHICS_LCD

И дисплей.

Далее требуется задать режим работы драйверов шаговых двигателей. Поскольку управление осуществляется программно, то открываем файл расширенной конфигурации “Configuration_adv.h” и задаем значение для микрошага.

// УСТАНОВКА МИКРОШАГА
#define MICROSTEP_MODES { 16, 16, 16, 16, 16, 16 } // [1,2,4,8,16]

Как видно из комментария, можно задать только значения до 1/16 шага. Если требуется установить значения управляющих линий под специфический драйвер, можно задать значения вручную.

// РПОЛЬЗОВАТЕЛЬСКАЯ УСТАНОВКА МИКРОШАГА
//#define MICROSTEP1 LOW,LOW,LOW
//#define MICROSTEP2 HIGH,LOW,LOW
//#define MICROSTEP4 LOW,HIGH,LOW
//#define MICROSTEP8 HIGH,HIGH,LOW
//#define MICROSTEP16 LOW,LOW,HIGH
//#define MICROSTEP32 HIGH,LOW,HIGH

Для контроллера ANET 1.7 ручной настройки не требуется.

Осталось сконфигурировать пины управления дисплеем. Для этого требуется перейти к файлу конфигурации контроллера ANET. Файл расположен в подпапке “Marlin\src\pins\sanguino“, называется “pins_ANET_10.h“.

// УПРАВЛЕНИЕ SD КАРТОЙ
#define SDSS 31

Проверяем правильность определения пина управления SD картой. Должен быть “31”. 

Поскольку выше указали дисплей ANET_FULL_GRAPHICS_LCD, то в группе конфигураций, соответствующих дисплеев указываем выполненное в предыдущей статье подключение:

#elif EITHER(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER, ANET_FULL_GRAPHICS_LCD)
  // КОНФИГУРАЦИЯ ГРАФИЧЕСКИХ ДИСПЛЕЕВ
  // #define ALTERNATIVE_LCD
  #define SERVO0_PIN -1 // free for BLTouch/3D-Touch
  #define BEEPER_PIN 17
  #define LCD_PINS_RS 27
  #define LCD_PINS_ENABLE 28
  #define LCD_PINS_D4 30
  #define BTN_EN1 11
  #define BTN_EN2 10
  #define BTN_ENC 16
  #define BOARD_ST7920_DELAY_1 DELAY_NS(150)
  #define BOARD_ST7920_DELAY_2 DELAY_NS(150)
  #define BOARD_ST7920_DELAY_3 DELAY_NS(150)
  // #define STD_ENCODER_PULSES_PER_STEP 4
  // #define STD_ENCODER_STEPS_PER_MENU_ITEM 1
#endif

В выдержке видны три строки, которые определяют задержку интерфейса управления дисплеем. При подготовке прошивки MARLIN 2 разработчики настолько оптимизировали код для получения максимального быстродействия, что достаточно старые дисплеи просто не справляются с приемом данных. Если сбросить задержки в ноль, то на экране Вы можете получить искаженное изображение – смазанное изображение, вплоть до “снега”.   Приведены подобранные мной значения для дисплея ORTUR-4. На Вашем дисплее возможны другие значения! Видете на дисплее искажения, то “копать” нужно именно здесь…

Если установлен пин управления сервоприводом и он “пересекается” с занятыми под управление индикатором пинами, настройку потребуется сбросить:

#define SERVO0_PIN -1  

Все основные настройки прописаны, можно подключаться к принтеру и тестировать…

ТЕСТИРОВАНИЕ

После внесения базовых изменений в оригинальный код прошивки включаем принтер… Он должен включиться, дисплей выдать информационную строку готовности. Если датчики температуры нагревателя форсунки или стола подключены неправильно или не подключены, принтер должен уйти в защиту, выдать соответствующую информацию. 

Далее для настройки принтера удобней пользоваться ПК. Скачиваем и устанавливаем управляющую программу – Repetier Host.

В Repetier Host потребуется настроить параметры принтера. Сделаем это сразу. Все необходимые настройки для ORTUR-4 представлены на скриншоте.

Подключаемся к принтеру…

Если все верно подключено и исправно, то в разделе “Управление” отображаются все нагреватели и управление вентилятором.

Рекомендую сразу включить нагрев и проверить работоспособность нагревателей. Также вращение вентилятора.

Отслеживать процесс нагрева удобно во вкладке “График температур”.

На графике видно как задействована мощность нагревателей и работа ПИД регуляторов. Показания температур стабильные – коэффициенты ПИД подобраны хорошо. Про включение и настройку ПИД регуляторов напишу в следующей статье.

Видно, что стол нагревается до 120 градусов за 20 мин без каких-либо проблем. Когда начинали работать с ORTUR-4 из коробки, нагреть стол удавалось лишь до 90 градусов. Приобрели термозащитную накладку. После этого удалось поднять температуру нагрева до 95 градусов.

В  предыдущей статье о ремонте ORTUR-4 я упомянул из рук вон плохую проводку от БП к управляющей плате. После замены проводов результат заметно радует – 120 градусов на столе 3D принтера. Хочу заметить, что максимальную возможную температуру достичь не пытался, но запас по мощности у ORTUR-4 есть.

До начала движения по осям необходимо проверить работу концевиков. Проверка осуществляется с помощью опроса принтера с использованием команды GCODE – M119. Команду вбиваем во вкладке “Управление” жмем кнопку “Отправить” (проиллюстрировано на скриншоте с нагревом принтера). Все концевики находятся в “открытом” состоянии, это подтверждает принтер. Статус отображается в нижнем окне Repetier Host. Теперь по очереди фиксируем концевики и отправляем повторно M119 на фиксацию каждого концевика. Если нет ошибок при подключении концевиков, можно будет увидеть изменившийся статус.

Далее приступаем к проверке движения по осям. Жмем кнопку установки домашней (нулевой) позиции. Наблюдаем, как отработает принтер. Если движение осуществляется в неправильном направлении, то возвращаемся к прошивке (вверх по статье), меняем направление и прошиваем принтер.

После проверки срабатывания концевых датчиков, перемещаемся с помощью кнопок Repetier Host в каждом направлении на 100 мм и убеждаемся, что форсунка сместилась именно на 100 мм. Если реальное перемещение не соответствует заданному, проверяем правильность установки микрошага в прошивке и соответствующих значений шагов на 1 мм в определении DEFAULT_AXIS_STEPS_PER_UNIT.

Несколько слов для тех, кто собрал новый принтер и пытается выяснить возможности кинематики…

Когда собираю что-то на новой, незнакомой кинематике, я задаю завышенные значения для скоростей и ускорений в прошивке. Это описания  DEFAULT_MAX_FEEDRATE и DEFAULT_MAX_ACCELERATION.

#define DEFAULT_MAX_FEEDRATE { 1000, 1000, 200, 400 }

#define DEFAULT_MAX_ACCELERATION { 10000, 10000, 1000, 4000 }

Перехожу в Repetier Host, устанавливаю в настройках принтера скорости, соответствующие прописанным в DEFAULT_MAX_FEEDRATE. Требуется учесть, что в Repetier Host скорости задаются в мм / мин, в прошивке в мм / сек. Т. е. для 1000 мм / сек прошивки соответствует 60000 мм / мин в настройках Repetier Host. Далее управляю перемещением и наблюдаю за системой… Если скорости завышены, то можно легко заметить, как шаговые двигатели “захлебываются” не справляясь с прописанными в прошивке скоростями. Постепенно снижая скорость в настройках Repetier Host приближаюсь к скоростям, которые “осилит” система, прописываю их в прошивке. То же касается и ускорений!

Осталось только сделать одно замечание. Разные кинематические системы справляются со скоростями по разному. Также скорости сильно зависят от массы перемещаемых кареток. Для каждой системы важно выявить те самые скорости и ускорения, на которых шаговые двигатели не будут “захлебываться”, будут отсутствовать посторонние шумы (особенно характерно для линейных шариковых подшипников)!

Для ORTUR-4 подбирались мной вручную, по описанному выше алгоритму:

#define DEFAULT_MAX_FEEDRATE { 300, 300, 15, 400 }

#define DEFAULT_MAX_ACCELERATION { 3000, 3000, 250, 4000 }

Параметры скорости и ускорения для экструдера подобраны ранее и вполне соответствуют установленному MK-8 экструдеру.

ЗАКЛЮЧЕНИЕ

На данном этапе принтер ожил, все узлы работают без замечаний. Теперь, конечно же, появляется желание персонализировать свой принтер, перевести меню на родной язык, добавить доступный в MARLIN функционал, улучшающий качество печати и удобство работы с 3D принтером. Именно этим займусь в следующей статье.

ВАША ПОДДЕРЖКА ПОМОЖЕТ АКТИВНЕЙ РАБОТАТЬ НАД БЛОГОМ, ПУБЛИКОВАТЬ БОЛЬШЕ СТАТЕЙ, КОТОРЫЕ, В СВОЮ ОЧЕРЕДЬ, ПОМОГУТ ВАМ РЕАЛИЗОВЫВАТЬ ИНТЕРЕСНЫЕ ПРОЕКТЫ.

СПАСИБО ЗА УЧАСТИЕ В ЖИЗНИ БЛОГА!

ЯНДЕКСWEBMONEYQIWIPAYPAL

Добавить комментарий