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

ЧПУ в хоббийной мастерской (часть 3)

b6f3e0.jpg

  • Цена: ¥114.00 ($18 без учета доставки)

Привет всем! Небольшой обзор на простенькую плату управления для ЧПУ фрезеров/граверов/лазеров, занимающую промежуточное положение по простоте настройки/функционалу между обычной связкой Arduino Uno+CNC Shield+GRBL и дорогостоящими ($100….$200) платами для Mach3 и так далее. Плата позволяет управлять станком через USB, например, с ноутбука или планшета (Win). Промышленному оборудованию эта плата управления конкуренцию не составит, но вот для начинающих может быть полезна и интересна. Небольшая предыстория покупки. Плату прикупил себе по случаю, так как давно искал что-то недорогое на замену CNC Shield и GRBL. С той же целью была куплена плата Mach3 LPT (копеешная плата управления станком с компьютера напрямую), но для удобства искал именно версию с USB. Версия с LPT меня не устроила, далее ее рассматривать или сравнивать с ней я не будут. А вот версии платы с LAN значительно интереснее, но стоят сильно дороже. Что касается самой платы управления – это один из вариантов некогда популярной (да и сейчас популярная в узких кругах) платы контроллера Planet CNC MK1 USB Controller. Плата на основе контроллера PIC18F4550, поддерживает управление несколькими осями, шпинделем и выносной пульт. Прошивка, схема, перечни — все в свободном доступе для некоммерческого использования (Информация по MK1 доступна по ссылке, Тема на форуме по MK1). Товарищи (или не товарищи) из Поднебесной сделали редизайн платы на свой лад, добавили поддержку стандартных шаговых драйверов (A4988/DRV8825) и продают во всевозможных вариантах.Вот лот MK1, по ссылке доступны два варианта платы: простая (¥67/$10) и «улучшенная» (enhanced motherboard, ¥144/$18). Плюс есть вариант сразу в комплекте с драйверами (А4988, плюс примерно $4), а также обратите внимание на отдельный пульт, который подходит для всех вариантов. Разница в цене небольшая, есть смысл взять «улучшенную», и рекомендую докупить сразу пульт (¥24/$4) Внешний вид Enhanced платы управления МК1 (из описания лота).8a4cf2.jpg На плате располагается разъем USB (связь с компьютером, питание низковольтной части), вход силового питания (джек 3,5 мм, развязан от USB), два реле и две группы клемм KF301-2P (подключение внешних исполнительных устройств, со своим питанием, например, шпинделя или насоса). Плюс KF301-2P красного цвета — выход питания с платы.Плюс концевики, колодки для установки драйверов двигателей (4 оси), разъем для подключения джойстика. Есть возможность установить датчик автокалибровки. Внешний вид Enhanced платы с установленными драйверами7d96a2.jpg На всякий случай приведу описание обычной платы, без драйверов и с драйверами. Отличий минимум, в основном в силовой части — отсутствуют исполнительные реле (оба), в наличии просто выход питания, управляемый небольшим транзистором. Можно установить простой шпиндель-двигатель типа RS-550 или внешнее реле. Разъемы для концевиков и пульта присутствуют. Я уже упоминал, что в лоте присутствует отдельная позиция — ручной пульт. Вернее, плата пульта с распаянными кнопками (и шлейфом). Подходит для всех конфигураций плат. Очень удобное и недорогое дополнение. Примеры размещения пульта и платы в виде корпуса-стойки для станка. Назначение плат управления — для работы с небольшими ЧПУ станками (граверами/фрезерами/лазерами/плоттерами и т.п.), поддерживается до 4х осей. Плата не работает под Mach3, а работает с программой CNC USB Controller. Софт простой, функциональный, удобный. Управление осуществляется двигателями напрямую, в пределах 8V-30V, до 2A, присутствует управление скоростью вращения шпинделя, концевики положения, включение охлаждения (насос, ОЖ), при использовании драйверов A4988 доступен микрошаг 1/16, при использовании драйверов 8825 – 1/32. Софт работает только под WINDOWS (xp, win7, win8, win10); Поддерживаются файлы Gcod’а, например, *.nc, *, а также файлы DXF/ PLT / HPGL. Теперь про посылку. Получил быстро (относительно), все целое, получилось недорого. На Алишке цены выше.

