Как стать автором
Обновить
638.74
OTUS
Цифровые навыки от ведущих экспертов

Сборка простого 3D-печатного ЧПУ-плоттера

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров3.8K
Автор оригинала: MertArduino

Привет, Хабр. В этой статье рассмотрим процесс сборки простого 3D‑печатного ЧПУ‑плоттера.

Этот станок оснащён двумя линейными рельсами и двумя шаговыми двигателями Nema 17 для осей X и Y. Для оси Z используется мини‑сервопривод, который поднимает и опускает перо. Также предусмотрено опорное колесо с миниатюрными подшипниками для поддержки линейного рельса на оси Y.

В электронную часть входит разработанная мной печатная плата на базе Atmega: она обеспечивает управление тремя осями, тремя концевыми выключателями и сервоприводом. Все механические части собираются с использованием 3D‑печатных деталей.

Проект начнём со сборки 3D‑деталей и аппаратных компонентов шаг за шагом.

Шаг 1: 3D-детали и комплектующие

3D Parts and Hardware
3D Parts and Hardware
3D Parts and Hardware

Сначала рассмотрим конструкцию этого ЧПУ‑станка. Основные компоненты: линейные рельсы MGN15H с соответствующими линейными каретками.

Перемещение по осям X и Y осуществляется с помощью двух ремней GT2 и GT2-шкивов.

Что касается оси Z, здесь используется простое возвратно‑поступательное движение: подвижный элемент скользит вверх и вниз по двум 6-мм линейным направляющим с подходящими пружинами. Движение обеспечивается небольшим хобби‑сервоприводом.

На каждой оси установлен концевой выключатель для автоматического возврата в исходное положение (homing). В статье приложены 3D‑модели. Детали, которые необходимо напечатать в двух экземплярах, помечены как «2x».

Список компонентов для сборки

(Список электронных компонентов можно найти в разделе «схемы»)

  • Линейный рельс MGN15H

  • Линейный вал 6 мм (длиной примерно 150 мм)

  • Пружина 8 мм

  • Шаговый двигатель (NEMA 17 или аналог)

  • Ремень GT2 (примерно 2 метра длиной, 6 мм шириной)

  • Зубчатый шкив GT2 (20 зубьев, 5 мм)

  • Пружина натяжителя для ремня

  • Направляющий шкив GT2 (20 зубьев, 5 мм)

  • Набор болтов и гаек (разной длины: 2M, 3M, 4M, 5M)

  • Подшипник 605-ZZ (5×14×5 мм)

Приложение

(компоненты в 3D можно посмотреть в оригинале)

Шаг 2: Сборка оси X

Assembling the X-axis
Assembling the X-axis
Assembling the X-axis

Начинаем первый этап сборки станка. Закрепите две боковые пластины для оси X и два кронштейна для линейных рельсов, используя несколько болтов M3. После подготовки боковых частей вставьте линейный рельс оси X в кронштейны с обеих сторон и зафиксируйте его с помощью болтов M5.

Линейные рельсы MGN15H бывают в разных вариантах. Как следует из названия, ширина всех моделей стандартная — 15 мм, но высота рельса, ширина отверстий и расстояния между отверстиями могут различаться. В этом проекте используются следующие характеристики:

  • ширина рельса (W): 15 мм

  • толщина рельса (H): 15 мм (есть вариант 10 мм)

  • шаг отверстий (P): 60 мм (есть вариант 40 мм)

  • ширина отверстий (d): 5 мм (есть вариант 3,5 мм)

Некоторые линейные рельсы могут различаться, поэтому, если отверстия не совпадают, возможно, потребуется доработать 3D‑кронштейн сверлом в соответствии с шагом отверстий (P) или обновить 3D‑модель. Другие различия в размерах, как правило, не создают проблем.

Шаг 3: Сборка оси Y

Assembling the Y-axis
Assembling the Y-axis
Assembling the Y-axis

Теперь собираем линейный рельс для оси Y. Он должен располагаться выше каретки оси X, а для соединения обеих осей используется 3D‑деталь под названием «монтажная пластина».

