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

ЧПУ фрезерный станок с автономным контроллером на STM32

Вопрос-Ответ

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

Среди большого разнообразия контроллеров, пользователи ищут для самостоятельной сборки те схемы, которые будут приемлемы и наиболее эффективны. Применяются и одноканальные устройства и многоканальные: 3-х и 4-х осевой контроллеры.

Варианты устройств

Многоканальные контроллеры ШД (шаговых двигателей) при типоразмерах 42 или 57 мм используется в случае небольшого рабочего поля станка – до 1 м. Когда собирают станок большего рабочего поля – свыше 1м, нужен типоразмер 86 мм. Управлять ним можно, пользуясь одноканальным драйвером (ток управления, превышающий 4,2 А).

Управлять станком с числовым программным управлением, в частности, фрезерным настольным можно контроллером, созданным на базе специализированных микросхем –драйверов, предназначенных к применению для ШД до 3А. Контроллер ЧПУ станка управляется спецпрограммой. Ее устанавливают на ПК, имеющий частоту процессора свыше 1GHz, а объем памяти 1 Гб). При меньшем объеме, систему оптимизируют.

ОБРАТИТЕ ВНИМАНИЕ! Если сравнивать с ноутбуком, то в случае подключения стационарного компьютера – лучшие результаты, да и обходится он дешевле.

Подключая контроллер к компьютеру, используют USB или разъем параллельного порта LPT. Если этих портов нет, то пользуются платами-расширителями или контроллерами-преобразователями.

post-768-0-58095700-1417361494.jpg

Экскурс в историю

Вехи техпрогресса схематически можно обозначить так:

  • У первого контроллера на микросхеме был условно назван «синей платой». У этого варианта есть недостатки и схема требовала доработки. Главное достоинство – есть разъем, к нему и подключали пульт управления.
  • Вслед за синим, появился контроллер, называемый «красной платой». В нём уже использовались быстрые (высокочастотные) оптроны, реле шпинделя на 10А, развязка по питанию (гальваническая) и разъем, куда бы подключались драйверы четвертой оси.
  • Применялось также еще одно подобное устройство с красной маркировкой, но более упрощенное. При его помощи можно было управлять небольшим станком настольного типа – из числа 3-осевых.
  • Следующим в линейке техпрогресса стал контроллер с гальванической развязкой по питанию, быстрыми оптронами и особыми конденсаторами, имеющий алюминиевый корпус, который обеспечивал защиту от пыли. Вместо реле управления, которое включало бы шпиндель, в конструкции было два выхода и возможность, чтобы подключить реле или ШИМ (широтно-импульсная модуляция) управление скоростью вращения.
  • Сейчас же для изготовления самодельного фрезерно-гравировального станка, имеющего ШД, есть варианты – 4-х осевой контроллер, драйвер ШД от Allegro, одноканальный драйвер для станка, имеющего большое рабочее поле.

Читайте также:  Как выбрать фрезу для ЧПУ обработки

ВАЖНО! Не стоит перегружать ШД, применяя крупную фрезу агрегата и большую скорость.

CHpu-kontroller-besplatnaya-dostavka-50-kGts-chpu-4-osi-foruma-kontroller-proryv-doska-frezernyj-stanok-upravlenie.jpg

Контроллер из подручных материалов

Большинство умельцев предпочитают управление через LPT порт для большинства программ управления любительского уровня. Вместо применения комплекта спецмикросхем для этой цели, кое-кто строит контроллер из подручных материалов – полевых транзисторов из сгоревших материнских плат (при напряжении свыше 30 вольт и током больше 2 ампер).

А поскольку создавался станок для нарезания пенопласта, в качестве ограничителя тока изобретатель использовал автомобильные лампы накаливания, а ШД снимали со старых принтеров или сканеров. Такой контроллер устанавливали без изменений в схеме.

Чтобы сделать простейший станок ЧПУ своими руками, разбирая сканер, помимо ШД, извлекается и микросхема ULN2003, и два стальные прутки, они пойдут на тестовый портал. К тому же понадобятся:

  • Коробка из картона (из нее смонтируют корпус устройства). Возможен вариант с текстолитом или фанерным листом, но картон резать легче; куски древесины;
  • инструменты – в виде кусачек, ножниц, отверток; клеевой пистолет и паяльные принадлежности;
  • вариант платы, которая подходит на самодельный ЧПУ станок;
  • разъем для LPT порта;
  • гнездо в форме цилиндра для обустройства блока питания;
  • элементы соединения – стержни с резьбой, гайки, шайбы и шурупы;
  • программа для TurboCNC.

