Сборка ЧПУ-плоттера на Arduino: пошаговое руководство по созданию рисующей машины
Компоненты и материалы
| Arduino Nano R3 | ×1 |
| Драйвер двигателей L293D (Texas Instruments) | ×1 |
| Микросервопривод SG90 | ×1 |
| Шаговый двигатель от DVD-привода | ×1 |
| Печатная плата JLCPCB (кастомная) | ×1 |
Необходимые инструменты и оборудование
- Лазерный резак
- 3D-принтер
Программное обеспечение и онлайн-сервисы
- Arduino IDE
- Inkscape
- Processing (The Processing Foundation)
- EasyEDA
О проекте
Приветствую! Надеюсь, вам понравился мой предыдущий урок «Как сделать собственную обучающую платформу на Arduino», и вы готовы к новому проекту. Как обычно, я подготовил это пошаговое руководство, чтобы помочь вам создать недорогой электронный проект — «ЧПУ-плоттер», также известный как «ЧПУ для рисования» или просто «ЧПУ-станок на Arduino».
В интернете много уроков по созданию ЧПУ-плоттеров, но из-за нехватки детальной информации их воспроизвести было непросто. Именно поэтому я решил написать это подробное руководство, где покажу, как легко сделать свою рисующую машину.
Проект становится особенно удобным после получения кастомной печатной платы, заказанной у JLCPCB. Она улучшает внешний вид устройства, а в этом руководстве достаточно документации и кода, чтобы вы могли создать станок без затруднений. Мы реализовали проект за 5 дней: 3 дня на закупку деталей и сборку железа, и 2 дня на код и настройку.
Что вы узнаете из этого руководства:
- Правильный выбор компонентов под функции проекта
- Создание схемы подключения всех выбранных элементов
- Сборка механических и электронных частей
- Калибровка баланса станка
- Настройка и запуск системы
Шаг 1: Что такое плоттер?
Поскольку руководство ориентировано на новичков, сначала подробно объясню, что такое рисующая машина и как она работает.
Согласно Википедии, ЧПУ (CNC) — это компьютерное числовое управление, структура, управляемая компьютером, которая получает инструкции через последовательный порт и двигает свои исполнительные механизмы в зависимости от полученных команд. Большинство таких станков основаны на шаговых двигателях, установленных на каждой оси.
Важный термин — «ось». У каждого ЧПУ-станка есть определённое количество осей, контролируемых программой.

Наш ЧПУ-плоттер — это двухосевой станок (подробности на рисунке 1) с малыми шаговыми двигателями на осях (шаговый на рисунке 2). Эти двигатели перемещают рабочий стол в двумерной плоскости для создания рисунка пером. Перо поднимается и опускается с помощью третьего исполнительного механизма — сервопривода.
Шаг 2: Шаговый двигатель — основной привод
Шаговый двигатель — это бесколлекторный двигатель постоянного тока, который делит полный оборот на равные шаги. Позицию ротора можно задать без датчика обратной связи (в открытом цикле), если двигатель правильно подобран по крутящему моменту и скорости.
Откуда взять шаговые двигатели? Просто найдите старый DVD-привод (как на фото ниже). Я купил два за 2 доллара. Далее разберите привод, чтобы извлечь шаговые двигатели с их креплениями — нам нужно два таких узла.




После извлечения двигателей определите обмотки. У каждого шагового двигателя две обмотки. Мультиметром измерьте сопротивление между выводами коннектора — для каждой обмотки должно быть около 10 Ом.

После идентификации обмоток припаяйте провода для управления двигателем.


Шаг 3: Схема подключения

Сердце машины — плата Arduino Nano, которая управляет движением исполнительных механизмов в зависимости от инструкций от компьютера. Для управления шаговыми двигателями нужны драйверы, задающие скорость и направление.
Мы используем драйвер L293D (H-мост) (см. фото 3), который принимает команды от Arduino на своих входах и управляет шаговыми двигателями через выходы.


На схеме показано, как подключить все детали к Arduino. Следуйте этим соединениям для обоих шаговых двигателей и сервопривода. При необходимости можно изменить распиновку под свои нужды.
Шаг 4: Изготовление печатной платы (JLCPCB)
О компании JLCPCB
JLCPCB (Shenzhen JIALICHUANG Electronic Technology Development Co., Ltd.) — крупнейший в Китае производитель прототипов печатных плат и высокотехнологичный завод по быстрому изготовлению малых партий. Более 10 лет опыта, 200 000 клиентов по всему миру, более 8000 заказов в сутки. Годовая мощность — 200 000 кв.м. плат (1-2 слойные и многослойные). Профессиональное производство: крупный масштаб, современное оборудование, строгий контроль качества.

Проектирование электроники
После создания принципиальной схемы я превратил её в топологию печатной платы (см. фото ниже). Для производства выбрал JLCPCB — лучших и дешевых поставщиков. На их удобной платформе достаточно загрузить гербер-файл, задать параметры (толщина, цвет, количество) и оплатить. Я заплатил всего 2 доллара и получил готовые платы через 5 дней.




Файлы для скачивания
Схему (PDF) и гербер-файлы можно скачать по ссылкам в репозитории. На фото видно, что платы изготовлены качественно: все надписи и логотипы на месте, что облегчает пайку.



Шаг 5: Проектирование механической основы