Сначала устанавливаем два шаговых двигателя NEMA 17. Один крепится сверху пластины, другой снизу, с помощью болтов M3. Затем с помощью двух болтов M5 и гаек фиксируем на пластине шкивы GT2. Здесь же устанавливаются два направляющих шкива для зацепления GT2-ремня оси X и шкива шагового двигателя. Желательно, чтобы зубчатый шкив двигателя и направляющие шкивы находились на одном уровне. Я использовал несколько гаек для точной регулировки высоты направляющих шкивов.

Далее размещаем линейный рельс оси Y на пластине и фиксируем его двумя болтами M5. Шаг отверстий рельса оси X совпадает с шагом рельса оси Y, но если отверстия не подходят, их можно доработать сверлом. После крепления рельса оси Y соединяем обе оси, прикрутив монтажную пластину к линейной каретке оси X четырьмя болтами M4.

Теперь, когда станок почти собран, устанавливаем шкив на свободный конец линейного рельса оси Y. Этот шкив замыкает ремень оси Y в контур. Можно использовать зубчатый или направляющий шкив, я выбрал зубчатый.

Для установки шкива замкнутого контура я зафиксировал 3D‑деталь «шкив оси Y» на рельсе с помощью болта M3. Также я добавил опорную деталь из‑за длины рельса оси Y и веса механизма подъёма пера, что позволило устранить колебания. В этой опоре предусмотрено колесо с подшипником для плавного перемещения. Колесо с подшипником закрепляется на опоре болтом M5, а сама опора фиксируется на шкиве болтом M3. Теперь каретка оси Y может свободно перемещаться по рабочему пространству.

Шаг 4: Сборка механизма подъёма пера и ремней

Assembling Pen Lifter and Belts
Assembling Pen Lifter and Belts
Assembling Pen Lifter and Belts
Assembling Pen Lifter and Belts

Перед установкой механизма подъёма пера сначала соберём ремень оси X. Ремень пропускается между зубчатым шкивом шагового двигателя и направляющими шкивами для создания натяжения. К обоим концам ремня крепятся соединители, которые фиксируются на боковых пластинах основания с помощью болта M3. При необходимости можно добавить натяжную пружину для увеличения натяжения.

Теперь переходим к сборке механизма подъёма пера. Он состоит из двух частей: одна крепится к линейной каретке оси Y, другая перемещает перо вверх и вниз.

Сначала я установил угол поворота серво‑мотора на 180 градусов и прикрепил его к неподвижной модели, используя штатные крепёжные винты. Затем закрепил подвижную модель держателя пера, вставив в неё две пружины и две направляющие стержня диаметром 6 мм.

Когда серво‑мотор находится в положении 180 градусов, перо опущено, при 150 градусах оно остаётся наверху. Пружины создают усилие, обеспечивающее опускание механизма пера.

После установки механизма подъёма пера на линейной каретке оси Y с помощью болтов M4 можно переходить к установке ремня оси Y.

Присоедините соединители к обоим концам ремня и закрепите его на механизме подъёма пера с помощью болтов M3, пропустив ремень через зубчатый шкив шагового двигателя и другой конец линейного рельса. Для регулировки натяжения ремня можно использовать продолговатые отверстия в креплениях. Также натяжение можно увеличить, добавив натяжную пружину.

На этом механическая сборка завершена. В финальном этапе я установил концевые выключатели осей X и Y, закрепив их болтами M2.

Шаг 5: Электрическая схема и подключения

Circuit and Connections
Circuit and Connections
Circuit and Connections

В качестве управляющей электроники можно использовать плату Arduino UNO с CNC Shield, но я разработал собственную печатную плату, которая включает все компоненты. Для производства платы я использовал сервис PCBWay, который предлагает доступные по цене и качественные PCB.

На плате используется USB‑чип CH340 в SMD‑исполнении, поэтому при пайке нужно быть осторожным, чтобы избежать короткого замыкания из‑за контакта между выводами. Остальные компоненты легко паять вручную.

