Frezowanie CNC z wykorzystaniem oprogramowania open source

Zawsze szukam nowych projektów do stworzenia z moją drukarką 3D. Gdy ostatnio zobaczyłem nowy projekt frezarki CNC, która w większości wykorzystuje części drukowane w 3D, byłem zaintrygowany. Kiedy zobaczyłem, że maszyna działa na oprogramowaniu open source, a kontroler to Arduino z oprogramowaniem open source, wiedziałem, że muszę ją stworzyć.

Frezarki CNC są precyzyjnymi narzędziami tnącymi używanymi do tworzenia matryc, grawerunków i modeli. W przeciwieństwie do innych narzędzi do frezowania, maszyny CNC mogą poruszać się w trzech osiach: oś Z porusza się pionowo, oś X porusza się poziomo, a oś Y porusza się do przodu i do tyłu.

DIY your CNC

Mimo, że wiele z komponentów tej maszyny CNC jest wydrukowanych w 3D, kilka części musi zostać zamówionych, aby mogła ona działać. Jej twórca, Nikodem Bartnik, umieścił listę części na stronie Thingiverse projektu wraz z linkami do pobrania wydrukowanych w 3D plików STL części.

Zamówiłem potrzebne części i zacząłem czekać. Zostały one wysłane zza oceanu, więc dotarcie niektórych z nich zajęło około miesiąca. W międzyczasie wydrukowałem w 3D pozostałe części.

Maszyna CNC jest zbudowana w oparciu o kontroler Arduino z otwartym oprogramowaniem GRBL do sterowania ruchem. Kontroler GRBL otrzymuje G-kod CNC (tekstowa lista instrukcji dla młyna CNC) i przekłada go na ruch poprzez napędzanie silników krokowych. Maszyna posiada jeden stepper dla osi Z (góra i dół), jeden stepper dla osi X (lewo i prawo) oraz dwa steppery dla osi Y (tył i przód). Strona GRBL ma dokumentację do załadowania GRBL na płytkę Arduino.

Nie będę wchodził w szczegóły montażu sprzętu CNC, ponieważ Nikodem ma serię filmów, które wyjaśniają to szczegółowo. Zamiast tego skupię się na oprogramowaniu open source, które może być użyte do tworzenia projektów i obsługi maszyny CNC. Poza Fedorą jako moim podstawowym systemem operacyjnym, inne kawałki oprogramowania open source, których użyłem to GRBL, Inkscape, jscut i CNCjs.

W tym poradniku wyjaśnię jak stworzyć frezowaną CNC, drewnianą wersję logo Linux Tux Larry’ego Ewinga.

Przygotuj pliki

Pierwszym krokiem do stworzenia drewnianego Tuksa jest pobranie czarno-białej wersji logo w formacie PNG z Wikimedia Commons.

cnc_bw-tux.png

Logo Tuxa z Wikimedia Commons

Punkt wyjścia projektu, obrazek PNG przedstawiający Tuxa z Wikimedia Commons, wykonany przez gg3po, na licencji GPL v2.

Aby logo Tuxa mogło działać na maszynie CNC, przekonwertuj plik PNG Tuxa na plik SVG za pomocą Inkscape, przeciągając i upuszczając plik PNG do okna Inkscape. Następnie użyj opcji Trace Bitmap w Inkscape, aby przekonwertować obraz na ścieżki SVG. W ten sposób powstaną podwójne kopie obrazu – jedna to ścieżki, a druga to bitmapa – usuń kopię bitmapy. Użyj opcji Rozdziel i usuń właściwość Wypełnienie dla konturów Tuksa i pyska Tuksa; otrzymasz obraz SVG, który wygląda jak odwrotność oryginalnego obrazu.

cnc_inverse-svg.png

Odwrotny plik Tuksa utworzony w programie Inkscape

Odwrotny Tux utworzony w programie Inkscape. Czarne sekcje zostaną wyfrezowane przez maszynę CNC.

Następnie należy przekonwertować plik SVG na G-kod CNC, który jest listą instrukcji, które mówią maszynie CNC jak stworzyć pożądany projekt. Użyłem oprogramowania open source jscut, które jest opartym na sieci internetowej programem do produkcji wspomaganej komputerowo (CAM). Możesz pobrać oprogramowanie i uruchomić je na swojej lokalnej maszynie lub użyć wersji internetowej na jscut.org, co właśnie zrobiłem.

