Дельта 3D принтеры VS H-BOT
Если брать историю создания, то 3D принтеры с классической кинематикой появились раньше, чем 3D принтеры Delta.
Все началось в 2010 году, когда двое участников RepRap движения (Energetic и Reinoud) захотели создать бюджетный принтер на базе дельта-роботов.
Такие дельта-роботы набирали свою популярность на линиях упаковки и расфасовки, потому что делают это быстрее людей и обходятся намного дешевле.
Щупальцу(зажим) для перемещения товаров заменили на экструдер. И как следствие появилась новейшая схема кинематики 3D принтера на тот момент времени.
Первоначально разработанный дельта 3Д принтер сильно отличался от принтеров нашего времени, у них даже не было направляющих для перемещения штанг, где были еще дополнительные плечи изгиба.
Но уже в 2012 году в Сиэтле был представлен новый прототип дельта-принтера, у которого имелись направляющие и по внешнему виду уже напоминал современные 3D принтеры. Его основателем стал Иоганн Рохолл (Johann C. Rocholl), который дал ему название Росток (Rostock), как что-то восходящее и развивающееся.
Позже, основываясь на базе принтера Росток был разработан 3D принтер Коссель, который уже имел вид современного 3D принтера Delta.
Часть вторая. Формат XML-файла
Для того, чтобы сделать программу максимально гибкой, была использована библиотека ScriptEngine. Сам чуточку ошалел от того, что теперь реально можно сделать при конфигурации. Основной постулат таков: есть много вычисляемых параметров, работа с которыми ведется максимально прозрачно: текст передается модулю ScriptEngine, и используется результат. Та же ситуация происходит, если в шаблоне G-Code встретится комбинация $<бла-бла-бла>. При этом все, что внутри фигурных скобок, будет передано на вычисление, а весь шаблон заменен результатом.
На самом деле, ничего сложного нет, если вчитаться. Но давайте разберем посекционно:
В секции variables, как следует из названия, мы можем определить произвольный набор глобальных переменных. Они никак не влияют на работу программы, пока не встретятся в каком-нибудь вычисляемом выражении.
Функции. Ну, точнее, функция. Пока она, предопределенная, одна: вычисление реального диаметра сверла для металлизированных отверстий. Известно, что металлизация крадет диаметр, и это частенько приводит к казусам при попытке просунуть ногу компонента 0,8, которая не лезет в отверстие, заложенное, как 0,9. Чтобы не возиться с этим при проектировании я решил добавить этот функционал.
Смысл этой секции — определить функции, которые может использовать конвертер для определенных целей. Эти функции нельзя (пока?) использовать самостоятельно.
Сверла. Тут нужно сделать отсылку к команде скрипта «align tools», про которую ниже. Каждый элемент этой секции определяет ячейку, в которую будут собраны все инструменты, распознанные во входном файле. Идея такова, что частенько при проектировании случаются дюймовые диаметры, и множество инструментов с их значениями 0,478. 0,492… и т.д. Чтобы не возиться с ними, мы задаем обязательные параметры range_min и range_max. Обязателен так же признак металлизации. Ноды XML просматриваются последовательно, и как только очередной инструмент из DRL подходит под определение — нода признается подходящей.
Можно задавать любые другие параметры в ноде. Их значение можно будет позже использовать в шаблонах.
Вы можете задать позицию в пенале или координаты, где захватить сверло, если у вас станок с автосменой инструмента. А можете описать инструмент буквами для вывода на экран принтера, если у вас, как у меня, Marlin и ручная смена сверл.
А вот теперь оцените всю прелесть скрипт-машины! Шаблоны. Конвертер, как я уже говорил, работает с шаблонами просто: ищет все кусочки вида $<. >, и отправляет в скрипт-машину. А там-то JS-подобный язык. Поэтому, собственно, можно даже чуточку программировать. В данном примере можно видеть, как при выводе шаблона start мы сначала определили пару переменных, которым присвоили значения глобальных. Ну а лишь потом написали константу, которая и будет значением выполнения этого куска.
Когда этот шаблон будет выведен в выходной файл, мы увидим:
Ну и не могу ж не похвастаться. Оцените кусочек из шаблона для сверления каждой дырдочки:
да-да… каждый раз, печатая комментарий Holes rest, мы будем декрементировать значение hcnt. А она, как мы помним, была определена, пока мы печатали start, а, стало быть, находится контекстом выше. А потом будем вычислять переменную percent, чтобы после использовать ее в другом куске — при передаче ее в команду M73 (эта команда заставляет марлин подвинуть полоску прогресса). G-Код, сгенерированный этим фрагментом:
кстати, toolsCount, minX — это предопределенные имена глобальных переменных.
Отмечу, что имена шаблонов не предопределены, т.е. вы можете использовать любые. Шаблон будет распечатан, когда в скрипте встретится команда print и его имя.
Кожух — пассивная термокамера
Не так давно компания ivilol выпустила в продажу прозрачную крышку для Ulti Steel. Ну а т.к. я преимущественно печатаю инженеркой и АБСом, которые очень не любят сквозняки, приобрел крышку.
Результатами ее использования я остался доволен. Принтер обзавелся закрытым корпусом — то чего мне так не хватало.
Но если Вам хочется подробностей, то рекомендую к просмотру данный ролик:
Ну а дальше случилось неприятное. в один прекрасный день на принтере помер термистор, что привело к пробке и деформации резьбы на нагревательном блоке.
Ну а т.к. замена термистора требует разбора целого жгута проводов, было решено заменить кулер охлаждения радиатора хотэнда (прислали по гарантии) да и сделать следующие доработки.
Редактирование прошивки Marlin
Вы скачали непосредственно саму прошивку Marlin и программу Arduino IDE, с помощью которой можно редактировать. Откройте папку с прошивкой «Marlin», найдите файл «Marlin» с расширением .ino
Откройте этот файл, откроется программа Arduino IDE
Вверху окна программы находиться много вкладок, в каждой из которых располагаются куски кода, от которых и зависит работа 3D принтера. Вам потребуется только несколько основных вкладок. Первая и основная вкладка это «Configuration.h»
Этот конфигурационный файл, который содержит основные настройки. Именно в этой вкладке необходимо произвести основные изменения.
Обратите внимание! Все изменения в прошивке проведите по порядку сверху вниз. Эти изменения затронут основные участки кода, и они необходимы для начального запуска вашего 3D принтера.
Устанавливаем необходимую скорость в бодах
Первое, что необходимо поменять — скорость в бодах. По умолчанию скорость стоит 250000 ( 47 строчка кода)
Для каждой платы производитель рекомендует свои скорости, поэтому для связки Arduino mega 2560 и Ramps 1.4 необходимо поставить 115200, то есть участок кода у нас должен принять следующий вид:
// This determines the communication speed of the printer #define BAUDRATE 115200
Если вы используете плату Gen V1.4, то скорость должна быть 250000.
Выбираем управляющую плату
После установки скорости в бодах, необходимо указать используемую плату управления ( 55 строчка кода).
По умолчанию стоит плата 3D принтера Ultimaker — BOARD_ULTIMAKER, поэтому необходимо поменять плату. Весь список плат находится во вкладке «BOARDS_H»
Там предоставлен огромный список различных плат, но вам необходимы только следующие:
#define BOARD_RAMPS_13_EFB 33 // RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Bed)
#define BOARD_RAMPS_13_EEB 34 // RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed)
#define BOARD_RAMPS_13_EFF 35 // RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Fan)
#define BOARD_RAMPS_13_EEF 36 // RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Fan)
Эти платы относятся к Arduino mega 2560 и Ramps 1.4. В зависимости от модификации вашего 3D принтера, необходимо выбрать соответствующую плату. Например, стандартная связка 1 экструдер + обдув рабочей области + нагревательный стол соответствует плате BOARD_RAMPS_13_EFB
Название платы необходимо скопировать и заменить на вкладке «Configuration.h», меняем следующие строчки:
Меняем название 3D принтера
При настройке обязательно придумайте название своему 3D принтеру и укажите это в прошивке. Зачем? Название принтера отображается на его LCD дисплее, такая возможность точно предусмотрена на таком дисплее.
Найдите строчки: (59 строчка)
Перед #define стоят «//» — это означает, что данные строчки не используются в коде, а служат в качестве пояснений. Чтобы активировать данную строчку, необходимо раскомментировать строку, уберите // перед строчкой.
Измените название по умолчанию «This Mendel» на ваше название 3D принтера, например, «P3Steel». Получаем следующие:
Выбираем датчик температуры стола и экструдера
Выше были указаны настройки прошивки для 1 экструдера и нагревательного стола, то есть в 3D принтере присутствуют два нагревательных элемента, температуры которых необходимо регулировать. Контроль температуры производится с помощью датчиков температуры — термисторов.
Существует большое количество различных термисторов с различными характеристиками, поэтому в прошивке необходимо указать какой именно термистор стоит у вас. Это нужно, чтобы в дальнейшем принтер показывал верную температуру. В прошивке найдите список поддерживаемых термисторов:
В списке найдите свой, запомните цифру слева. Как правило, многие используют китайский термистор 100 кОм, для него подходит термистор под номером «1».
Внесите изменения в нужном месте (строчки 115-118)
По умолчанию в прошивке активированы два первых термистора:
TEMP_SENSOR_0 — отвечает за термистор первого экструдера
TEMP_SENSOR_1 — отвечает за термистор второго экструдера
TEMP_SENSOR_BED — отвечает за термистор стола
Поменяйте строчки и получите следующее:
TEMP_SENSOR_1 и TEMP_SENSOR_2 не используются, поэтому напротив них ставим «0» нули.
Ограничение максимальной температуры
Для ограничения максимальной температуры необходимы следующие строчки (140-143)
Числа стоящие справа, а именно 275 и 150 — это максимальные температуры экструдера и нагревательного стола соответственно.
Когда температура превышает максимальный Temp, ваш нагреватель будет выключен. Эта функция существует для того, чтобы защитить ваш экструдер от случайного перегрева. Если вы используете хотенд с тефлоном внутри, то рекомендуем ограничить температурой 260 градусов.
Ограничение минимальной температуры
Также в прошивке по умолчанию стоит ограничение минимальной температуры экструдера в 170 градусов. Это означает что, если температура экструдера будет ниже 170 градусов, то двигатель экструдера не будет вращаться и пластик не будет подаваться. Защита от проталкивания не прогретого пластика (строчка 230).
Если хотите отключить данную функцию, то перед строчкой поставьте «//»
Настройка концевых выключателей
Настройка логики работы концевиков
В первую очередь на что нужно обратить внимание — это какие концевики вы используете и какой у них принцип работы. В прошивке необходимо правильно указать логику работы концевиков. Найдите следующие строчки (301-306)
Если у вас механические концевики, то при срабатывание цепь замыкается, напротив каждой строчки соответствующей оси поставьте значения «true». Если вы используете оптические концевики, то при срабатывании цепь размыкается, напротив каждой строчки соответствующей оси поставьте значения «false».
По умолчанию в прошивке напротив каждого концевика стоят значения «true», что соответствуют механическим концевикам.
После настройки работу концевиков можно проверить командой M119 в консоли.
В ответ должен прийти текст:
x_min: open – концевик не сработал;
x_min: TRIGGERED – концевик сработал.
Установка положения «HOME» — дом
В прошивке поддерживаются 3 пары концевиков: для каждой оси X, Y и Z по два концевика min и max. Как правило, ставятся концевики только для минимального положения каждой оси, а максимальное задается в прошивке.
Положение дом (начальное положение), будет находиться в минимальных положениях концевиков и это задается в прошивке: (строчки 337-339)
Изменения направления вращения двигателей
При сборке 3D принтера, а именно при подключение шаговых двигателей к плате, возможна такая ситуация: когда вы все настроили и подключили, при нажатии «home» (дом), каретка одной из осей едет в другую сторону (не к концевику), тогда необходимо перевернуть коннектор шагового двигателя на 180 градусов или поменять значения в прошивке:
Например, если у вас каретка оси Y в другую сторону, то необходимо найти строчку
и поменять «false» на «true». И так с каждой осью и экструдером.
Установка габаритов перемещения
Чтобы 3D принтер определял рабочую область, необходимо указать ее размеры в прошивке: (строчки 345-350)
Напротив каждой строчки укажите соответствующие габариты, по умолчанию рабочая область задана 205x205x200 мм
Настройка шагов перемещения по осям
Указание количества шагов шаговых двигателей — одна из главных настроек прошивки (строчка 490):
В скобках через запятую для каждой оси указывается количество шагов, который должен сделать шаговый двигатель, чтобы каретка проехала 1 мм. Откуда взять данные значения? Можно рассчитать или возьмите уже известные.
Расчет осей X и Y (ремни)
По всем осям стоят шаговые двигатели 200 шагов на оборот, 16 микро-шагов на шаг (это устанавливается перемычками на плате).
По осям X и Y стоит приводной ремень GT2 с шагом 2 мм и шкивы с 20 зубьями.
Столько шагов должен сделать шаговый двигатель, чтобы ось X и Y проехала ровно 1 мм.
Если у вас зубчатый шкив Gt2 с шагом 2 мм и с количеством зубьев 20, то формула такая:
Расчет оси Z (ходовой винт)
По оси Z могут стоять:
- Шпилька М8 с шагом резьбы 1,25 мм, тогда формула: 200*16/1.25=2560
- Шпилька M5 с шагом резьбы 0.8 мм, тогда формула: 200*16/0.8=4000
- Трапецеидальный винт диаметром 8 мм с шагом 1 мм и заходностью 1, тогда формула: 200*16/1=3200
- Трапецеидальный винт диаметром 8 мм с шагом 2 мм и заходностью 1, тогда формула: 200*16/2=1600
- Трапецеидальный винт диаметром 8 мм с шагом 2 мм и заходностью 4, тогда формула: 200*16/2*4=400
В Pruse i3 Steel используются шпильки М5 , тогда получается число 4000.
Настройка подачи экструдера зависит от коэффициента редукции и диаметра подающей шестерни. Количество шагов, который должен сделать шаговый двигатель экструдера, чтобы продавить пластик на 1 мм подбирается экспериментально после первой заливки прошивки в 3D принтер.
Открутите сопло и уменьшите ограничение минимальной температуры сопла до 5 градусов:
#define EXTRUDE_MINTEMP 5
Теперь экструдер будет работать при холодном сопле. Не меняя настроек экструдера, нажмите прогнать пластик на 100 мм. Измерьте длину прутка прошедшего через экструдер линейкой или штангенциркулем.
Подбирая настройку экструдера добейтесь точной цифры на разумной длине прутка, например 200 мм. После настройки верните ограничения минимальной температуры:
#define EXTRUDE_MINTEMP 170
Ограничение максимальной скорости перемещения по осям
По умолчанию стоят скорости 500,500,5, 25 мм/c на оси X,Y,Z и экструдер соответственно. Рекомендуем понизить скорость с 500 до 200.
Настройка ускорения перемещений по осям
Еще одной из важных настроек является задание ускорений для различных осей, так как из-за некорректной настройки этого момента часто бывают проблемы при печати, а именно смещение слоев по причине пропуска шагов двигателя. Если поставить слишком большие ускорения, то будут пропуски. По умолчанию в прошивке стоят следующие значения:
Для осей X и Y стоят ускорения 9000 мм/c^2 — это очень много.
Для первичной настройки установите не более 1000 и для DEFAULT_ACCELERATION поставьте 1500, вместо 3000.
Активация дисплея
Последние, что остается сделать — это активировать нужный вам дисплей. Один из самых популярных дисплеев, это RepRapDiscount Smart Controller. Найдите и раскомментируйте следующие строчки:
Перед этими строчками, не должны стоять «//». Должно получиться следующее:
Заливка прошивки
После всех основных изменений прошивки, можно ее заливать. В программе Arduino IDE зайдите во вкладку «Инструменты» -> «Плата» и выберите «Arduino/Genuino Mega or Mega 2560»
И там же нужно выставить верный COM порт вашего 3D принтера. Для заливки прошивки нажимаем на круг со стрелкой.
Прогресс заливки прошивки отображается индикатором, а после успешного завершения на экране появятся подтверждающие сообщение.
Дальше можете пробовать запускать ваш 3D принтер. Удачи!
Конструкция и качество сборки Monoprice Select Mini
Очень порадовало качество сборки Monoprice Select Mini. Конструкция прочная, надежная, со стальным корпусом из листового металла, в котором спрятана вся электроника. Так что волноваться за повреждения при транспортировке не стоит.
Этот 3D принтер использует технологию моделирования методом наплавления. Используется классическая декартова система координат. Конструкция похожа на Printrbot Simple. Для охлаждения сопла используется один кулер. Вероятно, могут возникнуть проблемы во время 3D печати необычными материалами.
Диаметр экстудера составляет 0.4 мм и может разогреваться до температуры 230°C. У нас не было возможности проверить насколько легко он меняется, но в долгосрочной перспективе это важный фактор, так как сопло со временем все равно придется менять.
Сначала оценим изделия, напечатанные на SH-105.
Использован PLA пластик ESUN в оттенке пурпур, высота 5,6 см., слой 0,1. На процесс печати ушло примерно два часа.
Использован PLA пластик ESUN, слой 0,15.
PLA пластик, слой 0,15.
Теперь оценим результаты I3 Mini.
Оригинальная прищепка. Прозрачный PLA, слой 0,15.
Спайдермен. Использован PLA пластик ESUN в оттенке бронза, слой 0,15.
Чехол для мобильного.
Хэллоуинская тыква. PLA пластик ESUN, слой 0,15.
Отлично выглядит с подсветкой!
Программное обеспечение
Код, управляющий принтером, надо загрузить в плату Arduino Mega. Скетч представляет собой G-код, который используется во всех ЧПУ-станках. Для его формирования есть автоматическая утилита, которая сама рассчитывает необходимые данные по установленным параметрам.
Шаблонный вид G-программы:
O0003 (qewrtyu) (номер и название программы)
G00 Z0.7 (поднятие инструмента на безопасную высоту)
G00 X0 Y0 (перемещение инструмента к точке начала фрезерования)
G01 Z-2 F60 (опускание инструмента на необходимую глубину фрезерования)
G01 X0 Y200 F60 (фрезерование 1-й стороны)
G01 X0 Y0 (фрезерование 2-й стороны, возврат к точке начала фрезерования)
G00 Z0.7 (поднятие инструмента на безопасную высоту)
M30 (конец управляющей программы)
Скетч можно загружать через программатор, созданный с применением SPI-интерфейса. Некоторые китайские аналоги Arduino имеют в своем составе микросхему (CH340 различных модификаций), которая является преобразователем SPI-USB. С ее помощью можно программировать микроконтроллер на плате через USB-интерфейс.
Самодельный ЧПУ фрезерный станок на Arduino с дисплеем
Кто следит за моими проектами на сайте или в группе Вконтакте. Знают, что я делаю новый ЧПУ станок на Arduino . Особенность данного станка в том, что он работает как 3D принтер . У него есть дисплей и флешка для загрузки управляющей программы. Остальное все по аналогии работы на 3D принтере . Выбираем файл и станок фрезерует . На дисплее отображается минимальную информацию о процессе.
Разработку начал с распечатки всех комплектующих для станка. Для распечатки деталей ушло больше 2 кг. ABS пластика . За основу взял готовую конструкцию Root3 Lite CNC. Так как версия Lite. В данном проекте не все заготовок выложены в отрытый доступ. И кое что по ходу работы пришлось сделать самостоятельно.
При сборке механической части использовал алюминиевый профиль в качестве направляющих по оси X и Y. По оси Z установил линейные направляющие 8 мм, аналогичные используются в 3D принтере.
Вот что понадобилось для сборки механической части:
— Шаговые двигателя Nema17 -4 шт. Подробнее .
— Зубчатые шкивы и ремни GT2 . Подробнее .
— Шпиндель 500W . Подробнее .
— Полированный вал 8 мм и линейные подшипник. Подробнее .
— Подшипники качения двух размеров. Подробнее .
— Болты, винты, гайки, шайбы и пр.
Для управления ЧПУ изначально купил комплект Mega2560 R3 + RAMPS 1.4+ DVR8825 + 2004 LCD . Загрузил прошивку Marlin . Произвел минимальные настройки прошивки Marlin , подробнее о настройках читайте тут.
И понял, что дисплей выбрал неудачно . Он маленький и не видно всю необходимую информацию.
При настройки прошивки марлин столкнулся с такой проблемой. Для работы по оси Y двух шаговых двигателей необходимо произвести настройки, а в интернете информации нет. Кому интересно решение читайте на форуме: Marlin подключаем 2 двигателя к оси Y или X. Назначаем вторым двигателем E1
Так как Marlin поддерживает Русский язык , перевел все пункты меню. Так же переименовал часть пунктов меню. Но пака еще встречаются слова «Печать» и «Принтер». Но это не так страшно. Со временим все подправлю.
Первый запуск выгладил вот так.
Все прошло успешно. Но нашел пару багов в прошивке. Но в целом все получилось.
После чего напечатал кабель укладчики и корпус под дисплей . Уложил все провода. Электронику установив в небольшой электрический щиток. Предварительно его пришлось немного модернизировать. Сверху щитка установил вентилятор с защитной решеткой . Которую также напечатал на 3D принтере.
Вот такой самодельны фрезерный ЧПУ станок с дисплеем получился.
Работать на станке очень просто. Главное сделать и проверить управляющую программу. Которую можно сделать и проверить в онлайн сервисах о которых уже рассказывал:
Используя эти два сервиса вы бесплатно сможете сделать код и проверить его.
После чего скидываем код на карту памяти и можно фрезеровать. Ка к происходит выбор файла и прочее рассказываю в видео.
Станок без проблем справляется с фанерой 12 мм.
На фрезерном станке с ЧПУ можно делать достаточно красивые вещи .
Такое не сделать на станке лазерной резки.
Не забывайте подписываться на канал Youtube и вступайте в группы в Вконтакте и Facebook.
Всем Пока-Пока.
И до встречи в следующем проекте.
Понравилась статья? Поделитесь ею с друзьями:
Snapmaker позволяет выполнять резьбу по дереву, акрилу, стеклотекстолиту при использовании дополнительного модуля ЧПУ. Фрезерный шпиндель развивает скорость от 2000 до 7000 оборотов в минуту.
Сменные модули предоставляют широкие возможности использования Snapmaker. Вместо покупки трех машин стоимостью около $500 за штуку, теперь вы можете использовать один компактный и надежный аппарат, экономя ваши деньги и место на рабочем столе.
В конфигурации 3D-принтера устройство способно выстраивать модели размером до 125х125х125 мм слоями от 50 до 300 микрон со скоростью позиционирования до 150 мм/с, используя сопло диаметром 0,5 мм. Рабочий столик прогревается до 100°С. Закрытый корпус не предусмотрен, но относительно небольшой рабочий объем должен позволить работать как с ПЛА, так и АБС, нейлоном, поливиниловым спиртом и другими филаментами диаметром 1,75 мм.
Передача данных осуществляется посредством USB соединения или кард-ридера Micro SD. В качестве программного обеспечения используется фирменный интерфейс Snap3D и различные слайсеры – Cura, Simplify 3D, Slic3r и др.