Андрей Смирнов
Время чтения: ~12 мин.
Просмотров: 19

Самодельный плоттер: советы для начинающих, работа с grbl-прошивкой

1. Конструкция

2qj-rxkxvbgoa4oqvzwh9a0v4lk.png

Конструкция, которую я выбрала, изготавливалась из фанеры. В качестве осей использовались шпильки, которые крутились шаговыми двигателями, и за счет этого платформа на гайках двигалась по оси. Одна ось крепилась на платформу другой одним краем. Из изготовления всего этого могу сказать:

  • Если верхняя ось не имеет опоры с двух сторон, а крепится, как у меня, только одним краем, то необходимо заранее продумать баланс осей. Верхняя неизбежно будет крениться, если вообще не заваливать всю конструкцию весом своего «висящего» края.
  • Линии рисунка могут идти волнами по размеру резьбы шпильки, а также из-за дрожания самой конструкции во время работы.
  • Две вышеперечисленные проблемы приводят еще к одной: перо (в моем случае ручка) может писать неравномерно в разных частях страницы.
  • Вес и размеры устройства тоже стоит рассчитать заранее, чтобы потом не выяснилось, что ваши двигатели не тянут такую нагрузку.
  • И еще одна важная деталь: лучше всего везде где возможно использовать для крепления шурупы, гвозди и т.д. Конструкции на клее, пусть даже самом надежном, имеют свойство разваливаться в самый неожиданный момент. И в некоторых случаях после сборки основной части будет весьма сложно возвращаться к «переклеиванию» мелких, но очень важных, внутренних деталей, не разбирая готовые части.

2. Схема электрическая

Сама схема была предельно проста и не требовала даже пайки. Я даже взяла готовый CNC Shield специально для работы с ЧПУ. Тем не менее и тут есть свои нюансы:

  • Мой китайский аналог Arduino под кодовым именем WAVGAT на отрез отказался прошиваться как обычная Arduino Uno R3. В интернете утверждали, что подобные платы полностью совместимы со всем ПО arduino, но для работы с ним через IDE пришлось скачивать отдельную библиотеку WAVGAT Update. Так мне удалось залить скетч на плату, но само ПО по прежнему не хотело корректно работать. Я испробовала все найденные варианты исправления такого рода проблем (перегружала бутлодер платы, изменяла файлы boards и константы самой библиотеки с ПО), но итог остался тем же. Видимо, именно для этой задачи придется обзавестись классической Arduino.
  • Еще одной проблемой стал запуск шаговых двигателей. Они жужжали, грелись, несмотря на холодные драйвера, но не двигались. Методично проверяя цепочку поэлементно поняла, что проблема в их подключении. Дело в том, что и в этот раз китайцы соригинальничали. Оказалось, что выводы двигателя содержат перекрещенные пары А-В. Если у обычного магазинного двигателя пары шли по порядку 2В-2А-1А-1В, то у китайцев почему-то оказались 2В-1А-2А-1В. Выяснить это можно «пропикиванием» схемы мультиметром в соответствующем режиме: пищат парные А-В выходы.
  • И еще, как оказалось, безобидный маломощный сервопривод вполне способен безвозвратно «подпалить» всю плату arduino при длительной чрезмерной нагрузке на него. При этом плата продолжит работу, но будет иногда прерываться на середине, останавливаясь на командах сервопривода.

3. ПО