Otwórz plik SVG na jscut.org używając rozwijanego menu Otwórz SVG. Następnie kliknij na jedną lub więcej części obrazu SVG, a następnie kliknij Utwórz operację. Wybierz typ operacji (grawer, na zewnątrz, kieszeń, itp.) i głębokość cięcia, a następnie kliknij Generuj. Różne typy operacji określają miejsce cięcia; możesz zobaczyć efekty różnych operacji, przechodząc do zakładki Symuluj GCODE, która pokazuje podgląd cięcia. Dla Tuksa, stworzyłem kilka operacji dla różnych części projektu.

cnc-jscut.png

Generowanie kodu Tux CNC G-code za pomocą jscut

Generowanie kodu Tux CNC G-code za pomocą jscut.

Ustaw właściwości końcówki tnącej w sekcji Narzędzie; obejmują one określenie średnicy końcówki i szybkości cięcia. Jednym z ograniczeń jscut jest to, że nie można określić różnych rozmiarów bitów dla różnych operacji. Aby stworzyć Tuksa, musiałem użyć dwóch różnych bitów: mniejszy bit do wygrawerowania szczegółów, takich jak oczy, nos i usta, oraz większy bit do wycięcia konturu Tuksa na całej długości drewnianej deski. Użyłem jscut dwa razy, aby wygenerować dwa różne pliki G-code: jeden do wykonania grawerunków mniejszym bitem, a drugi do wycięcia konturu Tuksa większym bitem.

Po utworzeniu dwóch plików G-code, następnym zadaniem jest zdobycie oprogramowania sterownika CNC. Ja użyłem open source CNCjs. CNCjs jest oparte na sieci, łatwe w użyciu i obsługuje interfejsy z kontrolerami GRBL. Po zainstalowaniu, wejdź do CNCjs w przeglądarce internetowej i połącz go z kontrolerem Arduino GRBL.

Kliknij Upload G-Code i wskaż plik, który utworzyłeś za pomocą jscut. Najpierw załadowałem plik G-code, który tworzy grawerunki na górze Tuksa.

Gotowy do cięcia

Jesteś prawie gotowy do rozpoczęcia cięcia! Ponieważ będziesz ciął przez całe drewno, dobrze jest użyć „deski odpadowej” – deski, która siedzi na górze maszyny CNC i w którą nie masz nic przeciwko cięciu. Dzieje się tak dlatego, że kiedy maszyna wytnie Tuxa, przejdzie on przez całą drogę i wbije się w deskę znajdującą się pod nim. Tablica odpadowa może być wymieniana w razie potrzeby.

cnc-wasteboard.jpg

Tablica odpadowa

Tablica odpadowa pokazująca poprzednie cięcia.

Pewnie przymocuj deskę odpadową do maszyny CNC, aby zapobiec jakimkolwiek ruchom, następnie przymocuj kawałek drewna, którego użyjesz dla Tuksa. Istnieje wiele sposobów na przymocowanie drewna – ja używam wytrzymałej dwustronnej taśmy dywanowej.

Ostatnim krokiem przed cięciem jest wyrównanie bitu na wrzecionie do kawałka drewna, który tniesz. Użyj przycisków osi CNCjs, aby fizycznie przesunąć wrzeciono tak, aby współrzędne X, Y i Z bitu były wyrównane z lewym górnym rogiem drewna. Oś Z powinna znajdować się tuż nad drewnem; powinieneś być w stanie wsunąć kartkę papieru pomiędzy drewno i wiertło, ale czuć, że wiertło przeciąga po papierze, gdy się przesuwa.

Gdy wszystko jest ustawione, ustaw przesunięcia pozycji roboczej dla osi X, Y i Z na zero, klikając przycisk Ustaw dla każdej z nich.

cnc-set-axes.png

Zerowanie pozycji roboczej osi

Ustawienie pozycji roboczej na zero dla osi X, Y i Z.

Naciśnij przycisk Z+ w CNCjs, aby podnieść nieco bit, aby wrzeciono nie robiło śladu w drewnie, gdy jest włączone.

Aby rozpocząć cięcie, załóż okulary ochronne, ochronę słuchu i maskę przeciwpyłową. Następnie włącz wrzeciono i kliknij przycisk Play w CNCjs.

Blisko monitorować maszynę podczas cięcia i mieć plan, aby szybko odłączyć zasilanie do maszyny CNC i wrzeciona w razie potrzeby. Bądź również gotowy z odkurzaczem, ponieważ powstanie dużo trocin.

Po tym jak pierwszy plik G-kodu zakończy grawerowanie na Tuxie, wyłącz wrzeciono i naciśnij przycisk X0Y0 w CNCjs, aby przywrócić wrzeciono do pozycji wyjściowej osi X i Y. Następnie zmień bit na większy i załaduj go do programu CNCjs. Następnie zmień na większy bit, załaduj plik G-kodu, który wytnie kontur Tuksa i wykonaj ten sam proces, aby go uruchomić.