Кстати, если заказывать много товаров, то среди большой посылки удельная стоимость доставки двух этих плат копеешная. Масса менее 100г В комплект вложили послание от китайцев Внешний вид пульта Вместе с платой пульта положили простой прямой шлейф (10 Pin, 240 мм) Плата пульта небольшая (около 40х90 мм) На обратной стороне есть коннектор для шлейфа На плате присутствуют кнопки трех осей (±), плюс резистор скорости перемещения и перегрузка станка. А вот плата MK1 CNC поинтереснее. На обратной стороне подробная шпаргалка по установке режимов работы (микрошаг), а также подписаны все значимые пины. Силовые выходы (реле К1, К2), клеммник V1. Силовой вход DC2.1 (от 8 до 30 В), разъем KEY — подключение джойстика, DIP -селектор микрошага. Контроллер PIC18F4550, видны панельки для драйверов, разъемы концевиков AXIS — датчик калибровки (Probe) Проба — подключение к станку
Подключаем плату Запускаем программу. Плата определяется, открывается возможность к управлению станком Немного про софт. Окно настроек Передаточные числа, скорости и ускорения устанавливаются раздельно для каждой оси, Передаточное число (для установленного ходового винта ЧПУ станка) В окошке «Шагов/Единицу» данные вводятся в соответствии с таблицей для винтовых передач, соединенных напрямую с двигателем, имеющим угол одного шага 1,8 градуса.
Например, с помощью CNC USB Controller можно достаточно просто сверлить печатные платы Можно запустить на гравировку Микки-мауса Или фрезеровку 3Д фигуры Ну негоже оставаться плате джойстика без корпуса. Рисуем корпус из двух половинок. Верхняя.
Нижняя И незабываем кнопочки Готовим к печати… Промежуточные фотографии печати Один из вариантов корпуса (в зеленом PLA)
Печать корпуса белым PETG Заодно напечатал «крутилки» для осей. Плата с джойстиком с самодельным корпусом, и с двумя A4988
Первые попытки и пробы Небольшое видео, пробы, приноравливался к новому управлению. На видео нарезка — как я пробовал управление по осям с джойстика, с программы по USB, потом проба фрезерования в холостую (без вращения шпинделя и с высотой 0). В принципе все, что касается CNC USB controller – плата рабочая, удобная. Из минусов — мощные драйверы типа TB6600 нужно подключать через плату-адаптер, а также нет совместимости с MACH3. В остальном одни плюсы за такие деньги. Если есть проблемы с выбором языка при запуске программы — вот шпаргалка по смене языка.В комментариях и в личке спрашивают про станок. Несколько слов про конструкцию, чертежи и профиль СоберизаводаВ этом обзоре описание сборки станочка.Чертежи пластин — можно сделать из металла, фторопласта, фанеры, пластика и т.п. Это конструкционный алюминиевый профиль от Соберизавода. Я покупал сразу нарезанный в размер комплект профиля для 2418. Есть два варианта — профиль без покрытия (подешевле) и с покрытием (анодированный). Разница в стоимости небольшая, я рекомендую с покрытием, особенно если использовать в качестве направляющих для роликов. Выбираем нужный тип профиля 2020, далее вводим «порезать по размерам». Иначе, можно купить один отрезок (хлыст) на 4 метра. При расчете имейте ввиду, что стоимость одного реза бывает разная, в зависимости от профиля. И что на рез закладывается 4 мм. Вводите размеры отрезков. Я сделал станок 2418 чуть больше, это семь отрезков по 260 мм и два вертикальных по 300 мм. Вертикальный можно сделать поменьше. Если нужен станок длиннее, то два продольных отрезка больше, например, 350 мм, поперечные также по 260 мм (5 шт). Подтверждаем (надо обязательно добавить в карту раскроя) Проверяем корзину Профиль получается на 667р вместе с услугой резки. Доставка осуществляется ТК, рассчитать стоимость можно по калькулятору, так как размеры профиля вам известны, вес очень хорошо считается в карте раскроя. Для расчета нужна опция «забор груза у поставщика». Доставка Деловыми линиями обойдется дешевле, около 1000 рублей. Можно забрать самовывозом в Москве. В одном месте офис, склад и мастерская, где режут профиль в размер. Есть витрина с образцами, можно подобрать профиль на месте. Доставка производилась через посредника Yoybuy.com, стоимость доставки сборной посылки 8.5 кг – $93, конкретно указанные платы и джойстик по массе вышли менее $1 за доставку в составе этой посылки. Еще один вариант платы CNCРеле для шпинделяСофт Товар предоставлен для написания обзора магазином. Обзор опубликован в соответствии с п.18 Правил сайта.