Тут есть варианты:

  • Проще всего взять замечательную простенькую программу BenВox. Она специализирована именно под работы с ЧПУ и проста в установке и обращении. Минус этого варианта в его ограниченности. Во-первых прошивка для платы в комплекте ПО содержится уже в hex-файле, потому возникают проблем с ее редактированием. Да и функционал в общем не особо обширен, похож на простейший графический редактор. Если не хотите вдаваться в подробности работы всего этого механизма, то можно поработать с этим вариантом.
  • Немного сложнее, но и перспективней работа через GRBL-прошивку. Эту библиотечку можно без проблем взять в интернете и она дает значительно больше возможностей, чем BenBox. Но для работы через этот механизм надо разобраться с начальной настройкой всего этого.
    1. Итак, скачиваем и распаковываем grbl-servo библиотеку. Теперь ее можно залить на плату через IDE, просто отыскав ее среди примеров.
    2. Для пересылки непосредственно команд устройству понадобится Universal Gcode Sender (или другое подобное ПО). После его установки на компьютер в нем открываем канал связи с платой по com-порту, к которому подсоединена плата.
    3. Для начальной и последующих настроек платы в командной строке приложения набираем «$$». По этой команде получаем полный набор базовых настроек платы, которые можно менять, настраивая нужные параметры. К примеру, команды «$110=380» и «$111=380» ставят скорость двигателей на осях Х и У на 380 мммин. Важными пунктами настройки являются скорость и ускорение двигателей, направление осей (прямое или инверсное). Подробнее инструкцию по такой настройке можно найти в интернете.
    4. Также есть возможность машинного контроля над двигателями (вкладка machine control) и серво (команды М5(поворот в начальное положение) и М3 s90(поворот на 90 или любое другое кол-во градусов)).
    5. Далее надо подготовить изображение для работы. Для этого тоже понадобится доп. ПО, к примеру, Inkscape. Оно похоже на любой другой графический редактор и подробно работу с ним можно изучить также в интернете. Но есть пара важных замечаний:
  • Для начала надо задать правильные размеры страницы в свойствах, чтобы размеры вашего изображения не оказалось больше возможностей плоттера. Так же необходимо заменить пиксели на миллиметры в единицах измерения.
  • После создания изображения жмем ctrl+shift+C и идем в меню — расширения — MI GRBL… — задаем скорости двигателей и угол поворота серво — сохраняем изображение в формате gcode.
    1. Наконец возвращаемся в Universal Gcode Sender и во вкладке File Mode открываем наше gcode-изображение. Кнопкой Visualize можно графически отслеживать работу программы, а в окне command Table можно проследить по командное выполнение. Осталось только запустить все это и наблюдать за результатом.

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

      Данная прошивка требует наличие на компьютере среды программирования Arduino, как ее установить и настроить мы рассматривали в статье «Установка и настройка Arduino».

       Для своих проектов мы выбрали прошивку GRBL, как наиболее оптимизированную для станков с ЧПУ.

Скачать ее можно с официальной страницы разработчиков на GitHub.

Необходимо выбрать «Clone or download» — «Download ZIP«.

GRBL-download-zip.jpg

Распаковываем скачанный архив, и папку «grbl» из него необходимо заархивировать в отдельный ZIP-архив.

GRBL-zip.jpg

Теперь можно подключить к USB наш шильд,  (NANO или UNO)

Из меню пуск запускаем ARDUINO.

 Выбираем плату: Инструменты -> Плата -> Arduino  (UNO или NANO)

Выбираем порт: Инструменты -> Порт -> Com 4 (возможны варианты)

Подключаем библиотеку: Скетч -> Подключить библиотеку -> Добавить ZIP библиотеку

и выбираем ZIP-архив в папке GRBL, который мы уже сделали.

После этого можно прошиваться: Файл -> Примеры -> GRBL -> grblUpload

После окончания процесса компиляции и прошивки мы увидим такое сообщение «Загрузка завершена«

Проверим, что у нас получилось. 

Выберем пункты: Инструменты Монитор порта

Должно выпасть следующее окно

Вводим CR (Возврат каретки) , 115200 бод в правом нижнем углу.

В консоли пишем $$, нажимаем Отправить

После всех манипуляции мы должны увидеть

А вот о том, что это такое и как настроить плату под конкретный станок мы поговорим в нашей следующей статьте

«Universal G-Code Sender — установка и настройка«

Если Вы делаете покупки в интернет магазинах AliExpress, GearBest, Banggood, ASOS, Ozon, то вступайте в мою партнерскую программу. Таким образом поможете развитию моего сайта и скорейшему выходу новых статей. Ваша выгода — возврат до 18% потраченных средств. Кэшбэк проверенный. Деньги выводят быстро и без лишних проволочек.

part.jpg

</td></tr></tbody> —> —> —>

—>Главная—> » —>Статьи—> » Станки CNC » Электроника