Сборка самодельного устройства

Приступив к работе над самодельным контроллером для чпу, первый шаг – аккуратно припаять микросхему на макетную плату с двумя шинами электропитания. Дальше последует соединение вывода ULN2003 и коннектора LPT. Далее оставшиеся выводы подключаем по схеме. Нулевой вывод (25-ый параллельного порта) соединяется с отрицательным на шине питания платы.

Затем ШД соединяют с устройством управления, а гнездо для электропитания – с соответствующей шиной. Для надёжности соединений проводов выполняют их фиксацию термоклеем.

Читайте также:  О корректировке инструментов в станках ЧПУ

Не составит труда подключение Turbo CNC. Программа эффективна с MS-DOS, совместима и с  Windows, но в этом случае возможны некоторые ошибки и сбои.

1352056034_p21.jpg

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

  • В отверстия, просверленные на одном уровне в трех деревянных брусках, вставляют прутки из стали и закрепляют шурупами небольшого размера.
  • ШД соединяют со вторым бруском, надевая его на свободные концы прутов и прикручивают, применяя шурупы.
  • Через третье отверстие продевается ходовой винт и ставится гайка. Винт, вставленный в отверстие второго бруска, завинчивают до упора, чтобы он, пройдя через эти отверстия, вышел на вал двигателя.
  • Далее предстоит соединение стержня с валом двигателя отрезком шланга из резины и проволочным зажимом.
  • Для крепления ходовой гайки нужны дополнительные винты.
  • Сделанная подставка также крепится к второму бруску при помощи шурупов. Горизонтальный уровень регулируется дополнительными винтами и гайками.
  • Обычно вместе с контроллерами подключаются и двигатели и тестируются на предмет правильного соединения. Далее следует проверка масштабирования ЧПУ, прогонка тестовой программы.
  • Остается сделать корпус устройства и это будет завершающим этапом работы тех, кто созидает самодельные станки.

Программируя работу 3-осевого станка, в настройках по первым двум осям – без перемен. А вот при программировании первых 4-х фаз третьей – вводятся изменения.

Внимание! Используя упрощенную схему контроллера ATMega32 (Приложение 1), в отдельных случаях можно столкнуться с некорректной обработкой оси Z – режим полушага. А вот в полной версии его платы (Приложение 2), токи осей регулируются внешним аппаратным ШИМом.

Заключение

В контроллерах, собранных ЧПУ станков – широкий спектр использования: в плоттерах, небольших фрезерах, работающих с древесиной и пластиковыми деталями, граверах по стали, миниатюрных сверлильных станках.

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

Поскольку я давно собрал для себя ЧПУ станок и давно и регулярно эксплуатирую его для хоббийных целей, то мой опыт, надеюсь, будет полезен, как и исходные коды контроллера. Постарался написать только те моменты, которые лично мне показались важными.Ссылка на исходники контроллера и настроенную оболочку Eclipse+gcc и пр. лежат там же, где ролик: Регулярно сталкиваясь, с необходимостью сделать ту или иную мелкую «штучку» сложной формы, первоначально задумался о 3D принтере. И даже начал его делать. Но почитал форумы и оценив скорость работы 3D принтера, качество и точность результата, процент брака и конструкционные свойства термопластмассы, понял, то это не более чем игрушка. Заказ на комплектующие из Китая пришел за месяц. И уже через 2 недели станок работал с управлением от LinuxCNC. Собирал из всякой фигни, что была под рукой, поскольку хотелось побыстрее (профиль + шпильки). Собирался потом переделать, но, как оказалось, станок получился достаточно жесткий, и гайки на шпильках не пришлось подтягивать ни разу. Так что конструкция осталась без изменений. Начальная эксплуатация станка показала что:

  1. Использовать в качестве шпинделя бормашинку “china noname” на 220V не лучшая идея. Перегревается и жутко громко работает. Боковой люфт фрезы (подшипников?) ощущается руками.
  2. Бормашинка Proxon работает тихо. Люфт не ощутим. Но перегревается и выключатся через 5 минут.
  3. Компьютер, взятый на время, с LPT двунаправленным портом — не удобен. Взят на время (найти PCI-LPT оказалось проблемой). Занимает место. И вообще..

После первоначальной эксплуатации заказал шпиндель с водяным охлаждением и решил сделать контроллер для автономной работы на самом дешевом варианте STM32F103, продаваемом в комплекте с 320×240 LCD экраном. Почему народ до сих пор упорно мучает 8-и разрядные ATMega для относительно сложных задач, да еще через Arduino для меня загадка. Наверное любят трудности.

Разработка контроллера

Программу создавал после вдумчивого просмотра исходников LinuxCNC и gbrl. Однако ни те, ни те исходники расчета траектории не взял. Захотелось попробовать написать модуль расчета без использования float. Исключительно на 32-х разрядной арифметике. Результат меня устраивает для всех режимов эксплуатации и прошивку не трогал уже давно. Скорость максимальная, подобранная экспериментально: X:2000мм/мин Y:1600 Z:700 (1600 step/mm. режим 1/8). Но ограничена не ресурсами контроллера. Просто выше уже мерзкий звук пропуска шагов даже прямых участках по воздуху. Бюджетная китайская плата управления шаговиками на TB6560 не самый лучший вариант. Фактически скорость по дереву (бук, 5мм заглубления,d=1мм фреза, шаг 0.15мм) больше 1200 мм не ставлю. Возрастает вероятность поломки фрезы. В результате получился контроллер со следующим функционалом:

  • Подключение к внешнему компу как стандартное usb mass storage device (FAT16 на SD карте). Работа с файлами стандартного формата G-code
  • Удаление файлов через пользовательский интерфейс контроллера.
  • Просмотр траектории по выбранному файлу (насколько позволяет экран 640×320) и расчет времени выполнения. Фактически эмуляция выполнения с суммированием времени.
  • Просмотр содержимого файлов в тестовом виде.
  • Режим ручного управления с клавиатуры (перемещение и выставления «0»).
  • Запуск выполнения задания по выбранному файлу (G-code).
  • Приостанов/продолжить выполнение. (иногда полезно).
  • Аварийный программный стоп.

Контроллер подключатся к плате управления шаговиками через тот же разъем LPT. Т.е. он выполняет роль управляющего компьютера с LinuxCNC/Mach3 и взаимозаменяем с ним. После творческих экспериментов по вырезанию собственноручно нарисованных рельефов на дереве, и экспериментов с настройками ускорений в программе, захотел дополнительно еще и энкодеры на осях. Как раз на e-bay нашел относительно дешевые оптически экодеры (1/512), шаг деления которых для моих ШВП был 5/512= 0.0098мм. Кстати, использование оптических энкодеров высокого разрешения, без аппаратной схемы работы с ними (в STM32 она есть) – бессмысленно. Ни обработка по прерыванию, ни, тем более, программный опрос никогда не справятся с «дребезгом» (это говорю для любителей ATMega). В первую очередь, я хотел для следующих задач:

  1. Ручное позиционирование на столе с высокой точностью.
  2. Контроль пропуска шагов с контролем отклонение траектории от расчетной.

Однако, нашел им еще одно применение, пусть и в довольно узкой задаче. Заметил, что при вырезании рельефа, при задании ускорения по Z больше определенной величины, ось Z начинает медленно, но уверенно ползти вниз. Но, время вырезания рельефа при этом ускорении на 20% меньше. По окончанию вырезания рельефа 17×20 см с шагом 0.1мм фреза может уйти вниз на 1-2 мм от расчетной траектории. Анализ ситуации в динамике по энкодерам, показал, что при подъеме фрезы иногда теряется 1-2 шага. Простой алгоритм коррекции шагов с использованием энкодера дает отклонение не более 0.03 мм и позволяет уменьшить время обработки на 20%. А даже 0.1 мм выступ на дереве заметить сложно. Идеальным вариантом для хоббийных целей посчитал настольный вариант с полем чуть больше чем A4. И до сих пор мне этого хватает.

Подвижный стол

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

  1. Конструкция проще и, в общем случае, конструкция более жесткая.
  2. На неподвижный портал навешиваются все потроха (блоки питания, платы и пр.) и станок получается компактнее и удобнее для переноски.
  3. Масса стола и куска типичного материала для обработки существенно ниже чем масса портала и шпинделя.
  4. Практически исчезает проблема с кабелями и шлангами водяного охлаждения шпинделя.

Шпиндель

Хотел бы заметить, что данный станок не для силовой обработки. ЧПУ станок для силовой обработки проще всего сделать на базе обычного фрезерного станка. На мой взгляд, станок для силовой обработки металла и станок с высоко оборотистым шпинделем для обработки дерева/пластмасс — это совершенно разные типы оборудования. Создать в домашних условия универсальный станок как минимум не имеет смысла. Выбор шпинделя для станка с данным типом ШВП и направляющими с линейными подшипниками однозначен. Это высоко оборотистый шпиндель. Для типичного высоко оборотистого шпинделя (20000 об/мин) фрезеровка цветных металлов (про сталь даже речи не идет) – это экстремальный режим для шпинделя. Ну, разве что очень надо и тогда съем по 0.3 мм за проход с поливом ОЖ. Шпиндель для станка рекомендовал бы с водяным охлаждением. С ним слышно во время работы только «пение» шаговых двигателей и бульканье аквариумного насоса в контуре охлаждения. В первую очередь у меня ушла проблема корпусов. Любой формы корпус фрезеруется из «оргстекла» и по идеально по гладким срезам склеивается растворителем. Стеклотекстолит отказался универсальным материалом. Точность станка позволяет вырезать посадочное место под подшипник, в которое он холодный зайдет, как положено с легким натягом, а после уже не вытащить. Шестерни из текстолита отлично вырезаются с честным эвольвентным профилем. Обработка дерева (рельефы и пр.) – широкий простор для реализации своих творческих порывов или, как минимум, для реализации чужих порывов (готовые модели). Вот только ювелирку не пробовал. Негде опоки прокаливать/плавить/лить. Хотя брусок ювелирного воска ждет своего часа.

Программа управления станком CNC USB Controller  работает в операционных системах Windows XP и Windows7. 

1.Установка программы.

Для установки программы требуется скачать или запустить с диска установочный файл CNCUSB_Setup.exe

После установки программы можно подключить плату контроллера к USB разъему контроллера.

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

2. Настройка программы.

Переход к настройке через меню файл->настройки, рисунок 1

cncusb_ris1.jpg

Рисунок 1

2.1 Настройка осей, рисунок 3, здесь устанавливаем количество осей 3, для станков с поворотной осью 4.

 cncusb_ris2.JPG

Рисунок 2

Здесь же, при необходимости, можно изменить направление перемещения по любой оси, установкой галочки в поле «реверс».

Если известен шаг винта и установленный на контроллере микрошаг(коэффициент дробления шага), то можно перейти пропустить пункт 2.2 и продолжить настройку программы с пункта 2.3 

2.2 Кнопка «Калибровка» позволяет вычислить величину «Шагов/Еденицу».

Управляя вручную перемещением каретки с инструментом станка, с помощью кнопок «правый Ctrl» + стрелки клавиатуры, выводим каретку примерно на середину.

Выбираем калибруемую ось, рисунок 3

cncusb_ris3.JPG

Рисунок 3

Нажимаем «Next» и указываем расстояние перемещения, рисунок 4.

cncusb_ris4.JPG

Рисунок 4

Заносим расстояние на которое переместилась каретка с инструментом, рисунок 5

cncusb_ris5.JPG

Рисунок 5

Нажимаем «Calculate» и программа выдаст значение «Шагов/Еденицу». Нажав «Set», программа сохранит эти значения , рисунок 6, и переходим к пункту 2.4

cncusb_ris6.JPG

Рисунок 6

2.3 Установка скоростей холостых перемещений и передаточных чисел.

Меню Файл->Настройки->Оси->Настройки , рисунок 7

Настройка передаточных чисел для определенного ходового винта заносится в поле «Шагов/Еденицу».

cncusb_ris7.jpg

Рисунок 7 Настройка передаточного числа, скорости холостых перемещений и ускорений.

Передаточные числа, скорости и ускорения устанавливаются раздельно для каждой оси,

Передаточное число (для установленного ходового винта ЧПУ станка)

В окошке «Шагов/Еденицу» данные вводятся в соответствии с таблицей для винтовых передач, соединенных напрямую с двигателем, имеющим угол одного шага 1,8 градуса.

Шаг винта мм

Полный шаг

1/2 шага

1/8 шага

1/16 шага

1,5 (M10) 133,33333 266,66666 1066,66666

2133,33333

1,75 (M12) 114,28571 228,57142 914,28571

1828,57142

2,0 (TR10) 100 200 800

1600