Подключение Mach3 к станку через USB

Ответить

Фотография LantanaLantana19 Фев 2018

станок заработал , стоял кривой Мач

Ответить

Фотография foto-bossfoto-boss19 Фев 2018

Поздравляю!

Зря на новый станок грешил.

Ответить

Фотография Александр 78Александр 7828 Фев 2018

Ответить

Фотография LantanaLantana03 Мар 2018

Добрый день как контролер nvum подружить с матчем

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

Ответить

Фотография foto-bossfoto-boss03 Мар 2018

Добрый день как контролер nvum подружить с матчем

Закинуть в папку plugins (находится в папке мача), плагин от контроллера.

nvum.dll

Ответить

Фотография ZergeZZergeZ09 Июн 2018

станок заработал , стоял кривой Мач

Точно такой же  станок, один в один — все фотки совпадают.   Те же проблемы,  не реагирует на команды ни по одной оси.  Не реагирует на входные сигналы от датчиков( концевиков).  При запуске  Mach3  сообщает, что есть несколько контроллеров и предлагает выбрать либо RnRMotionControllerECO-V2.0,  либо NormalPrinter  port Operation.  Выбираю первый вариант.   ПРи выборе вкладки Диагностика, есть только реакция на сигналы от кнопки Emergency и Digitize( замыкание датчика Нуля).    

Не могли бы Вы прислать тот вариант Mach3,  который прислал вам китаец.  Возможно у меня  та же причина.

Ответить

Фотография LantanaLantana14 Июн 2018

давайте почту пришлю

Ответитьpsrtb98htrntl_pcfsmcloxegei.png Изначально, планировал ограничиться двумя постами (раз, два) про мои ЧПУшные эксперименты. Но, тема оказалась многим интересной, поэтому, немного ее еще пораскрываю. В этом посте пойдет речь про написание самодельного софта для управления любительским ЧПУ.

Предисловие

Не знаю, удалось ли кого-то мотивировать первыми постами, но некоторые комментарии мне самому дали хорошую пищу для размышлений. Отдельная благодарность @evilruff за фото его лаборатории и за видео с классным корейцем. После просмотра того и другого мой бардачёк в подвале перестал казаться таким уж уютным. Собравшись с силами, на выходных навел что-то отдаленно напоминающее порядок и сделал, наконец, 2 вещи которые собирался сделать еще пол-года назад. Во-первых, заменил кусок фанеры который выполнял роль жертвенного стола. Этой фанерой я пользовался с момента покупки станка, прикручивая саморезами к ней заготовки и сооружая всякие безумные конструкции из палок и клиньев. Все для того, чтобы деталь не отправилась в непредсказуемый полет при фрезеровке. Может кому пригодится лайфхак: новый стол сделал из пластиковой террасной доски (продается в Кастораме):ycfvmjzxxjh35o9koqhm6fjzc-q.png Доски болтами прикрутил прямо к алюминиевому родному столу. Бонусом получились удобные пазы для фиксаторов заготовки и быстрого монтажа присадочного стола. На все про все ушло пара часов и ~1100р. И во-вторых, наконец, написал более-менее юзабильный софт для управления нестандартными функциями ЧПУ. Про это и будет основной рассказ.

Постановка задачи

G-code для операций, которые описаны во второй части простейший. Тем не менее, сам процесс наладки нельзя назвать быстрым.

Как это происходило

Например, для присадки нужно было: зная ширину панели посчитать сколько должно быть отверстий, рассчитать точное расстояние между ними, создать файл, написать g-code, загрузить его в Mach3. Все это занимает, в лучшем случае, минут 15 — 20. В этом свете, преимущества цифрового станка значительно меркнут по сравнению с ручным инструментом, которым за это же время можно навертеть целую кучу дырок.

Что хотелось получить

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

Поиск решения

