В этой статье мы рассмотрим создание плоттера (чертежной машины) с ЧПУ (числовым программным управлением), но не обычного, а с одной крутой функцией, а именно автоматической сменой инструмента. Другими словами, машина сможет автоматически менять цвета, и мы сможем рисовать с ее помощью действительно крутые вещи.
Ранее на нашем сайте мы рассматривали следующие проекты станков с ЧПУ на основе платы Arduino:
Обзор проекта
Конструкция данного плоттера основана на проекте самодельного лазерного гравера с ЧПУ, рассмотренного в предыдущей статье, где целью было сделать самый простой ЧПУ станок с минимальным количеством деталей. Он использует 3 шаговых двигателя NEMA 17 для движения по осям X, Y и Z, а также небольшой сервопривод для захвата. Мозгом этого ЧПУ плоттера является плата Arduino UNO в сочетании с CNC shield (платой расширения с функциями управления двигателями) и тремя шаговыми драйверами A4988.
Рабочая область довольно большая, 360x280 мм, и уровень детализации, который может выводить этот плоттер, на мой взгляд, тоже весьма впечатляет. Я был на самом деле удивлен, насколько хорошими и точными получились рисунки, особенно те, где я использовал гелевую ручку 0,6 мм.
Тем не менее, сейчас я объясню все, что вам нужно знать о создании подобного чертежного станка, включая то, как его спроектировать, подключить электронику, какую прошивку и программное обеспечение использовать и как сгенерировать для него G-код.
3D модель плоттера с ЧПУ
Для начала давайте взглянем на конструкцию этого станка с ЧПУ. Как я уже упоминал, этот станок основан на конструкции моего предыдущего лазерного гравировального станка с ЧПУ, где целью было сделать очень простой ЧПУ с минимальным количеством деталей.
Два основных компонента — линейные направляющие MGN15H вместе с подходящими для них скользящими блоками. Движение по осям X и Y обеспечивается двумя ремнями GT2 и несколькими шкивами GT2. Что касается оси Z, то у нас есть простое возвратно-поступательное движение, при котором подвижная часть скользит вверх и вниз по двум 6-миллиметровым линейным стержням и подходящим линейным подшипникам. Для захвата ручки используется небольшой сервопривод для хобби.
Процедура возврата в исходное положение необходима для этого перьевого плоттера, поскольку держатели перьев имеют определенное фиксированное положение, поэтому машина должна иметь начальную точку. Поэтому у нас должен быть концевой выключатель для каждой оси.
Файлы для загрузки 3D-моделей и STL
Эту 3D-модель, а также файлы STL для 3D-печати можно получить на сайте Cults3D.
Сборка плоттера с ЧПУ
Внешний вид деталей, необходимых для сборки перьевого плоттера, показан на следующем рисунке.
Вот список компонентов, необходимых для сборки этого самодельного станка с ЧПУ. Список электронных компонентов можно найти ниже в разделе схемы цепи статьи.
- Линейный рельс MGN15H
- Линейный стержень 6 мм
- Линейный подшипник 6 мм
- Шаговый двигатель – NEMA 17
- Ремень GT2 + зубчатый шкив
- Натяжной ролик GT2
- Распорные гайки
- Набор болтов и гаек + винты с плоской головкой 3x16 мм
Хорошо, теперь мы можем начать сборку станка. Я начал с того, что закрепил вместе базовую пластину и кронштейн для линейной направляющей с помощью нескольких болтов M3. Все болты для сборки этой машины на самом деле M3 разной длины, за исключением нескольких болтов M5, необходимых для шкивов GT2.
Как только обе стороны будут готовы, мы можем закрепить на них линейную направляющую оси X двумя болтами с каждой стороны. Эти направляющие MGN15H обеспечивают очень плавное и свободное движение, поскольку их скользящие блоки имеют внутри шарики или ролики.
Однако перед установкой их рекомендуется тщательно очистить и смазать, чтобы они работали правильно.
Далее, рельс оси Y должен идти сверху скользящего блока оси X, и для их крепления мы будем использовать центральную монтажную пластину. Сначала мы можем установить рельс оси Y на центральную пластину с помощью трех болтов.
Затем мы можем установить два шаговых двигателя NEMA 17. Один идет на верхнюю сторону, а другой на нижнюю сторону пластины. Как я уже упоминал ранее, нам нужны несколько болтов и гаек M5 для установки шкивов GT2 на место. Два шкива здесь на самом деле являются натяжными шкивами, которые используются для обеспечения сцепления для ремня GT2 оси X и зубчатого шкива, который идет на шаговый двигатель.
Что касается установки этого шкива, мы должны измерить и выровнять его в соответствии с натяжными шкивами. Что касается оси Y, нам нужен только один натяжной шкив, который идет с другой стороны рельса, так как ремень для этой оси будет установлен в петле.
Хорошо, далее следует соединение двух осей вместе. Мы просто делаем это, прикрепляя центральную пластину к скользящему блоку оси X с помощью четырех болтов M3. С этим станок приобрел свою основную форму, и теперь скользящий блок оси Y может достигать любого положения в рабочей зоне.
Теперь мы можем продолжить сборку механизма подъемника пера. Этот механизм состоит из двух частей: одна фиксированная, которая прикручена к скользящему блоку оси Y, и другая, которая будет скользить вверх и вниз. После того, как фиксированная часть закреплена на месте, мы можем установить на нее шаговый двигатель оси Z. Этот шаговый двигатель также является NEMA 17, но он короче, 23 мм вместо 40 мм, чтобы уменьшить вес.
Затем мы можем установить подъемник, который просто крепится к валу шагового двигателя. У меня был немного длинный винт, поэтому я установил подъемник на вал без него, но его отверстие имеет форму вала, поэтому движение будет передаваться хорошо. На самом деле, я немного изменил эту часть, но не волнуйтесь, вы получите обновленную версию в файлах для загрузки.
Затем я вставил четыре линейных подшипника в скользящую часть и закрепил микросервопривод на месте. Затем я также закрепил часть держателя ручки прямо рядом с сервоприводом.
Для соединения неподвижной и скользящей частей вместе, сначала нам нужно пропустить провод сервопривода через отверстие в неподвижной части, а затем вставить 6-миллиметровые стержни сверху, через подшипники и отверстие неподвижной части. При установке этого стержня мы также должны вставить пружину между неподвижной и скользящей частями таким образом, чтобы она толкала скользящую часть вниз.
Это поможет ручке лучше контактировать с рабочей поверхностью. В нижней части фиксированной части есть отверстие, куда мы можем вставить гайки M3 и использовать их для закрепления 6-миллиметровых стержней на месте.
Далее мы можем собрать блок держателя ручек, который идет с одной стороны станка. Он состоит из верхней и нижней части с отверстиями для размещения до 12 ручек.
Я продолжил установку ремней. Сначала нам нужно измерить, какая длина нам нужна, и отрезать ее примерно по размеру. Для крепления ремня к скользящему блоку я сделал эти классные соединители ремня, где ремень проходит вокруг полого вала и между двумя стенками, которые не позволяют ремню двигаться.
Используя болт М3, мы можем закрепить первый разъем на одной стороне блока и повторить ту же процедуру для другой стороны. Мы можем перемещать разъемы вдоль этих пазов здесь и таким образом натягивать ремень так сильно, как мы хотим.
Что касается оси X, ремень будет идти по прямой линии с одной стороны на другую, проходя через шкивы таким образом, чтобы обеспечить натяжение или сцепление со шкивом шагового двигателя.
Для натяжения ремня оси X я сделал эти соединители, которые имеют форму ремня, чтобы мы могли затянуть их по бокам машины.
Далее мы можем установить концевые выключатели.
На самом деле мне пришлось немного опустить этот концевой выключатель оси Z, а что касается концевых выключателей X и Y, то я использовал те, что были в моем предыдущем проекте, к которым уже были подключены провода.
Подключение электроники
На этом механическая часть машины готова, и мы можем перейти к подключению электроники.
Как я уже упоминал, мы используем плату Arduino Uno в сочетании с шилдом ЧПУ и тремя шаговыми драйверами A4988.
Для крепления платы Arduino к станку я сделал дополнительную 3D-печатную деталь, которая идет на боковую панель. Я закрепил плату Arduino двумя болтами M3, а сверху вставил щит CNC.
Здесь нам нужно вставить три перемычки для каждого драйвера шагового двигателя, чтобы выбрать разрешение 16th /step, а затем вставить драйверы шагового двигателя.
Затем мы можем подключить двигатели к щиту ЧПУ соответствующим образом. Для подключения микроконцевых выключателей на месте я просто припаял провода непосредственно к ним, а с другой стороны припаял гнездовые штыревые разъемы, которые я получил от каких-то соединительных проводов.
Что касается серводвигателя, я использовал несколько удлинительных кабелей сервопривода, чтобы он мог дотянуться до щита ЧПУ. Для питания станка нам понадобится источник питания 12 В.
Схема плоттера с ЧПУ на основе платы Arduino
Вот принципиальная схема того, как все должно быть подключено.
Итак, мы используем плату Arduino UNO в сочетании с CNC Shield и тремя шаговыми драйверами A4988. У нас есть три микроконцевых выключателя для возврата машины в исходное положение и небольшой серводвигатель для механизма захвата. Для питания нам нужен блок питания 12 В с минимальной силой тока 2 А.
Более подробно про управление шаговым двигателем NEMA 17 с помощью Arduino и драйвера A4988 вы можете прочитать в этой статье.
Необходимые компоненты
- Плата Arduino Uno (купить на AliExpress).
- Шаговый двигатель NEMA 17 (купить на AliExpress).
- Шаговый двигатель – NEMA 17 23 мм.
- Arduino CNC Shield (купить на AliExpress).
- A4988 Stepper Driver Module (модуль драйвера шагового двигателя) (купить на AliExpress).
- Серводвигатель.
- Концевые выключатели.
- Источник питания постоянного тока.
Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158
Завершение сборки станка с ЧПУ
Осталось сделать несколько последних штрихов, чтобы завершить сборку этого перьевого плоттер. Здесь я устанавливаю захват пера, который просто крепится к серводвигателю через серворог.
Для прокладки кабелей от подъемника ручки я использовал коврик для обеденного стола, материал которого был прочным, но гибким, поэтому он идеально подошел для этой работы.
На этом наша чертежная машина завершена. Однако есть несколько вещей, которые мы должны здесь отметить. Поскольку рельс оси Y не имеет опоры с одной стороны, а сам материал PLA для 3D-печати не такой уж жесткий, при полном выдвижении подъемник пера был на 4 мм ниже по сравнению с поддерживаемой стороной.
Это слишком много люфта, но мне удалось решить эту проблему, немного приподняв переднюю часть машины. Таким образом, я уменьшил разницу примерно до 1 мм, что было приемлемо. Если вы планируете использовать эти большие рельсы, я бы определенно рекомендовал поддерживать рельс оси Y также и с другой стороны.
Другая проблема — держатель ручек, потому что ручки не остаются на месте таким образом. Здесь я бы предложил сделать верхние отверстия больше и добавить немного мягкого материала по бокам, чтобы ручки оставались на месте, и чтобы машине было легко их вставлять.
Наконец, мы можем вставить доску под весь станок, чтобы получить ровную поверхность.
Вот и все, наш станок готов.
Прошивка и программное обеспечение для управления самодельным плоттером
Теперь осталось дать ему жизнь или сделать его настоящим станком с ЧПУ. Для этого нам нужно установить прошивку на Arduino для управления движением станка с ЧПУ и нам нужно управляющее программное обеспечение, через которое мы будем отправлять G-коды и сообщать станку, что делать.
Самым популярным выбором для самодельных станков с ЧПУ является прошивка GRBL с открытым исходным кодом. Однако для этого перьевого плоттера нам нужна ее модифицированная версия, которая может управлять серводвигателем. Эта модифицированная версия называется «grbl-servo», она изменяет частоту ШИМ по умолчанию на выводе управления шпинделем (или цифровом выводе номер 11) с 1 кГц до 50 Гц, что необходимо для управления этим типом серводвигателя.
После загрузки и установки этой прошивки GRBL в папку библиотеки нашей среды разработки Arduino IDE нам также необходимо изменить ее файл config.h, чтобы включить 3-осевое перемещение вместо 2-осевого перемещения по умолчанию.
Что касается программного обеспечения для управления, мы будем использовать GRBL-Plotter, который предназначен для управления плоттерами и включает в себя графический конвертер, с помощью которого мы можем генерировать G-код из наших изображений или графики. Это также программное обеспечение с открытым исходным кодом, которое можно загрузить с Github.
Здесь первое, что нам нужно сделать, это подключить нашу плату Arduino к программному обеспечению через подходящий COM-порт. Как только мы нажмем кнопку «Kill Alarm», на последовательном мониторе мы получим список наших текущих параметров GRBL. Нам нужно изменить некоторые из этих параметров в соответствии с нашей машиной.
Параметры GRBL
Первое, что мы должны здесь настроить, это разрешение хода или значения шагов/мм. Эти значения указывают, сколько шагов должен сделать двигатель, чтобы переместиться на 1 мм. Это зависит от типа шагового двигателя, который у нас есть, выбранного разрешения шага и передачи движения, в данном случае ремня и шкива GT2.
Для нашего станка для точности осей X и Y необходимо значение 80 шагов/мм. Что касается оси Z, я установил значение 40, что на самом деле неточно с точки зрения реального движения, но мы в любом случае не сможем этого добиться с нашим возвратно-поступательным движением.
Мы также должны установить параметр номер 23 на 0, который сообщает, где находятся наши концевые выключатели, установить максимальную скорость подачи, ускорение, максимальную скорость перемещения и параметр номер 1 на значение 255, которое поддерживает активными шаговые двигатели все время. Однако мы должны отметить, что при включении этого, особенно для шагового двигателя оси Z, мы должны настроить ограничение тока драйвера A4988 на минимум, поскольку более короткий шаговый двигатель NEMA 17 может быстро нагреваться.
Настройка плоттера GRBL
Хорошо, давайте теперь рассмотрим настройку контроллера. Здесь так много опций для настройки, что поначалу это может немного пугать. Здесь сначала нам нужно настроить перемещение пера вверх и вниз на ось Z и задать значения для положения вверх и вниз.
На вкладке Таблица инструментов мы можем определить цвет перьев и их положение. Здесь следует отметить, что эти значения относятся к системе координат G53 или станка. Это означает, что они определяются жесткими концевыми выключателями, имеющимися на станке, и максимальным ходом, который мы установили в параметрах GRBL ранее.
Для определения положения каждого пера я использовал значения смещения, которые в данном случае равны 0 для оси X и 277 для оси Y. Эти значения располагают захват перед первым пером, а затем мне оставалось только определить значение Y для каждого пера, которое составляет 21,7 мм в отрицательном направлении.
Здесь мы также можем настроить скорость подачи и положение вверх и вниз для каждого пера индивидуально, если имеются разные перья.
Далее в меню «Смена инструмента» необходимо выбрать «Выполнить смену инструмента по команде Tx M06», что сообщит станку о необходимости выполнить смену инструмента, когда эта команда появится в G-коде.
Значение «x» после буквы T указывает номер инструмента из таблицы инструментов. Для выполнения смены инструмента мы должны включить скрипты «select» и «remove», которые выполняются при появлении команды Tx M06. В этих скриптах мы определяем движение захвата для взятия или извлечения инструмента.
Для выбора пера захват сначала позиционируется перед фактическим пером в абсолютных координатах машины, которые определены в таблице инструментов. Затем сервопривод открывает захват, он поднимается еще на 4 мм, затем движется к перу в направлении X и немного в направлении Y. Затем захват закрывается, поднимает перо и возвращается в то же положение перед выполнением скрипта. Для удаления пера шаги скрипта те же, но в обратном порядке.
Конечно, все эти параметры зависят от самих ручек, их размеров и размеров держателей. Единственный способ сделать этот процесс правильным — это тестирование и корректировка значений.
Генерация G-кода для перьевого плоттера с ЧПУ с автоматической сменой инструмента
Наконец, давайте посмотрим, как можно генерировать G-код из изображений с помощью программного обеспечения GRBL-Plotter.
После загрузки изображения мы можем нажать «Предварительный просмотр с цветами из таблицы», чтобы увидеть, как будет выглядеть изображение. На вкладке коррекции изображения мы можем поиграть со значениями Яркость, Контрастность, Гамма и Насыщенность, чтобы добиться цветов, похожих на реальное изображение или на те, которые мы хотим. Мы можем задать размер вывода в мм, а в закладке замены цвета мы можем удалить цвета, которые мы не хотим использовать.
Например, мы можем удалить абрикосовый цвет, который является белым цветом на изображении. Затем мы можем нажать кнопку Create G-Code, и G-код будет сгенерирован.
Мы также можем генерировать G-коды из файлов SVG, просто перетаскивая их, и программное обеспечение сразу же сгенерирует G-код.
Прежде чем начать построение графика, нам следует установить нулевую позицию в любом месте рабочей области, а затем нажать кнопку воспроизведения.
Плоттер начнет работать, и мы сможем насладиться его волшебством.