Для эстетичного вида я спроектировал три детали в SolidWorks (см. фото 1), которые соединяют каретки DVD-приводов. DXF-файлы этих деталей были вырезаны на лазерном станке из 5-мм МДФ в FabLab Tunisia.

Держатель пера напечатан на 3D-принтере. Все файлы для печати и резки доступны в репозитории проекта.
Шаг 6: Полный список компонентов

- Печатная плата от JLCPCB
- Arduino Nano
- 2 × драйвер L293D
- 2 × панелька DIP-16 для L293D
- 1 × панелька DIP для Arduino
- Разъемы SIL и винтовые клеммы
- Сервопривод SG90
- 2 × DVD-привода (доноров шаговых двигателей)
- 3D-напечатанные детали (держатель пера)
- Лазерно-вырезанные детали (МДФ 5 мм)
- Болты и винты для сборки
- Рисующее перо (можно использовать фирменное перо от JLCPCB или любое другое)
Шаг 7: Электронная сборка и тестирование

Переходим к пайке. На верха слое шелкографии нанесены обозначения каждого компонента — это исключает ошибки при монтаже.

Тестирование шаговых двигателей

После пайки прикрепил DVD-привод к пластине оси X, подключил провода двигателя к винтовым клеммам и запустил тестовый скетч для проверки шагового двигателя. Двигатель работает корректно — мы на верном пути.
/************************************************************************************************************************************************************************
* - Author : BELKHIR Mohamed
* - Profession : (Electrical Engineer) MEGA DAS owner
* - Main purpose : Industrial Application
* - Copyright (c) holder : All rights reserved
* - License : BSD 2-Clause License
* - Date : 20/04/2017
***********************************************************************************************************************************************************************/
#include <Stepper.h>
const int stepPerRotation = 20; // Шагов на оборот (стандарт для CD/DVD)
Stepper myStepperX(stepPerRotation, 8, 9, 10, 11); // Пины двигателя оси X
void setup() {
myStepperX.setSpeed(100);
myStepperX.step(100);
delay(1000);
myStepperX.step(-100);
delay(1000);
}
void loop() {}
Шаг 8: Сборка механической части

Закрепляем второй шаговый двигатель на пластине оси Y. Теперь обе оси готовы для создания двумерной плоскости (см. фото ниже). Их нужно установить под углом 90° друг к другу.


Изготовление держателя пера




Держатель пера собирается на пружине с маленьким осевиком, сервопривод закрепляется на месте. Готовый держатель клеится (термоклеем или эпоксидным клеем) к каретке оси Y, чтобы он мог скользить за шаговым двигателем. Рабочая пластина крепится к каретке оси X. В конце подключаем провода двигателей к разъемам на плате. После небольшой настройки механика готова к работе.
Шаг 9: Программная часть

Для работы станка используются три программы:
- Inkscape — создание рисунка и экспорт в G-код.
- Arduino IDE — прошивка микроконтроллера кодом управления станком.
- Processing — связующее звено: читает G-код и посылает команды Arduino через последовательный порт.
Подготовка G-кода в Inkscape


Настройте поля страницы и единицы измерения. Создайте или импортируйте рисунок, сохраните в формате «MakerBot Unicorn GCode» (если нет — установите дополнение). При сохранении откроется окно параметров G-кода — задайте их как на скриншотах ниже.





Связывание станка с G-кодом в Processing 3

Откройте файл «CNC program» из того же репозитория на GitHub и запустите его.


Откроется второе окно. Нажмите клавишу P для выбора COM-порта станка, затем G для выбора G-код файла. После выбора файл станок сразу начнёт рисовать.

Шаг 10: Тестирование и результаты

Загрузив G-код, станок начинает рисовать. Особенно приятно смотреть на мигающие светодиоды, показывающие последовательность импульсов для каждого шагового двигателя.





Рисунки получаются качественными, проект отличный и доступный для повторения. Не забудьте посмотреть наш предыдущий проект «Arduino Training Platform» и подписаться на YouTube-канал для новых видео. Делайте электронику каждый день! Это был BEE MB от MEGA DAS. До встречи!
Код
Все необходимые файлы (скетч Arduino, программу Processing, файлы Inkscape, герберы, DXF/STL) доступны в репозитории GitHub:
https://github.com/BEEMB/CNC_Plotter
Файлы для 3D-печати и лазерной резки
STL (держатель пера) и DXF (детали основы) на Thingiverse:
CAD файлы на Thingiverse
Схемы
Принципиальная схема (PDF) и гербер-файлы печатной платы в архиве: schamatic_Z2mcsRwq7L.rar
Производственный процесс
- История, производство и будущее современной монетной системы
- Сборка домашней машины для написания домашних заданий (плоттер-писатель)
- Создание ультразвукового левитатора на Arduino: пошаговое руководство
- Строим Iron Man на Arduino: компоненты, сенсоры и пошаговый гайд
- Find Me: Умный поисковик вещей на Arduino и Bluetooth
- DIY-контроллер увлажнителя на Arduino с реле: безопасная работа с высоким напряжением
- Своё рулевое управление (джойстик) для игр на Arduino
- Arduino 101: Пedometer с датчиком DHT11 и LCD-дисплеем
- Сборка RGB-микшера цветов на Arduino — пошаговое руководство
- Станки с ЧПУ для фрезеровки: полный обзор