3,0 (TR12) 66,66666 133,33333 533,33333

1066,66666

5,0 (ШВП1605) 40 80 320

640

Для Моделист2030 c  винтом М12  значение «Шагов/Еденицу» устанавливаем равным «228.57142»

Для алюминиевого станка  CNC-2020AL 200мм х 200мм c  винтом TR10  значение «Шагов/Еденицу» устанавливаем равным «200»

Для Моделист3030 c  винтом TR12  значение «Шагов/Еденицу» устанавливаем равным «133.333333»

Для Моделист3040, Моделист4060, Моделист4080 и алюминиевых станков (кроме модели 200мм х 200мм) c  ШВП1605 значение «Шагов/Еденицу» устанавливаем равным «80».

Cкорость перемещений ставим не более 3000 для алюминиевых, не более 2500 для станков 3040 и 4060 с ШВП1605, не более 1000 для моделист2020 и 2030,  ускорение  устанавливаем равным «50», то есть как на картинке, рисунок 7.

Для оси Z значение «Шагов/Еденицу может отличаться от значений других осей.

Устанавливаем для оси Z:

Для Моделист2030  c  винтом оси Z М12  значение «Шагов/Еденицу» устанавливаем равным «228,57142»

Для Моделист3030 и станка из алюминия 200мм х 200мм c  винтом оси Z TR10  значение «Шагов/Еденицу» устанавливаем равным «200»

Для алюминиевых станков (кроме станка 200мм х 200мм) c  винтом оси Z ШВП1605  значение «Шагов/Еденицу» устанавливаем равным «80»

Для Моделист3040-4060-4080 c  винтом оси Z TR12  значение «Шагов/Еденицу» устанавливаем равным «133.333333».

2.4 Программные ограничения Меню Файл->Настройки->Оси->Ограничения

 

3 Описание интерфейса программы CNC USB Controller.

3.1 Главное окно программы, на рисунке 8.

 cncusb_ris8.jpg

                             Рисунок 8 Главное окно программы CNC USB Controller.

3.2 Вид рабочей области и окна G-кода, рисунок 9

cncusb_ris9.jpg

Рисунок 9

cncusb_ris10.JPG

3.4 Панель управления ручным перемещением инструмента.

 cncusb_ris11.JPG

Рисунок 11

 3.5 Описание кнопок управления.

cncusb_ris_kn.JPG

Обнулить все координаты

 Переместить в точку 0,0,0

 Переместить в точку  0,0,Z не изменяя координаты по Z

  Переместить в точку с заданными координатами X, Y, Z

4. Создание управляющей программы(G-кода) по растровому изображению из файлов *.jpg

Файл -> открыть -> выбираем наше изображение.

Рисунок 12.Где:Размер — общий размер.Высота — общая высота работы, такой же будет и высота безопасного перемещения.Диаметр — диаметр инструмента, так же это расстояние между проходами.Детализация — на сколько срезать вертикальные плоскости.Инверсия — инверсия изображение.5 Масштабирование.G-код  Маштаб … Функция «Масштаб» позволяет изменить размер вашей уже загруженной в G-коде модели.

 Рисунок 13

 

6 Настройка Датчика инструмента (датчик нуля)

6.1 Подключить датчик, один провод на LZ- второй провод на клемму 12В

6.2 Разрешить программе использование датчика инструмента.

Для этого в меню Файл/Настройки/ Датчикинструмента установить галочку «Разрешить», рисунок 14.

Рисунок 14

Нажать кнопку «Измерить смещение по Z», рисунок 15, кнопка примет оранжевый цвет, нажать кнопку «смещение — Текущее только Z»(она расположена выше, над кнопкой «Измерить смещение по Z»), снова нажать «Измерить смещение по Z». Станок опустит с заданной скоростью фрезу до касания датчика и автоматически поднимет инструмент вверх до заданной безопасной высоты.

Рисунок 15

 Настройка KCam

 Статьи по подготовке файлов резки для фрезерного станка в программе ArtCam:

Создание УП в программе ArtCAM

Подготовка файла 3d резки из карты высот в ArtCam v10

Подготовка файла 3d резки в ArtCam 

3d и 2d Модели для обработки

Используемые источники:

  • https://vseochpu.ru/kontroller-chpu-stanka/
  • https://habr.com/post/250677/
  • https://cncmodelist.ru/stati/165-nastroika-cncusb-controller.html

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