Arduino UNO + CNC shield + DRV8825

   Мой первый станок оказался без блока управления. Беда. Дело было так…

   У нового станка был сильный резонанс с потерей шагов и даже заклиниванием вала по оси Х, причем на невысоких скоростях. Я попробовал подключить ШД оси Х через драйвер Geckodrive. У него было заявлено подавление резонансов. Geckodrive был установлен в блоке управления первым станком, пришлось изъять его оттуда. С ним все заработало. Резонанс остался, но сильно уменьшился. Пропуска шагов и заклинивания не стало. Я все так и оставил.

   Для другого проекта я заказывал Arduino CNC Shield V3.0 и драйверы шаговых двигателей DRV8825 к шилду. Тот проект пока находится в стадии обдумывания исполнения механической части. В ближайшее время его реализация не предвидится.

   Решил я посмотреть, что может Arduino Uno с установленным CNC Shield и DRV8825, надеясь применить его для управления первым станком.

   Модуль управления шаговым двигателем DRV8825.

   Основой модуля драйвера ШД является микросхема DRV8825.

s76945172.jpg

   Основные характеристики DRV8825;

  • Напряжение питания – 8,2-45В;
  • Ток обмотки двигателя – до 2,5А;
  • Деление шага – до 1/32;
  • Частота step/dir – 250кГц;
  • Защита – по току от перегрева, перенапряжения.

s38067422.jpg

   Как выставить ток ШД на драйвере DRV8825? А вот так. Ток выставляется переменным резистором, расположенным на плате драйвера.

   Для того, чтобы узнать значение тока, необходимо измерять напряжение между минусом питания платы CNC shield и металлической частью переменного резистора.

s90894841.jpg

   Ток двигателя = Измеренное напряжение * 2

   С модулем в комплекте идет микроскопический радиатор.

s06646638.jpg

   Может быть этого радиатора и достаточно для двигателей с током 0,5А и при условии интенсивного обдува, но у меня на станке установлены двигатели NEMA23 с 57 фланцем и номинальным током 2,8А. Попытка включить двигатель с установленным током 2А без интенсивного обдува (небольшой ветерок от потолочного вентилятора все таки был) привела к сильному нагреву.

s19946584.jpg

   Дальше я греть не стал, запахло канифолью и я выключил питание.

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

s15048975.jpg

   На плате под этой площадкой сделаны металлизированные переходы для распределения тепла на обе стороны платы.

s33809485.jpg

   Вот это место с переходами и надо охлаждать. Радиаторы я изготовил из радиатора с материнской платы персонального компьютера. Для этого я порезал его на кусочки необходимого размера и прижал к плате через теплопроводные прокладки металлической скобой, сделанной из пружины от прищепки. Радиаторы сидят очень плотно. Для того, чтобы радиатор снизу поместился и ничего не мешало его обдуву, пришлось с CNC шилда перенести на другую сторону конденсаторы и удалить штыри для установки джамперов выбора режима деления шага. Необходимые соединения я сделал с обратной стороны платы. Также на обратную сторону был перенесен предохранитель.

   Для сравнения старый и новый радиатор.

s75296226.jpg

   Модуль, установленный на плату.

s48593110.jpg

   Теперь в тех же условиях температура колебалась от 37 до 40 градусов в зависимости от нагрузки на двигатель.

s42691326.jpg

   CNC shield V3.0

   Плата предназначена для управления станком с ЧПУ.

