Здравствуйте!
Предлагаю Вашему вниманию мой второй "самодельный" станочек для квартирного использования.
Короткая предыстория (для просмотра содержимого нажмите на ссылку)Когда я только входил в курс дела ЧПУ станков, не хотел иметь отдельный ПК с LPT для того, что бы просто попробовать получится ли у меня собрать и запустить станок (так что система MACH3 отпала сразу, а про LinuxCNC вообще молчу - знал что темный лес и даже не лез). Я не был готов вкладываться ни материально, ни временно (ни того, ни другого не хватало). Но по крупицам собирал информацию, так как на то момент только началась эра 3д принтеров. У меня было 2 варианта GRBL, или 3д принтеровская прошивка.
Станок то собрал (не без приключений), но как делать на нем что-то? С большим трудом разобрался, что нужно писать УП - управляющая программа (не говоря о режимах резания, ну и т.п.) И для этого нужна CAM программа, но какую? Долго искал и остановился на Арткаме.
Но прошивка для 3д принтера никак не принимала созданную УП. Подключил GRBL и всё заработало, только не так, как хотелось. Но вопрос решился с отзеркаливанием некоторых осей.
Потом разобрался, что УП для 3Д принтера должна иметь свою "структуру" (не знаю, как это правильно называется). Так давай изучать, что с этим делом делать и полез искать. Выяснилось, что за это отвечает постпроцессор. Так давай и в эти дебри лезть. Но повезло, что в Арткаме это относительно просто, для тех функций, которые мне были нужны на тот момент. + параллельно изучал G-коды.
Так что на это всё у меня ушло примерно 5 лет ( с 2010-2015) самостоятельного поиска информации и понятий (без подсказок форумчан и кого либо), когда было желание и время.
При этом основной мотивацией являлось создавать детали для своих поделок в домашних условиях при "малых" затратах/вложениях.
Но на данном этапе я ещё всё не умею делать на нем то, что хотелось бы. Не всё перепробовал, но уже "запустил" поворотную ось.
Теперь не хватает, терпения и желания осваивать новое ПО для подготовки УП для моей прошивки (созреваю ещё), так как опять лезть в дебри нового ПО, создания УП, создание-корректировки постпроцессора под прошивку 3д принтера для 4-х осей. (и это опять уйма времени с моим-то восприятием читаемой информации)
Небольшие подсказки (для просмотра содержимого нажмите на ссылку)На данном этапе удалось выяснить на своем опыте:
1) Если желаете просто "поиграться"-поучиться, то смело можно повторять мой проект за исключением заднего "хвоста" станка (к нему очень не удобно добираться чистить, или доставать улетевшую деталь) и его габарита (желательно проектировать с 2-х слоев 21мм фанеры, даже если размером будет меньше -
типа так). Тогда даже алюминий можно будет спокойней погрызть.
Если у вас планируются задачи по сложней, то такая конструкция станка не подойдет. (это типа дорогой "игрушки" на которую я потратил больше 1000$ в свое время, но на сегодня я думаю можно вложится и в меньшую сумму не наступая на мои "грабли", за то будет лучше китайских станков из ал. профиля и висячих валов)
2) Шаговый двигатель (ШД) желательно выбирать NEMA23 - 57мм-вый типоразмер для подобного станка, но не приобретать слишком длинные (типа 112мм, будет влиять на скорость перемещения)
3) Выбор мощности БП для питания рассчитываем исходя из используемого драйвера. К примеру 36в номинал драйвера и 6А установлено переключателем = 216Вт и это будет с запасом на 1 ШД и на 1 драйвер (так как драйвер работает как DC-DC преобразователь, и не смотря на то что там 2 фазы), но если используется ШВП, то драйвер желательно выбирать с большим номинальным напряжениям (тогда можно будет достичь большей скорости перемещения, если она нужна, НО НЕ ПРЕВЫШАЕМ НОМИНАЛЬНОЕ НАПРЯЖЕНИЕ НА ДРАЙВЕРЕ!! т.е. если макс. напряжение 50в, то 48в БП нужно скручивать в минимум и получется 40-42в, или 36в БП немного можно докрутить).
Сейчас у меня общее потребление станка в районе 200-250 Вт и было измерено белым китайским ваттметром. (это вкл. шпиндель, работающие 3-4 ШД, плата управление с дисплеем, диодные ленты) Так что для такого станка 600Вт БП с соловой должно хватить. (даже с поворотной осью, но я бы не рисковал, так как я на драйвера подаю только 25в, ну и ESC на 6S питать от него, что бы вращать шпиндель)
4) Направляющие только на опорах 16 мм и выше, или профильные типа HIWIN 15мм. Что бы они в воздухе не висели, а опирались на станину.
5) Ремень не советую, так как он сильно пружинит, но если всё же решитесь на ремнях его делать, то нужно искать ремень по шире и с большей высотой профиля. (желательно всё же потратиться на ШВП) трапецевидными винтами не пользовался, так что не подскажу, но по наслышке - люфтят. Что приводит к поломке фрез, как и с моим ремнем.
По этому я тоже установил ШВП 1204. (но если направляющие 16 мм, то желательно уже ШВП 1604, или 1605 устанавливать)
Если не передумали - приятного чтения и просмотра. (ещё не всё структурировано и дополняется со временем)
Станок "проектировался" с учетом недочетов первого.
1) Механика
Прогиб направляющего вала д12 мм на расстоянии 500 мм.
Теперь был предусмотрен вал на опоре 12 мм (SBR12 700 мм, 500 мм 300 мм + каретки).
С валами на опорах таких прогибов нет как на простых валах, но желательно хотя бы 16 мм-вые ставить. Просто в то время у человека не было в наличии 16-ки и взял 12-ки.
Так что вполне приемлемо.
Шкив - 16 зубов шаг 2,5 мм (16 * 2,5 = 40 мм за поворот)
Ремень - Т2,5 шириной 6 мм (недостаток данного ремня в применении фрезера см. ниже)
Строительная шпилька д14, шаг 2 мм по оси Z. У токаря выточил длинную гайку 30 мм.
Закуплены уже ШВП 1204, установлены 08.03.2019
2) Шум и пыль.
Теперь он закрытого типа с "окном".
Весь станок из влагостойкой фанеры, толщиной 21мм (как и первый, но лучше водостойкую фанеру использовать). Раскройку заказывал на ЧПУ станке.
Скреплен конфирматами.
Установленные мебельные газовые амортизаторы (пружины) для подъема и фиксации двери.
В двери установлено 2 оргстекла размером 558 х 378мм ну и ручка.
3) Электроника.
Наконец-то в коробе, с клеммами, кнопками и с охлаждением.
Установленные следующие компоненты:
- Клон Arduino Mega 2560 Rev3, (Прошита прошивкой Marlin для 3D принтера и управляется через Repetier-Host либо читается с карты памяти УП)
- Плата RAMPS 1.4 под Arduino Mega 2560,
- Драйвер Шагового двигателя DVR8825 (дробление шага 1/32)
- Графический дисплей 126*64 (позволяет печатать с карты памяти без компьютера - нужно переписать расширение УП с *.nc в *.gcode и скопировать на карту памяти)
- Термо-датчики NTC 3950 (один на шаговый двигатель выведен а второй прикреплен к радиатору микрошагового драйвера)
Ещё поставили мощнее предыдущего шаговые двигатели - 23HS6403 2.5A 1.1N.m
Предусмотрена проводка для Екструдера (3D принтера), разных датчиков, сервомотора (для сканирования поверхности будет опускать датчик/выключатель) и для Поворотной оси.
Так же предусмотрены отверстия для перехода на метрическую шпильку по осям Х и У.
А вот и процесс сборки
https://www.youtube.com/watch?v=M6VLexVPGnk
Калибровочная "линейка-разметка"
Размер станка: 620 х 1150 х 800 мм
Вес: ~80 кг
Рабочая область: 380 х 480 х 180 мм (х у z)
После установки ШВП: 345 х 475 х 150 мм
Точность:
- по оси Z 2/6400 = 0,0003125 мм
- по оси x, y 40/6400 = 0,00625 мм
Повторяемость: в районе 0,05-0,4 мм. Показатели по всем осям одинаковые. (зависят от скорости подачи и материала)
После установки ШВП показания улучшились.
Материал обработки: дерево, пластик, мягкие металы. (3d печать, выжигание, резка лезвием, графопостроитель, гравировка печатных плат)
Для начинающих опишу короткий процес и терминологию (для просмотра содержимого нажмите на ссылку)Что не понятно - google вам в помощь, без этого не обойтись, если захотите фрезеровать:
1.1.1) Немного нужно модифицировать прошивку марлин. (подобрал методом проб и ошибок, так как я тоже не понимал ничего) По всем осям нужно изменить значения минимумов на значение максимумов с отрицательным знаком (если Хмакс 200, то Хмин.-200 а не "0", и так все оси); это дало возможность управлять осью не используя датчики конечного положения - home; и фреза - головка могла опустится ниже "нуля" при фрезеровке, или рисования.
1.1.2) второй вариант - заменить
true на
false для датчиков конечного положения минимума (ЕЩЁ НЕ ПРОБОВАЛ - НАШЕЛ В ИНТЕРНЕТЕ ----- проверил, но странновато работает, после обнуления координат ось Z через repetier-host не опускается в отрицательное значение, за то после "ПУСКА" G-коде отрабатывает правильно с отрицательным положением)
#define min_software_endstops
true // If true, axis won't move to coordinates less than HOME_POS. - если правда (true), то ось не пойдет в отрицательную сторону после отправки домой
#define max_software_endstops
true // If true, axis won't move to coordinates greater than the defined lengths below. - если правда (true) не пойдет ось в большую сторону после достижения махимального зачения максимума (200)
1.2) Нужно модифицировать температурный режим аварийной остановки и нужно поставить хотябы один термистор на Т0. без него не будет система работать (у меня не двигались оси, пока не поставил), или резистор 100кОм - 25 градусов приблизительно для термистора NTC 3950 100k.
1.3) Прошивку GRBL настраиваете под свой станок. О настройке параметров Grbl-v0.9 можно здесь почитать.
https://github.com/grbl/grbl/wiki/Configuring-Grbl-v0.9 (
http://instrumentotvet.ru/grbl-0-9j-perevod/ )
2) Нужно закинуть постпроцессор (с моей темы) в соответствующую папку Арткама. (пока что не освоил другие CAM программы) нужен перезапуск Арткама на всякий случай.
3) По эскизам и по подготовкам посмотрите в ютюбе обучающие видеоролики к Атркаму.
4) При создании УП (управляющей программы) выбираете нужный инструмент. (тоже полно видео) В Арткаме найдете во вкладке Траектории
5) Сохраняете готовую траекторию при помощи моего постпроцессора. (можно выбрать в выпадающем меню со списка - тоже есть видео в просторах ютюба)
6) Настраиваете repetier-host (в моем Гугл+ есть пара скиршотов для примера) по своим параметрам принтера.
7.1) Закидываете готовый код с папки УП Арткама в repetier-host (во вкладке "просмотра печати" есть кнопка "изменить код") И туда вставляете весь код (используете простой текстовый документ для открытия УП, копируете и вставляете в "изменить код")
+ добавил постпроцессор с расширением файла *.gcode , что понятен программе и можно запустить двойным щелчком по файлу с УП
Или можно присвоить в настройках repetier-host расширение *.nc,
7.2) В программе Grbl Controller открываете готовый код с папки УП Арткама кнопкой Choose file.
Модифицированный постпроцессор для ArtCAM + с круговой интерполяцией расширение файла *.nc
Модифицированный постпроцессор для ArtCAM + с круговой интерполяцией расширение файла *.gcode для SD карты
Файлы копируем в C:\Program Files\ArtCAM 2012\postp
Вот прошивка моя, но глючная немного.
Так что перепишите основные параметры в конфигурации температуры в чистую прошивку (остальные данные заполняете относительно вашего станка)
Вот новая Marlin v1.0.2-1 (06.09.2016 EEPROM включен, глюки не наблюдаются)
https://www.youtube.com/watch?v=hMoyEL8vtg8
А вот в этой установлено на 10 минут удержания ШД после завершения работы, если нужно заменить инструмент и у вас ременная передача, как у меня.
В ручную всегда можно отключить удержание ШД, или в программе, или через дисплей.
И нужно не забыть удалить с кода первую команду G92 X0 Y0 Z0 (если используете мой пост процессор), что бы продолжить обработку с новой фрезой с того же места. Главное - вынимаем первый инструмент, вставляем второй, опускаемся Z в "ноль =0" (где поверхность не фрезеровалась), касаемся фрезой поверхности и только после этого закрепляем инструмент (после этого можно приподнять, уйти фрезой в любую точку и запустить УП.), или вынимаем первый инструмент, вставляем второй, закрепляем инструмент, опускаемся, касаемся фрезой поверхности (где поверхность не фрезеровалась) и записываем в первую строку кода G92 Z0 (если коснулись фрезерованной поверхности - зная глубину, то назначаем G92 Z-2 например, или G92 Z2 смотря где находится ваш Z0 - на поверхности, или в плоскости стола).
(07.09.2016)
Или делаем так
https://www.youtube.com/watch?v=M_7poUGNlvE
https://youtu.be/LeNU6Cqp-qI
Обновился до прошивки 1.1.9 (17.05.2019)
Включено 5х5 точек сканирование поверхности по заданным координатам. Так что можно будет и печатные платы гравировать, как тут:
https://youtu.be/6ipcdhXetHY
G29 Lxxx Rxxx Fyyy Byyy
M420 S1
Где:
Lxxx - левый край прямоугольника в координатах
Rxxx - правый край прямоугольника в координатах
Fyyy - передний край прямоугольника в координатах
Byyy - задний край прямоугольника в координатах
Нужно использовать хоминг, без этого не работает сканирования поверхности.
Если мешают софт лимиты, то их можно отключить командой M211 S0, что бы можно было перемещать оси в отрицательные координаты.
Включить обратно можно командой M211 S1
Поворотка и всё остальное должно работать, но со временем перепроверю. (перезалил, прошивку. не всё работало + вывод на дисплей отключения софт лимитов)
Если всё еще нужно постоянное удержание ШД, то во вкладке Configuration_adv.h находим строку DEFAULT_STEPPER_DEACTIVE_TIME и прописываем 0.
Или же всё под этой строкой заменяем на false. (я оба варианте применил и отключаю ШД через ПК, или дисплей)
Вот так получилась моя первая печатная плата по вышеуказанному принципу
https://www.youtube.com/watch?v=0HPeybIyJy0
Недочет и достоинства прошивки Марлин (ИМХО): (для просмотра содержимого нажмите на ссылку)- это перемещение холостых ходов равняется рабочей подачей. (Из-за этого увеличивается время обработки.)
- проблема с круговой интерполяцией. (заметил при прохождении по вектору диаметром меньше 3 мм отображает и фрезерует квадрат)
графически проблема устранена в Repetier-Host 1.6.2
(испытаю позже и выложу результат)
с SD карты и Repetier-Host 1.6.2 дают одинаковый результат фрезерования
Видимо в прошивке дело, буду пробовать Repetier-firmware
Но плюсов больше:
-печать с карты памяти (при наличии экрана)
-возможность менять рабочую подачу во время фрезеровки
Роботы сделанные на новом. (для просмотра содержимого нажмите на ссылку)
Попробовал фрезернуть алюминий.
Вот что получилось.(качество видео не очень - снимал 4-х кратным цифровым зумом)
https://www.youtube.com/watch?v=-SaXw6O7XN0
Фреза диаметром Д4 мм 2-х перая (заходная)
Скорость подачи: 200 мм/мин (шаг выборки 2 мм)
Скорость врезания: 100 мм/мин (шаг углубления 0.25 мм, наклонное врезание - по умолчанию)
На полных оборотах.
Выявил недостатки ременной передачи в моем станке, когда попытался отфрезеровать отверстие под подшипник Д28 а получалось Д27 (Д27,5-27,8 при меньшей скорости и глубине врезания).
Но никак не удалось получить Д28. (хорошо, что подшипник влез в Д27,8, а то пришлось бы переделывать чертеж учитывая погрешность в 0,5 мм)
https://www.youtube.com/watch?v=Yq7uAYnT6Ks
Вот доделал ещё "циклончик" для отсоса пыли в станке.
https://www.youtube.com/watch?v=EwnrBbaMb60
Вот еще кое-что
https://www.youtube.com/watch?v=kI5wOiU_KPI
Основание под 80 мм токарный патрон
https://www.youtube.com/watch?v=v8NbD4l8Ly8
Ну и переходные ал. пластины для ШД на ТВ-16 фрезеровал уже с установленной ШВП по двум осям.
В Арткаме выбрал спиральное заглубление (щадящим показалось) и съем-заглубление по 0,25мм по высоте с подачей 500 мм/мин)
+ гравировка текста, вырезка отверстий под кнопки, переменный резистор, дисплей и кнопки для УЦИ.
https://www.youtube.com/watch?v=kkBu_X1bLds
Гравировка текста, вырезка отверстий под кнопки, переменный резистор и ограничитель высоты.
https://www.youtube.com/watch?v=eGtynSQK7zQ
Теперь пытаюсь найти и изучить какую-то программу для 4-х осей (все 4 рабочие). Типа PowerMill.
4-я поворотная ось (для просмотра содержимого нажмите на ссылку)Планируется на каретке по центру, вдоль оси У. что бы рабочая область была 200-300 мм.
Уже прикупил б.у. кулачковый патрон Д80 и шаговый движок.
Ребята по моим чертежам изготовили планшайбу с валом (с цельного куска) и шестерню.
Другим ребятам пришлось переделать вал и уже нормально сделали токарку.
Количество зубов на шестерни шаговика 20 шт. Большая шестерня 180 зубов. Редукция получится 9:1
То есть 200 шагов * 32 микрошага * 9 = 57600 микрошага/оборот патрона. (на 360 градусов)
57600/360=160 имкрошагов на 1*(градус, или же в моем случае мм)
Это значение записываем в прошивке, или EEPROM экструдера в графе мм/шаг
Вот первый запуск
https://www.youtube.com/watch?v=SEPzFmN9EQU
https://www.youtube.com/watch?v=79gHGCuQatU
Ещё правда не знаю, как совмещу G-код (УП) с прошивкой Marlin.
Буду как-то разбираться, когда руки дойдут.
Успел пообщаться с человеком, который немного пояснил кое-что...
Цитирую его письмо:
Его пояснение в общих чертах (для просмотра содержимого нажмите на ссылку)
у меня сейчас 5 осей. и ось 4 и 5 работают пропорционально друг другуда реализовал как на смешивающем экструдере. с помощью G кода "Т1" или "Т0" можно выбрать 4ю и 5ю ось раздельно, а с помощью G кода "М 164 можно выбрать соотношение вращения оси 4 и 5 вместе.
Да и в прошивке марлин сегодня можно запускать совместно ось хуz и еще 16 осей с названием Е1....Е16. это делается с помощью
2 сторок в прошивке в файле Configuration, нужно раскоментировать функции мультиэкструдера.... они почти в самом начале.
// The following define selects which electronics board you have.
// Please choose the name from boards.h that matches your setup
#ifndef MOTHERBOARD
#define MOTHERBOARD BOARD_RAMPS_14_EFB
#endif
// Optional custom name for your RepStrap or other custom machine
// Displayed in the LCD "Ready" message
//#define CUSTOM_MACHINE_NAME "3D Printer"
// Define this to set a unique identifier for this printer, (Used by some programs to differentiate between machines)
// You can use an online service to generate a random UUID. (eg
http://www.uuidgenerator.net/version4)
//#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
// This defines the number of extruders
// :[1,2,3,4]
#define EXTRUDERS 1
// For Cyclops or any "multi-extruder" that shares a single nozzle.
//#define SINGLENOZZLE
// A dual extruder that uses a single stepper motor
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
//#define SWITCHING_EXTRUDER
#if ENABLED(SWITCHING_EXTRUDER)
#define SWITCHING_EXTRUDER_SERVO_NR 0
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
//#define HOTEND_OFFSET_Z {0.0, 0.0}
#endif
/**
* "Mixing Extruder"
* - Adds a new code, M165, to set the current mix factors.
* - Extends the stepping routines to move multiple steppers in proportion to the mix.
* - Optional support for Repetier Host M163, M164, and virtual extruder.
* - This implementation supports only a single extruder.
* - Enable DIRECT_MIXING_IN_G1 for Pia Taubert's reference implementation
*/
//#define MIXING_EXTRUDER
#if ENABLED(MIXING_EXTRUDER)
#define MIXING_STEPPERS 2 // Number of steppers in your mixing extruder
#define MIXING_VIRTUAL_TOOLS 16 // Use the Virtual Tool method with M163 and M164
//#define DIRECT_MIXING_IN_G1 // Allow ABCDHI mix factors in G1 movement commands
#endif
так вот
// This defines the number of extruders
// :[1,2,3,4]
#define EXTRUDERS 1
ты как бы выбрал что у тебя один экструдер, то есть ось Е
дальше,
//#define MIXING_EXTRUDER
#if ENABLED(MIXING_EXTRUDER)
#define MIXING_STEPPERS 2 // Number of steppers in your mixing extruder
#define MIXING_VIRTUAL_TOOLS 16
раскоментировав эти строчки
ты добавишь ось Е1, Е2...... до 16,
обрати на это внимание, на всякий случай.....
но там есть еще тонкости, суть в том, какую модель экструдера(виртуального) ты для себя выберешь, чтобы было удобно управлять этими осями...
но выбирать какую именно ось Е1 или Е3 ты в данный момент будешь использовать придется командами Т1 или аналогично Т3, ты как бы указываешь станку, что ты выбрал инструмент №1 или инструмент №3, чем и являются оси вращения и поворотные столы.... но это не тот инструмент, которым является фреза, а именно оси вращения 4я и соответственно 6я ось, я инструмент обработки или тип фрезы и ее параметры ты задаешь в управляющей программе типа Визуал милл или Повер милл.
это так - для общей информациии, есть и другие способы.... нужно разные типы смешивающих экструдеров использовать у некоторых одно сопло, но несколько двигателей для подачи разных цветов пластика, а некоторые экструдеры наоборот много сопел но по одному двигателю на экструдирование пластика, и в каждый такой будет всставленн свой тип пластика,
и еще
строчки
#ifndef MOTHERBOARD
#define MOTHERBOARD BOARD_RAMPS_14_EFB
#endif
должны быть заменены на
#ifndef MOTHERBOARD
#define MOTHERBOARD BOARD_RAMPS_14_EEF
#endif
для 4 и 5 оси по отдельности,
или на
#ifndef MOTHERBOARD
#define MOTHERBOARD BOARD_RAMPS_14_EFF
#endif
для + 16 осей типа Е1...Е16, для совместного их использования, но тут нужно прописывать в G коде то какие оси будут крутиться в каком процентном соотношении друг с другом, с помощью того, что указывается какие цвета с помощью каких экструдеров смешиваються,
к примеру красный цвет это поворот E1 на 100% то есть на один оборот, тогда как ось E2 выполнит 50% от оси Е1, и ось Е3 сделает поворот на 30% от оси Е1.
а синий цвет с другим соотношением Е1-Е16
Для начала начну с 4-й, поворотной оси, без всяких комбо, где просто нужно дописать в коде ось Е. Для этого нужно определиться с CAM и написать для него постпроцессор.
Добрались руки до поворотки в АртКАМ-е
Вот модифицированный постпроцессор X-->B теперь же Х --> Е
Шаги должны быть рассчитаны 1 раз для 1-го оборота оси так, что бы один оборот оси был равен 360 мм (360 псевдо градусов - шаг/1мм = 1 градус)
Как я и предполагал, что ось Х растягивает на градусы, только размер заготовки по Х нужно задавать, как периметр окружности заготовки. (30мм* Пи = 94,2477 мм в моем случае и так раскидывать вектора, что бы вписались в эту длину)
И не нужно каждый раз считать шаги для оси Х, как в большинстве делают в таких случаях. (всегда одно и то же значение в "шагах/градусы-мм")
https://www.youtube.com/watch?v=UlxYwv9Njxg
К сожалению руками залапал бумагу и ручка перестала писать... Ну и криво зажал заготовку.
Вот как на деле выглядит:
https://www.youtube.com/watch?v=4v7eK2mtY-w
Как будет ещё какой-то прогресс, буду дополнять первый пост темы и саму тему.