Первое что пришло в голову было написание автономной программы, которая напрямую бы взаимодействовала с параллельным портом. Беглый гуглинг показал, что задача записи в lpt вполне решаемая, но черт, как известно, прячется в деталях. При дальнейшем изучении вопроса я понял, что застрять тут можно всерьез и надолго. К тому же, такое решение было бы не гибким: для другого станка, например с USB, оно не работало бы. Оставался вариант разобраться с SDK Mach3. В процессе сбора информации про создание mach-плагинов я натолкнулся на интересное решение. В нем описывалось как используя OLE-механизмы можно дергать Mach3 из стороннего приложения. Я не эксперт в технологиях Microsoft, но после просмотра по диагонали мануала по SDK Mach3, если я правильно уловил основную идею, никакой серебренной пули не существует, плагины используют те же публичные методы COM-объектов Mach3. Перекраивать интерфейс Mach3 я не собирался, таким образом, разница для пользователя между плагином и standalon приложением получалась только в том, что плагин доступен из меню Mach3, а приложение — через иконку на рабочем столе XP. Отдельное приложение мне показалось предпочтительней. В этом случае, теоретически, я мог сразу после загрузки компьютера запускать свою программу, которая паровозом загружала бы Mach3 (вместо того, чтобы сначала грузить Mach3 и потом копаться в его меню для запуска плагина).

Берем в руки шашку

Последний раз нативное десктопное приложение для Windows мне приходилось писать году, эдак, в 2006 и было оно на Delphi. С тех пор веб-технологии с их Линуксом окончательно поглотили меня. Поэтому, сейчас особых предпочтений на каком языке ваять windows-программу у меня не было. Найденный простенький пример был написан на C#, этот язык и был выбран в качестве подопытного кролика. Я не буду здесь выкладывать весь код получившегося приложения (при желании можете его найти на github по ссылке внизу поста). Поясню основные вещи. Все эксперименты я проделывал на виртуалке с WinXP SP3, VS 2003 и Mach3 Version R3.043.062. Для тех кто считает, что лучше один раз увидеть ссылка на ролик в Youtube по которому разбирался я. Ниже расшифровка основных моментов.

Подготовка

  1. Чтобы Visual Studio нормально подхватила компонент Mach3 нужно чтобы он корректно был прописан в реестре. Для этого качаем файл Mach3Registry.reg
  2. Запускаем Mach3Registry.reg
  3. Запускаем VS, создаем проект оконного приложения на C#
  4. В блоке Solution Explorer правый клик по References, в меню выбираем Add Reference. В открывшимся окне нажимаем Browse и ищем Mach3.exebwpvtjvkxx6gaivlgdkaly0z4_i.png Если все правильно, в списке References должна появиться строка, кто бы мог подумать, Mach4…
  5. 5. Далее рисуем UI, вешаем обработчики, реализуем алгоритмы…

Взаимодействие с Mach3

Подключаем нужные библиотеки, объявляем переменные (Form1.cs)

... using System.Runtime.InteropServices; using Mach4; // Подключаем компонент Mach  namespace Cnc {     public class Form1 : System.Windows.Forms.Form     {         private IMach4 _mach;            private IMyScriptObject _mInst;         ...          // получение ссылки на запущенный экземпляр Mach3         private void GetMachInstance()          {             try              {                 _mach = (IMach4) Marshal.GetActiveObject("Mach4.Document");                 _mInst = (IMyScriptObject) _mach.GetScriptDispatch();             }              catch              {                 _mach = null;                 _mInst = null;             }         } ... 

Использование:

GetMachInstance(); //  if(_mInst != null)  {     _mInst.DoOEMButton(1003); // Нажатие на кнопку Stop в Mach3     _mInst.Code("G00 X100"); // Выполнение G-code     _mInst.GetOEMDRO(800); // Получить текущее значение координаты X } 

Коды кнопок и значений параметров можно посмотреть в вики: OEM_DROs и OEM_Buttons (Wiki у них подглючивает, значения параметров в таблице не выводится, я смотрел на вкладке «View source»). Первая версия программы работала так: по установленным параметрам генерировался g-code который покадрово (т.е. построчно) выполнялся методом _mInst.Code. И это было моей ошибкой. В отладочной среде на виртуалке все прекрасно работало. В Mach3 бежали правильные цифры в координатах. Но при переносе на станочный компьютер возникли проблемы. Каретка перемещалась правильно, но шпиндель не включался. Похоже, что управление роутером и шпинделем в Mach работает в разных потоках. Получалась ситуация, что команды перемещений (G…) выполнялись последовательно как они поступали в метод _mInst.Code в одном потоке, а команды управления шпинделем (M3, M5), не зависимо от первых, выполнялись в другом потоке. В результате, шпиндель включался (M3) и тут же выключался (M5), при этом перемещение каретки шло своим чередом. Я пробовал разные варианты, подключал задержки, пробовал загнать весь управляющий g-code в одну строку и отправлять одним куском в _mInst.Code. В результате, остановился на решении «в лоб»: просто загоняю сгенерированный код в файл, этот файл программно открываю в Mach3 и там же программно нажимаю кнопку «Старт». Фрагмент работающего кода:

_mInst.LoadFile("C:\tmp\gcode.txt"); System.Threading.Thread.Sleep(2000); _mInst.DoOEMButton(1000); 

Пауза между загрузкой файла и нажатием кнопки нужна для того, что бы Mach успел открыть файл. Возможно, есть какой-то более изящный способ. Если кто знает, напишите в комментариях. Дополнительным бонусом такого решения получилось то, что теперь можно в интерфейсе Mach наблюдать визуализацию процесса обработки.

Что в итоге получилось

Далее, в двух словах о получившемся приложении. Отдельно расскажу о UI для каждой операции.

Раскрой

xynyjryvow1ftwsuwvss8xvyvie.png Тут все достаточно прозрачно. Параметр S нужен для компенсации размера L если заготовка закреплена не в нулевой точке по Х (или по Y при распиле вдоль).

Присадка

Для присадки возможны 2 конфигурации оснастки. Первая с болгаркой для сверления торцевых отверстий. И вторая с обычным шпинделем для сверления в плоскости щита (почему-то я назвал ее «Присадка фронтальная»).

Присадка торцевая

qqmnmiv1ofy4bwpryj8n3obufcg.png При торцевой присадке важно точно выставить ноль в правом нижнем углу заготовки (у меня там находится угол бокового упора и стола). Со сверлом по дереву это сделать не сложно — там есть острый наконечник которым и надо попасть в этот угол. Закрепляя заготовку на столе я просто упираю ее в сверло. Не меняя оснастку тем же способом я делаю ответные отверстия закрепляя заготовку вертикально: Параметр X нужен для того, чтобы соединять панели разной ширины (например, когда нижняя и верхняя панели шкафа шире боковых на толщину дверей).

Присадка фронтальная

ll_kkr9enxnd-vrs_3yc5cskxsg.png Оснастка для фронтальной — это обычный шпиндель. Этот вид присадки используется когда нужно насверлить отверстий в горизонтальной поверхности не только по краям но и где-то посередине. Например, если в шкафе несколько отделений и кроме боковых стенок есть внутренние. Если длина панели больше длины станка, присадку можно сделать в 2 подхода с разворотом детали на 180 градусов. В этом случае, так же пригодится параметр X.

Токарная обработка

e5-je9dvs8fwye3vrv1rg5wsdam.png Для меня основной сложностью при подготовке g-code с токарной траекторией было не переборщить с максимальной глубиной погружения диска. Дело в том, что на выходе из Inkscape получается одна линия и точение происходит в один проход. Из-за этого, мне приходилось делать отдельный код для цилиндрования заготовки и только после этого запускался основной проход создающий форму. И были некоторые ограничения на эту форму. В частности, нужно было следить, чтобы траектория не уходила слишком глубоко. Я старался не выходить за рамки 10 — 15мм от уровня первоначального цилиндра. Все перечисленные проблемы удалось решить в новой программе. Работает это так: загружаем «сырой» g-code полученный из Inkscape, задаем размер стороны бруска заготовки и указываем максимальную глубину обработки за 1 проход (чем тверже деревяшка, тем меньше эта глубина). На базе исходного g-code и параметров программка посчитает безопасную траекторию и отправит ее в ЧПУ.

Планы на будущее

Программа здорово упростила рутину, но до совершенства еще далеко. Во-первых, нужно будет оптимизировать алгоритм сверления глубоких отверстий (сверло забивается стружкой и перегревается, нужно сделать качание вперед-назад). В-вторых, появилась идея сделать библиотеку токарных форм. Т.е. несколько типовых форм (типа цилиндра, конуса, скалки и т.п.) с возможностью настройки размеров без необходимости создавать траектории в сторонних программах.

Ссылки

→ Mach3Registry.reg → Mach3 SDK и другие программы → Репозиторий проекта на Github (заранее прошу прощения у шарповиков за архитектурные косяки — это моя первая программа на С#).Используемые источники:

  • https://mysku.ru/blog/taobao/60001.html
  • http://mir-cnc.ru/topic/16509-подключение-mach3-к-станку-через-usb/
  • https://habr.com/post/439022/

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