s63354499.jpg

   Цена на Али порядка 250 рублей. Устанавливается на Arduino UNO или другие совместимые платы. На плату устанавливаются 4 драйвера шаговых двигателей. Ось А может дублировать одну из осей X, Y или Z (выставляется джамперами). Отдельно на плате выведены интерфейсы UART, I2C. Ходят слухи, что есть прошивка GRBL с поддержкой экрана. Также к плате можно подключить 4 кнопки (reset/abort, feed hold, start/resume, E-stop) и концевики осей X, Y и Z. Есть еще и управление охлаждением/подачей смазывающе-охлаждающей жидкости. Есть выход Enable для драйверов ШД.

   В версии прошивки GRBL 0.9 ребята что-то придумали по-другому, и в итоге получилось так, что в CNC Shield v3.0 поменялись местами контакты Z+ (контакт концевика) и SpnEn (запуск шпинделя). Я думаю, что они освободили ШИМ вывод 11 Arduino для PWM управления оборотами шпинделя, который был занят концевиком. Если Вам в руки попала плата CNC Shield RGBL 0.9 Compatible, то на ней изменение выводов учтено.

   Запуск «бутерброда»

   Для того, чтобы двигатели ожили, необходимо прошить в Arduino прошивку c «нежным» названием GRBL. Прошивка ориентирована на станки с ЧПУ в отличие от Marlin, которая ориентирована в первую очередь на 3D принтеры. Далее отправляем команды G-кода с компьютера в Arduino, прошивка рассчитывает количество импульсов для драйверов в соответствии с настройками прошивки.

   Прошивка GRBL.

   GRBL доступна на Github. Скачиваем архив. А теперь внимание! Распаковываем архив в любую директорию. Из распакованного архива папку grbl копируем в директорию, содержащую библиотеки Arduino IDE.

    Копировать содержимое всего архива не надо. Только содержимое папки grbl. Перезагружаем Arduino IDE.  Заходим в меню ЭСКИЗ – Include Library выбираем grbl.

   Получаем  нечто подобное.

   Нажимаем прошить. Соответственно COM-порт и тип платы уже должны быть выбраны. После завершения прошивки открываем консоль.

   Видим строку Grbl 0.9j [‘$’ for help] (1). Пишем команду $$ в поле (2), жмем ввод. В ответ получаем список настроек (3). Для изменения настроек набираем (например, для изменения количества шагов на мм по оси Х) $100=3200 и жмем ввод. В моем случае 3200 шагов на один мм.

   Расчет, кому интересно.  

  • Двигатель 1,8 градуса на шаг, 360 градусов на оборот — 360/1,8 =200 шагов на один оборот
  • режим микрошага 1/32,  200*32=6400 шагов на оборот
  • шаг винта 2мм, 6400/2=3200 шагов на мм.

Основные параметры прошивки для первоначальной настройки:

  • количество шагов на мм $100, $101, $102
  • максимальная скорость $110, $111, $112
  • ускорение $120, $121, $122.

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

   Программа отправки G-кода.

   Самая популярная GRBL Controller.

   Качается отсюда. Ставите. Запускаете, выбираете COM-порт и скорость. Дальше сложностей возникнуть не должно. Программа очень простая. Шлет в COM-порт построчно выбранный файл с G-кодом.

   Вторая программа Universal G-code Sender. Качать здесь.

   Очень похожа на первую. Работает на Яве. Антивирус у меня по умолчанию запустил ее в песочнице, пришлось ему объяснять, что все хорошо, все свои.

   В ходе прогона двигателей в течении нескольких часов потери шагов не было. Как только появится свободное время, соберу новый блок управления для первого станка.

—>Категория—>:Электроника | —>Добавил—>:Zlitos (19.10.2016) |
—>Просмотров—>:43346 | | |
—>Всего комментариев—>: 4
<label>Порядок вывода комментариев:</label>
3flashstrong   (10.02.2017 20:14) [Материал]
4Zlitos   (10.02.2017 22:36) [Материал] Приветствую. На столе работает стабильно. На станок я все это так и не поставил. Был один сбой. Лежало все это дело на столе пару дней, потом включил и обнаружил, что ардуина зыбыла все настройки. Настроил заново. Месяц пролежало, пока я не получил новые двигатели. Включил проверить новые движки, все работает.
1Yuferss   (22.12.2016 04:19) [Материал]
2Zlitos   (22.12.2016 18:49) [Материал] Приветствую! Версию 1.1 пока не пробовал. Она вышла совсем недавно. Чуть позже попробую. GRBL мне как раз пригодится.

—>Добавлять комментарии могут только зарегистрированные пользователи.—>[ —>Регистрация—> | —>Вход—> ] —> —> Используемые источники:

  • https://habr.com/post/432818/
  • http://cnc-design.ru/grbl-skachivaem-proshivaem.html
  • http://zlitos.com/rtr/1-1-1

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации