ЧПУ фрезер Cyclone PCB Factory. Верстат для гравіювання друкованих плат

Як зараз пам'ятаю, 23го лютого наткнувся на пост на тудее, де людина хотіла гравірувати друковані плати на 3д принтері. У коментарях порадили не мучити тваринку принтер і звернути увагу на проект Cyclone PCB Factory.

Загорівся ідеєю. Надалі, в якийсь момент я навіть пошкодую що взявся, але це буде сильно пізніше.

Про власний ЧПУ Фрезер для друкованих плат я мріяв дуже давно, це була друга хотелка після 3д принтера. Вирішив повторити проект, тим більше що дещо у мене в засіках уже було.

Скачав файли проекту і не довго думаючи почав друкувати детальки. Упорався приблизно за тиждень. Роздрукував все, крім осі Z.

Докладних фотографій всіх деталей не залишилося. Кому-то робив скріншот налаштувань друку і результату. Сопло 0,4, висота шару 0,24. Друкував і шаром 0,28 - цілком нормально друкує.

Верстат захотілося зробити кольоровим, тому різні деталі друкував пластиком різного кольору. Пластик використовував ABS Prostoplast. Кольори космос, трав'яний зелений, алеющій захід.

Краще б надрукував все сірим космосом. Червоний і зелений виявилися досить тендітними і частина деталей дали тріщини при складанні. Щось вилікувалося ацетоном, щось заново передрукував.

комплектуючі:

Три вільних крокових двигуна у мене було, купував їх під проект 3д принтера, вирішив тимчасово задіяти.

Напрямні 8мм добув з струменевих принтерів, роздеребанити кілька принтерів на органи. Шерстив місцеві комісійні магазини, Авито. Донорами стали струменеві принтери HP по 100-200 рублів за штуку. Довга напрямна пілілась на дві частини, на осі X і Z.

Притиск паперу з якого я зняв гумові ролики пішов на вісь Y. Довжини якраз вистачило щоб обрізати по накатку.

Лінійні підшипники залишалися з 3д принтера, принтер я перевів на бронзові втулки в горошок.

Як електроніки вирішив використовувати одну зі своїх Arduino Uno на atmega328p. Докупив на Алі плату cnc shield 3.0 для Arduino за 200 з копійками рублів.

Блок живлення 12В з Леруа Мерлен. Купував щоб живити три 12В галогенки, але він їх не потягнув. Довелося відремонтувати трансформатор для галогенок Tachibra, а цей блок живлення прижився на станочке.

На 3д принтер я поставив драйвера 8825, з принтера у мене залишилися a4988. Їх і поставив на верстат.

Підшипники 608ZZ замовив на Алі, десяток за 200 з копійками рублів ..

Як шпинделя планував використовувати свій китайський гравер GoldTool.

Різьбові шпильки м8 дісталися з роботи на халяву, залишилися з якогось монтажу. Підібрав практично "зі смітника".

Поки друкувався проект і їхали деталі з Алі, попросив знайомого мебляра вирізати з МДФ підставу і столик. Він не полінувався і не пошкодував обрізків, випиляв 2 підстави і 2 столика. На фото один з комплектів.

Фанери у мене в засіках не було, купити лист фанери позбавила змоги жадібне тварина. МДФ речі підійшов дуже добре.

Почав збирати верстат. Все б нічого, але стандартні гайки на 13 провалювалися і бовталися всередині шестерні, гайки на 14 не лізли в шестерні. Довелося 14е гайки вплавити в шестерні паяльником.

Шестерні або бовталися на осях крокової двигуна, або не лізли.

Гайки гвинтів м3 прокручувалися в посадочних гніздах.

Знайшов у себе кілька квадратних гайок під різьбу м3 (розбирав колись якийсь штеккер, з нього), які ідеально підійшли і не прокручувалися. На роботі ще знайшов таких штекерів і пустив на гайки. В основному це кріплення напрямних. Звичайні гайки для різьблення м3 доводилося притримувати тонким жалом викрутки, щоб не прокручувалися.

Якось зібрав. Пізніше читаючи теми про Cyclone, натрапив на перероблені детальки верстата під метричний кріплення. З цього набору заново роздрукував шестерні і кріплення концевика по осі Z. Шкода мені не попався цей набір запчастин раніше. Друкував б ці запчастини.

У надії застосувати свій китайський гравер роздрукував спочатку одне кріплення під дремель з комплекту, потім друге. Чи не підійшло, мій гравер ні в одне не ліз. Оригінальний же дремель, найпростіший, коштував три з невеликим тисячі рублів. За що???

Зайві запчастини.

І ще, лінійні підшипники в своїх гніздах бовталися як щось в ополонці.

Довелося за тисячу з невеликим замовити на али 200Вт шпиндель з цанговим затискачем ER11. Вдало потрапив на знижки і використовував купон.

Поки їхав шпиндель, роздрукував під нього кріплення з комплекту верстата. І знову прокол, воно таке ж збиткове. І ні слова про хомут для шпинделя.

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

А ось підшипники на втулках Cargo довелося з них прибрати. Поставив китайські LM8UU

Окремо хочеться сказати про китайські підшипники 608zz. Підшипники з новья з люфтом. Жахливі. Одне що стоять порівняно не дорого. У нас підшипники не шукав.

До речі підшипники в посадочні місця увійшли так само, як щось в ополонку. У посадочних місцях підшипники бовталися. Не знаю, баг це або фіча. У підсумку на обойми підшипників хитнув ізоляційної стрічки.

Китайські lm8uu і lm8luu від 3д принтера так само виявилися мотлохом. У підсумку на вісь Y зробив підшипники ковзання на втулках Cargo 141091. Роздрукував пластикову обойму і в неї вставив по парі втулок. Утворені підшипники вставив в кріплення.

На вісь Z вибрав більш менш живі lm8uu. На вісь X верхній підшипник поставив lm8uu, а замість двох нижніх роздрукував пластикову обойму за розміром lm8luu і в неї вставив пару втулок Cargo.

Вдало я ними свого часу закупив. Стали в нагоді.

Під час складання верстата я і пошкодував, що взявся. Але, діватися було нікуди, треба було проект завершувати. Зібрав. Запустив!

Ще трохи фотографій та автоматизація виробництва.

Сам початок збирання ...

Я не люблю труїти друковані плати. Ну не подобається мені сам процес метушні з хлорним залізом. Там надрукуй, тут проутюжить, тут фоторезист проекспоніруй - ціла історія кожного разу. А потім ще думай, куди б злити хлорне залізо. Я не сперечаюся, це доступний і простий метод, але особисто я його намагаюся уникати. А тут сталося у мене щастя: добудував я фрезер з ЧПУ. Тут же з'явилася думка: а чи не спробувати фрезерувати друковані плати. Сказано зроблено. Малюю простенький перехідник c завалявся esp-wroom-02 і починаю свій екскурс у фрезерування друкованих плат. Доріжки спеціально зробив дрібними - 0,5 мм. Бо якщо такі не вийдуть - то і ну нафіг цю технологію.



Так як особисто я роблю друковані плати раз в п'ять років по великих святах - мені для проектування цілком вистачає KiCAD. Для нього спеціалізованих зручних рішень я не знайшов, але є більш універсальний шлях - з використанням gerber-файлів. У цьому випадку все відносно просто: беремо pcb, експортуємо потрібний шар в gerber (ніяких зеркалирования та іншої магії!), Запускаємо pcb2gcode - і отримуємо готовий nc-файл, який можна віддати Фрезера. Як завжди, реальність - зла зараза і все виявляється дещо складніше.

Отримання gcode з gerber-файлів

Отже, як отримати gerber-файл, я особливо описувати не планую, я думаю, це все вміють. Далі потрібно запустити pcb2gcode. Виявляється, він вимагає приблизно мільйон параметрів командного рядка, щоб видати щось прийнятне. В принципі, документація у нього непогана, я її подужав і зрозумів, як отримати якийсь gcode навіть так, але все ж хотілося казуальности. Тому було знайдено pcb2gcode GUI. Це, як підказує назва, GUI для настройки основних параметрів pcb2gcode галочками, та ще й з попереднім переглядом.



Власне, на цьому етапі отримано якийсь гкод і можна пробувати фрезерувати. Але поки я тикав в галочки, з'ясувалося, що дефолтний значення заглиблення, яке пропонує цей софт, - 0,05 мм. Відповідно, плата повинна бути встановлена \u200b\u200bу Фрезер як мінімум з точністю вище цієї. Я не знаю, у кого як, але у мене робочий стіл у фрезера помітно більш кривої. Найпростіше рішення, що прийшло в голову, - поставити на стіл жертовну фанерку, відфрезерувати в ній кишеню під розміри плат - і вона виявиться ідеально в площині фрезера.


Для тих, хто вже добре володіє фрезером, ця частина нецікава. Після пари експериментів я з'ясував, що фрезерувати кишеню обов'язково потрібно в одному напрямку (наприклад, подачею на зуб) і з захлестом хоча б відсотків на тридцять. Fusion 360 мені запропонував спочатку занадто маленький захлест і їздив туди-сюди. У моєму випадку результат вийшов незадовільний.

Облік кривизни текстоліту

Вирівнявши майданчик, я поклейка на неї двостороннього скотча, поклав текстоліт і запустив фрезерування. Ось результат:



Як видно, з одного краю плати фреза практично не зачіпає мідь, з іншого - занадто заглибилася в плату, при фрезеруванні пішли крихти текстоліту. Подивившись уважно на саму плату, я помітив, що вона спочатку нерівна: злегка вигнута, і, як ти з нею ні мучся, якісь відхилення по висоті будуть. Потім, до речі, я подивився і з'ясував, що для друкованих плат товщиною понад 0,8 мм допуск ± 8% вважається нормальним.


Перший варіант боротьби, що приходить в голову, - автокалібровка. За логікою речей - нічого складного, плата обміднений, фреза сталева, приробив один проводок до міді, інший до фрези - ось тобі готовий щуп. Бери і будівельних поверхню.


Мій верстат управляється grbl'ом на дешевому китайському Шілд. У grbl є підтримка щупа на піне A5, але ось спеціального роз'єму на моїй платі чомусь не виведено. Уважно розглянувши її, я все ж виявив, що пін A5 виведений на роз'єм SPI порту (підписаний як SCL), земля там теж поруч є. З цим «датчиком» одна хитрість - дроти потрібно переплести між собою. У Фрезер вкрай до фіга наведень, і без цього датчик буде постійно давати помилкові спрацьовування. Навіть після переплетення продовжить, але сильно-сильно рідше.




Команда каже: починай спускатися вниз аж до -10 по Z (абсолютна це або відносна висота - залежить від режиму, в якому зараз прошивка). Спускатися буде дуже повільно - зі швидкістю 5 мм / хв. Це викликано тим, що самі розробники не гарантують, що спуск зупиниться рівно в момент спрацьовування датчика, а не трохи пізніше. Тому краще спускатися повільно, щоб все зупинилося вчасно і не встигло піти в плату по саме не балуйся. Найкраще перший тест проводити, піднявши голову на висоту сильно більше 10 мм і скинувши систему координат. У такому випадку, навіть якщо все не спрацює і ви не встигнете дотягнутися до кнопки E-Stop'а, фреза НЕ буде запороти. Можна провести два тести: перший - нічого не робити (і після досягнення -10 grbl видасть «Alarm: Probe Fail»), другий - поки воно їде вниз, чим-небудь замкнути ланцюг і переконатися, що все зупинилося.


Далі треба знайти метод, як, власне, проміряти матрицю і спотворити gcode як потрібно. На перший погляд, у pcb2gcode'а є якась підтримка autoleveling'а, але підтримки саме grbl'а немає. Там є можливість задати команди запуску проби руками, але з цим треба розбиратися, а мені, чесно кажучи, було лінь. Допитливий розум міг би зауважити, що у LinuxCNC команда запуску проби збігається з командою grbl. Але далі йде непоправне відмінність: все «дорослі» інтерпретатори gcode'а зберігають результат виконаної проби в машинну змінну, а grbl просто виводить в порт значення.


Легке гугленіе підказало, що є ще досить багато різних варіантів, але мені на очі потрапив проект chillpeppr:


Це система з двох компонентів, призначена для гри з залізом з вебні. Перший компонент - Serial JSON Server, написаний на go, запускається на машині, підключеної безпосередньо до залізницею, і вміє віддавати управління послідовним портом по вебсокетам. Другий - працює у вас в браузері. У них є цілий фреймворк для побудови віджетів з якимось функціоналом, які потім можна засовувати на сторінку. Зокрема, у них вже є готовий workspace (набір віджетів) для grbl і tinyg.


І у chillpeppr'а є підтримка autoleveling'а. Та ще й на вигляд він сильно зручніше UniversalGcodeSender'а, яким я користувався до цього. Ставлю сервер, запускаю браузерную частина, витрачаю півгодини на те, щоб розібратися з інтерфейсом, завантажую туди gcode своєї плати та бачу якусь фігню:



Подивившись в сам gcode, який генерує pcb2gcode, бачу, що він використовує нотацію, коли на наступних рядках не повторюється команда (G1), а даються тільки нові координати:


G00 X1.84843 Y34.97110 (rapid move to begin.) F100.00000 G01 Z-0.12000 G04 P0 (dwell for no time - G64 should not smooth over this point) F200.00000 X1.84843 Y34.97110 X2.64622 Y34.17332 X2.69481 Y34.11185 X2.73962 Y34.00364 X2.74876 Y31.85178 X3.01828 Y31.84988 X3.06946 Y31.82249 X3.09684 Y31.77131

Судячи з того, що chilipeppr показує тільки вертикальні руху, він бачить рядок G01 Z-0.12 тут, але не розуміє все, що йде після F200. Потрібно переробляти на explict нотацію. Звичайно, можна руками попрацювати або напіліть який-небудь post-processing скрипт. Але ніхто ще не скасував G-Code Ripper, який серед іншого вміє бити складні команди gcode'а (типу тих же дуг) на більш прості. Він же, до речі, теж вміє по матриці autoprobe'а викривляти gcode, але вбудованої підтримки grbl'а знову немає. Зате можна зробити той самий split. Мені цілком підійшли стандартні настройки (хіба що в конфіги довелося заздалегідь поміняти одиниці виміру на mm). Результуючий файл почав нормально відображатися в chilipeppr:



Далі запускаємо autoprobe, не забувши вказати відстань, з якого опускати пробу, і її глибину. У моєму випадку я вказував, що треба опускати з 1 до 2 мм. Нижня межа не так важлива, її можна поставити хоч -10, але я б не радив: пару раз невдало виставив початкову точку, з який треба запускати пробу, і крайні точки виявлялися за межами плати. Якщо заглиблення більше - можна і гравер зламати. А так просто помилка. Від рівня верхньої межі безпосередньо залежить те, як довго він буде проміряти поверхню. У моєму випадку реально плата майже ніколи не йшла за межі 0,25 мм вгору або вниз, але 1 мм якось надійніше. Тиснемо заповітну run і біжимо до Фрезера медитувати:



А в інтерфейсі chilipeppr з'являється потихеньку виміряних поверхню:



Тут треба звернути увагу, що всі значення по Z помножені на 50, щоб краще візуалізувати вийшла поверхню. Це настроюється параметр, але 10 і 50 добре працюють, на мій погляд. Я досить часто стикаюся з тим, що якась одна точка виявляється сильно вище, ніж можна від неї очікувати. Особисто я пов'язую це з тим, що датчик ловить-таки наведення і дає помилкове спрацьовування. Благо chilipeppr дозволяє вивантажити карту висот у вигляді json'кі, її можна руками після цього поправити, а потім руками ж завантажити. Далі тиснемо кнопку «Send Auto-Leveled GCode to Workspace» - і в перці вже завантажений поправлений гкод:


N40 G1 X 2.6948 Y 34.1118 Z0.1047 (al new z) N41 G1 X 2.7396 Y 34.0036 Z0.1057 (al new z) N42 G1 X 2.7488 Y 31.8518 Z0.1077 (al new z) N43 G1 X 3.0183 Y 31.8499 Z0. 1127 (al new z) N44 G1 X 3.0695 Y 31.8225 Z0.1137 (al new z) N45 G1 X 3.0968 Y 31.7713 Z0.1142 (al new z)

У код додані переміщення по Z, які повинні компенсувати нерівність поверхні.

Вибір параметрів фрезерування

Запускаю фрезерування, отримую ось такий результат:



Тут видно відразу три моменти:

  1. Проблема з нерівністю поверхні пішла: прорізано (точніше, подряпано) все практично на одну глибину, ніде немає пропусків, ніде не заглибити занадто сильно.
  2. Заглиблення недостатнє: 0,05 мм явно не вистачає для цієї фольги. Плати, до речі, якийсь невідомий звір з AliExpress, товщину міді там не вказали. Шар міді буває різний, найбільш поширені - від 18 до 140 мкм (0,018-0,14 мм).
  3. Явно видно биття гравера.

Про заглиблення. Підібрати те, наскільки глибоко треба опускати гравер, нескладно. Але є специфіка. Конічний гравер має в проекції форму трикутника. З одного боку, кут відомості до робочої точці визначає, наскільки інструмент важко зламати і як довго він проживе, а з іншого - чим більше кут, тим ширше буде рез при заданому заглибленні.



Формула розрахунку ширини різу при заданому заглибленні виглядає так (нескромно взята з reprap.org і виправлена):


2 * penetration depth * tangens (tool tip angle) + tip width

Вважаємо за нею: для гравера з кутом 10 градусів і точкою контакту 0,1 мм при заглибленні 0,1 мм ми отримуємо ширину різу майже 0,15 мм. Виходячи з цього, до речі, можна прикинути, яку мінімальну відстань між доріжками зробить обраний гравер на фользі обраної товщини. Ну і ще, навіть якщо вам не треба дуже маленьких відстаней між доріжками, занадто глибоко фрезу опускати все одно не варто, так як стеклотекстолит дуже сильно тупить фрези навіть з твердих сплавів.


Ну і тут є ще смішний момент. Припустимо, у нас є дві доріжки, віддалені один від одного на 0,5 мм. Коли ми проженемо pcb2gcode, він подивиться на значення параметра Toolpath offset (наскільки відступати від доріжки при фрезеруванні) і фактично зробить між доріжками два проходи, віддалені один від одного на (0,5 - 2 * toolpath_offset) мм, між ними залишиться (а швидше за за все, зірветься) якийсь шматочок міді, і буде це некрасиво. Якщо ж зробити toolpath_offset більшим, ніж відстань між доріжками, то pcb2gcode видасть warning, але згенерує тільки одну лінію між доріжками. У загальному випадку для моїх застосувань це поведінка більш переважно, так як доріжки виходять ширше, фреза ріже менше - краса. Правда, може виникнути проблема з smd-компонентами, але малоймовірно.


Є виражений випадок такої поведінки: якщо задати дуже великий toolpath_offset, то ми отримаємо друковану плату на увазі діаграми Вороного. Як мінімум - це красиво;) На ефект можна подивитися на першому скріншоті з pcb2gcode, що я давав. Там показано, як вона буде виглядати.


Тепер про биття гравера. Це я їх даремно так називаю. Шпиндель у мене непоганий зразок і так сильно, звичайно, не б'є. Тут швидше кінчик гравера при переміщенні згинається і стрибає між точками, даючи ось ту дивну картину з крапочками. Перша і основна думка - фреза не встигає прорізати і тому перестрибує. Легке гугленіе показало, що народ фрезерує друковані плати шпинделем на 50к оборотів зі швидкістю приблизно в 1000 мм / хв. У мене шпиндель дає 10к без навантаження, і можна припустити, що різати треба зі швидкістю 200 мм / хв.

Результати і висновок

Врахувавши все це, проміряти новий шматок текстоліту, запускаю фрезерування і отримую ось такий результат:



Верхня рівно так, як вийшла з фрезера, нижня - після того як провів по ній звичайним точильним каменем пару раз. Як видно, в трьох місцях доріжки не прорізалися. В цілому по всій платі ширина доріжок плаває. З цим ще треба розбиратися, але у мене є припущення, в чому причина. Спочатку я кріпив плату на двосторонній скотч, і вона досить часто відходила. Потім в парі місць прихопив ще краями головок саморізів. Начебто триматися стала краще, але все одно трохи грає. Підозрюю, що в момент фрезерування вона притискається до майданчика і через це, власне, не прорізається.



Загалом, перспективи у цього всього є. Коли процес відпрацьований, побудова матриці висот займає хвилин п'ять-сім, потім безпосередньо фрезерування - пару хвилин. Начебто можна експериментувати далі. Зате можна потім сверловку робити на тому ж верстаті. Ще прикупити заклепок, і буде щастя! Якщо тема цікава, то можу написати ще одну статтю про сверловку, двосторонні плати тощо.

На питання, як зробити верстат з ЧПУ, можна відповісти коротко. Знаючи про те, що саморобний фрезерний верстат з ЧПУ, в общем-то, - непросте пристрій, що має складну структуру, конструктору бажано:

  • обзавестися кресленнями;
  • придбати надійні комплектуючі і кріпильні деталі;
  • підготувати хороший інструмент;
  • мати під рукою токарний і свердлильний верстати з ЧПУ, щоб швидко виготовити.

Не завадить переглянути відео - своєрідну інструкцію, навчальну - з чого почати. А почну з підготовки, куплю все необхідне, розберуся з кресленням - ось правильне рішення початківця конструктора. Тому підготовчий етап, що передує збірці, - дуже важливий.

Роботи підготовчого етапу

Щоб зробити саморобний ЧПУ для фрезерування, є два варіанти:

  1. Берете готовий ходової набір деталей (спеціально підібрані вузли), з якого збираємо обладнання самостійно.
  2. Знайти (виготовити) всі комплектуючі і приступити до складання ЧПУ верстата своїми руками, який би відповідав усім вимогам.

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

Якщо прийнято рішення створити верстат ЧПУ своїми руками і обійтися без готових наборів вузлів і механізмів, кріпильних деталей, потрібна та схема, зібраний по якій верстат працюватиме.

Зазвичай, знайшовши принципову схему пристрою, спочатку моделюють всі деталі верстата, готують технічні креслення, а потім по ним на токарному і фрезерному верстатах (іноді треба використовувати і свердлильний) виготовляють комплектуючі з фанери або алюмінію. Найчастіше, робочі поверхні (називають ще робочим столом) - фанерні з товщиною 18 мм.

Збірка деяких важливих вузлів верстата

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

  • гвинтова передача - обертання передається, використовуючи зубчастий ремінь. Він хороший тим, що не прослизають на шківах, рівномірно передаючи зусилля на вал фрезерного обладнання;
  • якщо використовують кроковий двигун (ШД) для міні-верстата, бажано брати каретку від більш габаритної моделі принтера - потужніший; старі матричні друковані пристрої мали досить потужні електродвигуни;

  • для трьохкоординатної пристрою, знадобиться три ШД. Добре, якщо в кожному знайдеться 5 проводів управління, функціонал міні-верстата зросте. Варто оцінити величину параметрів: напруги живлення, опору обмотки і кута повороту ШД за один крок. Для підключення кожного ШД потрібен окремий контролер;
  • за допомогою гвинтів, обертальний рух від ШД перетворюється в лінійне. Для досягнення високої точності, багато хто вважає за потрібне мати кулько-гвинтові пари (ШВП), але це комплектує не з дешевих. Підбираючи для монтажу блоків набір гайок і кріпильних гвинтів, вибирають їх зі вставками з пластика, це зменшує тертя і виключає люфти;

  • замість двигуна крокової типу, можна взяти звичайний електромотор, після невеликого доопрацювання;
  • вертикальна вісь, яка забезпечує переміщення інструменту в 3D, охвачівая весь координатний стіл. Її виготовляють з алюмінієвої плити. Важливо, щоб розміри осі були підігнані до габаритів пристрою. При наявності муфельній печі, вісь можна відлити за розмірами креслень.

Нижче - креслення, зроблений в трьох проекціях: вид збоку, ззаду, і зверху.

Максимум уваги - станини

Необхідна жорсткість верстата забезпечується за рахунок станини. На неї встановлюють рухомий портал, систему рейкових направляючих, ШД, робочу поверхню, вісь Z і шпиндель.

Наприклад, один з творців саморобного верстата ЧПУ, несучу раму зробив з алюмінієвого профілю Maytec - дві деталі (перетин 40х80 мм) і дві торцеві пластини товщиною 10 мм з цього ж матеріалу, з'єднавши елементи алюмінієвими куточками. Конструкція посилена, всередині рами зроблено рамку з профілів менших розмірів у формі квадрата.

Станина монтується без використання з'єднань зварного типу (зварних швах погано вдається переносити вібронагрузкі). Як кріплення краще використовувати Т-образні гайки. На торцевих пластинах передбачена установка блоку підшипників для установки ходового гвинта. Знадобиться підшипник ковзання і шпиндельний підшипник.

Основним завданням зробленому своїми руками верстата з ЧПУ умілець визначив виготовлення деталей з алюмінію. Оскільки йому підходили заготовки з максимальною товщиною 60 мм, він зробив просвіт порталу 125 мм (це відстань від верхньої поперечної балки до робочої поверхні).

Цей непростий процес монтажу

Зібрати саморобні ЧПУ верстати, після підготовки комплектуючих, краще строго за кресленням, щоб вони працювали. Процес складання, застосовуючи ходові гвинти, варто виконувати в такій послідовності:

  • знає умілець починає з кріплення на корпусі перших двох ШД - за вертикальною віссю обладнання. Один відповідає за горизонтальне переміщення фрезерної головки (рейкові направляючі), а другий за переміщення у вертикальній площині;
  • рухомий портал, що переміщається по осі X, несе фрезерний шпиндель і супорт (вісь z). Чим вище буде портал, тим більшу заготовку вдасться обробити. Але у високого порталу, в процесі обробки, - знижується стійкість до виникаючих навантажень;

  • для кріплення ШД осі Z, лінійних направляючих використовують передню, задню, верхню, середню і нижню пластини. Там же зробіть ложемент фрезерного шпинделя;
  • привід збирають з ретельно підібраних гайки і шпильки. Щоб зафіксувати вал електродвигуна і приєднати до шпильці, використовують гумову обмотку товстого електрокабеля. В якості фіксатора можуть бути гвинти, вставлені в нейлонову втулку.

Потім починається збірка інших вузлів і агрегатів саморобки.

Монтуємо електронну начинку верстата

Щоб зробити своїми руками ЧПУ верстат і управляти ним, треба оперувати правильно підібраним числовим програмним управлінням, якісними друкованими платами і електронними комплектуючими (особливо якщо вони китайські), що дозволить на верстаті з ЧПУ реалізувати всі функціональні можливості, обробляючи деталь складної конфігурації.

Для того, щоб не було проблем в управлінні, у саморобних верстатів з ЧПУ, серед вузлів, є обов'язкові:

  • крокові двигуни, деякі зупинилися наприкладі Nema;
  • порт LPT, через який блок управління ЧПУ можна підключити до верстата;
  • драйвери для контролерів, їх встановлюють на фрезерний міні-верстат, підключаючи відповідно до схеми;

  • плати комутації (контролери);
  • блок електроживлення на 36В із знижуючим трансформатором, перетворюючої в 5В для живлення керуючої ланцюга;
  • ноутбук або ПК;
  • кнопка, що відповідає за аварійну зупинку.

Тільки після цього верстати з ЧПУ проходять перевірку (при цьому умілець зробить його пробний запуск, завантаживши всі програми), виявляються і усуваються наявні недоліки.

замість висновку

Як бачите, зробити ЧПУ, яке не поступиться китайським моделям, - реально. Зробивши комплект запчастин з потрібним розміром, маючи якісні підшипники і досить кріплення для збірки, це завдання - під силу тим, хто зацікавлений в програмної техніці. Прімера довго шукати не доведеться.

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

На ЧПУ виконується обробка алюмінієвої заготовки. Таким верстатом, який зібрав умілець, можна виконати багато фрезерних робіт.

Ще один зразок зібраного верстата, де плиту ДВП використовують як робочий стіл, на якому можливе виготовлення друкованої плати.

Кожен, хто почне робити перший пристрій, скоро перейде і до інших верстатів. Можливо, захоче випробувати себе в якості збирача сверлильного агрегату і, непомітно, поповнить армію умільців, які зібрали чимало саморобних пристроїв. Заняття технічною творчістю зроблять життя людей цікавою, різноманітною і насиченою.

Оптимальним і популярним на сьогоднішній день способом є фрезерування друкованої плати на ЧПУ.

Традиційно, є три способи створення аматорських друкованих плат:

  1. Фрезерування друкованих плат на ЧПУ.
  2. Використання перенесення тонера і хімічне травлення в хлорному залозі, але в даному методі може бути складним дістати потрібні матеріали, плюс до всього, хімікати - небезпечні речовини.
  3. За допомогою платних послуг підприємств, які цим займаються - послуги досить недорогі, ціна залежить від трудомісткості замовлення, складності та обсягу. Але це не дуже швидкий процес, тому доведеться чекати кілька часу.

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

Переваги та недоліки фрезерування плат на ЧПУ