Примечание: схема работает в режиме 1/16 микро‑шага. Это значит, что шаговые двигатели 17HS4401 Nema 17 совершают поворот на 1,8° за один полный шаг (360° / 1,8° = 200 шагов). В режиме 1/16 микрошагов получается 3200 микро‑шагов на оборот (200 полных шагов × 16).

Печатная плата построена на базе Atmega328P и поддерживает три оси, три концевых выключателя и серво‑мотор. В проекте используются две оси с шаговыми двигателями, поэтому достаточно установить два стандартных драйвера A4988.

Ток шаговых двигателей настраивается с помощью подстроечного винта на драйвере. Во время измерений плата должна получать питание 5 В через USB.

Когда плата готова, подключаем:

  • шаговые двигатели осей X и Y, а также серво‑мотор,

  • два концевых выключателя,

  • блок питания 12 В, 3 А.

Теперь переходим к программному обеспечению.

Шаг 6: Установка GRBL

Installation of GRBL
Installation of GRBL
Installation of GRBL
Installation of GRBL

Сначала необходимо установить и использовать библиотеку grbl‑mi, которая предназначена для работы с серво‑моторами. Скачать её можно по ссылке:
https://github.com/DIY‑Machines/CNC‑DrawingMachine

После установки библиотеки найдите grbl‑mi в разделе примеров и загрузите код grblUpload на плату. Затем откройте серийный монитор, установите скорость передачи данных 115 200, введите команду $$ и получите список параметров GRBL.

Параметры GRBL специфичны для этой машины, но многие из них являются стандартными и снабжены краткими описаниями. Важно правильно задать значения «шагов шагового двигателя на миллиметр» и «габариты устройства».

Краткое пояснение:

  • Шаговый двигатель 17HS4401 Nema 17 имеет угол шага 1,8°, то есть 200 шагов на полный оборот (360° / 1,8° = 200).

  • В режиме 1/16 микрошагов: 200 полных шагов × 16 = 3200 микро‑шагов на оборот.

  • Каждый зуб ремня GT2 соответствует 2 мм перемещения.

  • При использовании шкива GT2 с 20 зубьями ремень перемещается на 40 мм за один полный оборот шкива.

  • Исходя из этого, устанавливаем параметр 80 шагов/мм, то есть для перемещения на 1 мм двигатель делает 80 шагов.

Настройки GRBL:

  • $0=10 (длительность импульса шага, мкс)

  • $1=25 (задержка выключения шагов, мс)

  • $2=0 (инверсия порта шагов)

  • $3=0 (инверсия порта направления)

  • $4=0 (инверсия сигнала включения шагов)

  • $5=0 (инверсия концевых выключателей)

  • $6=0 (инверсия пина датчика)

  • $10=2 (маска отчёта состояния)

  • $11=0.010 (отклонение на стыках, мм)

  • $12=0.002 (допуск дуг, мм)

  • $13=0 (вывод значений в дюймах)

  • $20=0 (мягкие лимиты)

  • $21=1 (жёсткие лимиты)

  • $22=1 (цикл калибровки)

  • $23=0 (инверсия направления калибровки)

  • $24=25.000 (скорость поиска нуля, мм/мин)

  • $25=750.000 (скорость калибровки, мм/мин)

  • $26=250 (задержка устранения дребезга при калибровке нулевой точки, мс)

  • $27=5.000 (отступ после калибровки нулевой точки, мм)

  • $100=80.000 (шаги/мм для X)

  • $101=80.000 (шаги/мм для Y)

  • $102=250.000 (шаги/мм для Z)

  • $110=4000.000 (максимальная скорость X, мм/мин)

  • $111=4000.000 (максимальная скорость Y, мм/мин)

  • $112=4000.000 (максимальная скорость Z, мм/мин)

  • $120=30.000 (ускорение X, мм/с²)

  • $121=30.000 (ускорение Y, мм/с²)

  • $122=30.000 (ускорение Z, мм/с²)

  • $130=300.000 (максимальный ход X, мм)

  • $131=250.000 (максимальный ход Y, мм)

  • $132=200.000 (максимальный ход Z, мм)

Шаг 7: Universal G-Code Sender

Universal G-Code Sender
Universal G-Code Sender
Universal G-Code Sender

После загрузки кода на плату скачайте и установите программное обеспечение Universal G‑Code Sender для управления станком: https://winder.github.io/ugs_website/

Эта программа служит интерфейсом управления ЧПУ‑станком.

  1. Откройте программу и выберите USB‑порт, к которому подключена плата.

  2. После успешного подключения на экране консоли появятся параметры станка.

  3. Любые изменения, внесённые в программе, автоматически обновляют эти параметры.

При первом подключении программа активирует аварийный режим и блокирует движение станка для безопасности. Чтобы разблокировать его, нажмите Unlock.

Далее откройте раздел Setup Wizard:

  • В разделе Motor Wiring проверьте, правильно ли вращаются шаговые двигатели. Если двигатель вращается в неправильном направлении, включите опцию Reverse Motion.

  • В разделе Step Calibration установите нулевую точку станка, перемещая оси.

Рекомендуется каждый раз перед запуском вручную перемещать станок в нулевую точку и нажимать «reset to zero». При ручном перемещении необходимо отключать питание двигателей.

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

Теперь выполняем калибровку нулевой точки (homing) — автоматический процесс поиска исходного положения станка. Важно убедиться, что двигатели движутся в правильном направлении перед началом процесса. Если что‑то пойдёт не так, будьте готовы сразу отключить питание.

После завершения калибровки отключите питание двигателей и вручную верните станок в нулевую точку. Теперь он готов к работе. Перед каждым запуском программы убедитесь, что станок находится в нулевой точке, и нажмите «reset to zero».

Шаг 8: Создание G-Code

Creating G-Code
Creating G-Code
Creating G-Code

Чтобы использовать станок, необходимо подготовить G‑Code. Для этого воспользуемся Inkscape.

  1. Скачайте и установите эту версию Inkscape.

  2. Затем загрузите расширение 4-xi Draw, предназначенное для создания G‑Code. (ZIP‑архив с плагином нельзя прикрепить здесь, но его можно скачать по ссылке с PCB‑файлами).

  3. Распакуйте ZIP‑файл и скопируйте содержимое в папку extensions Inkscape.

Теперь подготовим G‑Code:

  1. Откройте Inkscape и перейдите в Настройки страницы, установите размер рабочей области в миллиметрах, соответствующий размерам станка.

  2. Импортируйте изображение и разместите его на странице.

  3. Выделите изображение, затем откройте 'Trace Bitmap', нажмите OK и удалите исходное изображение.

  4. Перейдите в раздел Extensions, затем 4-xi Draw и выберите Create Pen.

  5. В появившемся окне обновите углы положения серво‑мотора (верхнее и нижнее), укажите имя файла и нажмите Apply.

Через несколько секунд изображение преобразуется в G‑Code и сохранится в указанной папке.

Теперь запустите Universal G‑Code Sender:

  1. Вручную переместите станок в нулевую точку.

  2. Выберите порт подключения платы.

  3. Нажмите «reset to zero».

  4. Загрузите созданный G‑Code.

  5. Нажмите Run — начнётся процесс рисования.

На этом проект завершён. Спасибо за внимание!


Изучить лучшие практики программирования можно на онлайн-курсах Otus под руководством преподавателей с большим опытом разработки.

В рамках курсов регулярно проходят открытые уроки. Приглашаем всех желающих на один из них: «Страх и ненависть в кодовой базе: как не стоит писать на Python». Урок пройдёт 26 февраля, записаться можно бесплатно на странице курса "Python Developer. Professional".

Теги:
Хабы:
Всего голосов 21: ↑17 и ↓4+21
Комментарии11

Публикации

Информация

Сайт
otus.ru
Дата регистрации
Дата основания
Численность
101–200 человек
Местоположение
Россия
Представитель
OTUS