Создание надежного Arduino CNC станка для резки пены — DIY руководство
В этом уроке мы научимся строить Arduino CNC станок для резки пены. Это типичный DIY CNC станок, потому что он сделан из простых и дешевых материалов, некоторых 3D-печатаемых деталей и имеет Arduino в качестве контроллера. Вы можете посмотреть следующее видео или прочитать письменный урок ниже. Вместо фрез или лазеров основным инструментом этой машины является горячая нить, или специальный тип сопротивления провод, который становится очень горячим, когда через него течет ток. Горячая нить плавит или испаряет пену при прохождении через нее, и так мы можем точно и легко получить любую форму, которую хотим. Я сказал «легко», потому что построение CNC станка на самом деле не так уж сложно. Если вы новичок и думаете о построении своего первого DIY CNC станка, просто оставайтесь с нами, потому что я объясню, как все работает. Я покажу вам весь процесс строительства, начиная от проектирования машины, подключения электронных компонентов, программирования Arduino, а также объясню, как подготовить ваши формы, сделать G-коды и управлять станком с помощью бесплатных программ с открытым исходным кодом. Так что давайте погрузимся в это. Для начала, вот 3D-модель этого станка. Вы можете скачать и 3D-модель ниже. Вы можете найти и скачать эту 3D-модель, а также изучить ее в вашем браузере на Thangs. Скачать сборку 3D-модели на Thangs. STL файлы для 3D печати: Базовая конструкция сделана из алюминиевых профилей T-образного сечения 20x20 мм. Я выбрал эти профили, потому что они просты в использовании, нам не нужно сверлить никакие отверстия или что-то подобное при сборке, и к тому же они многоразовые, мы можем легко разобрать и использовать их для других проектов. Движение по каждой оси достигается за счет линейных подшипников, скользящих по гладким стержням диаметром 10 мм. Я использовал два стержня для каждой оси. Скользящие блоки могут выглядеть немного странно, но они спроектированы так, что их можно легко напечатать на 3D-принтере как единую деталь, при этом имея множественные функции. Так, например, скользящий блок оси X размещает два линейных подшипника, держит стержень оси Y, держит шкив для ремня оси Y, а также имеет рукоятки для крепления ремня оси X. Для привода скользящих блоков мы используем шаговые двигатели NEMA 17. Используя валовую муфту, простой трапецевидный стержень, два шкива и два ремня мы можем равномерно привести в движение два скользящих блока на каждой рельсе одновременно. Здесь мы также можем заметить, что у нас есть третий шаговый двигатель, который позволяет станку создавать 2.5D формы, и мы объясним, как это работает немного позже в видео. В целом, в плане конструкции и жесткости дизайн, вероятно, не идеален, но моя цель была сделать функциональный станок с минимально возможным количеством деталей и все еще способный выполнять работу. Для 3D печати деталей я использовал свой 3D-принтер Creality CR-10, который является действительно хорошим 3D-принтером с разумной ценой. Обратите внимание, что некоторые 3D-печатаемые детали требуют небольшой пост-обработки, или поддерживающий материал должен быть удален перед использованием. В некоторых случаях мне также приходилось использовать наждач для удаления лишнего материала, я думаю, из-за плохих настроек поддержек в слайсере. В любом случае, теперь у меня все материалы готовы, поэтому я могу начать сборку станка. Вот список всех основных компонентов, используемых в этом CNC станке. Список электронных компонентов можно найти ниже в разделе схемы подключения. Алюминиевые профили T-образного сечения, которые у меня были, имели длину 60 см, поэтому в соответствии с 3D-моделью я разрезал каждый из них до размера с помощью металлической пилы. Затем, используя угловые крепления, я собрал базовый раму. Далее я устанавливаю валовые зажимы для оси X. Видите, работа с профилями T-образного сечения такая простая, нам просто нужны некоторые болты M5 и гайки T-образного сечения для крепления всего рода вещей к ним. Далее я вставляю стержень вала через зажимы. Пока он наполовину вставлен, нам также нужно добавить скользящий блок оси X. Мы просто кладем два подшипника в него и затем вставляем их на вал. Теперь мы можем протолкнуть вал на другую сторону и, используя болт M4 и гайку, мы можем зафиксировать вал на месте. Я повторил этот процесс для другой стороны тоже. Далее нам нужно установить оси Y. Для этой цели сначала нам нужно вставить стержни в скользящие блоки оси X, разместить их вплотную к низу детали и закрепить с помощью гаек и болтов M4. Затем мы можем вставить скользящие блоки оси Y. Эти скользящие блоки используют только один линейный подшипник. На верху стержней оси Y нам нужно закрепить крепежные кронштейны, которые соединят два стержня оси Y с профилем T-образного сечения сверху. Опять же, мы используем тот же метод для их крепления к стержням. Для крепления профиля T-образного сечения к крепежным кронштейнам сначала я добавил 3 болта M5 и гайки T-образного сечения на них. Затем я просто вставил профиль и затянул болты. Так, с этим у нас построена основная конструкция, и мы можем свободно двигаться по обеим осям X и Y. Далее я креплю ноги к базовой раме. Опять же, это так просто сделать, используя профили T-образного сечения. После того как ноги закреплены, я собираюсь установить первый шаговый двигатель для оси X. В этом случае я использую распорные гайки 20 мм, чтобы отодвинуть вал двигателя, чтобы я мог разместить шкив ремня рядом с ногой позже. Хорошо, дальше у меня простой трапецевидный стержень 6 мм, который будет приводить в движение два ремня одновременно. Сначала я разрезал его по размеру, поставил подшипник с внутренним диаметром 6 мм на противоположную ногу от шагового и прошел трапецевидный стержень через него. Затем я вставил гайку для крепления стержня к подшипнику и два зубчатых шкива для ремней. Для соединения трапецевидного стержня с шаговым двигателем я напечатал на 3D-принтере валовую муфту с отверстием 5 мм на стороне шагового и 6 мм на стороне стержня. Валовая муфта имеет щели для вставки гаек M3, а затем, используя болты M3 или зажимные винты, мы можем легко закрепить ее на валу двигателя и трапецевидном стержне. Далее нам нужно позиционировать шкивы в линию с рукоятками скользящих блоков и также закрепить их зажимными винтами. На противоположной стороне станка мы можем вставить два натяжных шкива. Я использовал для этого некоторые болты M5 и гайки. Хорошо, теперь мы готовы установить ремни GT2 для оси X. Сначала я вставил и закрепил ремень к скользящему блоку с помощью стяжки. Затем я прошел ремень вокруг зубчатого шкива, с другой стороны вокруг натяжного шкива, отрезал его до соответствующего размера и снова закрепил его к другой стороне скользящего блока с помощью стяжки. Я повторил этот процесс для другой стороны тоже. При закреплении другой стороны мы должны убедиться, что два скользящих блока находятся в одной позиции на оси X. Для этой цели мы можем просто сдвинуть их к концу рельс и так натянуть ремень и закрепить его стяжкой. С этим механизм скольжения по оси X готов. Связано: DIY Pen Plotter с автоматическим сменщиком инструментов | CNC рисующая машина Далее, тем же методом мы соберем механизм оси Y. Для крепления ремня к скользящему блоку снова мы используем стяжки. Здесь скользящий блок имеет только одну рукоятку, и чтобы закрепить ремень, сначала я стяжкой закрепил один конец ремня, затем натянул ремень, чтобы он был достаточно туг, и другой стяжкой схватил оба конца ремня. Теперь я могу просто убрать предыдущую стяжку и отрезать лишний ремень. Как упоминалось ранее, при закреплении ремня на другой стороне мы должны убедиться, что два скользящих блока находятся в одной позиции на оси Y. С этим механизм оси Y также готов. Далее я прикреплю еще один профиль T-образного сечения через ось X. Этот профиль будет служить для крепления 3-го шагового двигателя к нему, а также для размещения кусков пены на нем. С 3-м шаговым двигателем мы можем делать 2.5D или фактически трехмерные формы с этим станком, как, например, шахматная фигура. Хорошо, так что дальше нам нужно установить нагревательный провод. Этот провод должен быть способен выдерживать высокую тепловую нагрузку, сохраняя равномерную температуру по всей своей длине. Обычно это никхромовая нить или нержавеющая рыболовная леска, которые на самом деле недороги и легко доступны. Чтобы работать правильно, провод должен быть натянут между двумя башнями или скользящими блоками, и вот как я это сделал. Я закрепил болты M5 на обоих скользящих блоках и добавил к ним небольшие удлинительные пружины. Затем я просто прикрепил провод к пружинам. Я натянул провод настолько, насколько позволяли пружины. Провод нужно натягивать именно так с пружинами, потому что когда он нагреется, он также удлинится по длине, и пружины смогут компенсировать это. Хорошо, так что дальше мы можем соединить нагревательный провод с электрическими проводами. Мы будем использовать постоянный ток, поэтому полярность не важна, важно только, чтобы ток течь через провод, чтобы он нагрелся. Здесь убедитесь, что ваш электрический провод достаточно толстый, чтобы выдерживать ток около 3-5 Ампер. В моем случае я использую провод 22 AWG, но я бы предложил 20- или 18 AWG просто для надежности. Изначально я прикрепил электрический провод между двумя гайками, и так ток мог проходить через пружину к нагревательному проводу. Это на самом деле не очень хорошо работало, и я покажу вам почему через минуту. Я провел провод через рукоятки скользящего блока, чтобы он оставался аккуратным и далеко от горячего провода. Далее нам нужно установить концевики CNC станка. Эти микроконцевики имеют 3 соединения: Земля, нормально открытое и нормально закрытое соединение. Изначально я подключил их к нормально открытым соединениям, но после проведения некоторых тестов я переключился на нормально закрытое соединение, потому что так станок работает более стабильно. Проблема в электрических помехах, генерируемых во время работы CNC станка, которые ложно срабатывают концевики, как будто они нажаты, и заставляют станок останавливаться. Далее мы можем подключить кабели шаговых двигателей и затем посмотреть, как подключить все электронные компоненты. Вот схема того, как все должно быть подключено. Конечно, «мозгом» этого CNC станка является плата Arduino. Вместе с ней нам также нужен Arduino CNC Shield, три драйвера шаговых двигателей A4988 и DC-DC преобразователь для управления температурой горячего провода. Компоненты, необходимые для этого проекта, можно найти по ссылкам ниже: Я напечатал на 3D-принтере стойку для электронных компонентов, которую закрепил к одной стороне профиля T-образного сечения. Используя болты M3, сначала я закрепил плату Arduino к стойке, а затем установил Arduino CNC Shield сверху. Далее нам нужно выбрать разрешение, с которым драйверы шаговых двигателей будут управлять моторами, используя некоторые перемычки. В моем случае я выбрал 1/16 шага, установив три перемычки на каждый драйвер, и так шаговые двигатели будут иметь более плавные движения. При установке драйверов убедитесь, что их ориентация правильная, маленький потенциометр может служить индикатором для этого, он должен быть ориентирован к нижней стороне щита. Я продолжил с закреплением DC преобразователя на месте. Затем я подключил три шаговых двигателя к Arduino CNC Shield, а также два концевика к выводам X+ и Y+ end stop. Для питания станка я буду использовать блок питания 12В 6А DC. Arduino CNC Shield может работать от 12 до 36 вольт, и также конкретный DC преобразователь, который я использую, может работать с теми же напряжениями. На входе DC преобразователя я добавил переключатель, чтобы я мог включать и выключать горячий провод отдельно. На выходе DC преобразователя я просто подключил два провода от двух концов нагревательного провода. Наконец, мы можем подключить и запитать Arduino через USB порт и запитать Arduino CNC Shield и шаговые двигатели через DC разъем питания. Хорошо, так что сейчас время протестировать станок, работает ли он правильно, и я начну с горячего провода. Вы можете видеть здесь, что у меня 0 вольт на входе DC преобразователя, и как только я включаю переключатель, я получаю 12В на входе. Затем на выходе DC преобразователя снова у нас 0 вольт, но как только мы начинаем крутить потенциометр, мы можем регулировать выходное напряжение от 0 до 12В, и так ток течет через горячий провод и в конечном счете его температура. Лучший способ протестировать, на каком напряжении вы должны установить выход DC преобразователя, — это попытаться разрезать кусок пены. Горячий провод должен быть способен резать пену без большого сопротивления и изгиба. Однако после первоначального тестирования вы можете увидеть, что случилось с моим горячим проводом. Он удлинился из-за тепла, и пружины, которые должны были компенсировать это, не выполнили свою работу. На самом деле, пружины потеряли свою функциональность из-за перегрева, потому что с этой конфигурацией ток течь через них тоже. Так что я заменил старые пружины на новые, и теперь я обошёл пружины, подключив электрические провода напрямую к нагревательному проводу с помощью крокодильных зажимов. Хорошо, так что сейчас время оживить этот станок и сделать его настоящим CNC станком. Для этой цели сначала нам нужно загрузить прошивку в Arduino, которая управляет движением станка. Самый популярный выбор для DIY CNC станков — это прошивка GRBL. Она с открытым исходным кодом, и мы можем скачать ее с GitHub.com. После того как мы скачаем ее как zip-файл, мы можем распаковать его, скопировать папку «grbl» и вставить её в директорию библиотек Arduino. Затем мы можем открыть Arduino IDE и из Файл > Примеры > grbl выбрать пример grblUpload. Теперь нам нужно выбрать плату Arduino, которую мы используем, Arduino UNO, и выбрать COM порт, к которому подключен наш Arduino, и наконец загрузить этот скетч в Arduino. После загрузки теперь Arduino знает, как читать G-коды и как управлять станком в соответствии с ними. Далее нам нужен какой-то интерфейс или контроллер, который будет общаться и говорить Arduino, что делать. Опять же, я выбираю для этой цели программу с открытым исходным кодом, и это Universal G-Code Sender. Я скачал версию 2.0 Platform. Чтобы запустить программу, нам нужно распаковать zip-файл, перейти в папку «bin» и открыть любой из исполняемых файлов ugsplatfrom. Это на самом деле JAVA программа, поэтому, чтобы иметь возможность запустить эту программу, сначала нам нужно установить JAVA Runtime Environment. Мы также можем скачать это бесплатно с официального сайта. Итак, как только мы откроем программу Universal G-Code Sender, сначала нам нужно запустить мастер настройки, чтобы сконфигурировать станок. Здесь нам нужно просто выбрать правильный порт и подключить программу к Arduino. После того как соединение установлено, мы можем проверить направление движения моторов, нажимая кнопки. Если нужно, мы можем изменить направление. Я выбрал положительные движения от домашней позиции, где находятся концевики, к другим сторонам. Далее нам нужно откалибровать шаги моторов, чтобы достичь правильных и точных движений. Поскольку мы выбрали 1/16 шага на драйверах, а моторы имеют 200 физических шагов, это означает, что для того, чтобы мотор сделал полные 360 градусов, потребуется 3200 шагов. Теперь в зависимости от типа передачи, или в данном случае размера шкивов, нам нужно рассчитать количество шагов, которые мотору нужно сделать, чтобы станок сдвинулся на 1 мм. Значение по умолчанию здесь установлено на 250 шагов на мм. Так что, когда мы нажимаем одну из этих кнопок движения, мотор сделает 250 шагов. Теперь в реальности, используя линейку, мы измеряем фактическое движение, которое сделал станок, и вводим это число здесь в программе. Согласно этому, программа рассчитает и скажет нам, на какое значение мы должны изменить и обновить параметр шагов/мм. В моем случае это 83 шага/мм. Что касается оси Z, я установил её на 400 шагов/мм, или это означает, что значение 1 мм для оси Z будет делать поворот 45 градусов. Далее нам нужно проверить, работают ли концевики правильно. В зависимости от того, подключили ли мы их NO или NC, мы также можем инвертировать их здесь. Как я сказал раньше, NC соединение работало лучше для меня. В любом случае, здесь нам нужно заметить, что нам нужно выключить концевик оси Z, так как у нас его нет в нашем станке. Если мы не выключим его, мы не сможем сделать homing станка. Для этого нам нужно зайти в папку grbl в библиотеке Arduino и отредактировать файл config.h. Здесь нам нужно найти строки цикла homing и закомментировать настройку по умолчанию для 3-осевого CNC станка и раскомментировать настройку для 2-осевых станков. Теперь нам нужно сохранить файл и снова загрузить пример grblUpload в Arduino. Обратите внимание, что вам, вероятно, нужно перезапустить программы снова, чтобы все работало правильно. Хорошо, так что дальше мы можем попробовать сделать homing станка, используя кнопку Try homing. При нажатии станок должен начать двигаться к концевику X, и как только он нажат, он начнет двигать ось Y. Если нужно, мы можем изменить направления концевиков. В конце мастера настройки мы можем установить Soft Limits (программные ограничения), которые фактически ограничивают максимальное расстояние, которое станок может пройти в каждом направлении. В моем случае это 45x45 см. Хорошо, так что сейчас программа готова к работе. Перед каждым использованием вы всегда должны делать Homing станка, а затем вы можете делать что угодно. Сначала я бы предложил поиграть и протестировать Jog контроллер или вручную двигать станок. Также в этот момент вы должны попробовать порезать некоторые куски пены, чтобы выяснить, какой feed rate (скорость подачи) или скорость движения будет наиболее подходящей для вас. Так что вы должны поиграть с температурой горячего провода и скоростью подачи, чтобы выяснить, что даст вам самые чистые и точные разрезы на ваших кусках пены. Наконец, что осталось в этом видео — это посмотреть, как подготовить чертежи, чтобы CNC станок мог делать формы из них. Для этой цели нам нужно программное обеспечение для векторной графики, и снова я выбрал программу с открытым исходным кодом, и это Inkscape. Вы можете скачать её с официального сайта бесплатно. Я покажу вам два примера того, как подготовить G-код для Arduino CNC станка с помощью Inkscape. Сначала мы должны установить размер страницы в размер нашей рабочей области, и это 45x45 см. Для первого примера я скачал изображение логотипа Arduino и импортировал его в программу. Используя функцию Trace Bitmap, нам нужно преобразовать изображение в векторный формат. Теперь, чтобы иметь возможность вырезать эту форму горячим проводом, нам нужно сделать форму непрерывным путем. Это потому, что горячий провод всегда присутствует в рабочей области, он не может быть поднят, как, например, фреза или выключен в случае лазера, пока он перемещается от одной буквы или формы к другой. Поэтому, используя простые квадраты, я соединил все отдельные части вместе. Мы делаем это, выбирая части и затем используя функцию Union (Объединение). С другой стороны, внутренние замкнутые контуры нужно открыть, и мы делаем это, используя функцию Difference (Разность). Итак, как только у нас чертеж готов, мы можем использовать расширение Gcodetools для генерации G-кода. Сначала нам нужно сгенерировать точки ориентации. Затем мы можем масштабировать нашу модель до желаемого размера. Далее нам нужно зайти в библиотеку инструментов и с этим определить инструмент, который мы используем для Arduino CNC станка. Мы можем выбрать цилиндр, так как провод очевидно имеет цилиндрическую форму. Здесь мы можем изменить параметры, такие как диаметр инструмента, я установил его на 1 мм, а также скорость подачи. Остальные параметры в данный момент не важны. Наконец, теперь мы можем сгенерировать G-код для этой формы, используя функцию Path to Gcode. G-код — это просто набор инструкций, которые GRBL или Arduino могут понять и в соответствии с ними управлять шаговыми двигателями. Так что теперь мы можем открыть G-код в программе Universal G-code sender и через окно Visualizer мы можем видеть путь, который станок должен пройти. Однако мы можем заметить здесь желтые линии, которые представляют пустое перемещение, или перемещение через воздух в случае использования фрезы или лазера. Как я упоминал ранее, в этом случае горячий провод не может двигаться по этим перемещениям, потому что провод разрезал бы материал и испортил форму. Здесь мы можем на самом деле заметить, что у нас нет единого пути для всей формы, потому что мы забыли открыть замкнутые области внутри логотипа. Так что мы можем просто вернуться к чертежу, сделать эти замкнутые области открытыми и затем сгенерировать G-код снова. Еще одна вещь, которую стоит упомянуть: хорошей идеей является выбрать свою собственную точку начала, дважды щелкнув по форме, выбрав Узел и выбрав Break path at selected node. Теперь, если мы откроем новый G-код, мы увидим, что путь начинается от буквы A, проходит через всю форму и заканчивается обратно в букве A. Для закрепления кусков пены на CNC станке я сделал эти простые держатели, которые имеют болты M3, проникающие в пену и держащие её на месте. Хорошо, так что сейчас я покажу вам еще один пример того, как сделать трехмерную форму. Мы сделаем форму квадратного столба, который нужно резать по четырем сторонам на 90 градусов друг от друга. Я получил форму столба методом Trace Bitmap, показанным ранее. Теперь мы можем нарисовать простой прямоугольник размером с столб, и мы вычтем столб из прямоугольника. Мы удалим одну из сторон, так как нам нужен только один профильный путь столба. Так что это и есть фактический путь, который должен сделать CNC станок, и после каждого прохода нам нужно вращать 3-й шаговый на 90 градусов. Чтобы сделать это при создании точек ориентации, нам нужно установить глубину Z на -8 мм. Затем в параметрах инструмента нам нужно установить шаг глубины на значение 2 мм. Теперь после генерации G-кода мы можем открыть его в G-code sender и увидим, что станок сделает 4 прохода по тому же пути с разницей в глубине 2 мм. В случае CNC фрезы это означало бы, что каждый раз фреза будет уходить на 2 мм глубже для резки материала, но здесь, как показано ранее, мы установили ось Z на вращение 45 градусов на каждый миллиметр или 90 градусов на 2 мм перемещения шагового двигателя по оси Z. В любом случае, здесь нам также нужно немного изменить G-код. По умолчанию сгенерированный G-код после каждого прохода перемещает ось Z к значению 1 мм, что в случае CNC фрезы означает, что она поднимает фрезу, когда нужно пустое перемещение. На самом деле, мы могли бы оставить G-код неизмененным, но он будет делать ненужные движения оси Z или вращать пену без причины. Поэтому после каждой итерации кода нам просто нужно изменить значения оси Z, чтобы они оставались в том же месте, не возвращаясь к значению 1 мм. Для монтажа куска пены для изготовления 3D формы мы используем эту платформу, которая содержит некоторые болты M3, которые втыкаются в кусок пены и держат его, пока он формируется. Перед запуском G-кода нам нужно вручную приблизить горячий провод к куску пены. Расстояние от центра до горячего провода должно быть таким, каким мы хотим, чтобы была толщина нашей формы. Или в случае, если мы хотим точные размеры, как в чертеже, нам нужно измерить расстояние от начала координат до центра формы в чертеже. Затем нам нужно нажать кнопку Reset Zero в контроллере, чтобы сказать программе, что она должна начинать отсюда, а не от домашней позиции. И это все, теперь нам просто нужно нажать кнопку Play, и Arduino CNC станок сделает 3D форму. Вы можете скачать файлы G-кода и файлы Inkscape для всех примеров здесь: Это практически всё для этого урока. Надеюсь, объяснение было достаточно понятным, и вы сможете сделать свой собственный CNC станок. Не стесняйтесь задавать любые вопросы в разделе комментариев ниже и проверяйте мою коллекцию проектов Arduino.Обзор

3D-модель Arduino CNC станка для резки пены





Сборка CNC
















Схема подключения Arduino CNC резака пены







Программное обеспечение для Arduino CNC станков








Генерация G-кода для CNC станка
















Производственный процесс
- Руководство по ЧПУ-прототипированию: точность, скорость и экономичное производство
- История, производство и будущее современной монетной системы
- Полное руководство по станкам ЧПУ для резки: типы, преимущества, применение
- Что такое ЧПУ? Понимание компьютерного числового управления для современного производства
- ЧПУ-резак с осциллирующим ножом: промышленные применения и возможности
- Быстрое сравнение ЧПУ режущих инструментов: фрезы, резьбовые фрезы и другие
- Доступные настольные ЧПУ-станки для прецизионной резки металла дома
- Основы ЧПУ: освоение компьютерного числового управления
- Станки с ЧПУ для фрезеровки: полный обзор
- Подробное руководство по станкам ЧПУ плазменной резки: особенности, преимущества и применение