Даний спосіб досить швидкий, але має як плюси, так і мінуси.

  • мінімальні витрати людської праці, майже всю роботу робить верстат;
  • екологічність процесу, немає взаємодії з небезпечними речовинами;
  • простота повторного виробництва. Для цього достатньо встановити один раз правильні настройки - і процес можна легко повторити;
  • масовість виробництва, так як можна виготовити досить велика кількість необхідних виробів;
  • економічність, йдуть витрати коштів тільки на придбання фольгованого склотекстоліти, який коштує близько 2 доларів за лист з розмірами 200х150 мм;
  • висока якість виготовлення.
  • ріжучі інструменти та торцеві фрези можуть бути дорогими, а також вони мають властивість зношуватися;
  • немає можливості виготовляти даний вид продукту за допомогою фрез повсюдно;
  • фрезерування може зайняти деякий час;
  • при знятті великої кількості міді за один прохід канавки фрези забиваються, що ускладнює роботу і погіршує якість обробки;
  • розмір різу залежить від діаметра фрези і точності фрезерування. Якщо планується використання SMD - деталей, необхідно ретельно перевірити програму фрезерування.

Процес виготовлення друкованих плат

Все виробництво даного продукту ділиться на такі кроки:

  1. Пошук або самостійна опрацювання схеми та розводка доріжок.
  2. Підготовка потрібних файлів для подальшого виробництва.
  3. Безпосереднє виробництво.

Для 1 етапу на просторах інтернету можна знайти велику кількість ПО, такого як Sprint Layout, PCad, OrCad, Altium Designer, Proteus і багато інших. Дані програми підійдуть для опрацювання схем і розведення доріжок. Найпопулярнішим зараз є фрезерування друкованих плат на ЧПУ з програми Sprint Layout. Відео про неї ви зможете знайти на нашому сайті.

Об'ємність другого етапу залежить від складності плати, яку ви хочете отримати. Для найпростіших конструкцій потрібна невелика кількість файлів. Основними з них є топологія, файл для просвердлювання отворів і файли майбутньої обрізки заготовки і, звичайно, готової плати.

Третій етап включає в себе свердління отворів під штифти для позиціонування плати на робочому столі верстата, а також вставка самих штифтів. Далі на них необхідно буде насадити плату і обрізати її по контуру.

Програмне забезпечення

Основні труднощі фрезерування друкованих плат - це наявність потрібних програм, які дозволять перевести малюнок плати в G-Code. Важливим аспектом даного моменту є те ПО, в якому ви на самому початку займаєтеся розробкою топології.

Давайте розберемося з принципами роботи верстата при фрезеруванні текстоліту. Для кращого розуміння розглянемо один із прикладів роботи програми, за допомогою якої відбувається фрезерування плати:

  1. Закріплення заготовки на станині, фіксація спеціальної насадки в шпинделі для того, щоб просканувати поверхню щоб побачити і визначити нерівності.
  2. Установка фрези для доріжок в шпиндель, і сам запуск програми для фрезерування.
  3. Установка свердла для свердління отворів і запуск програми для свердління.
  4. Останнім етапом є обрізка ПП по контуру за допомогою фрези. Далі плату можна вільно виймати з листа текстоліту, процес виробництва завершено.

Я не люблю труїти друковані плати. Ну не подобається мені сам процес метушні з хлорним залізом. Там надрукуй, тут проутюжить, тут фоторезист проекспоніруй - ціла історія кожного разу. А потім ще думай, куди б злити хлорне залізо. Я не сперечаюся, це доступний і простий метод, але особисто я його намагаюся уникати. А тут сталося у мене щастя: добудував я фрезер з ЧПУ. Тут же з'явилася думка: а чи не спробувати фрезерувати друковані плати. Сказано зроблено. Малюю простенький перехідник c завалявся esp-wroom-02 і починаю свій екскурс у фрезерування друкованих плат. Доріжки спеціально зробив дрібними - 0,5 мм. Бо якщо такі не вийдуть - то і ну нафіг цю технологію.



Так як особисто я роблю друковані плати раз в п'ять років по великих святах - мені для проектування цілком вистачає KiCAD. Для нього спеціалізованих зручних рішень я не знайшов, але є більш універсальний шлях - з використанням gerber-файлів. У цьому випадку все відносно просто: беремо pcb, експортуємо потрібний шар в gerber (ніяких зеркалирования та іншої магії!), Запускаємо pcb2gcode - і отримуємо готовий nc-файл, який можна віддати Фрезера. Як завжди, реальність - зла зараза і все виявляється дещо складніше.

Отримання gcode з gerber-файлів

Отже, як отримати gerber-файл, я особливо описувати не планую, я думаю, це все вміють. Далі потрібно запустити pcb2gcode. Виявляється, він вимагає приблизно мільйон параметрів командного рядка, щоб видати щось прийнятне. В принципі, документація у нього непогана, я її подужав і зрозумів, як отримати якийсь gcode навіть так, але все ж хотілося казуальности. Тому було знайдено pcb2gcode GUI. Це, як підказує назва, GUI для настройки основних параметрів pcb2gcode галочками, та ще й з попереднім переглядом.



Власне, на цьому етапі отримано якийсь гкод і можна пробувати фрезерувати. Але поки я тикав в галочки, з'ясувалося, що дефолтний значення заглиблення, яке пропонує цей софт, - 0,05 мм. Відповідно, плата повинна бути встановлена \u200b\u200bу Фрезер як мінімум з точністю вище цієї. Я не знаю, у кого як, але у мене робочий стіл у фрезера помітно більш кривої. Найпростіше рішення, що прийшло в голову, - поставити на стіл жертовну фанерку, відфрезерувати в ній кишеню під розміри плат - і вона виявиться ідеально в площині фрезера.


Для тих, хто вже добре володіє фрезером, ця частина нецікава. Після пари експериментів я з'ясував, що фрезерувати кишеню обов'язково потрібно в одному напрямку (наприклад, подачею на зуб) і з захлестом хоча б відсотків на тридцять. Fusion 360 мені запропонував спочатку занадто маленький захлест і їздив туди-сюди. У моєму випадку результат вийшов незадовільний.

Облік кривизни текстоліту

Вирівнявши майданчик, я поклейка на неї двостороннього скотча, поклав текстоліт і запустив фрезерування. Ось результат:



Як видно, з одного краю плати фреза практично не зачіпає мідь, з іншого - занадто заглибилася в плату, при фрезеруванні пішли крихти текстоліту. Подивившись уважно на саму плату, я помітив, що вона спочатку нерівна: злегка вигнута, і, як ти з нею ні мучся, якісь відхилення по висоті будуть. Потім, до речі, я подивився і з'ясував, що для друкованих плат товщиною понад 0,8 мм допуск ± 8% вважається нормальним.


Перший варіант боротьби, що приходить в голову, - автокалібровка. За логікою речей - нічого складного, плата обміднений, фреза сталева, приробив один проводок до міді, інший до фрези - ось тобі готовий щуп. Бери і будівельних поверхню.


Мій верстат управляється grbl'ом на дешевому китайському Шілд. У grbl є підтримка щупа на піне A5, але ось спеціального роз'єму на моїй платі чомусь не виведено. Уважно розглянувши її, я все ж виявив, що пін A5 виведений на роз'єм SPI порту (підписаний як SCL), земля там теж поруч є. З цим «датчиком» одна хитрість - дроти потрібно переплести між собою. У Фрезер вкрай до фіга наведень, і без цього датчик буде постійно давати помилкові спрацьовування. Навіть після переплетення продовжить, але сильно-сильно рідше.




Команда каже: починай спускатися вниз аж до -10 по Z (абсолютна це або відносна висота - залежить від режиму, в якому зараз прошивка). Спускатися буде дуже повільно - зі швидкістю 5 мм / хв. Це викликано тим, що самі розробники не гарантують, що спуск зупиниться рівно в момент спрацьовування датчика, а не трохи пізніше. Тому краще спускатися повільно, щоб все зупинилося вчасно і не встигло піти в плату по саме не балуйся. Найкраще перший тест проводити, піднявши голову на висоту сильно більше 10 мм і скинувши систему координат. У такому випадку, навіть якщо все не спрацює і ви не встигнете дотягнутися до кнопки E-Stop'а, фреза НЕ буде запороти. Можна провести два тести: перший - нічого не робити (і після досягнення -10 grbl видасть «Alarm: Probe Fail»), другий - поки воно їде вниз, чим-небудь замкнути ланцюг і переконатися, що все зупинилося.


Далі треба знайти метод, як, власне, проміряти матрицю і спотворити gcode як потрібно. На перший погляд, у pcb2gcode'а є якась підтримка autoleveling'а, але підтримки саме grbl'а немає. Там є можливість задати команди запуску проби руками, але з цим треба розбиратися, а мені, чесно кажучи, було лінь. Допитливий розум міг би зауважити, що у LinuxCNC команда запуску проби збігається з командою grbl. Але далі йде непоправне відмінність: все «дорослі» інтерпретатори gcode'а зберігають результат виконаної проби в машинну змінну, а grbl просто виводить в порт значення.


Легке гугленіе підказало, що є ще досить багато різних варіантів, але мені на очі потрапив проект chillpeppr:


Це система з двох компонентів, призначена для гри з залізом з вебні. Перший компонент - Serial JSON Server, написаний на go, запускається на машині, підключеної безпосередньо до залізницею, і вміє віддавати управління послідовним портом по вебсокетам. Другий - працює у вас в браузері. У них є цілий фреймворк для побудови віджетів з якимось функціоналом, які потім можна засовувати на сторінку. Зокрема, у них вже є готовий workspace (набір віджетів) для grbl і tinyg.


І у chillpeppr'а є підтримка autoleveling'а. Та ще й на вигляд він сильно зручніше UniversalGcodeSender'а, яким я користувався до цього. Ставлю сервер, запускаю браузерную частина, витрачаю півгодини на те, щоб розібратися з інтерфейсом, завантажую туди gcode своєї плати та бачу якусь фігню:



Подивившись в сам gcode, який генерує pcb2gcode, бачу, що він використовує нотацію, коли на наступних рядках не повторюється команда (G1), а даються тільки нові координати:


G00 X1.84843 Y34.97110 (rapid move to begin.) F100.00000 G01 Z-0.12000 G04 P0 (dwell for no time - G64 should not smooth over this point) F200.00000 X1.84843 Y34.97110 X2.64622 Y34.17332 X2.69481 Y34.11185 X2.73962 Y34.00364 X2.74876 Y31.85178 X3.01828 Y31.84988 X3.06946 Y31.82249 X3.09684 Y31.77131

Судячи з того, що chilipeppr показує тільки вертикальні руху, він бачить рядок G01 Z-0.12 тут, але не розуміє все, що йде після F200. Потрібно переробляти на explict нотацію. Звичайно, можна руками попрацювати або напіліть який-небудь post-processing скрипт. Але ніхто ще не скасував G-Code Ripper, який серед іншого вміє бити складні команди gcode'а (типу тих же дуг) на більш прості. Він же, до речі, теж вміє по матриці autoprobe'а викривляти gcode, але вбудованої підтримки grbl'а знову немає. Зате можна зробити той самий split. Мені цілком підійшли стандартні настройки (хіба що в конфіги довелося заздалегідь поміняти одиниці виміру на mm). Результуючий файл почав нормально відображатися в chilipeppr:



Далі запускаємо autoprobe, не забувши вказати відстань, з якого опускати пробу, і її глибину. У моєму випадку я вказував, що треба опускати з 1 до 2 мм. Нижня межа не так важлива, її можна поставити хоч -10, але я б не радив: пару раз невдало виставив початкову точку, з який треба запускати пробу, і крайні точки виявлялися за межами плати. Якщо заглиблення більше - можна і гравер зламати. А так просто помилка. Від рівня верхньої межі безпосередньо залежить те, як довго він буде проміряти поверхню. У моєму випадку реально плата майже ніколи не йшла за межі 0,25 мм вгору або вниз, але 1 мм якось надійніше. Тиснемо заповітну run і біжимо до Фрезера медитувати:



А в інтерфейсі chilipeppr з'являється потихеньку виміряних поверхню:



Тут треба звернути увагу, що всі значення по Z помножені на 50, щоб краще візуалізувати вийшла поверхню. Це настроюється параметр, але 10 і 50 добре працюють, на мій погляд. Я досить часто стикаюся з тим, що якась одна точка виявляється сильно вище, ніж можна від неї очікувати. Особисто я пов'язую це з тим, що датчик ловить-таки наведення і дає помилкове спрацьовування. Благо chilipeppr дозволяє вивантажити карту висот у вигляді json'кі, її можна руками після цього поправити, а потім руками ж завантажити. Далі тиснемо кнопку «Send Auto-Leveled GCode to Workspace» - і в перці вже завантажений поправлений гкод:


N40 G1 X 2.6948 Y 34.1118 Z0.1047 (al new z) N41 G1 X 2.7396 Y 34.0036 Z0.1057 (al new z) N42 G1 X 2.7488 Y 31.8518 Z0.1077 (al new z) N43 G1 X 3.0183 Y 31.8499 Z0. 1127 (al new z) N44 G1 X 3.0695 Y 31.8225 Z0.1137 (al new z) N45 G1 X 3.0968 Y 31.7713 Z0.1142 (al new z)

У код додані переміщення по Z, які повинні компенсувати нерівність поверхні.

Вибір параметрів фрезерування

Запускаю фрезерування, отримую ось такий результат:



Тут видно відразу три моменти:

  1. Проблема з нерівністю поверхні пішла: прорізано (точніше, подряпано) все практично на одну глибину, ніде немає пропусків, ніде не заглибити занадто сильно.
  2. Заглиблення недостатнє: 0,05 мм явно не вистачає для цієї фольги. Плати, до речі, якийсь невідомий звір з AliExpress, товщину міді там не вказали. Шар міді буває різний, найбільш поширені - від 18 до 140 мкм (0,018-0,14 мм).
  3. Явно видно биття гравера.

Про заглиблення. Підібрати те, наскільки глибоко треба опускати гравер, нескладно. Але є специфіка. Конічний гравер має в проекції форму трикутника. З одного боку, кут відомості до робочої точці визначає, наскільки інструмент важко зламати і як довго він проживе, а з іншого - чим більше кут, тим ширше буде рез при заданому заглибленні.



Формула розрахунку ширини різу при заданому заглибленні виглядає так (нескромно взята з reprap.org і виправлена):


2 * penetration depth * tangens (tool tip angle) + tip width

Вважаємо за нею: для гравера з кутом 10 градусів і точкою контакту 0,1 мм при заглибленні 0,1 мм ми отримуємо ширину різу майже 0,15 мм. Виходячи з цього, до речі, можна прикинути, яку мінімальну відстань між доріжками зробить обраний гравер на фользі обраної товщини. Ну і ще, навіть якщо вам не треба дуже маленьких відстаней між доріжками, занадто глибоко фрезу опускати все одно не варто, так як стеклотекстолит дуже сильно тупить фрези навіть з твердих сплавів.


Ну і тут є ще смішний момент. Припустимо, у нас є дві доріжки, віддалені один від одного на 0,5 мм. Коли ми проженемо pcb2gcode, він подивиться на значення параметра Toolpath offset (наскільки відступати від доріжки при фрезеруванні) і фактично зробить між доріжками два проходи, віддалені один від одного на (0,5 - 2 * toolpath_offset) мм, між ними залишиться (а швидше за за все, зірветься) якийсь шматочок міді, і буде це некрасиво. Якщо ж зробити toolpath_offset більшим, ніж відстань між доріжками, то pcb2gcode видасть warning, але згенерує тільки одну лінію між доріжками. У загальному випадку для моїх застосувань це поведінка більш переважно, так як доріжки виходять ширше, фреза ріже менше - краса. Правда, може виникнути проблема з smd-компонентами, але малоймовірно.


Є виражений випадок такої поведінки: якщо задати дуже великий toolpath_offset, то ми отримаємо друковану плату на увазі діаграми Вороного. Як мінімум - це красиво;) На ефект можна подивитися на першому скріншоті з pcb2gcode, що я давав. Там показано, як вона буде виглядати.


Тепер про биття гравера. Це я їх даремно так називаю. Шпиндель у мене непоганий зразок і так сильно, звичайно, не б'є. Тут швидше кінчик гравера при переміщенні згинається і стрибає між точками, даючи ось ту дивну картину з крапочками. Перша і основна думка - фреза не встигає прорізати і тому перестрибує. Легке гугленіе показало, що народ фрезерує друковані плати шпинделем на 50к оборотів зі швидкістю приблизно в 1000 мм / хв. У мене шпиндель дає 10к без навантаження, і можна припустити, що різати треба зі швидкістю 200 мм / хв.

Результати і висновок

Врахувавши все це, проміряти новий шматок текстоліту, запускаю фрезерування і отримую ось такий результат:



Верхня рівно так, як вийшла з фрезера, нижня - після того як провів по ній звичайним точильним каменем пару раз. Як видно, в трьох місцях доріжки не прорізалися. В цілому по всій платі ширина доріжок плаває. З цим ще треба розбиратися, але у мене є припущення, в чому причина. Спочатку я кріпив плату на двосторонній скотч, і вона досить часто відходила. Потім в парі місць прихопив ще краями головок саморізів. Начебто триматися стала краще, але все одно трохи грає. Підозрюю, що в момент фрезерування вона притискається до майданчика і через це, власне, не прорізається.



Загалом, перспективи у цього всього є. Коли процес відпрацьований, побудова матриці висот займає хвилин п'ять-сім, потім безпосередньо фрезерування - пару хвилин. Начебто можна експериментувати далі. Зате можна потім сверловку робити на тому ж верстаті. Ще прикупити заклепок, і буде щастя! Якщо тема цікава, то можу написати ще одну статтю про сверловку, двосторонні плати тощо.